deploy: 8a435363bb
This commit is contained in:
64
.github/workflows/deploy.yml
vendored
64
.github/workflows/deploy.yml
vendored
@@ -1,64 +0,0 @@
|
||||
# Sample workflow for building and deploying a VitePress site to GitHub Pages
|
||||
#
|
||||
name: Deploy VitePress site to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
|
||||
# using the `master` branch as the default branch.
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: pages
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Not needed if lastUpdated is not enabled
|
||||
# - uses: pnpm/action-setup@v3 # Uncomment this if you're using pnpm
|
||||
# - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: npm # or pnpm / yarn
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v4
|
||||
- name: Install dependencies
|
||||
run: npm ci # or pnpm install / yarn install / bun install
|
||||
- name: Build with VitePress
|
||||
run: npm run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: docs/.vitepress/dist
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
name: Deploy
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +0,0 @@
|
||||
docs/getBasalt.lua
|
||||
97
bundle.lua
97
bundle.lua
@@ -1,97 +0,0 @@
|
||||
local args = {...} -- example: bundle basalt main basalt.lua
|
||||
local availableFiles = {}
|
||||
|
||||
local minifyURL = "https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/minify.lua"
|
||||
|
||||
local content = [[local bundled = true
|
||||
local bundled_basaltContent = {}
|
||||
local bundled_basaltLoaded = {}
|
||||
local bundled_availableFiles = {}
|
||||
|
||||
local baseRequire = require
|
||||
require = function(name)
|
||||
if(bundled_basaltContent["basalt/"..name])then
|
||||
if(bundled_basaltLoaded["basalt/"..name]==nil)then
|
||||
bundled_basaltLoaded["basalt/"..name] = bundled_basaltContent["basalt/"..name]()
|
||||
end
|
||||
return bundled_basaltLoaded["basalt/"..name]
|
||||
end
|
||||
if(bundled_basaltContent["basalt/elements/"..name])then
|
||||
if(bundled_basaltLoaded["basalt/elements/"..name]==nil)then
|
||||
bundled_basaltLoaded["basalt/elements/"..name] = bundled_basaltContent["basalt/elements/"..name]()
|
||||
end
|
||||
return bundled_basaltLoaded["basalt/elements/"..name]
|
||||
end
|
||||
if(bundled_basaltContent["basalt/extensions/"..name])then
|
||||
if(bundled_basaltLoaded["basalt/extensions/"..name]==nil)then
|
||||
bundled_basaltLoaded["basalt/extensions/"..name] = bundled_basaltContent["basalt/extensions/"..name]()
|
||||
end
|
||||
return bundled_basaltLoaded["basalt/extensions/"..name]
|
||||
end
|
||||
if(bundled_basaltContent["basalt/libraries/"..name])then
|
||||
if(bundled_basaltLoaded["basalt/libraries/"..name]==nil)then
|
||||
bundled_basaltLoaded["basalt/libraries/"..name] = bundled_basaltContent["basalt/libraries/"..name]()
|
||||
end
|
||||
return bundled_basaltLoaded["basalt/libraries/"..name]
|
||||
end
|
||||
|
||||
return baseRequire(name)
|
||||
end
|
||||
]]
|
||||
|
||||
local function bundleProject(mainFolder, mainFile, fileName, minify)
|
||||
local function generateSingleFile(folder)
|
||||
local newFolder = {}
|
||||
for k,file in pairs(fs.list(folder)) do
|
||||
if fs.isDir(fs.combine(folder, file)) then
|
||||
generateSingleFile(fs.combine(folder, file))
|
||||
else
|
||||
local fileContent = fs.open(fs.combine(folder, file), "r")
|
||||
local fileData = fileContent.readAll()
|
||||
fileContent.close()
|
||||
table.insert(newFolder, file)
|
||||
local fName = file:gsub(".lua", "")
|
||||
content = content .. "\nbundled_basaltContent[\"" .. fs.combine(folder, fName) .. "\"] = function(...)\n"..fileData.."\nend"
|
||||
end
|
||||
end
|
||||
availableFiles[folder] = newFolder
|
||||
end
|
||||
|
||||
generateSingleFile(mainFolder)
|
||||
|
||||
for k,v in pairs(availableFiles) do
|
||||
content = content .. "\nbundled_availableFiles[\"" .. k .. "\"] = {"
|
||||
for _,file in pairs(v) do
|
||||
content = content .. "\"" .. file .. "\","
|
||||
end
|
||||
content = content .. "}"
|
||||
end
|
||||
|
||||
content = content .. "\nreturn bundled_basaltContent['basalt/"..mainFile.."']()"
|
||||
|
||||
if(minify)then
|
||||
local minScript = http.get(minifyURL)
|
||||
print("Downloading minify script...")
|
||||
if(minScript)then
|
||||
local min = load(minScript.readAll(), nil, "t", _ENV)()
|
||||
minScript.close()
|
||||
local success, data = min(content)
|
||||
if(success)then
|
||||
content = data
|
||||
else
|
||||
error(data)
|
||||
end
|
||||
else
|
||||
print("Failed to download minify script")
|
||||
end
|
||||
end
|
||||
local file = fs.open(fileName, "w")
|
||||
file.write(content:gsub("\t", " "):gsub("\n", " "))
|
||||
file.close()
|
||||
end
|
||||
|
||||
if(#args>=1)then
|
||||
--bundleProject(args[1], args[2] or "main", args[3] or "basalt.lua", args[4] or false)
|
||||
end
|
||||
|
||||
return bundleProject
|
||||
90
config.json
90
config.json
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"versions": {
|
||||
"elements": {
|
||||
"BaseFrame": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/BaseFrame.lua", "The base frame is a element which contains all other elements. The difference to other containers is, it has no parent container."],
|
||||
"BasicElement": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/BasicElement.lua", "The basic element is required for all elements to work. All elements inherit from this element."],
|
||||
"Button": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Button.lua", "The button element, with a text in the center."],
|
||||
"Checkbox": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Checkbox.lua", "The checkbox element is a element which can be checked or unchecked."],
|
||||
"Container": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Container.lua", "The container element, this is the parent of all containers (frames, flexboxes, etc.)"],
|
||||
"Dropdown": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Dropdown.lua", "The dropdown element can be opened and closed. It contains clickable items."],
|
||||
"Frame": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Frame.lua", "The frame element can contain other elements."],
|
||||
"Image": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Image.lua", "The image element display images."],
|
||||
"Input": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Input.lua", "The input element is a element which can be typed in."],
|
||||
"Label": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Label.lua", "The label element, this is a element which can display text."],
|
||||
"List": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/List.lua", "The list element can contain clickable items. List's also can be connected to other lists."],
|
||||
"BigMonitor": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/BigMonitor.lua", "The big monitor element is a element which can contain other elements. Big Monitors are used for big screens (multiple monitors)."],
|
||||
"Menubar": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Menubar.lua", "The menubar element can contain clickable items, menubars scroll horizontally."],
|
||||
"Monitor": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Monitor.lua", "The monitor element is a element which can contain other elements. It is used to manage one monitor."],
|
||||
"MovableFrame": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/MovableFrame.lua", "The movable frame element allows you to move the frame with it's children around."],
|
||||
"ScrollableFrame": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/ScrollableFrame.lua", "The scrollable frame element allows you to scroll through the content."],
|
||||
"Progressbar": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Progressbar.lua", "The progressbar element, this is a element which can display progress."],
|
||||
"Program": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Program.lua", "The program element can start any program."],
|
||||
"Slider": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Slider.lua", "The slider element, this is a element which can be slided."],
|
||||
"Textfield": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/Textfield.lua", "The textfield element can contain text, and the user can type in it."],
|
||||
"VisualElement": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/elements/VisualElement.lua", "The visual element, this is the parent of all visual elements, required for visual elements to work."]
|
||||
},
|
||||
"extensions": {
|
||||
"debug": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/debug.lua", "The debug extension is used for simple debugging."],
|
||||
"dynamicValues": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/dynamicValues.lua", "The dynamic values extension can create more advanced properties. You put in a string (e.g. parent.width - self.width) and it will create a function based on that string."],
|
||||
"templates": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/templates.lua", "The templates extension is used to create more advanced templates. You can also load templates from a JSON file. There are some examples on Github."],
|
||||
"xml": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/xml.lua", "The xml extension is used to create elements from XML."],
|
||||
"betterBackgrounds": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/betterBackgrounds.lua", "The better backgrounds extension is used to create some more advanced backgrounds."],
|
||||
"borders": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/borders.lua", "The borders extension is used to create borders around the elements."],
|
||||
"animations": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/animations.lua", "The animations extension is used to create animations. Instead of just reposioning elements, you can animate the position (just an example)."],
|
||||
"shadows": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/extensions/shadows.lua", "The shadow extension is used to create shadows for the elements."]
|
||||
},
|
||||
"libraries": {
|
||||
"log": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/libraries/log.lua"],
|
||||
"expect": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/libraries/expect.lua"],
|
||||
"utils": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/libraries/utils.lua"]
|
||||
},
|
||||
"init": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/init.lua"],
|
||||
"main": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/main.lua"],
|
||||
"renderSystem": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/renderSystem.lua"],
|
||||
"basaltLoader": [1, "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/Basalt/basaltLoader.lua"]
|
||||
},
|
||||
"default": {
|
||||
"elements": ["BaseFrame", "BasicElement", "Button", "Checkbox", "Container", "Frame", "Input", "Label", "VisualElement"],
|
||||
"extensions": ["dynamicValues", "templates", "xml"],
|
||||
"libraries": ["log", "expect", "utils"],
|
||||
"core": ["init", "main", "renderSystem", "basaltLoader"]
|
||||
},
|
||||
|
||||
"defaultSettings": {
|
||||
"path": {
|
||||
"description": "Basalt's default path",
|
||||
"type": "string",
|
||||
"default": "basalt"
|
||||
},
|
||||
"cacheGlobally": {
|
||||
"description": "Cache the Basalt API globally",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"downloadFiles": {
|
||||
"description": "Downloads the required files from Github",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"storeDownloadedFiles": {
|
||||
"description": "Stores the downloaded files",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"autoUpdate": {
|
||||
"description": "Automatically checks and downloads new updates on program start",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"versions": {
|
||||
"description": "The versions of the files",
|
||||
"type": "table",
|
||||
"default": {}
|
||||
},
|
||||
"githubRepository": {
|
||||
"description": "The Github repository to download the files from",
|
||||
"type": "string",
|
||||
"default": "https://raw.githubusercontent.com/pyroxenium/Basalt/basalt2/"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
local config
|
||||
local basalt = {}
|
||||
local data = {}
|
||||
local loaded = {}
|
||||
local baseRequire = require
|
||||
_ENV.require = function(path)
|
||||
if(data[path]~=nil)then
|
||||
if(loaded[path]==nil)then
|
||||
loaded[path] = load(data[path], nil, "t", _ENV)()
|
||||
end
|
||||
return loaded[path]
|
||||
end
|
||||
if(data["libraries/"..path]~=nil)then
|
||||
if(loaded["libraries/"..path]==nil)then
|
||||
loaded["libraries/"..path] = load(data["libraries/"..path], nil, "t", _ENV)()
|
||||
end
|
||||
return loaded["libraries/"..path]
|
||||
end
|
||||
if(data["elements/"..path]~=nil)then
|
||||
if(loaded["elements/"..path]==nil)then
|
||||
loaded["elements/"..path] = load(data["elements/"..path], nil, "t", _ENV)()
|
||||
end
|
||||
return loaded["elements/"..path]
|
||||
end
|
||||
if(data["extensions/"..path]~=nil)then
|
||||
if(loaded["extensions/"..path]==nil)then
|
||||
loaded["extensions/"..path] = load(data["extensions/"..path], nil, "t", _ENV)()
|
||||
end
|
||||
return loaded["extensions/"..path]
|
||||
end
|
||||
return baseRequire(path)
|
||||
end
|
||||
|
||||
local function getConfig()
|
||||
if(config==nil)then
|
||||
local github = "https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/config.json"
|
||||
if(github~=nil)then
|
||||
local response = http.get(github)
|
||||
if(response==nil)then
|
||||
error("Couldn't get the config file from github!")
|
||||
end
|
||||
config = textutils.unserializeJSON(response.readAll())
|
||||
response.close()
|
||||
return config
|
||||
else
|
||||
error("Couldn't find the github path in the settings basalt.github!")
|
||||
end
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local files = getConfig().versions
|
||||
local webAccess = {}
|
||||
for k,v in pairs(files)do
|
||||
if(k~="elements")and(k~="libraries")and(k~="extensions")then
|
||||
webAccess[k] = v[2]
|
||||
end
|
||||
if(k=="libraries")then
|
||||
for k,v in pairs(v)do
|
||||
webAccess["libraries/"..k] = v[2]
|
||||
end
|
||||
end
|
||||
if(k=="elements")then
|
||||
for k,v in pairs(v)do
|
||||
if(k=="BasicElement")or(k=="VisualElement")or(k=="Container")or(k=="BaseFrame")then
|
||||
webAccess["elements/"..k] = v[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
print("Loading the core files from github...")
|
||||
local parallelAccess = {}
|
||||
for k,v in pairs(webAccess)do
|
||||
table.insert(parallelAccess, function()
|
||||
local url = v
|
||||
local response = http.get(url)
|
||||
if(response==nil)then
|
||||
error("Couldn't get the file "..k.." from github!")
|
||||
end
|
||||
local webData = response.readAll()
|
||||
print("Loaded "..k.."!")
|
||||
data[k] = webData
|
||||
end)
|
||||
end
|
||||
parallel.waitForAll(unpack(parallelAccess))
|
||||
|
||||
basalt = load(data["main"], nil, "t", _ENV)()
|
||||
|
||||
return basalt
|
||||
477
install.lua
477
install.lua
@@ -1,477 +0,0 @@
|
||||
-- BASALT INSTALLER
|
||||
local githubPath = "https://raw.githubusercontent.com/Pyroxenium/Basalt/basalt2/"
|
||||
local minifyURL = "https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/minify.lua"
|
||||
local bundleURL = "https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/bundle.lua"
|
||||
|
||||
local installer = {}
|
||||
local args = {...}
|
||||
local config
|
||||
local loggingList
|
||||
local noLogging = false
|
||||
local packager
|
||||
|
||||
function installer.getConfig(key)
|
||||
if(config~=nil)then
|
||||
return config[key]
|
||||
end
|
||||
local file = http.get("https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/config.json")
|
||||
if(file == nil) then
|
||||
error("Failed to download the Basalt config file")
|
||||
end
|
||||
config = textutils.unserializeJSON(file.readAll())
|
||||
return config[key]
|
||||
end
|
||||
|
||||
function installer.getPackager()
|
||||
if(packager~=nil)then
|
||||
return packager
|
||||
end
|
||||
packager = load(http.get(packagerURL).readAll())()
|
||||
return packager
|
||||
end
|
||||
|
||||
local function log(msg)
|
||||
--require("basalt").log(msg)
|
||||
if not(noLogging)then
|
||||
if(loggingList~=nil)then
|
||||
loggingList:addItem(msg)
|
||||
else
|
||||
print(msg)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function downloadFile(path, url, desc)
|
||||
local file = http.get(url)
|
||||
if(file == nil) then
|
||||
log("Failed to download: "..(desc or url))
|
||||
else
|
||||
local f = fs.open(path, "w")
|
||||
f.write(file.readAll())
|
||||
f.close()
|
||||
log("Successfully downloaded: "..(desc or url))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local minScript
|
||||
local function minify(folder)
|
||||
if(minScript==nil)then
|
||||
minScript = load(http.get(minifyURL).readAll())()
|
||||
end
|
||||
local files = fs.list(folder)
|
||||
for _,file in pairs(files)do
|
||||
if(not fs.isDir(fs.combine(folder, file)))then
|
||||
if(file:sub(-4)==".lua")then
|
||||
local f = fs.open(fs.combine(folder, file), "r")
|
||||
local data = f.readAll()
|
||||
f.close()
|
||||
local success, minified = minScript(data)
|
||||
if(success)then
|
||||
f = fs.open(fs.combine(folder, file), "w")
|
||||
f.write(minified:gsub("\t", " "):gsub("\n", " "))
|
||||
f.close()
|
||||
log("Successfully minified: "..file)
|
||||
else
|
||||
log("Failed to minify: "..file)
|
||||
end
|
||||
end
|
||||
else
|
||||
minify(fs.combine(folder, file))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function installer.minifyProject(path)
|
||||
log("Minifying project...")
|
||||
minify(path)
|
||||
log("Minifying complete!")
|
||||
end
|
||||
|
||||
function installer.bundleProject(path)
|
||||
log("Bundling project...")
|
||||
local bundle = load(http.get(bundleURL).readAll())()
|
||||
bundle(path, "main", "basalt.lua", false)
|
||||
log("Bundling complete!")
|
||||
end
|
||||
|
||||
function installer.createDirectories()
|
||||
local path = installer.getConfig("defaultSettings").path.default
|
||||
log("Basalt path will be: "..path)
|
||||
log("Creating Basalt directories")
|
||||
fs.delete(path)
|
||||
fs.makeDir(path)
|
||||
fs.makeDir(fs.combine(path, "extensions"))
|
||||
fs.makeDir(fs.combine(path, "elements"))
|
||||
fs.makeDir(fs.combine(path, "libraries"))
|
||||
end
|
||||
|
||||
function installer.createSettings()
|
||||
log("Storing Basalt settings")
|
||||
for k,v in pairs(installer.getConfig("defaultSettings"))do
|
||||
settings.define(k, v)
|
||||
end
|
||||
end
|
||||
|
||||
function installer.downloadCoreFiles(packaged)
|
||||
local path = installer.getConfig("defaultSettings").path.default
|
||||
log("---Core files:---")
|
||||
for k,_ in pairs(installer.getConfig("versions"))do
|
||||
if(k~="elements" and k~="extensions" and k~="libraries")then
|
||||
if(packaged)then
|
||||
downloadFileMinified(fs.combine(path, k..".lua"), githubPath.."Basalt/"..k..".lua", k)
|
||||
else
|
||||
downloadFile(fs.combine(path, k..".lua"), githubPath.."Basalt/"..k..".lua", k)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function installer.downloadElementFiles(packaged, elements)
|
||||
local path = installer.getConfig("defaultSettings").path.default
|
||||
log("---Element files:---")
|
||||
for _,v in pairs(elements)do
|
||||
if(packaged)then
|
||||
downloadFileMinified(fs.combine(path, "elements", v..".lua"), githubPath.."Basalt/elements/"..v..".lua", v)
|
||||
else
|
||||
downloadFile(fs.combine(path, "elements", v..".lua"), githubPath.."Basalt/elements/"..v..".lua", v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function installer.downloadExtensionFiles(packaged, extensions)
|
||||
local path = installer.getConfig("defaultSettings").path.default
|
||||
log("---Extension files:---")
|
||||
for _,v in pairs(extensions)do
|
||||
if(packaged)then
|
||||
downloadFileMinified(fs.combine(path, "extensions", v..".lua"), githubPath.."Basalt/extensions/"..v..".lua", v)
|
||||
else
|
||||
downloadFile(fs.combine(path, "extensions", v..".lua"), githubPath.."Basalt/extensions/"..v..".lua", v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function installer.downloadLibraryFiles(packaged)
|
||||
local path = installer.getConfig("defaultSettings").path.default
|
||||
log("---Library files:---")
|
||||
local libraries = installer.getConfig("versions").libraries
|
||||
for k,v in pairs(libraries)do
|
||||
if(packaged)then
|
||||
downloadFileMinified(fs.combine(path, "libraries", k..".lua"), githubPath.."Basalt/libraries/"..k..".lua", k)
|
||||
else
|
||||
downloadFile(fs.combine(path, "libraries", k..".lua"), githubPath.."Basalt/libraries/"..k..".lua", k)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function installer.install(elements, extensions)
|
||||
log("Downloading Basalt...")
|
||||
installer.createDirectories()
|
||||
installer.createSettings()
|
||||
installer.downloadCoreFiles()
|
||||
installer.downloadElementFiles(false, elements)
|
||||
installer.downloadExtensionFiles(false, extensions)
|
||||
installer.downloadLibraryFiles()
|
||||
log("Download complete!")
|
||||
end
|
||||
|
||||
local function Button(frame, x, y, w, h, bg, fg, text, onClick, clickedBg, clickedFg)
|
||||
local button = frame:addButton():setPosition(x, y):setSize(w, h):setText(text):setBackground("{self.clicked ? "..(clickedBg or "black").." : "..(bg or "black").."}"):setForeground("{self.clicked ? "..(clickedFg or "white").." : "..(fg or "white").."}"):onClickUp(onClick)
|
||||
return button
|
||||
end
|
||||
|
||||
local function Label(frame, x, y, text, bg, fg)
|
||||
local label = frame:addLabel():setPosition(x, y):setText(text):setBackground(bg or frame:getBackground()):setForeground(fg or frame:getForeground())
|
||||
return label
|
||||
end
|
||||
|
||||
local function List(frame, x, y, w, h, bg, fg, items, onChange, selBg, selFg)
|
||||
local list = frame:addList():setPosition(x, y):setSize(w, h):setBackground(bg):setForeground(fg):setItems(items):onChange(onChange):setSelectionBackground(selBg or fg):setSelectionForeground(selFg or bg)
|
||||
return list
|
||||
end
|
||||
|
||||
local function ScrollFrame(frame, x, y, w, h, bg, fg)
|
||||
local frame = frame:addScrollableFrame():setPosition(x, y):setSize(w, h):setBackground(bg):setForeground(fg)
|
||||
return frame
|
||||
end
|
||||
|
||||
local function Input(frame, x, y, w, h, bg, fg, text, defaultText)
|
||||
local input = frame:addInput():setPosition(x, y):setSize(w, h):setValue(text):setBackground(bg):setForeground(fg):setPlaceholderBackground(bg)
|
||||
if(defaultText~=nil)then
|
||||
input:setPlaceholderText(defaultText)
|
||||
end
|
||||
return input
|
||||
end
|
||||
|
||||
local function Checkbox(frame, x, y, bg, fg, checked)
|
||||
local checkbox = frame:addCheckbox():setPosition(x, y):setChecked(checked):setBackground(bg):setForeground(fg)
|
||||
return checkbox
|
||||
end
|
||||
|
||||
local function checkForDefault(file, typ)
|
||||
for k,v in pairs(installer.getConfig("default")[typ])do
|
||||
if(file==v)then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local hintFrames = {}
|
||||
local hintLabels = {}
|
||||
local function drawHint(frame, text)
|
||||
if(hintFrames[frame]==nil)then
|
||||
hintFrames[frame] = frame:addScrollableFrame():setPosition(5, 6):setSize("{parent.w - 8}", "{parent.h - 12}"):setVisible(false):setBackground(colors.white):setForeground(colors.black):setBorder(true):setBorderColor(colors.black)
|
||||
hintFrames[frame]:onClick(function(self)
|
||||
self:setVisible(false)
|
||||
end)
|
||||
hintLabels[frame] = hintFrames[frame]:addLabel():setPosition(1, 1):setSize("{parent.w}", "{parent.h}"):setWrap(true):setBackground(colors.white):setForeground(colors.black)
|
||||
end
|
||||
hintFrames[frame]:setYOffset(0)
|
||||
hintLabels[frame]:setText(text)
|
||||
hintFrames[frame]:setVisible(true)
|
||||
end
|
||||
|
||||
function installer.gui()
|
||||
local basalt
|
||||
if(fs.exists("basalt.lua"))then
|
||||
basalt = require("Basalt")
|
||||
else
|
||||
basalt = load(http.get("https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/getBasalt.lua").readAll(), nil, "t", _ENV)()
|
||||
end
|
||||
basalt.requiredElement("button", "list", "frame", "input", "label", "scrollableFrame", "checkbox")
|
||||
basalt.requiredExtension("dynamicValues", "templates", "animations", "borders")
|
||||
local main = basalt.getMainFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local installDescFrame = basalt.addFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local settingsFrame = basalt.addFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local installFrame1 = basalt.addFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local installFrame2 = basalt.addFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local loggingFrame = basalt.addFrame():setBackground(colors.black):setForeground(colors.white)
|
||||
local doneBtn, backBtn
|
||||
|
||||
local elements = installer.getConfig("versions").elements
|
||||
local extensions = installer.getConfig("versions").extensions
|
||||
|
||||
-- Install Description Frame ---------------------------------------
|
||||
|
||||
local textFrame = ScrollFrame(installDescFrame, 3, 3, "{parent.w - 4}", "{parent.h - 6}", colors.white, colors.white):setBorder(true):setBorderColor(colors.gray)
|
||||
textFrame:addLabel():setWrap(true):setSize("{parent.w}", "{parent.h}"):setBackground(colors.white):setForeground(colors.black)
|
||||
:setText([[
|
||||
Installation
|
||||
|
||||
We will install the latest version of basalt on your computer. Please make sure that in case you have a modified version of basalt, you back it up before installing the new version.
|
||||
|
||||
You can choose the files you want to install. Don't worry you can add files later on as well.
|
||||
|
||||
Press "Next" to continue.
|
||||
]])
|
||||
|
||||
Button(installDescFrame, 2, "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Back", function()
|
||||
basalt.switchFrame(main)
|
||||
end)
|
||||
|
||||
Button(installDescFrame, "{parent.w - self.w}", "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Next", function()
|
||||
basalt.switchFrame(settingsFrame)
|
||||
end)
|
||||
|
||||
-- Settings Frame ---------------------------------------------------
|
||||
local settings = ScrollFrame(settingsFrame, 3, 3, "{parent.w - 4}", "{parent.h - 6}", colors.white, colors.black):setBorder(true):setBorderColor(colors.gray)
|
||||
|
||||
Label(settings, 2, 2, "Settings: (click for information)"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "These are the settings for Basalt. These settings will be stored with CC:Tweaked's settings API. You can change these settings later on as well.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 4, "Path:"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "The path where Basalt will be installed. Default is 'basalt'.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 6, "Cache:"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "Caches the Basalt API globally. Restarting your program won't download data from Github, which aren't stored on your computer. Only affects basalt.required(file) files.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 8, "Auto Update:"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "This will automatically update basalt whenever you start your program (and load basalt into your program). Doesn't work with the bundled installation.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 10, "Minify"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "This will minify all the files to reduce the file size. But it will make the files harder to read. Also unexpected errors will be harder to understand.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 12, "Bundle"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "This will bundle all the files into one file. Making it easier to use Basalt on your computer. The bundled version is meant to be used for production. If you're developing a program, you should not use the bundled version.")
|
||||
end)
|
||||
|
||||
Label(settings, 2, 14, "Annotations"):onClick(function(self, button)
|
||||
drawHint(settingsFrame, "This will download the annotations file. It will make the developement with basalt easier, as you can see the documentation of the functions in your editor. Doesn't work with the bundled installation.")
|
||||
end)
|
||||
|
||||
local path = Input(settings, 15, 4, "{parent.w - 21}", 1, "{self.focused ? black : lightGray}", "{self.focused ? white : black}", installer.getConfig("defaultSettings").path.default)
|
||||
|
||||
local cache = Checkbox(settings, "{parent.w - 7}", 6, colors.lightGray, colors.black, false)
|
||||
|
||||
local autoUpdate = Checkbox(settings, "{parent.w - 7}", 8, colors.lightGray, colors.black, false):setEnabled(false)
|
||||
|
||||
local minify = Checkbox(settings, "{parent.w - 7}", 10, colors.lightGray, colors.black, false)
|
||||
|
||||
local bundle = Checkbox(settings, "{parent.w - 7}", 12, colors.lightGray, colors.black, false)
|
||||
|
||||
local annotations = Checkbox(settings, "{parent.w - 7}", 14, colors.lightGray, colors.black, false)
|
||||
|
||||
Button(settingsFrame, 2, "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Back", function()
|
||||
basalt.switchFrame(installDescFrame)
|
||||
end)
|
||||
|
||||
Button(settingsFrame, "{parent.w - self.w}", "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Next", function()
|
||||
basalt.switchFrame(installFrame1)
|
||||
if(config~=nil)then
|
||||
config.defaultSettings.path.default = path:getValue()
|
||||
config.defaultSettings.cacheGlobally.default = cache:getChecked()
|
||||
config.defaultSettings.autoUpdate.default = autoUpdate:getChecked()
|
||||
end
|
||||
end)
|
||||
|
||||
-- Install Frame ---------------------------------------------------
|
||||
Label(installFrame1, 2, 2, "Select the elements you want to install:"):onClick(function(self, button)
|
||||
drawHint(installFrame1, "Elements are the core files of Basalt. You can choose which elements you want to install. Don't worry, you can add elements later on as well. Right click on an element to get more information about it.")
|
||||
end)
|
||||
|
||||
Button(installFrame1, 2, "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Back", function()
|
||||
basalt.switchFrame(settingsFrame)
|
||||
end)
|
||||
|
||||
Button(installFrame1, "{parent.w - self.w}", "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Next", function()
|
||||
basalt.switchFrame(installFrame2)
|
||||
end)
|
||||
|
||||
local eleList = List(installFrame1, 3, 5, "{parent.w - 4}", "{parent.h - 7}", colors.white, colors.lightGray, {}, function()
|
||||
end, colors.white, colors.black):setBorder(true):setBorderColor(colors.gray):setMultiSelection(true):onClick(function(self, btn, x, y)
|
||||
if(btn==2)then
|
||||
local item = self:getItems()[y + self:getScrollIndex()-1]
|
||||
if(item~=nil)then
|
||||
if(elements[item]~=nil)then
|
||||
if(elements[item][3]~=nil)then
|
||||
drawHint(installFrame1, elements[item][3])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
for k,v in pairs(elements)do
|
||||
eleList:addItem(k)
|
||||
if(checkForDefault(k, "elements"))then
|
||||
eleList:selectItem(k)
|
||||
end
|
||||
end
|
||||
--------------------------------------------------------------------
|
||||
|
||||
-- Install Frame 2 -------------------------------------------------
|
||||
Label(installFrame2, 2, 2, "Select the extensions you want to install:"):onClick(function(self, button)
|
||||
drawHint(installFrame2, "Extensions are additional features for Basalt. You can choose which extensions you want to install. Don't worry, you can add extensions later on as well. Right click on an extension to get more information about it.")
|
||||
end)
|
||||
|
||||
Button(installFrame2, 2, "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Back", function()
|
||||
basalt.switchFrame(installFrame1)
|
||||
end)
|
||||
|
||||
local extList = List(installFrame2, 3, 5, "{parent.w - 4}", "{parent.h - 7}", colors.white, colors.lightGray, {}, function()
|
||||
|
||||
end, colors.white, colors.black):setBorder(true):setBorderColor(colors.gray):setMultiSelection(true):onClick(function(self, btn, x, y)
|
||||
if(btn==2)then
|
||||
local item = self:getItems()[y + self:getScrollIndex()-1]
|
||||
if(item~=nil)then
|
||||
if(extensions[item]~=nil)then
|
||||
if(extensions[item][3]~=nil)then
|
||||
drawHint(installFrame2, extensions[item][3])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
for k,_ in pairs(extensions)do
|
||||
extList:addItem(k)
|
||||
if(checkForDefault(k, "extensions"))then
|
||||
extList:selectItem(k)
|
||||
end
|
||||
end
|
||||
|
||||
Button(installFrame2, "{parent.w - self.w}", "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Install", function()
|
||||
loggingList:clear()
|
||||
basalt.switchFrame(loggingFrame)
|
||||
basalt.thread(function()
|
||||
installer.install(eleList:getSelectedItems(), extList:getSelectedItems())
|
||||
local projPath = path:getValue()
|
||||
if(minify:getChecked())then
|
||||
installer.minifyProject(projPath)
|
||||
end
|
||||
if(bundle:getChecked())then
|
||||
installer.bundleProject(projPath)
|
||||
fs.delete(projPath)
|
||||
end
|
||||
|
||||
if(annotations:getChecked())and not(bundle:getChecked())then
|
||||
downloadFile(fs.combine(projPath, "annotations.lua"), "https://raw.githubusercontent.com/Pyroxenium/basalt-docs/main/bundle.lua", "Annotations")
|
||||
end
|
||||
|
||||
backBtn:setVisible(false)
|
||||
doneBtn:setVisible(true)
|
||||
end)
|
||||
end)
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
-- Logging Frame ---------------------------------------------------
|
||||
backBtn = Button(loggingFrame, 2, "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Back", function()
|
||||
basalt.switchFrame(installFrame2)
|
||||
end)
|
||||
|
||||
doneBtn = Button(loggingFrame, "{parent.w - self.w}", "{parent.h - self.h + 1}", 10, 1, colors.white, colors.black, "Done", function()
|
||||
basalt.stop()
|
||||
end):setVisible(false)
|
||||
|
||||
loggingList = List(loggingFrame, 3, 3, "{parent.w - 4}", "{parent.h - 6}", colors.white, colors.black, {}, function()
|
||||
|
||||
end):setSelection(false):setBorder(true):setBorderColor(colors.gray):setAutoScroll(true)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
-- Main Frame ------------------------------------------------------
|
||||
local introFrame = ScrollFrame(main, 3, 3, "{parent.w - 4}", "{parent.h - 6}", colors.white, colors.white):setBorder(true):setBorderColor(colors.gray)
|
||||
introFrame:addLabel():setWrap(true):setSize("{parent.w}", "{parent.h}"):setBackground(colors.white):setForeground(colors.black)
|
||||
:setText([[
|
||||
Welcome to Basalt!
|
||||
|
||||
Thanks for using Basalt! Before we install the project, i'd like to say that Basalt is just a hobby project, made by one person. This means that there might be bugs, and the documentation might not be perfect. If you find any bugs, please report them on the Github page. If you have any questions, feel free to ask them on the Github page or in discord. You can also do a pull request if you want to contribute to the project.
|
||||
|
||||
Also, i'm working on the project in my free time, so updates might not be as frequent as you'd like. I'm doing my best to keep the project up to date and add new features, but it might take some time.
|
||||
]])
|
||||
Button(main, "{parent.w - self.w}", "{parent.h}", 11, 1, "white", "black", "Install", function()
|
||||
basalt.switchFrame(installDescFrame)
|
||||
end)
|
||||
|
||||
Button(main, 2, "{parent.h}", 6, 1, "white", "black", "Exit", function()
|
||||
basalt.stop()
|
||||
end)
|
||||
--------------------------------------------------------------------
|
||||
basalt.autoUpdate()
|
||||
end
|
||||
|
||||
if(args[1]=="source")then
|
||||
installer.install()
|
||||
if(args[2]=="true")then
|
||||
installer.minifyProject(installer.getConfig("defaultSettings").path.default)
|
||||
end
|
||||
elseif(args[1]=="bundled")then
|
||||
installer.install()
|
||||
if(args[2]=="true")then
|
||||
installer.minifyProject(installer.getConfig("defaultSettings").path.default)
|
||||
end
|
||||
installer.bundleProject(installer.getConfig("defaultSettings").path.default)
|
||||
elseif(args[1]=="minify")then
|
||||
installer.minifyProject(args[2])
|
||||
elseif(args[1]=="bundle")then
|
||||
installer.bundleProject(args[2] or "basalt")
|
||||
else
|
||||
installer.gui()
|
||||
end
|
||||
398
minify.lua
398
minify.lua
@@ -1,398 +0,0 @@
|
||||
-- The minify part is fully made by stravant and can be found here: https://github.com/stravant/LuaMinify/blob/master/RobloxPlugin/Minify.lua
|
||||
-- Thanks to him for his awesome work!
|
||||
--
|
||||
--
|
||||
-- A compilation of all of the neccesary code to Minify a source file, all into one single
|
||||
-- script for usage on Roblox. Needed to deal with Roblox' lack of `require`.
|
||||
--
|
||||
function lookupify(cd)for dd,__a in pairs(cd)do cd[__a]=true end;return cd end
|
||||
function CountTable(cd)local dd=0;for __a in pairs(cd)do dd=dd+1 end;return dd end
|
||||
function PrintTable(cd,dd)if cd.Print then return cd.Print()end;dd=dd or 0
|
||||
local __a=(CountTable(cd)>1)local a_a=string.rep(' ',dd+1)
|
||||
local b_a="{".. (__a and'\n'or'')
|
||||
for c_a,d_a in pairs(cd)do
|
||||
if type(d_a)~='function'then
|
||||
b_a=b_a.. (__a and a_a or'')
|
||||
if type(c_a)=='number'then elseif type(c_a)=='string'and
|
||||
c_a:match("^[A-Za-z_][A-Za-z0-9_]*$")then b_a=b_a..c_a.." = "elseif
|
||||
type(c_a)=='string'then b_a=b_a.."[\""..c_a.."\"] = "else b_a=b_a.."["..
|
||||
tostring(c_a).."] = "end
|
||||
if type(d_a)=='string'then b_a=b_a.."\""..d_a.."\""elseif type(d_a)==
|
||||
'number'then b_a=b_a..d_a elseif type(d_a)=='table'then b_a=b_a..
|
||||
PrintTable(d_a,dd+ (__a and 1 or 0))else
|
||||
b_a=b_a..tostring(d_a)end;if next(cd,c_a)then b_a=b_a..","end;if __a then b_a=b_a..'\n'end end end;b_a=b_a..
|
||||
(__a and string.rep(' ',dd)or'').."}"return b_a end;local bb=lookupify{' ','\n','\t','\r'}
|
||||
local cb={['\r']='\\r',['\n']='\\n',['\t']='\\t',['"']='\\"',["'"]="\\'"}
|
||||
local db=lookupify{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
|
||||
local _c=lookupify{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
|
||||
local ac=lookupify{'0','1','2','3','4','5','6','7','8','9'}
|
||||
local bc=lookupify{'0','1','2','3','4','5','6','7','8','9','A','a','B','b','C','c','D','d','E','e','F','f'}
|
||||
local cc=lookupify{'+','-','*','/','^','%',',','{','}','[',']','(',')',';','#'}
|
||||
local dc=lookupify{'and','break','do','else','elseif','end','false','for','function','goto','if','in','local','nil','not','or','repeat','return','then','true','until','while'}
|
||||
function LexLua(cd)local dd={}
|
||||
local __a,a_a=pcall(function()local _aa=1;local aaa=1;local baa=1
|
||||
local function caa()local cba=cd:sub(_aa,_aa)if cba=='\n'then baa=1
|
||||
aaa=aaa+1 else baa=baa+1 end;_aa=_aa+1;return cba end
|
||||
local function daa(cba)cba=cba or 0;return cd:sub(_aa+cba,_aa+cba)end;local function _ba(cba)local dba=daa()
|
||||
for i=1,#cba do if dba==cba:sub(i,i)then return caa()end end end;local function aba(cba)
|
||||
return error(">> :"..aaa..":"..
|
||||
baa..": "..cba,0)end
|
||||
local function bba()local cba=_aa
|
||||
if daa()=='['then local dba=0;while
|
||||
daa(dba+1)=='='do dba=dba+1 end
|
||||
if daa(dba+1)=='['then for _=0,dba+1 do caa()end
|
||||
local _ca=_aa
|
||||
while true do if daa()==''then
|
||||
aba("Expected `]"..string.rep('=',dba).."]` near <eof>.",3)end;local cca=true;if daa()==']'then for i=1,dba do if daa(i)~='='then
|
||||
cca=false end end
|
||||
if daa(dba+1)~=']'then cca=false end else cca=false end;if cca then break else
|
||||
caa()end end;local aca=cd:sub(_ca,_aa-1)for i=0,dba+1 do caa()end
|
||||
local bca=cd:sub(cba,_aa-1)return aca,bca else return nil end else return nil end end
|
||||
while true do local cba=''
|
||||
while true do local dca=daa()
|
||||
if bb[dca]then cba=cba..caa()elseif
|
||||
dca=='-'and daa(1)=='-'then caa()caa()cba=cba..'--'local _da,ada=bba()
|
||||
if ada then cba=cba..ada else while daa()~='\n'and
|
||||
daa()~=''do cba=cba..caa()end end else break end end;local dba=aaa;local _ca=baa
|
||||
local aca=":"..aaa..":"..baa..":> "local bca=daa()local cca=nil
|
||||
if bca==''then cca={Type='Eof'}elseif
|
||||
_c[bca]or db[bca]or bca=='_'then local dca=_aa;repeat caa()bca=daa()until not
|
||||
(_c[bca]or db[bca]or ac[bca]or bca=='_')
|
||||
local _da=cd:sub(dca,_aa-1)
|
||||
if dc[_da]then cca={Type='Keyword',Data=_da}else cca={Type='Ident',Data=_da}end elseif ac[bca]or(daa()=='.'and ac[daa(1)])then local dca=_aa
|
||||
if bca=='0'and
|
||||
daa(1)=='x'then caa()caa()while bc[daa()]do caa()end;if _ba('Pp')then
|
||||
_ba('+-')while ac[daa()]do caa()end end else
|
||||
while ac[daa()]do caa()end;if _ba('.')then while ac[daa()]do caa()end end;if _ba('Ee')then
|
||||
_ba('+-')while ac[daa()]do caa()end end end;cca={Type='Number',Data=cd:sub(dca,_aa-1)}elseif bca=='\''or bca==
|
||||
'\"'then local dca=_aa;local _da=caa()local ada=_aa;while true do local dda=caa()
|
||||
if dda=='\\'then caa()elseif
|
||||
dda==_da then break elseif dda==''then aba("Unfinished string near <eof>")end end;local bda=cd:sub(ada,
|
||||
_aa-2)local cda=cd:sub(dca,_aa-1)
|
||||
cca={Type='String',Data=cda,Constant=bda}elseif bca=='['then local dca,_da=bba()
|
||||
if _da then cca={Type='String',Data=_da,Constant=dca}else
|
||||
caa()cca={Type='Symbol',Data='['}end elseif _ba('>=<')then if _ba('=')then cca={Type='Symbol',Data=bca..'='}else
|
||||
cca={Type='Symbol',Data=bca}end elseif _ba('~')then
|
||||
if _ba('=')then
|
||||
cca={Type='Symbol',Data='~='}else aba("Unexpected symbol `~` in source.",2)end elseif _ba('.')then
|
||||
if _ba('.')then if _ba('.')then cca={Type='Symbol',Data='...'}else
|
||||
cca={Type='Symbol',Data='..'}end else cca={Type='Symbol',Data='.'}end elseif _ba(':')then if _ba(':')then cca={Type='Symbol',Data='::'}else
|
||||
cca={Type='Symbol',Data=':'}end elseif cc[bca]then caa()
|
||||
cca={Type='Symbol',Data=bca}else local dca,_da=bba()if dca then cca={Type='String',Data=_da,Constant=dca}else
|
||||
aba("Unexpected Symbol `"..
|
||||
bca.."` in source.",2)end end;cca.LeadingWhite=cba;cca.Line=dba;cca.Char=_ca
|
||||
cca.Print=function()
|
||||
return"<".. (cca.Type..string.rep(' ',7 -#
|
||||
cca.Type))..
|
||||
" ".. (cca.Data or'').." >"end;dd[#dd+1]=cca;if cca.Type=='Eof'then break end end end)if not __a then return false,a_a end;local b_a={}local c_a={}local d_a=1
|
||||
function b_a:Peek(_aa)_aa=_aa or 0;return dd[math.min(
|
||||
#dd,d_a+_aa)]end
|
||||
function b_a:Get()local _aa=dd[d_a]d_a=math.min(d_a+1,#dd)return _aa end;function b_a:Is(_aa)return b_a:Peek().Type==_aa end;function b_a:Save()c_a[
|
||||
#c_a+1]=d_a end
|
||||
function b_a:Commit()c_a[#c_a]=nil end;function b_a:Restore()d_a=c_a[#c_a]c_a[#c_a]=nil end
|
||||
function b_a:ConsumeSymbol(_aa)
|
||||
local aaa=self:Peek()
|
||||
if aaa.Type=='Symbol'then if _aa then
|
||||
if aaa.Data==_aa then self:Get()return true else return nil end else self:Get()return aaa end else return
|
||||
nil end end
|
||||
function b_a:ConsumeKeyword(_aa)local aaa=self:Peek()if
|
||||
aaa.Type=='Keyword'and aaa.Data==_aa then self:Get()return true else return nil end end;function b_a:IsKeyword(_aa)local aaa=b_a:Peek()return
|
||||
aaa.Type=='Keyword'and aaa.Data==_aa end
|
||||
function b_a:IsSymbol(_aa)
|
||||
local aaa=b_a:Peek()return aaa.Type=='Symbol'and aaa.Data==_aa end
|
||||
function b_a:IsEof()return b_a:Peek().Type=='Eof'end;return true,b_a end
|
||||
function ParseLua(cd)local dd,__a=LexLua(cd)if not dd then return false,__a end
|
||||
local function a_a(ada)local bda=">> :"..
|
||||
|
||||
__a:Peek().Line..":"..__a:Peek().Char..": "..ada.."\n"local cda=0
|
||||
for dda in
|
||||
cd:gmatch("[^\n]*\n?")do if dda:sub(-1,-1)=='\n'then dda=dda:sub(1,-2)end;cda=
|
||||
cda+1
|
||||
if cda==__a:Peek().Line then bda=bda..">> `"..
|
||||
dda:gsub('\t',' ').."`\n"for i=1,__a:Peek().Char
|
||||
do local __b=dda:sub(i,i)
|
||||
if __b=='\t'then bda=bda..' 'else bda=bda..' 'end end
|
||||
bda=bda.." ^---"break end end;return bda end;local b_a=0;local c_a={}local d_a={'_','a','b','c','d'}
|
||||
local function _aa(ada)local bda={}bda.Parent=ada
|
||||
bda.LocalList={}bda.LocalMap={}
|
||||
function bda:RenameVars()
|
||||
for cda,dda in pairs(bda.LocalList)do local __b;b_a=0
|
||||
repeat b_a=b_a+1;local a_b=b_a
|
||||
__b=''while a_b>0 do local b_b=a_b%#d_a;a_b=(a_b-b_b)/#d_a
|
||||
__b=__b..d_a[b_b+1]end until
|
||||
not c_a[__b]and
|
||||
not ada:GetLocal(__b)and not bda.LocalMap[__b]dda.Name=__b;bda.LocalMap[__b]=dda end end
|
||||
function bda:GetLocal(cda)local dda=bda.LocalMap[cda]if dda then return dda end;if bda.Parent then
|
||||
local __b=bda.Parent:GetLocal(cda)if __b then return __b end end;return nil end
|
||||
function bda:CreateLocal(cda)local dda={}dda.Scope=bda;dda.Name=cda;dda.CanRename=true;bda.LocalList[#
|
||||
bda.LocalList+1]=dda
|
||||
bda.LocalMap[cda]=dda;return dda end;bda.Print=function()return"<Scope>"end;return bda end;local aaa;local baa
|
||||
local function caa(ada)local bda=_aa(ada)if not __a:ConsumeSymbol('(')then return false,
|
||||
a_a("`(` expected.")end;local cda={}local dda=false
|
||||
while not
|
||||
__a:ConsumeSymbol(')')do
|
||||
if __a:Is('Ident')then
|
||||
local c_b=bda:CreateLocal(__a:Get().Data)cda[#cda+1]=c_b;if not __a:ConsumeSymbol(',')then
|
||||
if
|
||||
__a:ConsumeSymbol(')')then break else return false,a_a("`)` expected.")end end elseif
|
||||
__a:ConsumeSymbol('...')then dda=true
|
||||
if not __a:ConsumeSymbol(')')then return false,
|
||||
a_a("`...` must be the last argument of a function.")end;break else return false,a_a("Argument name or `...` expected")end end;local __b,a_b=baa(bda)if not __b then return false,a_b end;if not
|
||||
__a:ConsumeKeyword('end')then
|
||||
return false,a_a("`end` expected after function body")end;local b_b={}
|
||||
b_b.AstType='Function'b_b.Scope=bda;b_b.Arguments=cda;b_b.Body=a_b;b_b.VarArg=dda;return true,b_b end
|
||||
local function daa(ada)
|
||||
if __a:ConsumeSymbol('(')then local bda,cda=aaa(ada)
|
||||
if not bda then return false,cda end
|
||||
if not __a:ConsumeSymbol(')')then return false,a_a("`)` Expected.")end;cda.ParenCount=(cda.ParenCount or 0)+1;return true,cda elseif
|
||||
__a:Is('Ident')then local bda=__a:Get()local cda=ada:GetLocal(bda.Data)if not cda then
|
||||
c_a[bda.Data]=true end;local dda={}dda.AstType='VarExpr'dda.Name=bda.Data
|
||||
dda.Local=cda;return true,dda else return false,a_a("primary expression expected")end end
|
||||
local function _ba(ada,bda)local cda,dda=daa(ada)if not cda then return false,dda end
|
||||
while true do
|
||||
if __a:IsSymbol('.')or
|
||||
__a:IsSymbol(':')then local __b=__a:Get().Data;if not __a:Is('Ident')then return false,
|
||||
a_a("<Ident> expected.")end;local a_b=__a:Get()
|
||||
local b_b={}b_b.AstType='MemberExpr'b_b.Base=dda;b_b.Indexer=__b;b_b.Ident=a_b;dda=b_b elseif not
|
||||
bda and __a:ConsumeSymbol('[')then local __b,a_b=aaa(ada)if not __b then
|
||||
return false,a_b end;if not __a:ConsumeSymbol(']')then
|
||||
return false,a_a("`]` expected.")end;local b_b={}b_b.AstType='IndexExpr'
|
||||
b_b.Base=dda;b_b.Index=a_b;dda=b_b elseif not bda and __a:ConsumeSymbol('(')then local __b={}
|
||||
while not
|
||||
__a:ConsumeSymbol(')')do local b_b,c_b=aaa(ada)if not b_b then return false,c_b end
|
||||
__b[#__b+1]=c_b
|
||||
if not __a:ConsumeSymbol(',')then if __a:ConsumeSymbol(')')then break else return false,
|
||||
a_a("`)` Expected.")end end end;local a_b={}a_b.AstType='CallExpr'a_b.Base=dda;a_b.Arguments=__b;dda=a_b elseif not bda and
|
||||
__a:Is('String')then local __b={}__b.AstType='StringCallExpr'__b.Base=dda
|
||||
__b.Arguments={__a:Get()}dda=__b elseif not bda and __a:IsSymbol('{')then local __b,a_b=aaa(ada)if not __b then
|
||||
return false,a_b end;local b_b={}b_b.AstType='TableCallExpr'b_b.Base=dda
|
||||
b_b.Arguments={a_b}dda=b_b else break end end;return true,dda end
|
||||
local function aba(ada)
|
||||
if __a:Is('Number')then local bda={}bda.AstType='NumberExpr'bda.Value=__a:Get()return
|
||||
true,bda elseif __a:Is('String')then local bda={}bda.AstType='StringExpr'
|
||||
bda.Value=__a:Get()return true,bda elseif __a:ConsumeKeyword('nil')then local bda={}bda.AstType='NilExpr'
|
||||
return true,bda elseif __a:IsKeyword('false')or __a:IsKeyword('true')then local bda={}
|
||||
bda.AstType='BooleanExpr'bda.Value=(__a:Get().Data=='true')return true,bda elseif
|
||||
__a:ConsumeSymbol('...')then local bda={}bda.AstType='DotsExpr'return true,bda elseif __a:ConsumeSymbol('{')then local bda={}
|
||||
bda.AstType='ConstructorExpr'bda.EntryList={}
|
||||
while true do
|
||||
if __a:IsSymbol('[')then __a:Get()local cda,dda=aaa(ada)
|
||||
if not cda then return
|
||||
false,a_a("Key Expression Expected")end
|
||||
if not __a:ConsumeSymbol(']')then return false,a_a("`]` Expected")end
|
||||
if not __a:ConsumeSymbol('=')then return false,a_a("`=` Expected")end;local __b,a_b=aaa(ada)if not __b then
|
||||
return false,a_a("Value Expression Expected")end
|
||||
bda.EntryList[#bda.EntryList+1]={Type='Key',Key=dda,Value=a_b}elseif __a:Is('Ident')then local cda=__a:Peek(1)
|
||||
if
|
||||
cda.Type=='Symbol'and cda.Data=='='then local dda=__a:Get()if not __a:ConsumeSymbol('=')then
|
||||
return false,a_a("`=` Expected")end;local __b,a_b=aaa(ada)if not __b then return false,
|
||||
a_a("Value Expression Expected")end
|
||||
bda.EntryList[
|
||||
#bda.EntryList+1]={Type='KeyString',Key=dda.Data,Value=a_b}else local dda,__b=aaa(ada)
|
||||
if not dda then return false,a_a("Value Exected")end
|
||||
bda.EntryList[#bda.EntryList+1]={Type='Value',Value=__b}end elseif __a:ConsumeSymbol('}')then break else local cda,dda=aaa(ada)
|
||||
bda.EntryList[#bda.EntryList+1]={Type='Value',Value=dda}if not cda then return false,a_a("Value Expected")end end
|
||||
if __a:ConsumeSymbol(';')or __a:ConsumeSymbol(',')then elseif
|
||||
__a:ConsumeSymbol('}')then break else return false,a_a("`}` or table entry Expected")end end;return true,bda elseif __a:ConsumeKeyword('function')then local bda,cda=caa(ada)if not bda then
|
||||
return false,cda end;cda.IsLocal=true;return true,cda else return _ba(ada)end end;local bba=lookupify{'-','not','#'}local cba=8
|
||||
local dba={['+']={6,6},['-']={6,6},['%']={7,7},['/']={7,7},['*']={7,7},['^']={10,9},['..']={5,4},['==']={3,3},['<']={3,3},['<=']={3,3},['~=']={3,3},['>']={3,3},['>=']={3,3},['and']={2,2},['or']={1,1}}
|
||||
local function _ca(ada,bda)local cda,dda
|
||||
if bba[__a:Peek().Data]then local __b=__a:Get().Data
|
||||
cda,dda=_ca(ada,cba)if not cda then return false,dda end;local a_b={}a_b.AstType='UnopExpr'
|
||||
a_b.Rhs=dda;a_b.Op=__b;dda=a_b else cda,dda=aba(ada)if not cda then return false,dda end end
|
||||
while true do local __b=dba[__a:Peek().Data]
|
||||
if __b and __b[1]>bda then
|
||||
local a_b=__a:Get().Data;local b_b,c_b=_ca(ada,__b[2])if not b_b then return false,c_b end;local d_b={}
|
||||
d_b.AstType='BinopExpr'd_b.Lhs=dda;d_b.Op=a_b;d_b.Rhs=c_b;dda=d_b else break end end;return true,dda end;aaa=function(ada)return _ca(ada,0)end
|
||||
local function aca(ada)local bda=nil
|
||||
if
|
||||
__a:ConsumeKeyword('if')then local cda={}cda.AstType='IfStatement'cda.Clauses={}
|
||||
repeat local dda,__b=aaa(ada)if not dda then
|
||||
return false,__b end;if not __a:ConsumeKeyword('then')then return false,
|
||||
a_a("`then` expected.")end
|
||||
local a_b,b_b=baa(ada)if not a_b then return false,b_b end
|
||||
cda.Clauses[#cda.Clauses+1]={Condition=__b,Body=b_b}until not __a:ConsumeKeyword('elseif')
|
||||
if __a:ConsumeKeyword('else')then local dda,__b=baa(ada)
|
||||
if not dda then return false,__b end;cda.Clauses[#cda.Clauses+1]={Body=__b}end;if not __a:ConsumeKeyword('end')then
|
||||
return false,a_a("`end` expected.")end;bda=cda elseif __a:ConsumeKeyword('while')then
|
||||
local cda={}cda.AstType='WhileStatement'local dda,__b=aaa(ada)
|
||||
if not dda then return false,__b end;if not __a:ConsumeKeyword('do')then
|
||||
return false,a_a("`do` expected.")end;local a_b,b_b=baa(ada)
|
||||
if not a_b then return false,b_b end;if not __a:ConsumeKeyword('end')then
|
||||
return false,a_a("`end` expected.")end;cda.Condition=__b;cda.Body=b_b;bda=cda elseif
|
||||
__a:ConsumeKeyword('do')then local cda,dda=baa(ada)if not cda then return false,dda end
|
||||
if not
|
||||
__a:ConsumeKeyword('end')then return false,a_a("`end` expected.")end;local __b={}__b.AstType='DoStatement'__b.Body=dda;bda=__b elseif
|
||||
__a:ConsumeKeyword('for')then
|
||||
if not __a:Is('Ident')then return false,a_a("<ident> expected.")end;local cda=__a:Get()
|
||||
if __a:ConsumeSymbol('=')then local dda=_aa(ada)
|
||||
local __b=dda:CreateLocal(cda.Data)local a_b,b_b=aaa(ada)if not a_b then return false,b_b end
|
||||
if not
|
||||
__a:ConsumeSymbol(',')then return false,a_a("`,` Expected")end;local c_b,d_b=aaa(ada)if not c_b then return false,d_b end;local _ab,aab
|
||||
if
|
||||
__a:ConsumeSymbol(',')then _ab,aab=aaa(ada)if not _ab then return false,aab end end;if not __a:ConsumeKeyword('do')then
|
||||
return false,a_a("`do` expected")end;local bab,cab=baa(dda)
|
||||
if not bab then return false,cab end;if not __a:ConsumeKeyword('end')then
|
||||
return false,a_a("`end` expected")end;local dab={}
|
||||
dab.AstType='NumericForStatement'dab.Scope=dda;dab.Variable=__b;dab.Start=b_b;dab.End=d_b;dab.Step=aab
|
||||
dab.Body=cab;bda=dab else local dda=_aa(ada)
|
||||
local __b={dda:CreateLocal(cda.Data)}
|
||||
while __a:ConsumeSymbol(',')do if not __a:Is('Ident')then return false,
|
||||
a_a("for variable expected.")end
|
||||
__b[#__b+1]=dda:CreateLocal(__a:Get().Data)end;if not __a:ConsumeKeyword('in')then
|
||||
return false,a_a("`in` expected.")end;local a_b={}local b_b,c_b=aaa(ada)if not b_b then
|
||||
return false,c_b end;a_b[#a_b+1]=c_b
|
||||
while __a:ConsumeSymbol(',')do
|
||||
local bab,cab=aaa(ada)if not bab then return false,cab end;a_b[#a_b+1]=cab end;if not __a:ConsumeKeyword('do')then
|
||||
return false,a_a("`do` expected.")end;local d_b,_ab=baa(dda)
|
||||
if not d_b then return false,_ab end;if not __a:ConsumeKeyword('end')then
|
||||
return false,a_a("`end` expected.")end;local aab={}
|
||||
aab.AstType='GenericForStatement'aab.Scope=dda;aab.VariableList=__b;aab.Generators=a_b;aab.Body=_ab;bda=aab end elseif __a:ConsumeKeyword('repeat')then local cda,dda=baa(ada)
|
||||
if not cda then return false,dda end;if not __a:ConsumeKeyword('until')then
|
||||
return false,a_a("`until` expected.")end;local __b,a_b=aaa(ada)
|
||||
if not __b then return false,a_b end;local b_b={}b_b.AstType='RepeatStatement'b_b.Condition=a_b;b_b.Body=dda;bda=b_b elseif
|
||||
__a:ConsumeKeyword('function')then if not __a:Is('Ident')then
|
||||
return false,a_a("Function name expected")end;local cda,dda=_ba(ada,true)if not cda then
|
||||
return false,dda end;local __b,a_b=caa(ada)if not __b then return false,a_b end
|
||||
a_b.IsLocal=false;a_b.Name=dda;bda=a_b elseif __a:ConsumeKeyword('local')then
|
||||
if __a:Is('Ident')then
|
||||
local cda={__a:Get().Data}while __a:ConsumeSymbol(',')do if not __a:Is('Ident')then return false,
|
||||
a_a("local var name expected")end
|
||||
cda[#cda+1]=__a:Get().Data end;local dda={}if
|
||||
__a:ConsumeSymbol('=')then
|
||||
repeat local a_b,b_b=aaa(ada)if not a_b then return false,b_b end
|
||||
dda[#dda+1]=b_b until not __a:ConsumeSymbol(',')end;for a_b,b_b in
|
||||
pairs(cda)do cda[a_b]=ada:CreateLocal(b_b)end
|
||||
local __b={}__b.AstType='LocalStatement'__b.LocalList=cda;__b.InitList=dda;bda=__b elseif
|
||||
__a:ConsumeKeyword('function')then if not __a:Is('Ident')then
|
||||
return false,a_a("Function name expected")end;local cda=__a:Get().Data
|
||||
local dda=ada:CreateLocal(cda)local __b,a_b=caa(ada)if not __b then return false,a_b end;a_b.Name=dda
|
||||
a_b.IsLocal=true;bda=a_b else
|
||||
return false,a_a("local var or function def expected")end elseif __a:ConsumeSymbol('::')then if not __a:Is('Ident')then return false,
|
||||
a_a('Label name expected')end
|
||||
local cda=__a:Get().Data
|
||||
if not __a:ConsumeSymbol('::')then return false,a_a("`::` expected")end;local dda={}dda.AstType='LabelStatement'dda.Label=cda;bda=dda elseif
|
||||
__a:ConsumeKeyword('return')then local cda={}
|
||||
if not __a:IsKeyword('end')then local __b,a_b=aaa(ada)
|
||||
if __b then cda[1]=a_b;while
|
||||
__a:ConsumeSymbol(',')do local b_b,c_b=aaa(ada)if not b_b then return false,c_b end
|
||||
cda[#cda+1]=c_b end end end;local dda={}dda.AstType='ReturnStatement'dda.Arguments=cda;bda=dda elseif
|
||||
__a:ConsumeKeyword('break')then local cda={}cda.AstType='BreakStatement'bda=cda elseif __a:IsKeyword('goto')then
|
||||
if not
|
||||
__a:Is('Ident')then return false,a_a("Label expected")end;local cda=__a:Get().Data;local dda={}dda.AstType='GotoStatement'
|
||||
dda.Label=cda;bda=dda else local cda,dda=_ba(ada)if not cda then return false,dda end
|
||||
if
|
||||
__a:IsSymbol(',')or __a:IsSymbol('=')then
|
||||
if(dda.ParenCount or 0)>0 then return false,
|
||||
a_a("Can not assign to parenthesized expression, is not an lvalue")end;local __b={dda}
|
||||
while __a:ConsumeSymbol(',')do local _ab,aab=_ba(ada)
|
||||
if not _ab then return false,aab end;__b[#__b+1]=aab end
|
||||
if not __a:ConsumeSymbol('=')then return false,a_a("`=` Expected.")end;local a_b={}local b_b,c_b=aaa(ada)if not b_b then return false,c_b end;a_b[1]=c_b;while
|
||||
__a:ConsumeSymbol(',')do local _ab,aab=aaa(ada)if not _ab then return false,aab end
|
||||
a_b[#a_b+1]=aab end;local d_b={}
|
||||
d_b.AstType='AssignmentStatement'd_b.Lhs=__b;d_b.Rhs=a_b;bda=d_b elseif
|
||||
dda.AstType=='CallExpr'or
|
||||
dda.AstType=='TableCallExpr'or dda.AstType=='StringCallExpr'then local __b={}__b.AstType='CallStatement'__b.Expression=dda;bda=__b else return false,
|
||||
a_a("Assignment Statement Expected")end end;bda.HasSemicolon=__a:ConsumeSymbol(';')return true,bda end
|
||||
local bca=lookupify{'end','else','elseif','until'}
|
||||
baa=function(ada)local bda={}bda.Scope=_aa(ada)bda.AstType='Statlist'local cda={}
|
||||
while not
|
||||
bca[__a:Peek().Data]and not __a:IsEof()do
|
||||
local dda,__b=aca(bda.Scope)if not dda then return false,__b end;cda[#cda+1]=__b end;bda.Body=cda;return true,bda end;local function cca()local ada=_aa()return baa(ada)end;local dca,_da=cca()
|
||||
return dca,_da end
|
||||
local _d=lookupify{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
|
||||
local ad=lookupify{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
|
||||
local bd=lookupify{'0','1','2','3','4','5','6','7','8','9'}
|
||||
function Format_Mini(cd)local dd,__a;local a_a=0
|
||||
local function b_a(d_a,_aa,aaa)
|
||||
if a_a>150 then a_a=0;return d_a.."\n".._aa end;aaa=aaa or' 'local baa,caa=d_a:sub(-1,-1),_aa:sub(1,1)
|
||||
if
|
||||
ad[baa]or _d[baa]or baa=='_'then
|
||||
if not
|
||||
(ad[caa]or _d[caa]or caa=='_'or bd[caa])then return d_a.._aa elseif caa=='('then
|
||||
return d_a..aaa.._aa else return d_a..aaa.._aa end elseif bd[baa]then
|
||||
if caa=='('then return d_a.._aa else return d_a..aaa.._aa end elseif baa==''then return d_a.._aa else
|
||||
if caa=='('then return d_a..aaa.._aa else return d_a.._aa end end end
|
||||
__a=function(d_a)local _aa=string.rep('(',d_a.ParenCount or 0)
|
||||
if
|
||||
d_a.AstType=='VarExpr'then if d_a.Local then _aa=_aa..d_a.Local.Name else
|
||||
_aa=_aa..d_a.Name end elseif d_a.AstType=='NumberExpr'then _aa=_aa..
|
||||
d_a.Value.Data elseif d_a.AstType=='StringExpr'then
|
||||
_aa=_aa..d_a.Value.Data elseif d_a.AstType=='BooleanExpr'then _aa=_aa..tostring(d_a.Value)elseif
|
||||
d_a.AstType=='NilExpr'then _aa=b_a(_aa,"nil")elseif d_a.AstType=='BinopExpr'then
|
||||
_aa=b_a(_aa,__a(d_a.Lhs))_aa=b_a(_aa,d_a.Op)_aa=b_a(_aa,__a(d_a.Rhs))elseif d_a.AstType==
|
||||
'UnopExpr'then _aa=b_a(_aa,d_a.Op)
|
||||
_aa=b_a(_aa,__a(d_a.Rhs))elseif d_a.AstType=='DotsExpr'then _aa=_aa.."..."elseif d_a.AstType=='CallExpr'then _aa=_aa..
|
||||
__a(d_a.Base)_aa=_aa.."("for i=1,#d_a.Arguments do _aa=_aa..
|
||||
__a(d_a.Arguments[i])
|
||||
if i~=#d_a.Arguments then _aa=_aa..","end end;_aa=_aa..")"elseif d_a.AstType==
|
||||
'TableCallExpr'then _aa=_aa..__a(d_a.Base)_aa=_aa..
|
||||
__a(d_a.Arguments[1])elseif d_a.AstType=='StringCallExpr'then
|
||||
_aa=_aa..__a(d_a.Base)_aa=_aa..d_a.Arguments[1].Data elseif
|
||||
d_a.AstType=='IndexExpr'then
|
||||
_aa=_aa..__a(d_a.Base).."["..__a(d_a.Index).."]"elseif d_a.AstType=='MemberExpr'then _aa=_aa..__a(d_a.Base)..
|
||||
d_a.Indexer..d_a.Ident.Data elseif
|
||||
d_a.AstType=='Function'then d_a.Scope:RenameVars()
|
||||
_aa=_aa.."function("
|
||||
if#d_a.Arguments>0 then for i=1,#d_a.Arguments do
|
||||
_aa=_aa..d_a.Arguments[i].Name
|
||||
if i~=#d_a.Arguments then _aa=_aa..","elseif d_a.VarArg then _aa=_aa..",..."end end elseif
|
||||
d_a.VarArg then _aa=_aa.."..."end;_aa=_aa..")"_aa=b_a(_aa,dd(d_a.Body))
|
||||
_aa=b_a(_aa,"end")elseif d_a.AstType=='ConstructorExpr'then _aa=_aa.."{"
|
||||
for i=1,#d_a.EntryList do
|
||||
local aaa=d_a.EntryList[i]
|
||||
if aaa.Type=='Key'then _aa=_aa.."["..
|
||||
__a(aaa.Key).."]="..__a(aaa.Value)elseif aaa.Type==
|
||||
'Value'then _aa=_aa..__a(aaa.Value)elseif aaa.Type=='KeyString'then
|
||||
_aa=_aa..
|
||||
aaa.Key.."="..__a(aaa.Value)end;if i~=#d_a.EntryList then _aa=_aa..","end end;_aa=_aa.."}"end
|
||||
_aa=_aa..string.rep(')',d_a.ParenCount or 0)a_a=a_a+#_aa;return _aa end
|
||||
local c_a=function(d_a)local _aa=''
|
||||
if d_a.AstType=='AssignmentStatement'then
|
||||
for i=1,#d_a.Lhs do
|
||||
_aa=_aa..__a(d_a.Lhs[i])if i~=#d_a.Lhs then _aa=_aa..","end end;if#d_a.Rhs>0 then _aa=_aa.."="
|
||||
for i=1,#d_a.Rhs do
|
||||
_aa=_aa..__a(d_a.Rhs[i])if i~=#d_a.Rhs then _aa=_aa..","end end end elseif
|
||||
d_a.AstType=='CallStatement'then _aa=__a(d_a.Expression)elseif d_a.AstType=='LocalStatement'then
|
||||
_aa=_aa.."local "
|
||||
for i=1,#d_a.LocalList do _aa=_aa..d_a.LocalList[i].Name;if i~=#
|
||||
d_a.LocalList then _aa=_aa..","end end
|
||||
if#d_a.InitList>0 then _aa=_aa.."="for i=1,#d_a.InitList do _aa=_aa..
|
||||
__a(d_a.InitList[i])
|
||||
if i~=#d_a.InitList then _aa=_aa..","end end end elseif d_a.AstType=='IfStatement'then
|
||||
_aa=b_a("if",__a(d_a.Clauses[1].Condition))_aa=b_a(_aa,"then")
|
||||
_aa=b_a(_aa,dd(d_a.Clauses[1].Body))
|
||||
for i=2,#d_a.Clauses do local aaa=d_a.Clauses[i]
|
||||
if aaa.Condition then
|
||||
_aa=b_a(_aa,"elseif")_aa=b_a(_aa,__a(aaa.Condition))
|
||||
_aa=b_a(_aa,"then")else _aa=b_a(_aa,"else")end;_aa=b_a(_aa,dd(aaa.Body))end;_aa=b_a(_aa,"end")elseif d_a.AstType=='WhileStatement'then
|
||||
_aa=b_a("while",__a(d_a.Condition))_aa=b_a(_aa,"do")_aa=b_a(_aa,dd(d_a.Body))
|
||||
_aa=b_a(_aa,"end")elseif d_a.AstType=='DoStatement'then _aa=b_a(_aa,"do")
|
||||
_aa=b_a(_aa,dd(d_a.Body))_aa=b_a(_aa,"end")elseif d_a.AstType=='ReturnStatement'then _aa="return"
|
||||
for i=1,#d_a.Arguments
|
||||
do _aa=b_a(_aa,__a(d_a.Arguments[i]))if i~=
|
||||
#d_a.Arguments then _aa=_aa..","end end elseif d_a.AstType=='BreakStatement'then _aa="break"elseif d_a.AstType=='RepeatStatement'then
|
||||
_aa="repeat"_aa=b_a(_aa,dd(d_a.Body))_aa=b_a(_aa,"until")
|
||||
_aa=b_a(_aa,__a(d_a.Condition))elseif d_a.AstType=='Function'then d_a.Scope:RenameVars()if d_a.IsLocal then
|
||||
_aa="local"end;_aa=b_a(_aa,"function ")if d_a.IsLocal then
|
||||
_aa=_aa..d_a.Name.Name else _aa=_aa..__a(d_a.Name)end;_aa=
|
||||
_aa.."("
|
||||
if#d_a.Arguments>0 then
|
||||
for i=1,#d_a.Arguments do _aa=_aa..
|
||||
d_a.Arguments[i].Name;if i~=#d_a.Arguments then _aa=_aa..","elseif d_a.VarArg then
|
||||
_aa=_aa..",..."end end elseif d_a.VarArg then _aa=_aa.."..."end;_aa=_aa..")"_aa=b_a(_aa,dd(d_a.Body))
|
||||
_aa=b_a(_aa,"end")elseif d_a.AstType=='GenericForStatement'then d_a.Scope:RenameVars()
|
||||
_aa="for "
|
||||
for i=1,#d_a.VariableList do
|
||||
_aa=_aa..d_a.VariableList[i].Name;if i~=#d_a.VariableList then _aa=_aa..","end end;_aa=_aa.." in"
|
||||
for i=1,#d_a.Generators do
|
||||
_aa=b_a(_aa,__a(d_a.Generators[i]))if i~=#d_a.Generators then _aa=b_a(_aa,',')end end;_aa=b_a(_aa,"do")_aa=b_a(_aa,dd(d_a.Body))
|
||||
_aa=b_a(_aa,"end")elseif d_a.AstType=='NumericForStatement'then _aa="for "_aa=_aa..
|
||||
d_a.Variable.Name.."="_aa=_aa..
|
||||
__a(d_a.Start)..","..__a(d_a.End)if d_a.Step then
|
||||
_aa=_aa..","..__a(d_a.Step)end;_aa=b_a(_aa,"do")
|
||||
_aa=b_a(_aa,dd(d_a.Body))_aa=b_a(_aa,"end")end;a_a=a_a+#_aa;return _aa end
|
||||
dd=function(d_a)local _aa=''d_a.Scope:RenameVars()for aaa,baa in pairs(d_a.Body)do
|
||||
_aa=b_a(_aa,c_a(baa),';')end;return _aa end;cd.Scope:RenameVars()return dd(cd)end
|
||||
return function(cd)local dd,__a=ParseLua(cd)if not dd then return false,__a end
|
||||
return true,Format_Mini(__a)end
|
||||
16
node_modules/.bin/esbuild
generated
vendored
16
node_modules/.bin/esbuild
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
|
||||
else
|
||||
exec node "$basedir/../esbuild/bin/esbuild" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/esbuild.cmd
generated
vendored
17
node_modules/.bin/esbuild.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*
|
||||
28
node_modules/.bin/esbuild.ps1
generated
vendored
28
node_modules/.bin/esbuild.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/nanoid
generated
vendored
16
node_modules/.bin/nanoid
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
|
||||
else
|
||||
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/nanoid.cmd
generated
vendored
17
node_modules/.bin/nanoid.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*
|
||||
28
node_modules/.bin/nanoid.ps1
generated
vendored
28
node_modules/.bin/nanoid.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/parser
generated
vendored
16
node_modules/.bin/parser
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/parser.cmd
generated
vendored
17
node_modules/.bin/parser.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*
|
||||
28
node_modules/.bin/parser.ps1
generated
vendored
28
node_modules/.bin/parser.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/rollup
generated
vendored
16
node_modules/.bin/rollup
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
|
||||
else
|
||||
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/rollup.cmd
generated
vendored
17
node_modules/.bin/rollup.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*
|
||||
28
node_modules/.bin/rollup.ps1
generated
vendored
28
node_modules/.bin/rollup.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/vite
generated
vendored
16
node_modules/.bin/vite
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../vite/bin/vite.js" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/vite.cmd
generated
vendored
17
node_modules/.bin/vite.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*
|
||||
28
node_modules/.bin/vite.ps1
generated
vendored
28
node_modules/.bin/vite.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/.bin/vitepress
generated
vendored
16
node_modules/.bin/vitepress
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../vitepress/bin/vitepress.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../vitepress/bin/vitepress.js" "$@"
|
||||
fi
|
||||
17
node_modules/.bin/vitepress.cmd
generated
vendored
17
node_modules/.bin/vitepress.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vitepress\bin\vitepress.js" %*
|
||||
28
node_modules/.bin/vitepress.ps1
generated
vendored
28
node_modules/.bin/vitepress.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
941
node_modules/.package-lock.json
generated
vendored
941
node_modules/.package-lock.json
generated
vendored
@@ -1,941 +0,0 @@
|
||||
{
|
||||
"name": "basalt-docs",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/@algolia/autocomplete-core": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz",
|
||||
"integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-plugin-algolia-insights": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz",
|
||||
"integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"search-insights": ">= 1 < 3"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-preset-algolia": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz",
|
||||
"integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@algolia/client-search": ">= 4.9.1 < 6",
|
||||
"algoliasearch": ">= 4.9.1 < 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-shared": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz",
|
||||
"integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"@algolia/client-search": ">= 4.9.1 < 6",
|
||||
"algoliasearch": ">= 4.9.1 < 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/cache-browser-local-storage": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz",
|
||||
"integrity": "sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/cache-common": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.20.0.tgz",
|
||||
"integrity": "sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/cache-in-memory": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz",
|
||||
"integrity": "sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-account": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.20.0.tgz",
|
||||
"integrity": "sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.20.0",
|
||||
"@algolia/client-search": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-analytics": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.20.0.tgz",
|
||||
"integrity": "sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.20.0",
|
||||
"@algolia/client-search": "4.20.0",
|
||||
"@algolia/requester-common": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-common": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.20.0.tgz",
|
||||
"integrity": "sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-personalization": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.20.0.tgz",
|
||||
"integrity": "sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.20.0",
|
||||
"@algolia/requester-common": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-search": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.20.0.tgz",
|
||||
"integrity": "sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.20.0",
|
||||
"@algolia/requester-common": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/logger-common": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.20.0.tgz",
|
||||
"integrity": "sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/logger-console": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.20.0.tgz",
|
||||
"integrity": "sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/logger-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/requester-browser-xhr": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz",
|
||||
"integrity": "sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/requester-common": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.20.0.tgz",
|
||||
"integrity": "sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/requester-node-http": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz",
|
||||
"integrity": "sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/transporter": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.20.0.tgz",
|
||||
"integrity": "sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.20.0",
|
||||
"@algolia/logger-common": "4.20.0",
|
||||
"@algolia/requester-common": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
|
||||
"integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docsearch/css": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz",
|
||||
"integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@docsearch/js": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz",
|
||||
"integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@docsearch/react": "3.5.2",
|
||||
"preact": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docsearch/react": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz",
|
||||
"integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-core": "1.9.3",
|
||||
"@algolia/autocomplete-preset-algolia": "1.9.3",
|
||||
"@docsearch/css": "3.5.2",
|
||||
"algoliasearch": "^4.19.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": ">= 16.8.0 < 19.0.0",
|
||||
"react": ">= 16.8.0 < 19.0.0",
|
||||
"react-dom": ">= 16.8.0 < 19.0.0",
|
||||
"search-insights": ">= 1 < 3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
"optional": true
|
||||
},
|
||||
"react": {
|
||||
"optional": true
|
||||
},
|
||||
"react-dom": {
|
||||
"optional": true
|
||||
},
|
||||
"search-insights": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.18.20",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
|
||||
"integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
||||
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/linkify-it": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz",
|
||||
"integrity": "sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/markdown-it": {
|
||||
"version": "13.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.2.tgz",
|
||||
"integrity": "sha512-Tla7hH9oeXHOlJyBFdoqV61xWE9FZf/y2g+gFVwQ2vE1/eBzjUno5JCd3Hdb5oATve5OF6xNjZ/4VIZhVVx+hA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/linkify-it": "*",
|
||||
"@types/mdurl": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/mdurl": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.3.tgz",
|
||||
"integrity": "sha512-T5k6kTXak79gwmIOaDF2UUQXFbnBE0zBUzF20pz7wDYu0RQMzWg+Ml/Pz50214NsFHBITkoi5VtdjFZnJ2ijjA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/web-bluetooth": {
|
||||
"version": "0.0.18",
|
||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz",
|
||||
"integrity": "sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
|
||||
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.21.3",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
|
||||
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
|
||||
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.20.15",
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/compiler-ssr": "3.3.4",
|
||||
"@vue/reactivity-transform": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.0",
|
||||
"postcss": "^8.1.10",
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
|
||||
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
|
||||
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
|
||||
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/reactivity-transform": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
|
||||
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.20.15",
|
||||
"@vue/compiler-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
|
||||
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
|
||||
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.3.4",
|
||||
"@vue/shared": "3.3.4",
|
||||
"csstype": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
|
||||
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.3.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
|
||||
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.5.0.tgz",
|
||||
"integrity": "sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/web-bluetooth": "^0.0.18",
|
||||
"@vueuse/metadata": "10.5.0",
|
||||
"@vueuse/shared": "10.5.0",
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/integrations": {
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.5.0.tgz",
|
||||
"integrity": "sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vueuse/core": "10.5.0",
|
||||
"@vueuse/shared": "10.5.0",
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"async-validator": "*",
|
||||
"axios": "*",
|
||||
"change-case": "*",
|
||||
"drauu": "*",
|
||||
"focus-trap": "*",
|
||||
"fuse.js": "*",
|
||||
"idb-keyval": "*",
|
||||
"jwt-decode": "*",
|
||||
"nprogress": "*",
|
||||
"qrcode": "*",
|
||||
"sortablejs": "*",
|
||||
"universal-cookie": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"async-validator": {
|
||||
"optional": true
|
||||
},
|
||||
"axios": {
|
||||
"optional": true
|
||||
},
|
||||
"change-case": {
|
||||
"optional": true
|
||||
},
|
||||
"drauu": {
|
||||
"optional": true
|
||||
},
|
||||
"focus-trap": {
|
||||
"optional": true
|
||||
},
|
||||
"fuse.js": {
|
||||
"optional": true
|
||||
},
|
||||
"idb-keyval": {
|
||||
"optional": true
|
||||
},
|
||||
"jwt-decode": {
|
||||
"optional": true
|
||||
},
|
||||
"nprogress": {
|
||||
"optional": true
|
||||
},
|
||||
"qrcode": {
|
||||
"optional": true
|
||||
},
|
||||
"sortablejs": {
|
||||
"optional": true
|
||||
},
|
||||
"universal-cookie": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/integrations/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/metadata": {
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.5.0.tgz",
|
||||
"integrity": "sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared": {
|
||||
"version": "10.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.5.0.tgz",
|
||||
"integrity": "sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/algoliasearch": {
|
||||
"version": "4.20.0",
|
||||
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.20.0.tgz",
|
||||
"integrity": "sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-browser-local-storage": "4.20.0",
|
||||
"@algolia/cache-common": "4.20.0",
|
||||
"@algolia/cache-in-memory": "4.20.0",
|
||||
"@algolia/client-account": "4.20.0",
|
||||
"@algolia/client-analytics": "4.20.0",
|
||||
"@algolia/client-common": "4.20.0",
|
||||
"@algolia/client-personalization": "4.20.0",
|
||||
"@algolia/client-search": "4.20.0",
|
||||
"@algolia/logger-common": "4.20.0",
|
||||
"@algolia/logger-console": "4.20.0",
|
||||
"@algolia/requester-browser-xhr": "4.20.0",
|
||||
"@algolia/requester-common": "4.20.0",
|
||||
"@algolia/requester-node-http": "4.20.0",
|
||||
"@algolia/transporter": "4.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-sequence-parser": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
|
||||
"integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
|
||||
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.18.20",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
|
||||
"integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/android-arm": "0.18.20",
|
||||
"@esbuild/android-arm64": "0.18.20",
|
||||
"@esbuild/android-x64": "0.18.20",
|
||||
"@esbuild/darwin-arm64": "0.18.20",
|
||||
"@esbuild/darwin-x64": "0.18.20",
|
||||
"@esbuild/freebsd-arm64": "0.18.20",
|
||||
"@esbuild/freebsd-x64": "0.18.20",
|
||||
"@esbuild/linux-arm": "0.18.20",
|
||||
"@esbuild/linux-arm64": "0.18.20",
|
||||
"@esbuild/linux-ia32": "0.18.20",
|
||||
"@esbuild/linux-loong64": "0.18.20",
|
||||
"@esbuild/linux-mips64el": "0.18.20",
|
||||
"@esbuild/linux-ppc64": "0.18.20",
|
||||
"@esbuild/linux-riscv64": "0.18.20",
|
||||
"@esbuild/linux-s390x": "0.18.20",
|
||||
"@esbuild/linux-x64": "0.18.20",
|
||||
"@esbuild/netbsd-x64": "0.18.20",
|
||||
"@esbuild/openbsd-x64": "0.18.20",
|
||||
"@esbuild/sunos-x64": "0.18.20",
|
||||
"@esbuild/win32-arm64": "0.18.20",
|
||||
"@esbuild/win32-ia32": "0.18.20",
|
||||
"@esbuild/win32-x64": "0.18.20"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/focus-trap": {
|
||||
"version": "7.5.3",
|
||||
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.3.tgz",
|
||||
"integrity": "sha512-7UsT/eSJcTPF0aZp73u7hBRTABz26knRRTJfoTGFCQD5mUImLIIOwWWCrtoQdmWa7dykBi6H+Cp5i3S/kvsMeA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tabbable": "^6.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonc-parser": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
|
||||
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.4",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.4.tgz",
|
||||
"integrity": "sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/mark.js": {
|
||||
"version": "8.11.1",
|
||||
"resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
|
||||
"integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/minisearch": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz",
|
||||
"integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.31",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
||||
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.6",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/preact": {
|
||||
"version": "10.18.1",
|
||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz",
|
||||
"integrity": "sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/preact"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "3.29.4",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
|
||||
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.18.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/search-insights": {
|
||||
"version": "2.8.3",
|
||||
"resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.8.3.tgz",
|
||||
"integrity": "sha512-W9rZfQ9XEfF0O6ntgQOTI7Txc8nkZrO4eJ/pTHK0Br6wWND2sPGPoWg+yGhdIW7wMbLqk8dc23IyEtLlNGpeNw==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/shiki": {
|
||||
"version": "0.14.4",
|
||||
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz",
|
||||
"integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-sequence-parser": "^1.1.0",
|
||||
"jsonc-parser": "^3.2.0",
|
||||
"vscode-oniguruma": "^1.7.0",
|
||||
"vscode-textmate": "^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tabbable": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
||||
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "4.4.11",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
|
||||
"integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.18.10",
|
||||
"postcss": "^8.4.27",
|
||||
"rollup": "^3.27.1"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": ">= 14",
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"lightningcss": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vitepress": {
|
||||
"version": "1.0.0-rc.20",
|
||||
"resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.20.tgz",
|
||||
"integrity": "sha512-CykMUJ8JLxLcGWek0ew3wln4RYbsOd1+0YzXITTpajggpynm2S331TNkJVOkHrMRc6GYe3y4pS40GfgcW0ZwAw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@docsearch/css": "^3.5.2",
|
||||
"@docsearch/js": "^3.5.2",
|
||||
"@types/markdown-it": "^13.0.1",
|
||||
"@vue/devtools-api": "^6.5.0",
|
||||
"@vueuse/core": "^10.4.1",
|
||||
"@vueuse/integrations": "^10.4.1",
|
||||
"focus-trap": "^7.5.2",
|
||||
"mark.js": "8.11.1",
|
||||
"minisearch": "^6.1.0",
|
||||
"shiki": "^0.14.4",
|
||||
"vite": "^4.4.9",
|
||||
"vue": "^3.3.4"
|
||||
},
|
||||
"bin": {
|
||||
"vitepress": "bin/vitepress.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"markdown-it-mathjax3": "^4.3.2",
|
||||
"postcss": "^8.4.30"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"markdown-it-mathjax3": {
|
||||
"optional": true
|
||||
},
|
||||
"postcss": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vitepress-copy-helper": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/vitepress-copy-helper/-/vitepress-copy-helper-0.0.3.tgz",
|
||||
"integrity": "sha512-duEigSPq3jMHqiT8jt+lWiSvLamvSwdBT8wpJqyzI/XEuOgikUyrn61x7zu0mh0s86ULb6vWofPRAVi1N5egwA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"vue": "^3.2.47"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-oniguruma": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
|
||||
"integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vscode-textmate": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
|
||||
"integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
|
||||
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.3.4",
|
||||
"@vue/compiler-sfc": "3.3.4",
|
||||
"@vue/runtime-dom": "3.3.4",
|
||||
"@vue/server-renderer": "3.3.4",
|
||||
"@vue/shared": "3.3.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
node_modules/@algolia/autocomplete-core/README.md
generated
vendored
17
node_modules/@algolia/autocomplete-core/README.md
generated
vendored
@@ -1,17 +0,0 @@
|
||||
# @algolia/autocomplete-core
|
||||
|
||||
The [`autocomplete-core`](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-core/createAutocomplete) package is the foundation of Autocomplete. It exposes primitives to build an autocomplete experience.
|
||||
|
||||
You likely don’t need to use this package directly unless you’re building a [renderer](https://www.algolia.com/doc/ui-libraries/autocomplete/guides/creating-a-renderer).
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
yarn add @algolia/autocomplete-core
|
||||
# or
|
||||
npm install @algolia/autocomplete-core
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
See [**Documentation**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-core).
|
||||
2
node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.d.ts
generated
vendored
2
node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.d.ts
generated
vendored
@@ -1,2 +0,0 @@
|
||||
import { AutocompleteOptions, BaseItem } from './types';
|
||||
export declare function checkOptions<TItem extends BaseItem>(options: AutocompleteOptions<TItem>): void;
|
||||
4
node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.js
generated
vendored
4
node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.js
generated
vendored
@@ -1,4 +0,0 @@
|
||||
import { warn } from '@algolia/autocomplete-shared';
|
||||
export function checkOptions(options) {
|
||||
process.env.NODE_ENV !== 'production' ? warn(!options.debug, 'The `debug` option is meant for development debugging and should not be used in production.') : void 0;
|
||||
}
|
||||
8
node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.d.ts
generated
vendored
8
node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.d.ts
generated
vendored
@@ -1,8 +0,0 @@
|
||||
import { AutocompleteApi, AutocompleteOptions as AutocompleteCoreOptions, BaseItem } from './types';
|
||||
export interface AutocompleteOptionsWithMetadata<TItem extends BaseItem> extends AutocompleteCoreOptions<TItem> {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
__autocomplete_metadata?: Record<string, unknown>;
|
||||
}
|
||||
export declare function createAutocomplete<TItem extends BaseItem, TEvent = Event, TMouseEvent = MouseEvent, TKeyboardEvent = KeyboardEvent>(options: AutocompleteOptionsWithMetadata<TItem>): AutocompleteApi<TItem, TEvent, TMouseEvent, TKeyboardEvent>;
|
||||
92
node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js
generated
vendored
92
node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js
generated
vendored
@@ -1,92 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';
|
||||
import { checkOptions } from './checkOptions';
|
||||
import { createStore } from './createStore';
|
||||
import { getAutocompleteSetters } from './getAutocompleteSetters';
|
||||
import { getDefaultProps } from './getDefaultProps';
|
||||
import { getPropGetters } from './getPropGetters';
|
||||
import { getMetadata, injectMetadata } from './metadata';
|
||||
import { onInput } from './onInput';
|
||||
import { stateReducer } from './stateReducer';
|
||||
export function createAutocomplete(options) {
|
||||
checkOptions(options);
|
||||
var subscribers = [];
|
||||
var props = getDefaultProps(options, subscribers);
|
||||
var store = createStore(stateReducer, props, onStoreStateChange);
|
||||
var setters = getAutocompleteSetters({
|
||||
store: store
|
||||
});
|
||||
var propGetters = getPropGetters(_objectSpread({
|
||||
props: props,
|
||||
refresh: refresh,
|
||||
store: store,
|
||||
navigator: props.navigator
|
||||
}, setters));
|
||||
function onStoreStateChange(_ref) {
|
||||
var prevState = _ref.prevState,
|
||||
state = _ref.state;
|
||||
props.onStateChange(_objectSpread({
|
||||
prevState: prevState,
|
||||
state: state,
|
||||
refresh: refresh,
|
||||
navigator: props.navigator
|
||||
}, setters));
|
||||
}
|
||||
function refresh() {
|
||||
return onInput(_objectSpread({
|
||||
event: new Event('input'),
|
||||
nextState: {
|
||||
isOpen: store.getState().isOpen
|
||||
},
|
||||
props: props,
|
||||
navigator: props.navigator,
|
||||
query: store.getState().query,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters));
|
||||
}
|
||||
if (options.insights && !props.plugins.some(function (plugin) {
|
||||
return plugin.name === 'aa.algoliaInsightsPlugin';
|
||||
})) {
|
||||
var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;
|
||||
props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));
|
||||
}
|
||||
props.plugins.forEach(function (plugin) {
|
||||
var _plugin$subscribe;
|
||||
return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {
|
||||
navigator: props.navigator,
|
||||
refresh: refresh,
|
||||
onSelect: function onSelect(fn) {
|
||||
subscribers.push({
|
||||
onSelect: fn
|
||||
});
|
||||
},
|
||||
onActive: function onActive(fn) {
|
||||
subscribers.push({
|
||||
onActive: fn
|
||||
});
|
||||
},
|
||||
onResolve: function onResolve(fn) {
|
||||
subscribers.push({
|
||||
onResolve: fn
|
||||
});
|
||||
}
|
||||
}));
|
||||
});
|
||||
injectMetadata({
|
||||
metadata: getMetadata({
|
||||
plugins: props.plugins,
|
||||
options: options
|
||||
}),
|
||||
environment: props.environment
|
||||
});
|
||||
return _objectSpread(_objectSpread({
|
||||
refresh: refresh,
|
||||
navigator: props.navigator
|
||||
}, propGetters), setters);
|
||||
}
|
||||
7
node_modules/@algolia/autocomplete-core/dist/esm/createStore.d.ts
generated
vendored
7
node_modules/@algolia/autocomplete-core/dist/esm/createStore.d.ts
generated
vendored
@@ -1,7 +0,0 @@
|
||||
import { AutocompleteState, AutocompleteStore, BaseItem, InternalAutocompleteOptions, Reducer } from './types';
|
||||
declare type OnStoreStateChange<TItem extends BaseItem> = ({ prevState, state, }: {
|
||||
prevState: AutocompleteState<TItem>;
|
||||
state: AutocompleteState<TItem>;
|
||||
}) => void;
|
||||
export declare function createStore<TItem extends BaseItem>(reducer: Reducer, props: InternalAutocompleteOptions<TItem>, onStoreStateChange: OnStoreStateChange<TItem>): AutocompleteStore<TItem>;
|
||||
export {};
|
||||
28
node_modules/@algolia/autocomplete-core/dist/esm/createStore.js
generated
vendored
28
node_modules/@algolia/autocomplete-core/dist/esm/createStore.js
generated
vendored
@@ -1,28 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { createCancelablePromiseList } from './utils';
|
||||
export function createStore(reducer, props, onStoreStateChange) {
|
||||
var state = props.initialState;
|
||||
return {
|
||||
getState: function getState() {
|
||||
return state;
|
||||
},
|
||||
dispatch: function dispatch(action, payload) {
|
||||
var prevState = _objectSpread({}, state);
|
||||
state = reducer(state, {
|
||||
type: action,
|
||||
props: props,
|
||||
payload: payload
|
||||
});
|
||||
onStoreStateChange({
|
||||
state: state,
|
||||
prevState: prevState
|
||||
});
|
||||
},
|
||||
pendingRequests: createCancelablePromiseList()
|
||||
};
|
||||
}
|
||||
13
node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.d.ts
generated
vendored
13
node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.d.ts
generated
vendored
@@ -1,13 +0,0 @@
|
||||
import { AutocompleteCollection, AutocompleteStore, BaseItem } from './types';
|
||||
interface GetAutocompleteSettersOptions<TItem extends BaseItem> {
|
||||
store: AutocompleteStore<TItem>;
|
||||
}
|
||||
export declare function getAutocompleteSetters<TItem extends BaseItem>({ store, }: GetAutocompleteSettersOptions<TItem>): {
|
||||
setActiveItemId: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<number | null>;
|
||||
setQuery: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<string>;
|
||||
setCollections: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<(AutocompleteCollection<TItem> | import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteCollection").AutocompleteCollectionItemsArray<TItem>)[]>;
|
||||
setIsOpen: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<boolean>;
|
||||
setStatus: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<"idle" | "loading" | "stalled" | "error">;
|
||||
setContext: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteContext").AutocompleteContext>;
|
||||
};
|
||||
export {};
|
||||
48
node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js
generated
vendored
48
node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js
generated
vendored
@@ -1,48 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { flatten } from '@algolia/autocomplete-shared';
|
||||
export function getAutocompleteSetters(_ref) {
|
||||
var store = _ref.store;
|
||||
var setActiveItemId = function setActiveItemId(value) {
|
||||
store.dispatch('setActiveItemId', value);
|
||||
};
|
||||
var setQuery = function setQuery(value) {
|
||||
store.dispatch('setQuery', value);
|
||||
};
|
||||
var setCollections = function setCollections(rawValue) {
|
||||
var baseItemId = 0;
|
||||
var value = rawValue.map(function (collection) {
|
||||
return _objectSpread(_objectSpread({}, collection), {}, {
|
||||
// We flatten the stored items to support calling `getAlgoliaResults`
|
||||
// from the source itself.
|
||||
items: flatten(collection.items).map(function (item) {
|
||||
return _objectSpread(_objectSpread({}, item), {}, {
|
||||
__autocomplete_id: baseItemId++
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
store.dispatch('setCollections', value);
|
||||
};
|
||||
var setIsOpen = function setIsOpen(value) {
|
||||
store.dispatch('setIsOpen', value);
|
||||
};
|
||||
var setStatus = function setStatus(value) {
|
||||
store.dispatch('setStatus', value);
|
||||
};
|
||||
var setContext = function setContext(value) {
|
||||
store.dispatch('setContext', value);
|
||||
};
|
||||
return {
|
||||
setActiveItemId: setActiveItemId,
|
||||
setQuery: setQuery,
|
||||
setCollections: setCollections,
|
||||
setIsOpen: setIsOpen,
|
||||
setStatus: setStatus,
|
||||
setContext: setContext
|
||||
};
|
||||
}
|
||||
6
node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.d.ts
generated
vendored
6
node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.d.ts
generated
vendored
@@ -1,6 +0,0 @@
|
||||
import { AutocompleteState, BaseItem } from './types';
|
||||
interface GetCompletionProps<TItem extends BaseItem> {
|
||||
state: AutocompleteState<TItem>;
|
||||
}
|
||||
export declare function getCompletion<TItem extends BaseItem>({ state, }: GetCompletionProps<TItem>): string | null;
|
||||
export {};
|
||||
9
node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js
generated
vendored
9
node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js
generated
vendored
@@ -1,9 +0,0 @@
|
||||
import { getActiveItem } from './utils';
|
||||
export function getCompletion(_ref) {
|
||||
var _getActiveItem;
|
||||
var state = _ref.state;
|
||||
if (state.isOpen === false || state.activeItemId === null) {
|
||||
return null;
|
||||
}
|
||||
return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;
|
||||
}
|
||||
2
node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.d.ts
generated
vendored
2
node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.d.ts
generated
vendored
@@ -1,2 +0,0 @@
|
||||
import { AutocompleteOptions, AutocompleteSubscribers, BaseItem, InternalAutocompleteOptions } from './types';
|
||||
export declare function getDefaultProps<TItem extends BaseItem>(props: AutocompleteOptions<TItem>, pluginSubscribers: AutocompleteSubscribers<TItem>): InternalAutocompleteOptions<TItem>;
|
||||
128
node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js
generated
vendored
128
node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js
generated
vendored
@@ -1,128 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';
|
||||
import { getNormalizedSources } from './utils';
|
||||
export function getDefaultProps(props, pluginSubscribers) {
|
||||
var _props$id;
|
||||
/* eslint-disable no-restricted-globals */
|
||||
var environment = typeof window !== 'undefined' ? window : {};
|
||||
/* eslint-enable no-restricted-globals */
|
||||
var plugins = props.plugins || [];
|
||||
return _objectSpread(_objectSpread({
|
||||
debug: false,
|
||||
openOnFocus: false,
|
||||
placeholder: '',
|
||||
autoFocus: false,
|
||||
defaultActiveItemId: null,
|
||||
stallThreshold: 300,
|
||||
insights: false,
|
||||
environment: environment,
|
||||
shouldPanelOpen: function shouldPanelOpen(_ref) {
|
||||
var state = _ref.state;
|
||||
return getItemsCount(state) > 0;
|
||||
},
|
||||
reshape: function reshape(_ref2) {
|
||||
var sources = _ref2.sources;
|
||||
return sources;
|
||||
}
|
||||
}, props), {}, {
|
||||
// Since `generateAutocompleteId` triggers a side effect (it increments
|
||||
// an internal counter), we don't want to execute it if unnecessary.
|
||||
id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),
|
||||
plugins: plugins,
|
||||
// The following props need to be deeply defaulted.
|
||||
initialState: _objectSpread({
|
||||
activeItemId: null,
|
||||
query: '',
|
||||
completion: null,
|
||||
collections: [],
|
||||
isOpen: false,
|
||||
status: 'idle',
|
||||
context: {}
|
||||
}, props.initialState),
|
||||
onStateChange: function onStateChange(params) {
|
||||
var _props$onStateChange;
|
||||
(_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);
|
||||
plugins.forEach(function (x) {
|
||||
var _x$onStateChange;
|
||||
return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);
|
||||
});
|
||||
},
|
||||
onSubmit: function onSubmit(params) {
|
||||
var _props$onSubmit;
|
||||
(_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);
|
||||
plugins.forEach(function (x) {
|
||||
var _x$onSubmit;
|
||||
return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);
|
||||
});
|
||||
},
|
||||
onReset: function onReset(params) {
|
||||
var _props$onReset;
|
||||
(_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);
|
||||
plugins.forEach(function (x) {
|
||||
var _x$onReset;
|
||||
return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);
|
||||
});
|
||||
},
|
||||
getSources: function getSources(params) {
|
||||
return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {
|
||||
return plugin.getSources;
|
||||
})), [props.getSources]).filter(Boolean).map(function (getSources) {
|
||||
return getNormalizedSources(getSources, params);
|
||||
})).then(function (nested) {
|
||||
return flatten(nested);
|
||||
}).then(function (sources) {
|
||||
return sources.map(function (source) {
|
||||
return _objectSpread(_objectSpread({}, source), {}, {
|
||||
onSelect: function onSelect(params) {
|
||||
source.onSelect(params);
|
||||
pluginSubscribers.forEach(function (x) {
|
||||
var _x$onSelect;
|
||||
return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);
|
||||
});
|
||||
},
|
||||
onActive: function onActive(params) {
|
||||
source.onActive(params);
|
||||
pluginSubscribers.forEach(function (x) {
|
||||
var _x$onActive;
|
||||
return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);
|
||||
});
|
||||
},
|
||||
onResolve: function onResolve(params) {
|
||||
source.onResolve(params);
|
||||
pluginSubscribers.forEach(function (x) {
|
||||
var _x$onResolve;
|
||||
return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
navigator: _objectSpread({
|
||||
navigate: function navigate(_ref3) {
|
||||
var itemUrl = _ref3.itemUrl;
|
||||
environment.location.assign(itemUrl);
|
||||
},
|
||||
navigateNewTab: function navigateNewTab(_ref4) {
|
||||
var itemUrl = _ref4.itemUrl;
|
||||
var windowReference = environment.open(itemUrl, '_blank', 'noopener');
|
||||
windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();
|
||||
},
|
||||
navigateNewWindow: function navigateNewWindow(_ref5) {
|
||||
var itemUrl = _ref5.itemUrl;
|
||||
environment.open(itemUrl, '_blank', 'noopener');
|
||||
}
|
||||
}, props.navigator)
|
||||
});
|
||||
}
|
||||
16
node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.d.ts
generated
vendored
16
node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.d.ts
generated
vendored
@@ -1,16 +0,0 @@
|
||||
import { AutocompleteScopeApi, AutocompleteStore, BaseItem, GetEnvironmentProps, GetFormProps, GetInputProps, GetItemProps, GetLabelProps, GetListProps, GetPanelProps, GetRootProps, InternalAutocompleteOptions } from './types';
|
||||
interface GetPropGettersOptions<TItem extends BaseItem> extends AutocompleteScopeApi<TItem> {
|
||||
store: AutocompleteStore<TItem>;
|
||||
props: InternalAutocompleteOptions<TItem>;
|
||||
}
|
||||
export declare function getPropGetters<TItem extends BaseItem, TEvent, TMouseEvent, TKeyboardEvent>({ props, refresh, store, ...setters }: GetPropGettersOptions<TItem>): {
|
||||
getEnvironmentProps: GetEnvironmentProps;
|
||||
getRootProps: GetRootProps;
|
||||
getFormProps: GetFormProps<TEvent>;
|
||||
getLabelProps: GetLabelProps;
|
||||
getInputProps: GetInputProps<TEvent, TMouseEvent, TKeyboardEvent>;
|
||||
getPanelProps: GetPanelProps<TMouseEvent>;
|
||||
getListProps: GetListProps;
|
||||
getItemProps: GetItemProps<any, TMouseEvent>;
|
||||
};
|
||||
export {};
|
||||
320
node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js
generated
vendored
320
node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js
generated
vendored
@@ -1,320 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
var _excluded = ["props", "refresh", "store"],
|
||||
_excluded2 = ["inputElement", "formElement", "panelElement"],
|
||||
_excluded3 = ["inputElement"],
|
||||
_excluded4 = ["inputElement", "maxLength"],
|
||||
_excluded5 = ["sourceIndex"],
|
||||
_excluded6 = ["sourceIndex"],
|
||||
_excluded7 = ["item", "source", "sourceIndex"];
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
||||
import { noop } from '@algolia/autocomplete-shared';
|
||||
import { onInput } from './onInput';
|
||||
import { onKeyDown as _onKeyDown } from './onKeyDown';
|
||||
import { getActiveItem, isOrContainsNode, isSamsung } from './utils';
|
||||
export function getPropGetters(_ref) {
|
||||
var props = _ref.props,
|
||||
refresh = _ref.refresh,
|
||||
store = _ref.store,
|
||||
setters = _objectWithoutProperties(_ref, _excluded);
|
||||
var getEnvironmentProps = function getEnvironmentProps(providedProps) {
|
||||
var inputElement = providedProps.inputElement,
|
||||
formElement = providedProps.formElement,
|
||||
panelElement = providedProps.panelElement,
|
||||
rest = _objectWithoutProperties(providedProps, _excluded2);
|
||||
function onMouseDownOrTouchStart(event) {
|
||||
// The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`
|
||||
// handler when it's not an interaction with Autocomplete.
|
||||
// We detect it with the following heuristics:
|
||||
// - the panel is closed AND there are no pending requests
|
||||
// (no interaction with the autocomplete, no future state updates)
|
||||
// - OR the touched target is the input element (should open the panel)
|
||||
var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();
|
||||
if (!isAutocompleteInteraction || event.target === inputElement) {
|
||||
return;
|
||||
}
|
||||
|
||||
// @TODO: support cases where there are multiple Autocomplete instances.
|
||||
// Right now, a second instance makes this computation return false.
|
||||
var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {
|
||||
return isOrContainsNode(contextNode, event.target);
|
||||
});
|
||||
if (isTargetWithinAutocomplete === false) {
|
||||
store.dispatch('blur', null);
|
||||
|
||||
// If requests are still pending when the user closes the panel, they
|
||||
// could reopen the panel once they resolve.
|
||||
// We want to prevent any subsequent query from reopening the panel
|
||||
// because it would result in an unsolicited UI behavior.
|
||||
if (!props.debug) {
|
||||
store.pendingRequests.cancelAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _objectSpread({
|
||||
// We do not rely on the native `blur` event of the input to close the
|
||||
// panel, but rather on a custom `touchstart`/`mousedown` event outside
|
||||
// of the autocomplete elements.
|
||||
// This ensures we don't mistakenly interpret interactions within the
|
||||
// autocomplete (but outside of the input) as a signal to close the panel.
|
||||
// For example, clicking reset button causes an input blur, but if
|
||||
// `openOnFocus=true`, it shouldn't close the panel.
|
||||
// On touch devices, scrolling results (`touchmove`) causes an input blur
|
||||
// but shouldn't close the panel.
|
||||
onTouchStart: onMouseDownOrTouchStart,
|
||||
onMouseDown: onMouseDownOrTouchStart,
|
||||
// When scrolling on touch devices (mobiles, tablets, etc.), we want to
|
||||
// mimic the native platform behavior where the input is blurred to
|
||||
// hide the virtual keyboard. This gives more vertical space to
|
||||
// discover all the suggestions showing up in the panel.
|
||||
onTouchMove: function onTouchMove(event) {
|
||||
if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {
|
||||
return;
|
||||
}
|
||||
inputElement.blur();
|
||||
}
|
||||
}, rest);
|
||||
};
|
||||
var getRootProps = function getRootProps(rest) {
|
||||
return _objectSpread({
|
||||
role: 'combobox',
|
||||
'aria-expanded': store.getState().isOpen,
|
||||
'aria-haspopup': 'listbox',
|
||||
'aria-owns': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
|
||||
'aria-labelledby': "".concat(props.id, "-label")
|
||||
}, rest);
|
||||
};
|
||||
var getFormProps = function getFormProps(providedProps) {
|
||||
var inputElement = providedProps.inputElement,
|
||||
rest = _objectWithoutProperties(providedProps, _excluded3);
|
||||
return _objectSpread({
|
||||
action: '',
|
||||
noValidate: true,
|
||||
role: 'search',
|
||||
onSubmit: function onSubmit(event) {
|
||||
var _providedProps$inputE;
|
||||
event.preventDefault();
|
||||
props.onSubmit(_objectSpread({
|
||||
event: event,
|
||||
refresh: refresh,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
store.dispatch('submit', null);
|
||||
(_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();
|
||||
},
|
||||
onReset: function onReset(event) {
|
||||
var _providedProps$inputE2;
|
||||
event.preventDefault();
|
||||
props.onReset(_objectSpread({
|
||||
event: event,
|
||||
refresh: refresh,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
store.dispatch('reset', null);
|
||||
(_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();
|
||||
}
|
||||
}, rest);
|
||||
};
|
||||
var getInputProps = function getInputProps(providedProps) {
|
||||
var _props$environment$na;
|
||||
function onFocus(event) {
|
||||
// We want to trigger a query when `openOnFocus` is true
|
||||
// because the panel should open with the current query.
|
||||
if (props.openOnFocus || Boolean(store.getState().query)) {
|
||||
onInput(_objectSpread({
|
||||
event: event,
|
||||
props: props,
|
||||
query: store.getState().completion || store.getState().query,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters));
|
||||
}
|
||||
store.dispatch('focus', null);
|
||||
}
|
||||
var _ref2 = providedProps || {},
|
||||
inputElement = _ref2.inputElement,
|
||||
_ref2$maxLength = _ref2.maxLength,
|
||||
maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
|
||||
rest = _objectWithoutProperties(_ref2, _excluded4);
|
||||
var activeItem = getActiveItem(store.getState());
|
||||
var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';
|
||||
var shouldFallbackKeyHint = isSamsung(userAgent);
|
||||
var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';
|
||||
return _objectSpread({
|
||||
'aria-autocomplete': 'both',
|
||||
'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
|
||||
'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
|
||||
'aria-labelledby': "".concat(props.id, "-label"),
|
||||
value: store.getState().completion || store.getState().query,
|
||||
id: "".concat(props.id, "-input"),
|
||||
autoComplete: 'off',
|
||||
autoCorrect: 'off',
|
||||
autoCapitalize: 'off',
|
||||
enterKeyHint: enterKeyHint,
|
||||
spellCheck: 'false',
|
||||
autoFocus: props.autoFocus,
|
||||
placeholder: props.placeholder,
|
||||
maxLength: maxLength,
|
||||
type: 'search',
|
||||
onChange: function onChange(event) {
|
||||
onInput(_objectSpread({
|
||||
event: event,
|
||||
props: props,
|
||||
query: event.currentTarget.value.slice(0, maxLength),
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters));
|
||||
},
|
||||
onKeyDown: function onKeyDown(event) {
|
||||
_onKeyDown(_objectSpread({
|
||||
event: event,
|
||||
props: props,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters));
|
||||
},
|
||||
onFocus: onFocus,
|
||||
// We don't rely on the `blur` event.
|
||||
// See explanation in `onTouchStart`/`onMouseDown`.
|
||||
// @MAJOR See if we need to keep this handler.
|
||||
onBlur: noop,
|
||||
onClick: function onClick(event) {
|
||||
// When the panel is closed and you click on the input while
|
||||
// the input is focused, the `onFocus` event is not triggered
|
||||
// (default browser behavior).
|
||||
// In an autocomplete context, it makes sense to open the panel in this
|
||||
// case.
|
||||
// We mimic this event by catching the `onClick` event which
|
||||
// triggers the `onFocus` for the panel to open.
|
||||
if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {
|
||||
onFocus(event);
|
||||
}
|
||||
}
|
||||
}, rest);
|
||||
};
|
||||
var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {
|
||||
return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId;
|
||||
};
|
||||
var getLabelProps = function getLabelProps(providedProps) {
|
||||
var _ref3 = providedProps || {},
|
||||
sourceIndex = _ref3.sourceIndex,
|
||||
rest = _objectWithoutProperties(_ref3, _excluded5);
|
||||
return _objectSpread({
|
||||
htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"),
|
||||
id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label")
|
||||
}, rest);
|
||||
};
|
||||
var getListProps = function getListProps(providedProps) {
|
||||
var _ref4 = providedProps || {},
|
||||
sourceIndex = _ref4.sourceIndex,
|
||||
rest = _objectWithoutProperties(_ref4, _excluded6);
|
||||
return _objectSpread({
|
||||
role: 'listbox',
|
||||
'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"),
|
||||
id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list")
|
||||
}, rest);
|
||||
};
|
||||
var getPanelProps = function getPanelProps(rest) {
|
||||
return _objectSpread({
|
||||
onMouseDown: function onMouseDown(event) {
|
||||
// Prevents the `activeElement` from being changed to the panel so
|
||||
// that the blur event is not triggered, otherwise it closes the
|
||||
// panel.
|
||||
event.preventDefault();
|
||||
},
|
||||
onMouseLeave: function onMouseLeave() {
|
||||
store.dispatch('mouseleave', null);
|
||||
}
|
||||
}, rest);
|
||||
};
|
||||
var getItemProps = function getItemProps(providedProps) {
|
||||
var item = providedProps.item,
|
||||
source = providedProps.source,
|
||||
sourceIndex = providedProps.sourceIndex,
|
||||
rest = _objectWithoutProperties(providedProps, _excluded7);
|
||||
return _objectSpread({
|
||||
id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id),
|
||||
role: 'option',
|
||||
'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
|
||||
onMouseMove: function onMouseMove(event) {
|
||||
if (item.__autocomplete_id === store.getState().activeItemId) {
|
||||
return;
|
||||
}
|
||||
store.dispatch('mousemove', item.__autocomplete_id);
|
||||
var activeItem = getActiveItem(store.getState());
|
||||
if (store.getState().activeItemId !== null && activeItem) {
|
||||
var _item = activeItem.item,
|
||||
itemInputValue = activeItem.itemInputValue,
|
||||
itemUrl = activeItem.itemUrl,
|
||||
_source = activeItem.source;
|
||||
_source.onActive(_objectSpread({
|
||||
event: event,
|
||||
item: _item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: _source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
}
|
||||
},
|
||||
onMouseDown: function onMouseDown(event) {
|
||||
// Prevents the `activeElement` from being changed to the item so it
|
||||
// can remain with the current `activeElement`.
|
||||
event.preventDefault();
|
||||
},
|
||||
onClick: function onClick(event) {
|
||||
var itemInputValue = source.getItemInputValue({
|
||||
item: item,
|
||||
state: store.getState()
|
||||
});
|
||||
var itemUrl = source.getItemUrl({
|
||||
item: item,
|
||||
state: store.getState()
|
||||
});
|
||||
|
||||
// If `getItemUrl` is provided, it means that the suggestion
|
||||
// is a link, not plain text that aims at updating the query.
|
||||
// We can therefore skip the state change because it will update
|
||||
// the `activeItemId`, resulting in a UI flash, especially
|
||||
// noticeable on mobile.
|
||||
var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({
|
||||
event: event,
|
||||
nextState: {
|
||||
isOpen: false
|
||||
},
|
||||
props: props,
|
||||
query: itemInputValue,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters));
|
||||
runPreCommand.then(function () {
|
||||
source.onSelect(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
});
|
||||
}
|
||||
}, rest);
|
||||
};
|
||||
return {
|
||||
getEnvironmentProps: getEnvironmentProps,
|
||||
getRootProps: getRootProps,
|
||||
getFormProps: getFormProps,
|
||||
getLabelProps: getLabelProps,
|
||||
getInputProps: getInputProps,
|
||||
getPanelProps: getPanelProps,
|
||||
getListProps: getListProps,
|
||||
getItemProps: getItemProps
|
||||
};
|
||||
}
|
||||
3
node_modules/@algolia/autocomplete-core/dist/esm/index.d.ts
generated
vendored
3
node_modules/@algolia/autocomplete-core/dist/esm/index.d.ts
generated
vendored
@@ -1,3 +0,0 @@
|
||||
export * from './createAutocomplete';
|
||||
export * from './getDefaultProps';
|
||||
export * from './types';
|
||||
3
node_modules/@algolia/autocomplete-core/dist/esm/index.js
generated
vendored
3
node_modules/@algolia/autocomplete-core/dist/esm/index.js
generated
vendored
@@ -1,3 +0,0 @@
|
||||
export * from './createAutocomplete';
|
||||
export * from './getDefaultProps';
|
||||
export * from './types';
|
||||
33
node_modules/@algolia/autocomplete-core/dist/esm/metadata.d.ts
generated
vendored
33
node_modules/@algolia/autocomplete-core/dist/esm/metadata.d.ts
generated
vendored
@@ -1,33 +0,0 @@
|
||||
import { UserAgent } from '@algolia/autocomplete-shared';
|
||||
import { AutocompleteEnvironment, AutocompleteOptionsWithMetadata, AutocompletePlugin, BaseItem } from '.';
|
||||
declare type AutocompleteMetadata = {
|
||||
plugins: Array<{
|
||||
name: string | undefined;
|
||||
options: string[];
|
||||
}>;
|
||||
options: Record<string, string[]>;
|
||||
ua: UserAgent[];
|
||||
};
|
||||
declare type GetMetadataParams<TItem extends BaseItem, TData = unknown> = {
|
||||
plugins: Array<AutocompletePlugin<TItem, TData>>;
|
||||
options: AutocompleteOptionsWithMetadata<TItem>;
|
||||
};
|
||||
export declare function getMetadata<TItem extends BaseItem, TData = unknown>({ plugins, options, }: GetMetadataParams<TItem, TData>): {
|
||||
plugins: {
|
||||
name: string | undefined;
|
||||
options: string[];
|
||||
}[];
|
||||
options: {
|
||||
'autocomplete-core': string[];
|
||||
};
|
||||
ua: {
|
||||
segment: string;
|
||||
version: string;
|
||||
}[];
|
||||
};
|
||||
declare type InlineMetadataParams = {
|
||||
metadata: AutocompleteMetadata;
|
||||
environment: AutocompleteEnvironment;
|
||||
};
|
||||
export declare function injectMetadata({ metadata, environment, }: InlineMetadataParams): void;
|
||||
export {};
|
||||
41
node_modules/@algolia/autocomplete-core/dist/esm/metadata.js
generated
vendored
41
node_modules/@algolia/autocomplete-core/dist/esm/metadata.js
generated
vendored
@@ -1,41 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { userAgents } from '@algolia/autocomplete-shared';
|
||||
export function getMetadata(_ref) {
|
||||
var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;
|
||||
var plugins = _ref.plugins,
|
||||
options = _ref.options;
|
||||
var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;
|
||||
var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};
|
||||
return {
|
||||
plugins: plugins.map(function (plugin) {
|
||||
return {
|
||||
name: plugin.name,
|
||||
options: Object.keys(plugin.__autocomplete_pluginOptions || [])
|
||||
};
|
||||
}),
|
||||
options: _objectSpread({
|
||||
'autocomplete-core': Object.keys(options)
|
||||
}, extraOptions),
|
||||
ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])
|
||||
};
|
||||
}
|
||||
export function injectMetadata(_ref3) {
|
||||
var _environment$navigato, _environment$navigato2;
|
||||
var metadata = _ref3.metadata,
|
||||
environment = _ref3.environment;
|
||||
var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');
|
||||
if (isMetadataEnabled) {
|
||||
var metadataContainer = environment.document.createElement('meta');
|
||||
var headRef = environment.document.querySelector('head');
|
||||
metadataContainer.name = 'algolia:metadata';
|
||||
setTimeout(function () {
|
||||
metadataContainer.content = JSON.stringify(metadata);
|
||||
headRef.appendChild(metadataContainer);
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
18
node_modules/@algolia/autocomplete-core/dist/esm/onInput.d.ts
generated
vendored
18
node_modules/@algolia/autocomplete-core/dist/esm/onInput.d.ts
generated
vendored
@@ -1,18 +0,0 @@
|
||||
import { AutocompleteScopeApi, AutocompleteState, AutocompleteStore, BaseItem, InternalAutocompleteOptions } from './types';
|
||||
import { CancelablePromise } from './utils';
|
||||
interface OnInputParams<TItem extends BaseItem> extends AutocompleteScopeApi<TItem> {
|
||||
event: any;
|
||||
/**
|
||||
* The next partial state to apply after the function is called.
|
||||
*
|
||||
* This is useful when we call `onInput` in a different scenario than an
|
||||
* actual input. For example, we use `onInput` when we click on an item,
|
||||
* but we want to close the panel in that case.
|
||||
*/
|
||||
nextState?: Partial<AutocompleteState<TItem>>;
|
||||
props: InternalAutocompleteOptions<TItem>;
|
||||
query: string;
|
||||
store: AutocompleteStore<TItem>;
|
||||
}
|
||||
export declare function onInput<TItem extends BaseItem>({ event, nextState, props, query, refresh, store, ...setters }: OnInputParams<TItem>): CancelablePromise<void>;
|
||||
export {};
|
||||
125
node_modules/@algolia/autocomplete-core/dist/esm/onInput.js
generated
vendored
125
node_modules/@algolia/autocomplete-core/dist/esm/onInput.js
generated
vendored
@@ -1,125 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
var _excluded = ["event", "nextState", "props", "query", "refresh", "store"];
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
||||
import { reshape } from './reshape';
|
||||
import { preResolve, resolve, postResolve } from './resolve';
|
||||
import { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';
|
||||
var lastStalledId = null;
|
||||
var runConcurrentSafePromise = createConcurrentSafePromise();
|
||||
export function onInput(_ref) {
|
||||
var event = _ref.event,
|
||||
_ref$nextState = _ref.nextState,
|
||||
nextState = _ref$nextState === void 0 ? {} : _ref$nextState,
|
||||
props = _ref.props,
|
||||
query = _ref.query,
|
||||
refresh = _ref.refresh,
|
||||
store = _ref.store,
|
||||
setters = _objectWithoutProperties(_ref, _excluded);
|
||||
if (lastStalledId) {
|
||||
props.environment.clearTimeout(lastStalledId);
|
||||
}
|
||||
var setCollections = setters.setCollections,
|
||||
setIsOpen = setters.setIsOpen,
|
||||
setQuery = setters.setQuery,
|
||||
setActiveItemId = setters.setActiveItemId,
|
||||
setStatus = setters.setStatus;
|
||||
setQuery(query);
|
||||
setActiveItemId(props.defaultActiveItemId);
|
||||
if (!query && props.openOnFocus === false) {
|
||||
var _nextState$isOpen;
|
||||
var collections = store.getState().collections.map(function (collection) {
|
||||
return _objectSpread(_objectSpread({}, collection), {}, {
|
||||
items: []
|
||||
});
|
||||
});
|
||||
setStatus('idle');
|
||||
setCollections(collections);
|
||||
setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({
|
||||
state: store.getState()
|
||||
}));
|
||||
|
||||
// We make sure to update the latest resolved value of the tracked
|
||||
// promises to keep late resolving promises from "cancelling" the state
|
||||
// updates performed in this code path.
|
||||
// We chain with a void promise to respect `onInput`'s expected return type.
|
||||
var _request = cancelable(runConcurrentSafePromise(collections).then(function () {
|
||||
return Promise.resolve();
|
||||
}));
|
||||
return store.pendingRequests.add(_request);
|
||||
}
|
||||
setStatus('loading');
|
||||
lastStalledId = props.environment.setTimeout(function () {
|
||||
setStatus('stalled');
|
||||
}, props.stallThreshold);
|
||||
|
||||
// We track the entire promise chain triggered by `onInput` before mutating
|
||||
// the Autocomplete state to make sure that any state manipulation is based on
|
||||
// fresh data regardless of when promises individually resolve.
|
||||
// We don't track nested promises and only rely on the full chain resolution,
|
||||
// meaning we should only ever manipulate the state once this concurrent-safe
|
||||
// promise is resolved.
|
||||
var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({
|
||||
query: query,
|
||||
refresh: refresh,
|
||||
state: store.getState()
|
||||
}, setters)).then(function (sources) {
|
||||
return Promise.all(sources.map(function (source) {
|
||||
return Promise.resolve(source.getItems(_objectSpread({
|
||||
query: query,
|
||||
refresh: refresh,
|
||||
state: store.getState()
|
||||
}, setters))).then(function (itemsOrDescription) {
|
||||
return preResolve(itemsOrDescription, source.sourceId, store.getState());
|
||||
});
|
||||
})).then(resolve).then(function (responses) {
|
||||
return postResolve(responses, sources, store);
|
||||
}).then(function (collections) {
|
||||
return reshape({
|
||||
collections: collections,
|
||||
props: props,
|
||||
state: store.getState()
|
||||
});
|
||||
});
|
||||
}))).then(function (collections) {
|
||||
var _nextState$isOpen2;
|
||||
// Parameters passed to `onInput` could be stale when the following code
|
||||
// executes, because `onInput` calls may not resolve in order.
|
||||
// If it becomes a problem we'll need to save the last passed parameters.
|
||||
// See: https://codesandbox.io/s/agitated-cookies-y290z
|
||||
|
||||
setStatus('idle');
|
||||
setCollections(collections);
|
||||
var isPanelOpen = props.shouldPanelOpen({
|
||||
state: store.getState()
|
||||
});
|
||||
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);
|
||||
var highlightedItem = getActiveItem(store.getState());
|
||||
if (store.getState().activeItemId !== null && highlightedItem) {
|
||||
var item = highlightedItem.item,
|
||||
itemInputValue = highlightedItem.itemInputValue,
|
||||
itemUrl = highlightedItem.itemUrl,
|
||||
source = highlightedItem.source;
|
||||
source.onActive(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
}
|
||||
}).finally(function () {
|
||||
setStatus('idle');
|
||||
if (lastStalledId) {
|
||||
props.environment.clearTimeout(lastStalledId);
|
||||
}
|
||||
});
|
||||
return store.pendingRequests.add(request);
|
||||
}
|
||||
8
node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.d.ts
generated
vendored
8
node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.d.ts
generated
vendored
@@ -1,8 +0,0 @@
|
||||
import { AutocompleteScopeApi, AutocompleteStore, BaseItem, InternalAutocompleteOptions } from './types';
|
||||
interface OnKeyDownOptions<TItem extends BaseItem> extends AutocompleteScopeApi<TItem> {
|
||||
event: KeyboardEvent;
|
||||
props: InternalAutocompleteOptions<TItem>;
|
||||
store: AutocompleteStore<TItem>;
|
||||
}
|
||||
export declare function onKeyDown<TItem extends BaseItem>({ event, props, refresh, store, ...setters }: OnKeyDownOptions<TItem>): void;
|
||||
export {};
|
||||
195
node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js
generated
vendored
195
node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js
generated
vendored
@@ -1,195 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
var _excluded = ["event", "props", "refresh", "store"];
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
||||
import { onInput } from './onInput';
|
||||
import { getActiveItem } from './utils';
|
||||
export function onKeyDown(_ref) {
|
||||
var event = _ref.event,
|
||||
props = _ref.props,
|
||||
refresh = _ref.refresh,
|
||||
store = _ref.store,
|
||||
setters = _objectWithoutProperties(_ref, _excluded);
|
||||
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
||||
// eslint-disable-next-line no-inner-declarations
|
||||
var triggerScrollIntoView = function triggerScrollIntoView() {
|
||||
var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId));
|
||||
if (nodeItem) {
|
||||
if (nodeItem.scrollIntoViewIfNeeded) {
|
||||
nodeItem.scrollIntoViewIfNeeded(false);
|
||||
} else {
|
||||
nodeItem.scrollIntoView(false);
|
||||
}
|
||||
}
|
||||
}; // eslint-disable-next-line no-inner-declarations
|
||||
var triggerOnActive = function triggerOnActive() {
|
||||
var highlightedItem = getActiveItem(store.getState());
|
||||
if (store.getState().activeItemId !== null && highlightedItem) {
|
||||
var item = highlightedItem.item,
|
||||
itemInputValue = highlightedItem.itemInputValue,
|
||||
itemUrl = highlightedItem.itemUrl,
|
||||
source = highlightedItem.source;
|
||||
source.onActive(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
}
|
||||
}; // Default browser behavior changes the caret placement on ArrowUp and
|
||||
// ArrowDown.
|
||||
event.preventDefault();
|
||||
|
||||
// When re-opening the panel, we need to split the logic to keep the actions
|
||||
// synchronized as `onInput` returns a promise.
|
||||
if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {
|
||||
onInput(_objectSpread({
|
||||
event: event,
|
||||
props: props,
|
||||
query: store.getState().query,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters)).then(function () {
|
||||
store.dispatch(event.key, {
|
||||
nextActiveItemId: props.defaultActiveItemId
|
||||
});
|
||||
triggerOnActive();
|
||||
// Since we rely on the DOM, we need to wait for all the micro tasks to
|
||||
// finish (which include re-opening the panel) to make sure all the
|
||||
// elements are available.
|
||||
setTimeout(triggerScrollIntoView, 0);
|
||||
});
|
||||
} else {
|
||||
store.dispatch(event.key, {});
|
||||
triggerOnActive();
|
||||
triggerScrollIntoView();
|
||||
}
|
||||
} else if (event.key === 'Escape') {
|
||||
// This prevents the default browser behavior on `input[type="search"]`
|
||||
// from removing the query right away because we first want to close the
|
||||
// panel.
|
||||
event.preventDefault();
|
||||
store.dispatch(event.key, null);
|
||||
|
||||
// Hitting the `Escape` key signals the end of a user interaction with the
|
||||
// autocomplete. At this point, we should ignore any requests that are still
|
||||
// pending and could reopen the panel once they resolve, because that would
|
||||
// result in an unsolicited UI behavior.
|
||||
store.pendingRequests.cancelAll();
|
||||
} else if (event.key === 'Tab') {
|
||||
store.dispatch('blur', null);
|
||||
|
||||
// Hitting the `Escape` key signals the end of a user interaction with the
|
||||
// autocomplete. At this point, we should ignore any requests that are still
|
||||
// pending and could reopen the panel once they resolve, because that would
|
||||
// result in an unsolicited UI behavior.
|
||||
store.pendingRequests.cancelAll();
|
||||
} else if (event.key === 'Enter') {
|
||||
// No active item, so we let the browser handle the native `onSubmit` form
|
||||
// event.
|
||||
if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {
|
||||
return collection.items.length === 0;
|
||||
})) {
|
||||
// If requests are still pending when the panel closes, they could reopen
|
||||
// the panel once they resolve.
|
||||
// We want to prevent any subsequent query from reopening the panel
|
||||
// because it would result in an unsolicited UI behavior.
|
||||
if (!props.debug) {
|
||||
store.pendingRequests.cancelAll();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// This prevents the `onSubmit` event to be sent because an item is
|
||||
// highlighted.
|
||||
event.preventDefault();
|
||||
var _ref2 = getActiveItem(store.getState()),
|
||||
item = _ref2.item,
|
||||
itemInputValue = _ref2.itemInputValue,
|
||||
itemUrl = _ref2.itemUrl,
|
||||
source = _ref2.source;
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (itemUrl !== undefined) {
|
||||
source.onSelect(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
props.navigator.navigateNewTab({
|
||||
itemUrl: itemUrl,
|
||||
item: item,
|
||||
state: store.getState()
|
||||
});
|
||||
}
|
||||
} else if (event.shiftKey) {
|
||||
if (itemUrl !== undefined) {
|
||||
source.onSelect(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
props.navigator.navigateNewWindow({
|
||||
itemUrl: itemUrl,
|
||||
item: item,
|
||||
state: store.getState()
|
||||
});
|
||||
}
|
||||
} else if (event.altKey) {
|
||||
// Keep native browser behavior
|
||||
} else {
|
||||
if (itemUrl !== undefined) {
|
||||
source.onSelect(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
props.navigator.navigate({
|
||||
itemUrl: itemUrl,
|
||||
item: item,
|
||||
state: store.getState()
|
||||
});
|
||||
return;
|
||||
}
|
||||
onInput(_objectSpread({
|
||||
event: event,
|
||||
nextState: {
|
||||
isOpen: false
|
||||
},
|
||||
props: props,
|
||||
query: itemInputValue,
|
||||
refresh: refresh,
|
||||
store: store
|
||||
}, setters)).then(function () {
|
||||
source.onSelect(_objectSpread({
|
||||
event: event,
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
refresh: refresh,
|
||||
source: source,
|
||||
state: store.getState()
|
||||
}, setters));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
11
node_modules/@algolia/autocomplete-core/dist/esm/reshape.d.ts
generated
vendored
11
node_modules/@algolia/autocomplete-core/dist/esm/reshape.d.ts
generated
vendored
@@ -1,11 +0,0 @@
|
||||
import { AutocompleteCollection, AutocompleteState, BaseItem, InternalAutocompleteOptions } from './types';
|
||||
declare type ReshapeParams<TItem extends BaseItem> = {
|
||||
collections: Array<AutocompleteCollection<any>>;
|
||||
props: InternalAutocompleteOptions<TItem>;
|
||||
state: AutocompleteState<TItem>;
|
||||
};
|
||||
export declare function reshape<TItem extends BaseItem>({ collections, props, state, }: ReshapeParams<TItem>): {
|
||||
source: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteReshape").AutocompleteReshapeSource<TItem>;
|
||||
items: TItem[];
|
||||
}[];
|
||||
export {};
|
||||
45
node_modules/@algolia/autocomplete-core/dist/esm/reshape.js
generated
vendored
45
node_modules/@algolia/autocomplete-core/dist/esm/reshape.js
generated
vendored
@@ -1,45 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { flatten } from '@algolia/autocomplete-shared';
|
||||
export function reshape(_ref) {
|
||||
var collections = _ref.collections,
|
||||
props = _ref.props,
|
||||
state = _ref.state;
|
||||
// Sources are grouped by `sourceId` to conveniently pick them via destructuring.
|
||||
// Example: `const { recentSearchesPlugin } = sourcesBySourceId`
|
||||
var originalSourcesBySourceId = collections.reduce(function (acc, collection) {
|
||||
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {
|
||||
getItems: function getItems() {
|
||||
// We provide the resolved items from the collection to the `reshape` prop.
|
||||
return flatten(collection.items);
|
||||
}
|
||||
})));
|
||||
}, {});
|
||||
var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {
|
||||
if (plugin.reshape) {
|
||||
return plugin.reshape(acc);
|
||||
}
|
||||
return acc;
|
||||
}, {
|
||||
sourcesBySourceId: originalSourcesBySourceId,
|
||||
state: state
|
||||
}),
|
||||
sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;
|
||||
var reshapeSources = props.reshape({
|
||||
sourcesBySourceId: sourcesBySourceId,
|
||||
sources: Object.values(sourcesBySourceId),
|
||||
state: state
|
||||
});
|
||||
|
||||
// We reconstruct the collections with the items modified by the `reshape` prop.
|
||||
return flatten(reshapeSources).filter(Boolean).map(function (source) {
|
||||
return {
|
||||
source: source,
|
||||
items: source.getItems()
|
||||
};
|
||||
});
|
||||
}
|
||||
42
node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts
generated
vendored
42
node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts
generated
vendored
@@ -1,42 +0,0 @@
|
||||
import type { ExecuteResponse, RequesterDescription, TransformResponse } from '@algolia/autocomplete-preset-algolia';
|
||||
import { MultipleQueriesQuery, SearchForFacetValuesResponse, SearchResponse } from '@algolia/client-search';
|
||||
import { AutocompleteState, AutocompleteStore, BaseItem, InternalAutocompleteSource } from './types';
|
||||
declare type RequestDescriptionPreResolved<TItem extends BaseItem> = Pick<RequesterDescription<TItem>, 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'> & {
|
||||
requests: Array<{
|
||||
query: MultipleQueriesQuery;
|
||||
sourceId: string;
|
||||
transformResponse: TransformResponse<TItem>;
|
||||
}>;
|
||||
};
|
||||
declare type RequestDescriptionPreResolvedCustom<TItem extends BaseItem> = {
|
||||
items: TItem[] | TItem[][];
|
||||
sourceId: string;
|
||||
transformResponse?: undefined;
|
||||
};
|
||||
export declare function preResolve<TItem extends BaseItem>(itemsOrDescription: TItem[] | TItem[][] | RequesterDescription<TItem>, sourceId: string, state: AutocompleteState<TItem>): RequestDescriptionPreResolved<TItem> | RequestDescriptionPreResolvedCustom<TItem>;
|
||||
export declare function resolve<TItem extends BaseItem>(items: Array<RequestDescriptionPreResolved<TItem> | RequestDescriptionPreResolvedCustom<TItem>>): Promise<(RequestDescriptionPreResolvedCustom<TItem> | {
|
||||
items: SearchForFacetValuesResponse | SearchResponse<TItem>;
|
||||
sourceId: string;
|
||||
transformResponse: TransformResponse<TItem>;
|
||||
})[]>;
|
||||
export declare function postResolve<TItem extends BaseItem>(responses: Array<RequestDescriptionPreResolvedCustom<TItem> | ExecuteResponse<TItem>[0]>, sources: Array<InternalAutocompleteSource<TItem>>, store: AutocompleteStore<TItem>): {
|
||||
source: InternalAutocompleteSource<TItem>;
|
||||
items: {
|
||||
label: string;
|
||||
count: number;
|
||||
_highlightResult: {
|
||||
label: {
|
||||
value: string;
|
||||
};
|
||||
};
|
||||
}[][] | {
|
||||
label: string;
|
||||
count: number;
|
||||
_highlightResult: {
|
||||
label: {
|
||||
value: string;
|
||||
};
|
||||
};
|
||||
}[] | import("@algolia/client-search").Hit<TItem>[] | (SearchForFacetValuesResponse | SearchResponse<TItem> | TItem[] | TItem[][])[];
|
||||
}[];
|
||||
export {};
|
||||
114
node_modules/@algolia/autocomplete-core/dist/esm/resolve.js
generated
vendored
114
node_modules/@algolia/autocomplete-core/dist/esm/resolve.js
generated
vendored
@@ -1,114 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
||||
import { decycle, flatten, invariant } from '@algolia/autocomplete-shared';
|
||||
import { mapToAlgoliaResponse } from './utils';
|
||||
function isDescription(item) {
|
||||
return Boolean(item.execute);
|
||||
}
|
||||
function isRequesterDescription(description) {
|
||||
return Boolean(description === null || description === void 0 ? void 0 : description.execute);
|
||||
}
|
||||
export function preResolve(itemsOrDescription, sourceId, state) {
|
||||
if (isRequesterDescription(itemsOrDescription)) {
|
||||
var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {
|
||||
var _state$context$key;
|
||||
return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;
|
||||
})))) : {};
|
||||
return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {
|
||||
requests: itemsOrDescription.queries.map(function (query) {
|
||||
return {
|
||||
query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {
|
||||
params: _objectSpread(_objectSpread({}, contextParameters), query.params)
|
||||
}) : query,
|
||||
sourceId: sourceId,
|
||||
transformResponse: itemsOrDescription.transformResponse
|
||||
};
|
||||
})
|
||||
});
|
||||
}
|
||||
return {
|
||||
items: itemsOrDescription,
|
||||
sourceId: sourceId
|
||||
};
|
||||
}
|
||||
export function resolve(items) {
|
||||
var packed = items.reduce(function (acc, current) {
|
||||
if (!isDescription(current)) {
|
||||
acc.push(current);
|
||||
return acc;
|
||||
}
|
||||
var searchClient = current.searchClient,
|
||||
execute = current.execute,
|
||||
requesterId = current.requesterId,
|
||||
requests = current.requests;
|
||||
var container = acc.find(function (item) {
|
||||
return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;
|
||||
});
|
||||
if (container) {
|
||||
var _container$items;
|
||||
(_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));
|
||||
} else {
|
||||
var request = {
|
||||
execute: execute,
|
||||
requesterId: requesterId,
|
||||
items: requests,
|
||||
searchClient: searchClient
|
||||
};
|
||||
acc.push(request);
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
var values = packed.map(function (maybeDescription) {
|
||||
if (!isDescription(maybeDescription)) {
|
||||
return Promise.resolve(maybeDescription);
|
||||
}
|
||||
var _ref = maybeDescription,
|
||||
execute = _ref.execute,
|
||||
items = _ref.items,
|
||||
searchClient = _ref.searchClient;
|
||||
return execute({
|
||||
searchClient: searchClient,
|
||||
requests: items
|
||||
});
|
||||
});
|
||||
return Promise.all(values).then(function (responses) {
|
||||
return flatten(responses);
|
||||
});
|
||||
}
|
||||
export function postResolve(responses, sources, store) {
|
||||
return sources.map(function (source) {
|
||||
var matches = responses.filter(function (response) {
|
||||
return response.sourceId === source.sourceId;
|
||||
});
|
||||
var results = matches.map(function (_ref2) {
|
||||
var items = _ref2.items;
|
||||
return items;
|
||||
});
|
||||
var transform = matches[0].transformResponse;
|
||||
var items = transform ? transform(mapToAlgoliaResponse(results)) : results;
|
||||
source.onResolve({
|
||||
source: source,
|
||||
results: results,
|
||||
items: items,
|
||||
state: store.getState()
|
||||
});
|
||||
invariant(Array.isArray(items), function () {
|
||||
return "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned type ").concat(JSON.stringify(_typeof(items)), ":\n\n").concat(JSON.stringify(decycle(items), null, 2), ".\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems");
|
||||
});
|
||||
invariant(items.every(Boolean), "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned ").concat(JSON.stringify(undefined), ".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"));
|
||||
return {
|
||||
source: source,
|
||||
items: items
|
||||
};
|
||||
});
|
||||
}
|
||||
2
node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.d.ts
generated
vendored
2
node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.d.ts
generated
vendored
@@ -1,2 +0,0 @@
|
||||
import { Reducer } from './types';
|
||||
export declare const stateReducer: Reducer;
|
||||
144
node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js
generated
vendored
144
node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js
generated
vendored
@@ -1,144 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { getItemsCount, invariant } from '@algolia/autocomplete-shared';
|
||||
import { getCompletion } from './getCompletion';
|
||||
import { getNextActiveItemId } from './utils';
|
||||
export var stateReducer = function stateReducer(state, action) {
|
||||
switch (action.type) {
|
||||
case 'setActiveItemId':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: action.payload
|
||||
});
|
||||
}
|
||||
case 'setQuery':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
query: action.payload,
|
||||
completion: null
|
||||
});
|
||||
}
|
||||
case 'setCollections':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
collections: action.payload
|
||||
});
|
||||
}
|
||||
case 'setIsOpen':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
isOpen: action.payload
|
||||
});
|
||||
}
|
||||
case 'setStatus':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
status: action.payload
|
||||
});
|
||||
}
|
||||
case 'setContext':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
context: _objectSpread(_objectSpread({}, state.context), action.payload)
|
||||
});
|
||||
}
|
||||
case 'ArrowDown':
|
||||
{
|
||||
var nextState = _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
|
||||
});
|
||||
return _objectSpread(_objectSpread({}, nextState), {}, {
|
||||
completion: getCompletion({
|
||||
state: nextState
|
||||
})
|
||||
});
|
||||
}
|
||||
case 'ArrowUp':
|
||||
{
|
||||
var _nextState = _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
|
||||
});
|
||||
return _objectSpread(_objectSpread({}, _nextState), {}, {
|
||||
completion: getCompletion({
|
||||
state: _nextState
|
||||
})
|
||||
});
|
||||
}
|
||||
case 'Escape':
|
||||
{
|
||||
if (state.isOpen) {
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: null,
|
||||
isOpen: false,
|
||||
completion: null
|
||||
});
|
||||
}
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: null,
|
||||
query: '',
|
||||
status: 'idle',
|
||||
collections: []
|
||||
});
|
||||
}
|
||||
case 'submit':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: null,
|
||||
isOpen: false,
|
||||
status: 'idle'
|
||||
});
|
||||
}
|
||||
case 'reset':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId:
|
||||
// Since we open the panel on reset when openOnFocus=true
|
||||
// we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)
|
||||
|
||||
// Since we close the panel when openOnFocus=false
|
||||
// we lose track of the highlighted index. (Query-suggestions use-case)
|
||||
action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,
|
||||
status: 'idle',
|
||||
query: ''
|
||||
});
|
||||
}
|
||||
case 'focus':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: action.props.defaultActiveItemId,
|
||||
isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({
|
||||
state: state
|
||||
})
|
||||
});
|
||||
}
|
||||
case 'blur':
|
||||
{
|
||||
if (action.props.debug) {
|
||||
return state;
|
||||
}
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
isOpen: false,
|
||||
activeItemId: null
|
||||
});
|
||||
}
|
||||
case 'mousemove':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: action.payload
|
||||
});
|
||||
}
|
||||
case 'mouseleave':
|
||||
{
|
||||
return _objectSpread(_objectSpread({}, state), {}, {
|
||||
activeItemId: action.props.defaultActiveItemId
|
||||
});
|
||||
}
|
||||
default:
|
||||
invariant(false, "The reducer action ".concat(JSON.stringify(action.type), " is not supported."));
|
||||
return state;
|
||||
}
|
||||
};
|
||||
15
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteStore.d.ts
generated
vendored
15
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteStore.d.ts
generated
vendored
@@ -1,15 +0,0 @@
|
||||
import { CancelablePromiseList } from '../utils';
|
||||
import { BaseItem, InternalAutocompleteOptions, AutocompleteState } from './';
|
||||
export interface AutocompleteStore<TItem extends BaseItem> {
|
||||
getState(): AutocompleteState<TItem>;
|
||||
dispatch(action: ActionType, payload: any): void;
|
||||
pendingRequests: CancelablePromiseList<void>;
|
||||
}
|
||||
export declare type Reducer = <TItem extends BaseItem>(state: AutocompleteState<TItem>, action: Action<TItem, any>) => AutocompleteState<TItem>;
|
||||
declare type Action<TItem extends BaseItem, TPayload> = {
|
||||
type: ActionType;
|
||||
props: InternalAutocompleteOptions<TItem>;
|
||||
payload: TPayload;
|
||||
};
|
||||
export declare type ActionType = 'setActiveItemId' | 'setQuery' | 'setCollections' | 'setIsOpen' | 'setStatus' | 'setContext' | 'ArrowUp' | 'ArrowDown' | 'Escape' | 'Enter' | 'submit' | 'reset' | 'focus' | 'blur' | 'mousemove' | 'mouseleave' | 'click';
|
||||
export {};
|
||||
1
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteStore.js
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteStore.js
generated
vendored
@@ -1 +0,0 @@
|
||||
export {};
|
||||
7
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteSubscribers.d.ts
generated
vendored
7
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteSubscribers.d.ts
generated
vendored
@@ -1,7 +0,0 @@
|
||||
import { BaseItem, OnActiveParams, OnResolveParams, OnSelectParams } from './';
|
||||
export declare type AutocompleteSubscriber<TItem extends BaseItem> = {
|
||||
onSelect(params: OnSelectParams<TItem>): void;
|
||||
onActive(params: OnActiveParams<TItem>): void;
|
||||
onResolve(params: OnResolveParams<TItem>): void;
|
||||
};
|
||||
export declare type AutocompleteSubscribers<TItem extends BaseItem> = Array<Partial<AutocompleteSubscriber<TItem>>>;
|
||||
1
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteSubscribers.js
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteSubscribers.js
generated
vendored
@@ -1 +0,0 @@
|
||||
export {};
|
||||
18
node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts
generated
vendored
18
node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts
generated
vendored
@@ -1,18 +0,0 @@
|
||||
export * from '@algolia/autocomplete-shared/dist/esm/core';
|
||||
export * from './AutocompleteStore';
|
||||
export * from './AutocompleteSubscribers';
|
||||
import { CreateAlgoliaInsightsPluginParams, AutocompleteInsightsApi as _AutocompleteInsightsApi, AlgoliaInsightsHit as _AlgoliaInsightsHit } from '@algolia/autocomplete-plugin-algolia-insights';
|
||||
import { AutocompleteOptions as _AutocompleteOptions, BaseItem } from '@algolia/autocomplete-shared/dist/esm/core';
|
||||
export declare type AutocompleteInsightsApi = _AutocompleteInsightsApi;
|
||||
export declare type AlgoliaInsightsHit = _AlgoliaInsightsHit;
|
||||
export interface AutocompleteOptions<TItem extends BaseItem> extends _AutocompleteOptions<TItem> {
|
||||
/**
|
||||
* Whether to enable the Insights plugin and load the Insights library if it has not been loaded yet.
|
||||
*
|
||||
* See [**autocomplete-plugin-algolia-insights**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/) for more information.
|
||||
*
|
||||
* @default false
|
||||
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-insights
|
||||
*/
|
||||
insights?: CreateAlgoliaInsightsPluginParams | boolean;
|
||||
}
|
||||
4
node_modules/@algolia/autocomplete-core/dist/esm/types/index.js
generated
vendored
4
node_modules/@algolia/autocomplete-core/dist/esm/types/index.js
generated
vendored
@@ -1,4 +0,0 @@
|
||||
export * from '@algolia/autocomplete-shared/dist/esm/core';
|
||||
export * from './AutocompleteStore';
|
||||
export * from './AutocompleteSubscribers';
|
||||
export {};
|
||||
15
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.d.ts
generated
vendored
15
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.d.ts
generated
vendored
@@ -1,15 +0,0 @@
|
||||
declare type PromiseExecutor<TValue> = (resolve: (value: TValue | PromiseLike<TValue>) => void, reject: (reason?: any) => void) => void;
|
||||
export declare type CancelablePromise<TValue> = {
|
||||
then<TResultFulfilled = TValue, TResultRejected = never>(onfulfilled?: ((value: TValue) => TResultFulfilled | PromiseLike<TResultFulfilled> | CancelablePromise<TResultFulfilled>) | undefined | null, onrejected?: ((reason: any) => TResultRejected | PromiseLike<TResultRejected> | CancelablePromise<TResultRejected>) | undefined | null): CancelablePromise<TResultFulfilled | TResultRejected>;
|
||||
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult> | CancelablePromise<TResult>) | undefined | null): CancelablePromise<TValue | TResult>;
|
||||
finally(onfinally?: (() => void) | undefined | null): CancelablePromise<TValue>;
|
||||
cancel(): void;
|
||||
isCanceled(): boolean;
|
||||
};
|
||||
export declare function createCancelablePromise<TValue>(executor: PromiseExecutor<TValue>): CancelablePromise<TValue>;
|
||||
export declare namespace createCancelablePromise {
|
||||
var resolve: <TValue>(value?: TValue | PromiseLike<TValue> | CancelablePromise<TValue> | undefined) => CancelablePromise<TValue | CancelablePromise<TValue> | undefined>;
|
||||
var reject: (reason?: any) => CancelablePromise<never>;
|
||||
}
|
||||
export declare function cancelable<TValue>(promise: Promise<TValue>): CancelablePromise<TValue>;
|
||||
export {};
|
||||
62
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js
generated
vendored
62
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js
generated
vendored
@@ -1,62 +0,0 @@
|
||||
function createInternalCancelablePromise(promise, initialState) {
|
||||
var state = initialState;
|
||||
return {
|
||||
then: function then(onfulfilled, onrejected) {
|
||||
return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);
|
||||
},
|
||||
catch: function _catch(onrejected) {
|
||||
return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);
|
||||
},
|
||||
finally: function _finally(onfinally) {
|
||||
if (onfinally) {
|
||||
state.onCancelList.push(onfinally);
|
||||
}
|
||||
return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {
|
||||
state.onCancelList = [];
|
||||
return onfinally();
|
||||
}, state, promise)), state);
|
||||
},
|
||||
cancel: function cancel() {
|
||||
state.isCanceled = true;
|
||||
var callbacks = state.onCancelList;
|
||||
state.onCancelList = [];
|
||||
callbacks.forEach(function (callback) {
|
||||
callback();
|
||||
});
|
||||
},
|
||||
isCanceled: function isCanceled() {
|
||||
return state.isCanceled === true;
|
||||
}
|
||||
};
|
||||
}
|
||||
export function createCancelablePromise(executor) {
|
||||
return createInternalCancelablePromise(new Promise(function (resolve, reject) {
|
||||
return executor(resolve, reject);
|
||||
}), {
|
||||
isCanceled: false,
|
||||
onCancelList: []
|
||||
});
|
||||
}
|
||||
createCancelablePromise.resolve = function (value) {
|
||||
return cancelable(Promise.resolve(value));
|
||||
};
|
||||
createCancelablePromise.reject = function (reason) {
|
||||
return cancelable(Promise.reject(reason));
|
||||
};
|
||||
export function cancelable(promise) {
|
||||
return createInternalCancelablePromise(promise, {
|
||||
isCanceled: false,
|
||||
onCancelList: []
|
||||
});
|
||||
}
|
||||
function createCallback(onResult, state, fallback) {
|
||||
if (!onResult) {
|
||||
return fallback;
|
||||
}
|
||||
return function callback(arg) {
|
||||
if (state.isCanceled) {
|
||||
return arg;
|
||||
}
|
||||
return onResult(arg);
|
||||
};
|
||||
}
|
||||
21
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.d.ts
generated
vendored
21
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.d.ts
generated
vendored
@@ -1,21 +0,0 @@
|
||||
import { CancelablePromise } from '.';
|
||||
export declare type CancelablePromiseList<TValue> = {
|
||||
/**
|
||||
* Add a cancelable promise to the list.
|
||||
*
|
||||
* @param cancelablePromise The cancelable promise to add.
|
||||
*/
|
||||
add(cancelablePromise: CancelablePromise<TValue>): CancelablePromise<TValue>;
|
||||
/**
|
||||
* Cancel all pending promises.
|
||||
*
|
||||
* Requests aren't actually stopped. All pending promises will settle, but
|
||||
* attached handlers won't run.
|
||||
*/
|
||||
cancelAll(): void;
|
||||
/**
|
||||
* Whether there are pending promises in the list.
|
||||
*/
|
||||
isEmpty(): boolean;
|
||||
};
|
||||
export declare function createCancelablePromiseList<TValue>(): CancelablePromiseList<TValue>;
|
||||
21
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js
generated
vendored
21
node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js
generated
vendored
@@ -1,21 +0,0 @@
|
||||
export function createCancelablePromiseList() {
|
||||
var list = [];
|
||||
return {
|
||||
add: function add(cancelablePromise) {
|
||||
list.push(cancelablePromise);
|
||||
return cancelablePromise.finally(function () {
|
||||
list = list.filter(function (item) {
|
||||
return item !== cancelablePromise;
|
||||
});
|
||||
});
|
||||
},
|
||||
cancelAll: function cancelAll() {
|
||||
list.forEach(function (promise) {
|
||||
return promise.cancel();
|
||||
});
|
||||
},
|
||||
isEmpty: function isEmpty() {
|
||||
return list.length === 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
import { MaybePromise } from '@algolia/autocomplete-shared';
|
||||
/**
|
||||
* Creates a runner that executes promises in a concurrent-safe way.
|
||||
*
|
||||
* This is useful to prevent older promises to resolve after a newer promise,
|
||||
* otherwise resulting in stale resolved values.
|
||||
*/
|
||||
export declare function createConcurrentSafePromise(): <TValue>(promise: MaybePromise<TValue>) => Promise<TValue>;
|
||||
36
node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js
generated
vendored
36
node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js
generated
vendored
@@ -1,36 +0,0 @@
|
||||
/**
|
||||
* Creates a runner that executes promises in a concurrent-safe way.
|
||||
*
|
||||
* This is useful to prevent older promises to resolve after a newer promise,
|
||||
* otherwise resulting in stale resolved values.
|
||||
*/
|
||||
export function createConcurrentSafePromise() {
|
||||
var basePromiseId = -1;
|
||||
var latestResolvedId = -1;
|
||||
var latestResolvedValue = undefined;
|
||||
return function runConcurrentSafePromise(promise) {
|
||||
basePromiseId++;
|
||||
var currentPromiseId = basePromiseId;
|
||||
return Promise.resolve(promise).then(function (x) {
|
||||
// The promise might take too long to resolve and get outdated. This would
|
||||
// result in resolving stale values.
|
||||
// When this happens, we ignore the promise value and return the one
|
||||
// coming from the latest resolved value.
|
||||
//
|
||||
// +----------------------------------+
|
||||
// | 100ms |
|
||||
// | run(1) +---> R1 |
|
||||
// | 300ms |
|
||||
// | run(2) +-------------> R2 (SKIP) |
|
||||
// | 200ms |
|
||||
// | run(3) +--------> R3 |
|
||||
// +----------------------------------+
|
||||
if (latestResolvedValue && currentPromiseId < latestResolvedId) {
|
||||
return latestResolvedValue;
|
||||
}
|
||||
latestResolvedId = currentPromiseId;
|
||||
latestResolvedValue = x;
|
||||
return x;
|
||||
});
|
||||
};
|
||||
}
|
||||
7
node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.d.ts
generated
vendored
7
node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.d.ts
generated
vendored
@@ -1,7 +0,0 @@
|
||||
import { AutocompleteState, BaseItem } from '../types';
|
||||
export declare function getActiveItem<TItem extends BaseItem>(state: AutocompleteState<TItem>): {
|
||||
item: TItem;
|
||||
itemInputValue: string;
|
||||
itemUrl: string | undefined;
|
||||
source: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource").InternalAutocompleteSource<TItem>;
|
||||
} | null;
|
||||
77
node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js
generated
vendored
77
node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js
generated
vendored
@@ -1,77 +0,0 @@
|
||||
// We don't have access to the autocomplete source when we call `onKeyDown`
|
||||
// or `onClick` because those are native browser events.
|
||||
// However, we can get the source from the suggestion index.
|
||||
function getCollectionFromActiveItemId(state) {
|
||||
// Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]
|
||||
// We want to get the accumulated counts:
|
||||
// [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]
|
||||
var accumulatedCollectionsCount = state.collections.map(function (collections) {
|
||||
return collections.items.length;
|
||||
}).reduce(function (acc, collectionsCount, index) {
|
||||
var previousValue = acc[index - 1] || 0;
|
||||
var nextValue = previousValue + collectionsCount;
|
||||
acc.push(nextValue);
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
// Based on the accumulated counts, we can infer the index of the suggestion.
|
||||
var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {
|
||||
if (current <= state.activeItemId) {
|
||||
return acc + 1;
|
||||
}
|
||||
return acc;
|
||||
}, 0);
|
||||
return state.collections[collectionIndex];
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the highlighted index relative to a suggestion object (not the absolute
|
||||
* highlighted index).
|
||||
*
|
||||
* Example:
|
||||
* [['a', 'b'], ['c', 'd', 'e'], ['f']]
|
||||
* ↑
|
||||
* (absolute: 3, relative: 1)
|
||||
*/
|
||||
function getRelativeActiveItemId(_ref) {
|
||||
var state = _ref.state,
|
||||
collection = _ref.collection;
|
||||
var isOffsetFound = false;
|
||||
var counter = 0;
|
||||
var previousItemsOffset = 0;
|
||||
while (isOffsetFound === false) {
|
||||
var currentCollection = state.collections[counter];
|
||||
if (currentCollection === collection) {
|
||||
isOffsetFound = true;
|
||||
break;
|
||||
}
|
||||
previousItemsOffset += currentCollection.items.length;
|
||||
counter++;
|
||||
}
|
||||
return state.activeItemId - previousItemsOffset;
|
||||
}
|
||||
export function getActiveItem(state) {
|
||||
var collection = getCollectionFromActiveItemId(state);
|
||||
if (!collection) {
|
||||
return null;
|
||||
}
|
||||
var item = collection.items[getRelativeActiveItemId({
|
||||
state: state,
|
||||
collection: collection
|
||||
})];
|
||||
var source = collection.source;
|
||||
var itemInputValue = source.getItemInputValue({
|
||||
item: item,
|
||||
state: state
|
||||
});
|
||||
var itemUrl = source.getItemUrl({
|
||||
item: item,
|
||||
state: state
|
||||
});
|
||||
return {
|
||||
item: item,
|
||||
itemInputValue: itemInputValue,
|
||||
itemUrl: itemUrl,
|
||||
source: source
|
||||
};
|
||||
}
|
||||
17
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.d.ts
generated
vendored
17
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.d.ts
generated
vendored
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Returns the next active item ID from the current state.
|
||||
*
|
||||
* We allow circular keyboard navigation from the base index.
|
||||
* The base index can either be `null` (nothing is highlighted) or `0`
|
||||
* (the first item is highlighted).
|
||||
* The base index is allowed to get assigned `null` only if
|
||||
* `props.defaultActiveItemId` is `null`. This pattern allows to "stop"
|
||||
* by the actual query before navigating to other suggestions as seen on
|
||||
* Google or Amazon.
|
||||
*
|
||||
* @param moveAmount The offset to increment (or decrement) the last index
|
||||
* @param baseIndex The current index to compute the next index from
|
||||
* @param itemCount The number of items
|
||||
* @param defaultActiveItemId The default active index to fallback to
|
||||
*/
|
||||
export declare function getNextActiveItemId(moveAmount: number, baseIndex: number | null, itemCount: number, defaultActiveItemId: number | null): number | null;
|
||||
29
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js
generated
vendored
29
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js
generated
vendored
@@ -1,29 +0,0 @@
|
||||
/**
|
||||
* Returns the next active item ID from the current state.
|
||||
*
|
||||
* We allow circular keyboard navigation from the base index.
|
||||
* The base index can either be `null` (nothing is highlighted) or `0`
|
||||
* (the first item is highlighted).
|
||||
* The base index is allowed to get assigned `null` only if
|
||||
* `props.defaultActiveItemId` is `null`. This pattern allows to "stop"
|
||||
* by the actual query before navigating to other suggestions as seen on
|
||||
* Google or Amazon.
|
||||
*
|
||||
* @param moveAmount The offset to increment (or decrement) the last index
|
||||
* @param baseIndex The current index to compute the next index from
|
||||
* @param itemCount The number of items
|
||||
* @param defaultActiveItemId The default active index to fallback to
|
||||
*/
|
||||
export function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {
|
||||
if (!itemCount) {
|
||||
return null;
|
||||
}
|
||||
if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {
|
||||
return itemCount + moveAmount;
|
||||
}
|
||||
var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;
|
||||
if (numericIndex <= -1 || numericIndex >= itemCount) {
|
||||
return defaultActiveItemId === null ? null : 0;
|
||||
}
|
||||
return numericIndex;
|
||||
}
|
||||
2
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.d.ts
generated
vendored
2
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.d.ts
generated
vendored
@@ -1,2 +0,0 @@
|
||||
import { BaseItem, GetSources, GetSourcesParams, InternalGetSources } from '../types';
|
||||
export declare function getNormalizedSources<TItem extends BaseItem>(getSources: GetSources<TItem>, params: GetSourcesParams<TItem>): ReturnType<InternalGetSources<TItem>>;
|
||||
48
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js
generated
vendored
48
node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js
generated
vendored
@@ -1,48 +0,0 @@
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
import { invariant, decycle, noop } from '@algolia/autocomplete-shared';
|
||||
export function getNormalizedSources(getSources, params) {
|
||||
var seenSourceIds = [];
|
||||
return Promise.resolve(getSources(params)).then(function (sources) {
|
||||
invariant(Array.isArray(sources), function () {
|
||||
return "The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(_typeof(sources)), ":\n\n").concat(JSON.stringify(decycle(sources), null, 2));
|
||||
});
|
||||
return Promise.all(sources
|
||||
// We allow `undefined` and `false` sources to allow users to use
|
||||
// `Boolean(query) && source` (=> `false`).
|
||||
// We need to remove these values at this point.
|
||||
.filter(function (maybeSource) {
|
||||
return Boolean(maybeSource);
|
||||
}).map(function (source) {
|
||||
invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');
|
||||
if (seenSourceIds.includes(source.sourceId)) {
|
||||
throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(source.sourceId), " is not unique."));
|
||||
}
|
||||
seenSourceIds.push(source.sourceId);
|
||||
var defaultSource = {
|
||||
getItemInputValue: function getItemInputValue(_ref) {
|
||||
var state = _ref.state;
|
||||
return state.query;
|
||||
},
|
||||
getItemUrl: function getItemUrl() {
|
||||
return undefined;
|
||||
},
|
||||
onSelect: function onSelect(_ref2) {
|
||||
var setIsOpen = _ref2.setIsOpen;
|
||||
setIsOpen(false);
|
||||
},
|
||||
onActive: noop,
|
||||
onResolve: noop
|
||||
};
|
||||
Object.keys(defaultSource).forEach(function (key) {
|
||||
defaultSource[key].__default = true;
|
||||
});
|
||||
var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);
|
||||
return Promise.resolve(normalizedSource);
|
||||
}));
|
||||
});
|
||||
}
|
||||
9
node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts
generated
vendored
9
node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts
generated
vendored
@@ -1,9 +0,0 @@
|
||||
export * from './createCancelablePromise';
|
||||
export * from './createCancelablePromiseList';
|
||||
export * from './createConcurrentSafePromise';
|
||||
export * from './getNextActiveItemId';
|
||||
export * from './getNormalizedSources';
|
||||
export * from './getActiveItem';
|
||||
export * from './isOrContainsNode';
|
||||
export * from './isSamsung';
|
||||
export * from './mapToAlgoliaResponse';
|
||||
9
node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js
generated
vendored
9
node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js
generated
vendored
@@ -1,9 +0,0 @@
|
||||
export * from './createCancelablePromise';
|
||||
export * from './createCancelablePromiseList';
|
||||
export * from './createConcurrentSafePromise';
|
||||
export * from './getNextActiveItemId';
|
||||
export * from './getNormalizedSources';
|
||||
export * from './getActiveItem';
|
||||
export * from './isOrContainsNode';
|
||||
export * from './isSamsung';
|
||||
export * from './mapToAlgoliaResponse';
|
||||
1
node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.d.ts
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.d.ts
generated
vendored
@@ -1 +0,0 @@
|
||||
export declare function isOrContainsNode(parent: Node, child: Node): boolean;
|
||||
3
node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js
generated
vendored
3
node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js
generated
vendored
@@ -1,3 +0,0 @@
|
||||
export function isOrContainsNode(parent, child) {
|
||||
return parent === child || parent.contains(child);
|
||||
}
|
||||
1
node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.d.ts
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.d.ts
generated
vendored
@@ -1 +0,0 @@
|
||||
export declare function isSamsung(userAgent: string): boolean;
|
||||
4
node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js
generated
vendored
4
node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js
generated
vendored
@@ -1,4 +0,0 @@
|
||||
var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;
|
||||
export function isSamsung(userAgent) {
|
||||
return Boolean(userAgent && userAgent.match(regex));
|
||||
}
|
||||
14
node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts
generated
vendored
14
node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts
generated
vendored
@@ -1,14 +0,0 @@
|
||||
import type { SearchForFacetValuesResponse, SearchResponse } from '@algolia/client-search';
|
||||
export declare function mapToAlgoliaResponse<THit>(rawResults: Array<SearchResponse<THit> | SearchForFacetValuesResponse>): {
|
||||
results: (SearchResponse<THit> | SearchForFacetValuesResponse)[];
|
||||
hits: import("@algolia/client-search").Hit<THit>[][];
|
||||
facetHits: {
|
||||
label: string;
|
||||
count: number;
|
||||
_highlightResult: {
|
||||
label: {
|
||||
value: string;
|
||||
};
|
||||
};
|
||||
}[][];
|
||||
};
|
||||
23
node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js
generated
vendored
23
node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js
generated
vendored
@@ -1,23 +0,0 @@
|
||||
export function mapToAlgoliaResponse(rawResults) {
|
||||
return {
|
||||
results: rawResults,
|
||||
hits: rawResults.map(function (result) {
|
||||
return result.hits;
|
||||
}).filter(Boolean),
|
||||
facetHits: rawResults.map(function (result) {
|
||||
var _facetHits;
|
||||
return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {
|
||||
// Bring support for the highlighting components.
|
||||
return {
|
||||
label: facetHit.value,
|
||||
count: facetHit.count,
|
||||
_highlightResult: {
|
||||
label: {
|
||||
value: facetHit.highlighted
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
}).filter(Boolean)
|
||||
};
|
||||
}
|
||||
2471
node_modules/@algolia/autocomplete-core/dist/umd/index.development.js
generated
vendored
2471
node_modules/@algolia/autocomplete-core/dist/umd/index.development.js
generated
vendored
File diff suppressed because it is too large
Load Diff
1
node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map
generated
vendored
File diff suppressed because one or more lines are too long
3
node_modules/@algolia/autocomplete-core/dist/umd/index.production.js
generated
vendored
3
node_modules/@algolia/autocomplete-core/dist/umd/index.production.js
generated
vendored
File diff suppressed because one or more lines are too long
1
node_modules/@algolia/autocomplete-core/dist/umd/index.production.js.map
generated
vendored
1
node_modules/@algolia/autocomplete-core/dist/umd/index.production.js.map
generated
vendored
File diff suppressed because one or more lines are too long
42
node_modules/@algolia/autocomplete-core/package.json
generated
vendored
42
node_modules/@algolia/autocomplete-core/package.json
generated
vendored
@@ -1,42 +0,0 @@
|
||||
{
|
||||
"name": "@algolia/autocomplete-core",
|
||||
"description": "Core primitives for building autocomplete experiences.",
|
||||
"version": "1.9.3",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/algolia/autocomplete",
|
||||
"repository": "algolia/autocomplete",
|
||||
"author": {
|
||||
"name": "Algolia, Inc.",
|
||||
"url": "https://www.algolia.com"
|
||||
},
|
||||
"source": "src/index.ts",
|
||||
"types": "dist/esm/index.d.ts",
|
||||
"module": "dist/esm/index.js",
|
||||
"main": "dist/umd/index.production.js",
|
||||
"umd:main": "dist/umd/index.production.js",
|
||||
"unpkg": "dist/umd/index.production.js",
|
||||
"jsdelivr": "dist/umd/index.production.js",
|
||||
"sideEffects": false,
|
||||
"files": [
|
||||
"dist/"
|
||||
],
|
||||
"scripts": {
|
||||
"build:clean": "rm -rf ./dist",
|
||||
"build:esm": "babel src --root-mode upward --extensions '.ts,.tsx' --out-dir dist/esm --ignore '**/*/__tests__/'",
|
||||
"build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/esm",
|
||||
"build:umd": "rollup --config",
|
||||
"build": "yarn build:clean && yarn build:umd && yarn build:esm && yarn build:types",
|
||||
"on:change": "concurrently \"yarn build:esm\" \"yarn build:types\"",
|
||||
"prepare": "yarn build:esm && yarn build:types",
|
||||
"watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@algolia/autocomplete-preset-algolia": "1.9.3",
|
||||
"@algolia/client-search": "4.16.0",
|
||||
"algoliasearch": "4.16.0"
|
||||
}
|
||||
}
|
||||
15
node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
generated
vendored
15
node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
generated
vendored
@@ -1,15 +0,0 @@
|
||||
# @algolia/autocomplete-plugin-algolia-insights
|
||||
|
||||
The Algolia Insights plugin automatically sends click and conversion events to the [Algolia Insights API](https://www.algolia.com/doc/rest-api/insights]) whenever a user interacts with the autocomplete.
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
yarn add @algolia/autocomplete-plugin-algolia-insights
|
||||
# or
|
||||
npm install @algolia/autocomplete-plugin-algolia-insights
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
See [**Documentation**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights).
|
||||
@@ -1,37 +0,0 @@
|
||||
import { AutocompletePlugin } from '@algolia/autocomplete-shared';
|
||||
import { InsightsClient, OnActiveParams, OnItemsChangeParams, OnSelectParams } from './types';
|
||||
export declare type CreateAlgoliaInsightsPluginParams = {
|
||||
/**
|
||||
* The initialized Search Insights client.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient
|
||||
*/
|
||||
insightsClient?: InsightsClient;
|
||||
/**
|
||||
* Hook to send an Insights event when the items change.
|
||||
*
|
||||
* By default, it sends a `viewedObjectIDs` event.
|
||||
*
|
||||
* In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching "in progress" queries.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange
|
||||
*/
|
||||
onItemsChange?(params: OnItemsChangeParams): void;
|
||||
/**
|
||||
* Hook to send an Insights event when an item is selected.
|
||||
*
|
||||
* By default, it sends a clickedObjectIDsAfterSearch event.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect
|
||||
*/
|
||||
onSelect?(params: OnSelectParams): void;
|
||||
/**
|
||||
* Hook to send an Insights event when an item is active.
|
||||
*
|
||||
* By default, it doesn't send any events.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive
|
||||
*/
|
||||
onActive?(params: OnActiveParams): void;
|
||||
};
|
||||
export declare function createAlgoliaInsightsPlugin(options: CreateAlgoliaInsightsPluginParams): AutocompletePlugin<any, undefined>;
|
||||
@@ -1,200 +0,0 @@
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';
|
||||
import { createClickedEvent } from './createClickedEvent';
|
||||
import { createSearchInsightsApi } from './createSearchInsightsApi';
|
||||
import { createViewedEvents } from './createViewedEvents';
|
||||
import { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';
|
||||
var VIEW_EVENT_DELAY = 400;
|
||||
var ALGOLIA_INSIGHTS_VERSION = '2.6.0';
|
||||
var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@".concat(ALGOLIA_INSIGHTS_VERSION, "/dist/search-insights.min.js");
|
||||
var sendViewedObjectIDs = debounce(function (_ref) {
|
||||
var onItemsChange = _ref.onItemsChange,
|
||||
items = _ref.items,
|
||||
insights = _ref.insights,
|
||||
state = _ref.state;
|
||||
onItemsChange({
|
||||
insights: insights,
|
||||
insightsEvents: createViewedEvents({
|
||||
items: items
|
||||
}).map(function (event) {
|
||||
return _objectSpread({
|
||||
eventName: 'Items Viewed'
|
||||
}, event);
|
||||
}),
|
||||
state: state
|
||||
});
|
||||
}, VIEW_EVENT_DELAY);
|
||||
export function createAlgoliaInsightsPlugin(options) {
|
||||
var _getOptions = getOptions(options),
|
||||
providedInsightsClient = _getOptions.insightsClient,
|
||||
onItemsChange = _getOptions.onItemsChange,
|
||||
onSelectEvent = _getOptions.onSelect,
|
||||
onActiveEvent = _getOptions.onActive;
|
||||
var insightsClient = providedInsightsClient;
|
||||
if (!providedInsightsClient) {
|
||||
safelyRunOnBrowser(function (_ref2) {
|
||||
var window = _ref2.window;
|
||||
var pointer = window.AlgoliaAnalyticsObject || 'aa';
|
||||
if (typeof pointer === 'string') {
|
||||
insightsClient = window[pointer];
|
||||
}
|
||||
if (!insightsClient) {
|
||||
window.AlgoliaAnalyticsObject = pointer;
|
||||
if (!window[pointer]) {
|
||||
window[pointer] = function () {
|
||||
if (!window[pointer].queue) {
|
||||
window[pointer].queue = [];
|
||||
}
|
||||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
args[_key] = arguments[_key];
|
||||
}
|
||||
window[pointer].queue.push(args);
|
||||
};
|
||||
}
|
||||
window[pointer].version = ALGOLIA_INSIGHTS_VERSION;
|
||||
insightsClient = window[pointer];
|
||||
loadInsights(window);
|
||||
}
|
||||
});
|
||||
}
|
||||
var insights = createSearchInsightsApi(insightsClient);
|
||||
var previousItems = createRef([]);
|
||||
var debouncedOnStateChange = debounce(function (_ref3) {
|
||||
var state = _ref3.state;
|
||||
if (!state.isOpen) {
|
||||
return;
|
||||
}
|
||||
var items = state.collections.reduce(function (acc, current) {
|
||||
return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));
|
||||
}, []).filter(isAlgoliaInsightsHit);
|
||||
if (!isEqual(previousItems.current.map(function (x) {
|
||||
return x.objectID;
|
||||
}), items.map(function (x) {
|
||||
return x.objectID;
|
||||
}))) {
|
||||
previousItems.current = items;
|
||||
if (items.length > 0) {
|
||||
sendViewedObjectIDs({
|
||||
onItemsChange: onItemsChange,
|
||||
items: items,
|
||||
insights: insights,
|
||||
state: state
|
||||
});
|
||||
}
|
||||
}
|
||||
}, 0);
|
||||
return {
|
||||
name: 'aa.algoliaInsightsPlugin',
|
||||
subscribe: function subscribe(_ref4) {
|
||||
var setContext = _ref4.setContext,
|
||||
onSelect = _ref4.onSelect,
|
||||
onActive = _ref4.onActive;
|
||||
insightsClient('addAlgoliaAgent', 'insights-plugin');
|
||||
setContext({
|
||||
algoliaInsightsPlugin: {
|
||||
__algoliaSearchParameters: {
|
||||
clickAnalytics: true
|
||||
},
|
||||
insights: insights
|
||||
}
|
||||
});
|
||||
onSelect(function (_ref5) {
|
||||
var item = _ref5.item,
|
||||
state = _ref5.state,
|
||||
event = _ref5.event;
|
||||
if (!isAlgoliaInsightsHit(item)) {
|
||||
return;
|
||||
}
|
||||
onSelectEvent({
|
||||
state: state,
|
||||
event: event,
|
||||
insights: insights,
|
||||
item: item,
|
||||
insightsEvents: [_objectSpread({
|
||||
eventName: 'Item Selected'
|
||||
}, createClickedEvent({
|
||||
item: item,
|
||||
items: previousItems.current
|
||||
}))]
|
||||
});
|
||||
});
|
||||
onActive(function (_ref6) {
|
||||
var item = _ref6.item,
|
||||
state = _ref6.state,
|
||||
event = _ref6.event;
|
||||
if (!isAlgoliaInsightsHit(item)) {
|
||||
return;
|
||||
}
|
||||
onActiveEvent({
|
||||
state: state,
|
||||
event: event,
|
||||
insights: insights,
|
||||
item: item,
|
||||
insightsEvents: [_objectSpread({
|
||||
eventName: 'Item Active'
|
||||
}, createClickedEvent({
|
||||
item: item,
|
||||
items: previousItems.current
|
||||
}))]
|
||||
});
|
||||
});
|
||||
},
|
||||
onStateChange: function onStateChange(_ref7) {
|
||||
var state = _ref7.state;
|
||||
debouncedOnStateChange({
|
||||
state: state
|
||||
});
|
||||
},
|
||||
__autocomplete_pluginOptions: options
|
||||
};
|
||||
}
|
||||
function getOptions(options) {
|
||||
return _objectSpread({
|
||||
onItemsChange: function onItemsChange(_ref8) {
|
||||
var insights = _ref8.insights,
|
||||
insightsEvents = _ref8.insightsEvents;
|
||||
insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {
|
||||
return _objectSpread(_objectSpread({}, event), {}, {
|
||||
algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])
|
||||
});
|
||||
})));
|
||||
},
|
||||
onSelect: function onSelect(_ref9) {
|
||||
var insights = _ref9.insights,
|
||||
insightsEvents = _ref9.insightsEvents;
|
||||
insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {
|
||||
return _objectSpread(_objectSpread({}, event), {}, {
|
||||
algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])
|
||||
});
|
||||
})));
|
||||
},
|
||||
onActive: noop
|
||||
}, options);
|
||||
}
|
||||
function loadInsights(environment) {
|
||||
var errorMessage = "[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";
|
||||
try {
|
||||
var script = environment.document.createElement('script');
|
||||
script.async = true;
|
||||
script.src = ALGOLIA_INSIGHTS_SRC;
|
||||
script.onerror = function () {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage);
|
||||
};
|
||||
document.body.appendChild(script);
|
||||
} catch (cause) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import type { AlgoliaInsightsHit, ClickedObjectIDsAfterSearchParams, InsightsParamsWithItems } from './types';
|
||||
declare type CreateClickedEventParams = {
|
||||
item: AlgoliaInsightsHit;
|
||||
items: AlgoliaInsightsHit[];
|
||||
};
|
||||
export declare function createClickedEvent({ item, items, }: CreateClickedEventParams): Omit<InsightsParamsWithItems<ClickedObjectIDsAfterSearchParams>, 'eventName'> & {
|
||||
algoliaSource?: string[];
|
||||
};
|
||||
export {};
|
||||
@@ -1,13 +0,0 @@
|
||||
export function createClickedEvent(_ref) {
|
||||
var item = _ref.item,
|
||||
items = _ref.items;
|
||||
return {
|
||||
index: item.__autocomplete_indexName,
|
||||
items: [item],
|
||||
positions: [1 + items.findIndex(function (x) {
|
||||
return x.objectID === item.objectID;
|
||||
})],
|
||||
queryID: item.__autocomplete_queryID,
|
||||
algoliaSource: ['autocomplete']
|
||||
};
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import { ClickedFiltersParams, ClickedObjectIDsAfterSearchParams, ClickedObjectIDsParams, ConvertedFiltersParams, ConvertedObjectIDsAfterSearchParams, ConvertedObjectIDsParams, InsightsClient, InsightsParamsWithItems, ViewedFiltersParams, ViewedObjectIDsParams } from './types';
|
||||
export declare function createSearchInsightsApi(searchInsights: InsightsClient): {
|
||||
/**
|
||||
* Initializes Insights with Algolia credentials.
|
||||
*/
|
||||
init(appId: string, apiKey: string): void;
|
||||
/**
|
||||
* Sets the user token to attach to events.
|
||||
*/
|
||||
setUserToken(userToken: string): void;
|
||||
/**
|
||||
* Sends click events to capture a query and its clicked items and positions.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/
|
||||
*/
|
||||
clickedObjectIDsAfterSearch(...params: Array<InsightsParamsWithItems<ClickedObjectIDsAfterSearchParams>>): void;
|
||||
/**
|
||||
* Sends click events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/
|
||||
*/
|
||||
clickedObjectIDs(...params: Array<InsightsParamsWithItems<ClickedObjectIDsParams>>): void;
|
||||
/**
|
||||
* Sends click events to capture the filters a user clicks on.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/
|
||||
*/
|
||||
clickedFilters(...params: ClickedFiltersParams[]): void;
|
||||
/**
|
||||
* Sends conversion events to capture a query and its clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/
|
||||
*/
|
||||
convertedObjectIDsAfterSearch(...params: Array<InsightsParamsWithItems<ConvertedObjectIDsAfterSearchParams>>): void;
|
||||
/**
|
||||
* Sends conversion events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/
|
||||
*/
|
||||
convertedObjectIDs(...params: Array<InsightsParamsWithItems<ConvertedObjectIDsParams>>): void;
|
||||
/**
|
||||
* Sends conversion events to capture the filters a user uses when converting.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/
|
||||
*/
|
||||
convertedFilters(...params: ConvertedFiltersParams[]): void;
|
||||
/**
|
||||
* Sends view events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/
|
||||
*/
|
||||
viewedObjectIDs(...params: Array<InsightsParamsWithItems<ViewedObjectIDsParams>>): void;
|
||||
/**
|
||||
* Sends view events to capture the filters a user uses when viewing.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/
|
||||
*/
|
||||
viewedFilters(...params: ViewedFiltersParams[]): void;
|
||||
};
|
||||
@@ -1,197 +0,0 @@
|
||||
var _excluded = ["items"],
|
||||
_excluded2 = ["items"];
|
||||
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
||||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
||||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
||||
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
||||
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
||||
import { isModernInsightsClient } from './isModernInsightsClient';
|
||||
function chunk(item) {
|
||||
var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
|
||||
var chunks = [];
|
||||
for (var i = 0; i < item.objectIDs.length; i += chunkSize) {
|
||||
chunks.push(_objectSpread(_objectSpread({}, item), {}, {
|
||||
objectIDs: item.objectIDs.slice(i, i + chunkSize)
|
||||
}));
|
||||
}
|
||||
return chunks;
|
||||
}
|
||||
function mapToInsightsParamsApi(params) {
|
||||
return params.map(function (_ref) {
|
||||
var items = _ref.items,
|
||||
param = _objectWithoutProperties(_ref, _excluded);
|
||||
return _objectSpread(_objectSpread({}, param), {}, {
|
||||
objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {
|
||||
var objectID = _ref2.objectID;
|
||||
return objectID;
|
||||
})) || param.objectIDs
|
||||
});
|
||||
});
|
||||
}
|
||||
export function createSearchInsightsApi(searchInsights) {
|
||||
var canSendHeaders = isModernInsightsClient(searchInsights);
|
||||
function sendToInsights(method, payloads, items) {
|
||||
if (canSendHeaders && typeof items !== 'undefined') {
|
||||
var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,
|
||||
appId = _items$0$__autocomple.appId,
|
||||
apiKey = _items$0$__autocomple.apiKey;
|
||||
var headers = {
|
||||
'X-Algolia-Application-Id': appId,
|
||||
'X-Algolia-API-Key': apiKey
|
||||
};
|
||||
searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{
|
||||
headers: headers
|
||||
}]));
|
||||
} else {
|
||||
searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));
|
||||
}
|
||||
}
|
||||
return {
|
||||
/**
|
||||
* Initializes Insights with Algolia credentials.
|
||||
*/
|
||||
init: function init(appId, apiKey) {
|
||||
searchInsights('init', {
|
||||
appId: appId,
|
||||
apiKey: apiKey
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Sets the user token to attach to events.
|
||||
*/
|
||||
setUserToken: function setUserToken(userToken) {
|
||||
searchInsights('setUserToken', userToken);
|
||||
},
|
||||
/**
|
||||
* Sends click events to capture a query and its clicked items and positions.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/
|
||||
*/
|
||||
clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {
|
||||
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
params[_key] = arguments[_key];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends click events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/
|
||||
*/
|
||||
clickedObjectIDs: function clickedObjectIDs() {
|
||||
for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||||
params[_key2] = arguments[_key2];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends click events to capture the filters a user clicks on.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/
|
||||
*/
|
||||
clickedFilters: function clickedFilters() {
|
||||
for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
||||
params[_key3] = arguments[_key3];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
searchInsights.apply(void 0, ['clickedFilters'].concat(params));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends conversion events to capture a query and its clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/
|
||||
*/
|
||||
convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {
|
||||
for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
||||
params[_key4] = arguments[_key4];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends conversion events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/
|
||||
*/
|
||||
convertedObjectIDs: function convertedObjectIDs() {
|
||||
for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
||||
params[_key5] = arguments[_key5];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends conversion events to capture the filters a user uses when converting.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/
|
||||
*/
|
||||
convertedFilters: function convertedFilters() {
|
||||
for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
||||
params[_key6] = arguments[_key6];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
searchInsights.apply(void 0, ['convertedFilters'].concat(params));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends view events to capture clicked items.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/
|
||||
*/
|
||||
viewedObjectIDs: function viewedObjectIDs() {
|
||||
for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
||||
params[_key7] = arguments[_key7];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
params.reduce(function (acc, _ref3) {
|
||||
var items = _ref3.items,
|
||||
param = _objectWithoutProperties(_ref3, _excluded2);
|
||||
return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {
|
||||
objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {
|
||||
var objectID = _ref4.objectID;
|
||||
return objectID;
|
||||
})) || param.objectIDs
|
||||
})).map(function (payload) {
|
||||
return {
|
||||
items: items,
|
||||
payload: payload
|
||||
};
|
||||
})));
|
||||
}, []).forEach(function (_ref5) {
|
||||
var items = _ref5.items,
|
||||
payload = _ref5.payload;
|
||||
return sendToInsights('viewedObjectIDs', [payload], items);
|
||||
});
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Sends view events to capture the filters a user uses when viewing.
|
||||
*
|
||||
* @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/
|
||||
*/
|
||||
viewedFilters: function viewedFilters() {
|
||||
for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
||||
params[_key8] = arguments[_key8];
|
||||
}
|
||||
if (params.length > 0) {
|
||||
searchInsights.apply(void 0, ['viewedFilters'].concat(params));
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
import { AlgoliaInsightsHit, InsightsParamsWithItems, ViewedObjectIDsParams } from './types';
|
||||
declare type CreateViewedEventsParams = {
|
||||
items: AlgoliaInsightsHit[];
|
||||
};
|
||||
export declare function createViewedEvents({ items, }: CreateViewedEventsParams): Array<Omit<InsightsParamsWithItems<ViewedObjectIDsParams>, 'eventName'>>;
|
||||
export {};
|
||||
@@ -1,16 +0,0 @@
|
||||
export function createViewedEvents(_ref) {
|
||||
var items = _ref.items;
|
||||
var itemsByIndexName = items.reduce(function (acc, current) {
|
||||
var _acc$current$__autoco;
|
||||
acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);
|
||||
return acc;
|
||||
}, {});
|
||||
return Object.keys(itemsByIndexName).map(function (indexName) {
|
||||
var items = itemsByIndexName[indexName];
|
||||
return {
|
||||
index: indexName,
|
||||
items: items,
|
||||
algoliaSource: ['autocomplete']
|
||||
};
|
||||
});
|
||||
}
|
||||
1
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.d.js
generated
vendored
1
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.d.js
generated
vendored
@@ -1 +0,0 @@
|
||||
export {};
|
||||
2
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.d.ts
generated
vendored
2
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.d.ts
generated
vendored
@@ -1,2 +0,0 @@
|
||||
export * from './types';
|
||||
export * from './createAlgoliaInsightsPlugin';
|
||||
2
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.js
generated
vendored
2
node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.js
generated
vendored
@@ -1,2 +0,0 @@
|
||||
export * from './types';
|
||||
export * from './createAlgoliaInsightsPlugin';
|
||||
@@ -1,2 +0,0 @@
|
||||
import { AlgoliaInsightsHit } from './types';
|
||||
export declare function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit;
|
||||
@@ -1,3 +0,0 @@
|
||||
export function isAlgoliaInsightsHit(hit) {
|
||||
return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user