@nanoporetech-digital/components 5.2.1 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/dist/cjs/{_commonjsHelpers-9f2314fc.js → _commonjsHelpers-29614748.js} +1 -17
- package/dist/cjs/_commonjsHelpers-29614748.js.map +1 -0
- package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js +922 -0
- package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js.map +1 -0
- package/dist/cjs/component-store-21cb4901.js +328 -0
- package/dist/cjs/component-store-21cb4901.js.map +1 -0
- package/dist/cjs/events-db0a42ee.js +39 -0
- package/dist/cjs/events-db0a42ee.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +9 -2
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -2
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-input.cjs.entry.js +8 -4
- package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia.cjs.entry.js +4 -4
- package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +23 -22
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +169 -111
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +16 -2
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +5 -6
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +2 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +1 -1
- package/dist/cjs/nano-sortable.cjs.entry.js +3 -15
- package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +16 -9
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +1 -2
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-10a40ab3.js → nano-table-3bfe9c30.js} +9 -10
- package/dist/cjs/nano-table-3bfe9c30.js.map +1 -0
- package/dist/cjs/nano-table.cjs.entry.js +1 -1
- package/dist/cjs/{slot-a448c1a7.js → slot-2dd6ed1d.js} +20 -15
- package/dist/cjs/slot-2dd6ed1d.js.map +1 -0
- package/dist/cjs/{table.worker-f04588c1.js → table.worker-b3818c42.js} +2 -2
- package/dist/cjs/table.worker-b3818c42.js.map +1 -0
- package/dist/collection/components/alert/alert.css +15 -0
- package/dist/collection/components/alert/alert.js +10 -2
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/algolia/algolia-interface.js.map +1 -1
- package/dist/collection/components/algolia/algolia.js +1 -1
- package/dist/collection/components/algolia/algolia.js.map +1 -1
- package/dist/collection/components/dialog/dialog.css +1 -17
- package/dist/collection/components/dialog/dialog.js +31 -20
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/drawer/drawer.css +136 -67
- package/dist/collection/components/drawer/drawer.js +282 -154
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.css +10 -0
- package/dist/collection/components/dropdown/dropdown.js +15 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/global-nav/global-nav.js +2 -2
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-nav/style/global-nav.css +5 -1
- package/dist/collection/components/global-search-results/global-search-results.js +2 -1
- package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
- package/dist/collection/components/sticker/sticker.js +16 -9
- package/dist/collection/components/sticker/sticker.js.map +1 -1
- package/dist/collection/components/table/table.css +21 -12
- package/dist/collection/components/table/table.js +0 -1
- package/dist/collection/components/table/table.js.map +1 -1
- package/dist/collection/components/table/table.pin-service.js +6 -6
- package/dist/collection/components/table/table.pin-service.js.map +1 -1
- package/dist/collection/utils/events.js +17 -0
- package/dist/collection/utils/events.js.map +1 -1
- package/dist/collection/utils/slot.js +19 -14
- package/dist/collection/utils/slot.js.map +1 -1
- package/dist/collection/utils/store/get-set.js +6 -12
- package/dist/collection/utils/store/get-set.js.map +1 -1
- package/dist/components/_commonjsHelpers.js +1 -16
- package/dist/components/_commonjsHelpers.js.map +1 -1
- package/dist/components/algolia.js +2 -2
- package/dist/components/algolia.js.map +1 -1
- package/dist/components/algoliasearch-lite.esm.browser.js +920 -0
- package/dist/components/algoliasearch-lite.esm.browser.js.map +1 -0
- package/dist/components/component-store.js +68 -2001
- package/dist/components/component-store.js.map +1 -1
- package/dist/components/dropdown.js +16 -2
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/events.js +36 -0
- package/dist/components/events.js.map +1 -0
- package/dist/components/nano-alert.js +10 -2
- package/dist/components/nano-alert.js.map +1 -1
- package/dist/components/nano-algolia-input.js +6 -1
- package/dist/components/nano-algolia-input.js.map +1 -1
- package/dist/components/nano-dialog.js +21 -20
- package/dist/components/nano-dialog.js.map +1 -1
- package/dist/components/nano-drawer.js +205 -122
- package/dist/components/nano-drawer.js.map +1 -1
- package/dist/components/nano-global-nav.js +4 -4
- package/dist/components/nano-global-nav.js.map +1 -1
- package/dist/components/nano-global-search-results.js +2 -1
- package/dist/components/nano-global-search-results.js.map +1 -1
- package/dist/components/nano-sortable.js +1 -13
- package/dist/components/nano-sortable.js.map +1 -1
- package/dist/components/slot.js +19 -14
- package/dist/components/slot.js.map +1 -1
- package/dist/components/sticker.js +16 -9
- package/dist/components/sticker.js.map +1 -1
- package/dist/components/table.js +7 -8
- package/dist/components/table.js.map +1 -1
- package/dist/esm/{_commonjsHelpers-e401b2a2.js → _commonjsHelpers-04a0e019.js} +2 -17
- package/dist/esm/_commonjsHelpers-04a0e019.js.map +1 -0
- package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js +920 -0
- package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js.map +1 -0
- package/dist/esm/component-store-65d7e36a.js +326 -0
- package/dist/esm/component-store-65d7e36a.js.map +1 -0
- package/dist/esm/events-6a805b42.js +36 -0
- package/dist/esm/events-6a805b42.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/nano-alert.entry.js +9 -2
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +1 -2
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-input.entry.js +7 -3
- package/dist/esm/nano-algolia-input.entry.js.map +1 -1
- package/dist/esm/nano-algolia.entry.js +4 -4
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-components.js +1 -1
- package/dist/esm/nano-datalist_3.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +23 -22
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +171 -113
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +16 -2
- package/dist/esm/nano-dropdown.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +5 -6
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +2 -1
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-slides.entry.js +1 -1
- package/dist/esm/nano-sortable.entry.js +1 -13
- package/dist/esm/nano-sortable.entry.js.map +1 -1
- package/dist/esm/nano-sticker.entry.js +16 -9
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-group.entry.js +1 -2
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/{nano-table-2bbcaa8d.js → nano-table-7fb21169.js} +9 -10
- package/dist/esm/nano-table-7fb21169.js.map +1 -0
- package/dist/esm/nano-table.entry.js +1 -1
- package/dist/esm/{slot-a4f6e2af.js → slot-8126e238.js} +20 -15
- package/dist/esm/slot-8126e238.js.map +1 -0
- package/dist/esm/{table.worker-7324ad73.js → table.worker-a37fa949.js} +2 -2
- package/dist/esm/table.worker-a37fa949.js.map +1 -0
- package/dist/nano-components/nano-components.css +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/p-00a18187.js +5 -0
- package/dist/nano-components/p-00a18187.js.map +1 -0
- package/dist/nano-components/p-0301e8f7.entry.js +5 -0
- package/dist/nano-components/p-0301e8f7.entry.js.map +1 -0
- package/dist/nano-components/p-27422aa9.entry.js +5 -0
- package/dist/nano-components/{p-6920ad69.entry.js.map → p-27422aa9.entry.js.map} +1 -1
- package/dist/nano-components/{p-0697795a.entry.js → p-31c23d6e.entry.js} +2 -2
- package/dist/nano-components/p-31c23d6e.entry.js.map +1 -0
- package/dist/nano-components/{p-39aec880.entry.js → p-35d3072e.entry.js} +2 -2
- package/dist/nano-components/p-487de04d.entry.js.map +1 -1
- package/dist/nano-components/p-570d2e50.entry.js +5 -0
- package/dist/nano-components/p-570d2e50.entry.js.map +1 -0
- package/dist/nano-components/{p-3eb6d833.entry.js → p-5a4b3fa9.entry.js} +2 -2
- package/dist/nano-components/p-653ae985.js +5 -0
- package/dist/nano-components/p-653ae985.js.map +1 -0
- package/dist/nano-components/p-676a4744.entry.js +5 -0
- package/dist/nano-components/{p-d0eefd52.entry.js.map → p-676a4744.entry.js.map} +1 -1
- package/dist/nano-components/p-8fe51abf.js +5 -0
- package/dist/nano-components/{p-4884b65a.entry.js → p-90cd4f56.entry.js} +2 -2
- package/dist/nano-components/p-90cd4f56.entry.js.map +1 -0
- package/dist/nano-components/p-9bfdee71.js +5 -0
- package/dist/nano-components/p-9bfdee71.js.map +1 -0
- package/dist/nano-components/p-a8d6ca38.entry.js +5 -0
- package/dist/nano-components/p-a8d6ca38.entry.js.map +1 -0
- package/dist/nano-components/p-ace7743c.entry.js +5 -0
- package/dist/nano-components/p-ace7743c.entry.js.map +1 -0
- package/dist/nano-components/p-bdb5b6fc.entry.js +5 -0
- package/dist/nano-components/p-bdb5b6fc.entry.js.map +1 -0
- package/dist/nano-components/{p-52ae36ec.js → p-c579d9aa.js} +2 -2
- package/dist/nano-components/p-cad86fb8.js +5 -0
- package/dist/nano-components/p-cad86fb8.js.map +1 -0
- package/dist/nano-components/p-dc565459.js +5 -0
- package/dist/nano-components/p-dc565459.js.map +1 -0
- package/dist/nano-components/p-ede12d35.entry.js +5 -0
- package/dist/nano-components/p-ede12d35.entry.js.map +1 -0
- package/dist/nano-components/p-f504b1df.entry.js +7 -0
- package/dist/nano-components/p-f504b1df.entry.js.map +1 -0
- package/dist/nano-components/{p-db370094.entry.js → p-f7a4c62b.entry.js} +2 -2
- package/dist/themes/london-calling.css.map +1 -1
- package/dist/themes/nanopore.cn.css.map +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/alert/alert.d.ts +1 -0
- package/dist/types/components/algolia/algolia-interface.d.ts +1 -1
- package/dist/types/components/algolia/algolia.d.ts +1 -1
- package/dist/types/components/dialog/dialog.d.ts +15 -4
- package/dist/types/components/drawer/drawer.d.ts +69 -50
- package/dist/types/components/sticker/sticker.d.ts +4 -4
- package/dist/types/components.d.ts +50 -28
- package/dist/types/types/algolia.d.ts +4 -0
- package/dist/types/types/scss.vars.d.ts +4 -0
- package/dist/types/utils/events.d.ts +7 -0
- package/dist/types/utils/slot.d.ts +3 -3
- package/docs-json.json +268 -61
- package/docs-vscode.json +28 -11
- package/hydrate/index.js +1338 -2240
- package/package.json +4 -4
- package/dist/cjs/_commonjsHelpers-9f2314fc.js.map +0 -1
- package/dist/cjs/algoliasearch.umd-689c1560.js +0 -15
- package/dist/cjs/algoliasearch.umd-689c1560.js.map +0 -1
- package/dist/cjs/component-store-f1dc1276.js +0 -2261
- package/dist/cjs/component-store-f1dc1276.js.map +0 -1
- package/dist/cjs/nano-table-10a40ab3.js.map +0 -1
- package/dist/cjs/slot-a448c1a7.js.map +0 -1
- package/dist/cjs/table.worker-f04588c1.js.map +0 -1
- package/dist/components/algoliasearch.umd.js +0 -13
- package/dist/components/algoliasearch.umd.js.map +0 -1
- package/dist/esm/_commonjsHelpers-e401b2a2.js.map +0 -1
- package/dist/esm/algoliasearch.umd-4f7efa84.js +0 -13
- package/dist/esm/algoliasearch.umd-4f7efa84.js.map +0 -1
- package/dist/esm/component-store-c23ebc9c.js +0 -2259
- package/dist/esm/component-store-c23ebc9c.js.map +0 -1
- package/dist/esm/nano-table-2bbcaa8d.js.map +0 -1
- package/dist/esm/slot-a4f6e2af.js.map +0 -1
- package/dist/esm/table.worker-7324ad73.js.map +0 -1
- package/dist/nano-components/p-0697795a.entry.js.map +0 -1
- package/dist/nano-components/p-17b099cc.entry.js +0 -5
- package/dist/nano-components/p-17b099cc.entry.js.map +0 -1
- package/dist/nano-components/p-1a0b5bc3.js +0 -5
- package/dist/nano-components/p-1a0b5bc3.js.map +0 -1
- package/dist/nano-components/p-4884b65a.entry.js.map +0 -1
- package/dist/nano-components/p-58cf5446.js +0 -5
- package/dist/nano-components/p-58cf5446.js.map +0 -1
- package/dist/nano-components/p-6920ad69.entry.js +0 -5
- package/dist/nano-components/p-69a3e911.js +0 -5
- package/dist/nano-components/p-7baa9e14.entry.js +0 -5
- package/dist/nano-components/p-7baa9e14.entry.js.map +0 -1
- package/dist/nano-components/p-9b533dc3.js +0 -5
- package/dist/nano-components/p-9b533dc3.js.map +0 -1
- package/dist/nano-components/p-a362bd23.entry.js +0 -5
- package/dist/nano-components/p-a362bd23.entry.js.map +0 -1
- package/dist/nano-components/p-b04fd7ca.entry.js +0 -5
- package/dist/nano-components/p-b04fd7ca.entry.js.map +0 -1
- package/dist/nano-components/p-b72df1aa.entry.js +0 -5
- package/dist/nano-components/p-b72df1aa.entry.js.map +0 -1
- package/dist/nano-components/p-ce5efc3f.entry.js +0 -5
- package/dist/nano-components/p-ce5efc3f.entry.js.map +0 -1
- package/dist/nano-components/p-d0eefd52.entry.js +0 -5
- package/dist/nano-components/p-e2b2b015.entry.js +0 -5
- package/dist/nano-components/p-e2b2b015.entry.js.map +0 -1
- package/dist/nano-components/p-ed6adde2.js +0 -7
- package/dist/nano-components/p-ed6adde2.js.map +0 -1
- package/dist/types/dom.ie.d.ts +0 -3
- /package/dist/nano-components/{p-39aec880.entry.js.map → p-35d3072e.entry.js.map} +0 -0
- /package/dist/nano-components/{p-3eb6d833.entry.js.map → p-5a4b3fa9.entry.js.map} +0 -0
- /package/dist/nano-components/{p-52ae36ec.js.map → p-8fe51abf.js.map} +0 -0
- /package/dist/nano-components/{p-69a3e911.js.map → p-c579d9aa.js.map} +0 -0
- /package/dist/nano-components/{p-db370094.entry.js.map → p-f7a4c62b.entry.js.map} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"algoliasearch-lite.esm.browser-992a2eff.js","mappings":"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","names":[],"sources":["./node_modules/algoliasearch/dist/algoliasearch-lite.esm.browser.js"],"sourcesContent":["function createBrowserLocalStorageCache(options) {\r\n const namespaceKey = `algoliasearch-client-js-${options.key}`;\r\n // eslint-disable-next-line functional/no-let\r\n let storage;\r\n const getStorage = () => {\r\n if (storage === undefined) {\r\n storage = options.localStorage || window.localStorage;\r\n }\r\n return storage;\r\n };\r\n const getNamespace = () => {\r\n return JSON.parse(getStorage().getItem(namespaceKey) || '{}');\r\n };\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n const keyAsString = JSON.stringify(key);\r\n const value = getNamespace()[keyAsString];\r\n return Promise.all([value || defaultValue(), value !== undefined]);\r\n })\r\n .then(([value, exists]) => {\r\n return Promise.all([value, exists || events.miss(value)]);\r\n })\r\n .then(([value]) => value);\r\n },\r\n set(key, value) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n namespace[JSON.stringify(key)] = value;\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n return value;\r\n });\r\n },\r\n delete(key) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n delete namespace[JSON.stringify(key)];\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n });\r\n },\r\n clear() {\r\n return Promise.resolve().then(() => {\r\n getStorage().removeItem(namespaceKey);\r\n });\r\n },\r\n };\r\n}\n\n// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.14.3';\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nconst MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',\r\n transporterStackTrace,\r\n };\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\n/* eslint no-console: 0 */\r\nfunction createConsoleLogger(logLevel) {\r\n return {\r\n debug(message, args) {\r\n if (LogLevelEnum.Debug >= logLevel) {\r\n console.debug(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n info(message, args) {\r\n if (LogLevelEnum.Info >= logLevel) {\r\n console.info(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n error(message, args) {\r\n console.error(message, args);\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createBrowserXhrRequester() {\r\n return {\r\n send(request) {\r\n return new Promise((resolve) => {\r\n const baseRequester = new XMLHttpRequest();\r\n baseRequester.open(request.method, request.url, true);\r\n Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key]));\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n baseRequester.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onreadystatechange = () => {\r\n if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onerror = () => {\r\n // istanbul ignore next\r\n if (baseRequester.status === 0) {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText || 'Network request failed',\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onload = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText,\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n };\r\n baseRequester.send(request.data);\r\n });\r\n },\r\n };\r\n}\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 1,\r\n read: 2,\r\n write: 30,\r\n },\r\n requester: createBrowserXhrRequester(),\r\n logger: createConsoleLogger(LogLevelEnum.Error),\r\n responsesCache: createInMemoryCache(),\r\n requestsCache: createInMemoryCache({ serializable: false }),\r\n hostsCache: createFallbackableCache({\r\n caches: [\r\n createBrowserLocalStorageCache({ key: `${version}-${appId}` }),\r\n createInMemoryCache(),\r\n ],\r\n }),\r\n userAgent: createUserAgent(version).add({\r\n segment: 'Browser',\r\n version: 'lite',\r\n }),\r\n authMode: AuthMode.WithinQueryParameters,\r\n };\r\n return createSearchClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n search: multipleQueries,\r\n searchForFacetValues: multipleSearchForFacetValues,\r\n multipleQueries,\r\n multipleSearchForFacetValues,\r\n customRequest,\r\n initIndex: base => (indexName) => {\r\n return initIndex(base)(indexName, {\r\n methods: { search, searchForFacetValues, findAnswers },\r\n });\r\n },\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = version;\n\nexport default algoliasearch;\n"],"version":3}
|
@@ -0,0 +1,328 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
'use strict';
|
5
|
+
|
6
|
+
const index = require('./index-71f899a7.js');
|
7
|
+
const throttle = require('./throttle-dfa64b9e.js');
|
8
|
+
|
9
|
+
function parse(searchParams, replacer) {
|
10
|
+
const params = new URLSearchParams([...new URLSearchParams(searchParams)].map(([k, v]) => [
|
11
|
+
k.replace(/([[\]])/g, (_, s) => s === '[' ? '.' : ''),
|
12
|
+
v,
|
13
|
+
]));
|
14
|
+
const t = {};
|
15
|
+
new Set(params.keys()).forEach((paramKey) => {
|
16
|
+
const rawValue = params
|
17
|
+
.getAll(paramKey)
|
18
|
+
.join(',')
|
19
|
+
.split(',')
|
20
|
+
.map(n => decodeURIComponent(n.replace(/\+/g, ' ')));
|
21
|
+
const value = rawValue.length === 1 ? rawValue[0] : rawValue;
|
22
|
+
let key = paramKey;
|
23
|
+
let v = replacer ?
|
24
|
+
replacer({
|
25
|
+
firstRawValue: params.get(paramKey).split(','),
|
26
|
+
key,
|
27
|
+
rawValue,
|
28
|
+
value,
|
29
|
+
}) :
|
30
|
+
value;
|
31
|
+
if (key.includes('.')) {
|
32
|
+
const [f, ...kl] = key.split('.');
|
33
|
+
const o = (t[f] || {});
|
34
|
+
const l = kl.pop();
|
35
|
+
(kl.reduce((p, n) => (p[n] ??= {}), o))[l] = v;
|
36
|
+
key = f;
|
37
|
+
v = o;
|
38
|
+
}
|
39
|
+
t[key] = v;
|
40
|
+
});
|
41
|
+
return t;
|
42
|
+
}
|
43
|
+
|
44
|
+
function stringify(input, replacer) {
|
45
|
+
if (!input)
|
46
|
+
return '';
|
47
|
+
const stack = [['', input]];
|
48
|
+
const sp = new URLSearchParams();
|
49
|
+
while (stack.length) {
|
50
|
+
const [itemKey, itemValue] = stack.pop();
|
51
|
+
Object.entries(itemValue).forEach(([key, rawValue]) => {
|
52
|
+
if (rawValue == null && replacer == null)
|
53
|
+
return;
|
54
|
+
const typeOfValue = typeof (rawValue);
|
55
|
+
const flattenedKey = itemKey ? `${itemKey}.${key}` : key;
|
56
|
+
if (rawValue !== null && typeOfValue === 'object' && !Array.isArray(rawValue)) {
|
57
|
+
stack.push([flattenedKey, rawValue]);
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
let value = typeOfValue === 'string' ? rawValue : '';
|
61
|
+
if (Array.isArray(rawValue))
|
62
|
+
value = rawValue.join(',');
|
63
|
+
else if (rawValue?.toJSON)
|
64
|
+
value = rawValue.toJSON();
|
65
|
+
else if (rawValue?.toString)
|
66
|
+
value = rawValue.toString();
|
67
|
+
else
|
68
|
+
value = String(rawValue);
|
69
|
+
const vv = replacer ?
|
70
|
+
replacer({ flattenedKey, key, rawValue, value }) :
|
71
|
+
value;
|
72
|
+
vv != null && sp.append(flattenedKey, vv);
|
73
|
+
}
|
74
|
+
});
|
75
|
+
}
|
76
|
+
sp.sort();
|
77
|
+
return sp.toString();
|
78
|
+
}
|
79
|
+
|
80
|
+
const STORAGE_NAME_SPACE = 'nano-component-store:';
|
81
|
+
const urlRead = (from = 'hash', win = window) => {
|
82
|
+
if (!win || !win.location)
|
83
|
+
return {};
|
84
|
+
if (from === 'hash' && win.location.hash)
|
85
|
+
return parse(win.location.hash.replace(/^\#/, ''));
|
86
|
+
else if (from === 'query' && win.location.search)
|
87
|
+
return parse(win.location.search.replace(/^\?/, ''));
|
88
|
+
return {};
|
89
|
+
};
|
90
|
+
const urlSave = (object, to = 'hash', win = window, method = 'replace') => {
|
91
|
+
if (!win || !win.history)
|
92
|
+
return;
|
93
|
+
const oldQuery = to === 'query' ? win.location.search : win.location.hash;
|
94
|
+
const basePath = to === 'query'
|
95
|
+
? win.location.pathname
|
96
|
+
: win.location.pathname + win.location.search;
|
97
|
+
let queryStr = stringify(object);
|
98
|
+
if (!queryStr || !queryStr.length) {
|
99
|
+
if (!oldQuery || !oldQuery.length)
|
100
|
+
return;
|
101
|
+
if (method === 'replace')
|
102
|
+
win.history.replaceState(null, null, basePath);
|
103
|
+
else
|
104
|
+
win.history.pushState(null, null, basePath);
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
if (to === 'hash' && win.location.hash === '#' + queryStr) {
|
108
|
+
try {
|
109
|
+
document.querySelector('#' + queryStr).focus();
|
110
|
+
}
|
111
|
+
catch (e) { }
|
112
|
+
return;
|
113
|
+
}
|
114
|
+
queryStr = (to === 'hash' ? '#' : '?') + queryStr;
|
115
|
+
if (queryStr === oldQuery)
|
116
|
+
return;
|
117
|
+
if (method === 'replace')
|
118
|
+
win.history.replaceState(null, null, basePath + queryStr);
|
119
|
+
else
|
120
|
+
win.history.pushState(null, null, basePath + queryStr);
|
121
|
+
};
|
122
|
+
const urlSet = (id, data, to = 'hash', win = window, method = 'replace') => {
|
123
|
+
// sanitize the incoming key
|
124
|
+
id = Object.keys(parse(id))[0];
|
125
|
+
const object = {};
|
126
|
+
object[id] = data;
|
127
|
+
let currentData = urlRead(to, win);
|
128
|
+
currentData = Object.assign(Object.assign({}, currentData), object);
|
129
|
+
urlSave(currentData, to, win, method);
|
130
|
+
};
|
131
|
+
const urlGet = (key, to = 'hash', win = window) => {
|
132
|
+
// sanitize the incoming key
|
133
|
+
key = Object.keys(parse(key))[0];
|
134
|
+
const currentData = urlRead(to, win);
|
135
|
+
return currentData[key] || null;
|
136
|
+
};
|
137
|
+
const sessionSet = (key, object, win = window) => {
|
138
|
+
try {
|
139
|
+
if (!object) {
|
140
|
+
win.sessionStorage.removeItem(STORAGE_NAME_SPACE + key);
|
141
|
+
return;
|
142
|
+
}
|
143
|
+
win.sessionStorage.setItem(STORAGE_NAME_SPACE + key, JSON.stringify(object));
|
144
|
+
}
|
145
|
+
catch (e) {
|
146
|
+
throw e;
|
147
|
+
}
|
148
|
+
};
|
149
|
+
const sessionGet = (key, win = window) => {
|
150
|
+
try {
|
151
|
+
const configStr = win.sessionStorage.getItem(STORAGE_NAME_SPACE + key);
|
152
|
+
return configStr !== null ? JSON.parse(configStr) : null;
|
153
|
+
}
|
154
|
+
catch (e) {
|
155
|
+
throw e;
|
156
|
+
}
|
157
|
+
};
|
158
|
+
const storageSet = (key, object, win = window) => {
|
159
|
+
try {
|
160
|
+
if (!object) {
|
161
|
+
win.localStorage.removeItem(STORAGE_NAME_SPACE + key);
|
162
|
+
return;
|
163
|
+
}
|
164
|
+
win.localStorage.setItem(STORAGE_NAME_SPACE + key, JSON.stringify(object));
|
165
|
+
}
|
166
|
+
catch (e) {
|
167
|
+
throw e;
|
168
|
+
}
|
169
|
+
};
|
170
|
+
const storageGet = (key, win = window) => {
|
171
|
+
try {
|
172
|
+
const configStr = win.localStorage.getItem(STORAGE_NAME_SPACE + key);
|
173
|
+
return configStr !== null ? JSON.parse(configStr) : null;
|
174
|
+
}
|
175
|
+
catch (e) {
|
176
|
+
throw e;
|
177
|
+
}
|
178
|
+
};
|
179
|
+
|
180
|
+
const store = new Map();
|
181
|
+
const ComponentStore = {
|
182
|
+
init(component, keys, method, id) {
|
183
|
+
const getId = id || component.storeId || index.getElement(component).id;
|
184
|
+
if (!getId) {
|
185
|
+
console.error('No id set. You can only instantiate a new component store with an id. ');
|
186
|
+
return;
|
187
|
+
}
|
188
|
+
if (store.get(getId)) {
|
189
|
+
console.error('Duplicate store id usage. A store ID must be unique!', getId);
|
190
|
+
return;
|
191
|
+
}
|
192
|
+
const initialState = keys.reduce((acc, key) => {
|
193
|
+
if (typeof component[key] !== undefined)
|
194
|
+
acc[key] = component[key];
|
195
|
+
return acc;
|
196
|
+
}, {});
|
197
|
+
store.set(getId, new Store(getId, component, keys, initialState, method));
|
198
|
+
const componentstore = store.get(getId);
|
199
|
+
componentstore.dispatchToProps();
|
200
|
+
const connectedCallback = component.connectedCallback;
|
201
|
+
component.connectedCallback = function () {
|
202
|
+
store.set(getId, new Store(getId, component, keys, initialState, method));
|
203
|
+
const componentstore = store.get(getId);
|
204
|
+
if (connectedCallback) {
|
205
|
+
connectedCallback.call(component);
|
206
|
+
}
|
207
|
+
if (componentstore)
|
208
|
+
componentstore.dispatchToProps();
|
209
|
+
};
|
210
|
+
const componentDidRender = component.componentDidRender;
|
211
|
+
component.componentDidRender = function () {
|
212
|
+
const componentstore = store.get(getId);
|
213
|
+
if (componentDidRender) {
|
214
|
+
componentDidRender.call(component);
|
215
|
+
}
|
216
|
+
if (componentstore)
|
217
|
+
componentstore.savePropsToStore();
|
218
|
+
};
|
219
|
+
const disconnectedCallback = component.disconnectedCallback;
|
220
|
+
component.disconnectedCallback = function () {
|
221
|
+
const componentstore = store.get(getId);
|
222
|
+
if (componentstore)
|
223
|
+
componentstore.delete();
|
224
|
+
store.delete(getId);
|
225
|
+
if (disconnectedCallback) {
|
226
|
+
disconnectedCallback.call(component);
|
227
|
+
}
|
228
|
+
};
|
229
|
+
},
|
230
|
+
};
|
231
|
+
class Store {
|
232
|
+
constructor(id, component, keys, initialState, method) {
|
233
|
+
this.method = 'session';
|
234
|
+
this.initialState = {};
|
235
|
+
this.updateStore = true;
|
236
|
+
this.onUrlChange = () => {
|
237
|
+
this.dispatchToProps(false);
|
238
|
+
};
|
239
|
+
this.savePropsToStore = () => {
|
240
|
+
if (this.updateStore) {
|
241
|
+
this.save(this.getData);
|
242
|
+
}
|
243
|
+
else if (!this.updateStore)
|
244
|
+
this.updateStore = true;
|
245
|
+
};
|
246
|
+
this.dispatchToProps = (updateStore = true) => {
|
247
|
+
const savedData = this.retrieve();
|
248
|
+
if (!savedData && updateStore)
|
249
|
+
return;
|
250
|
+
// console.log('dispatching', savedData, this.id, this.initialState);
|
251
|
+
this.updateStore = updateStore;
|
252
|
+
this.keys.forEach((key) => {
|
253
|
+
this.component[key] = savedData ? savedData[key] : undefined;
|
254
|
+
});
|
255
|
+
};
|
256
|
+
this.delete = () => {
|
257
|
+
if (this.method === 'url-hash-push' || this.method === 'url-query-push') {
|
258
|
+
window.removeEventListener('popstate', this.onUrlChange);
|
259
|
+
}
|
260
|
+
};
|
261
|
+
if (!id)
|
262
|
+
throw new Error('No id set. You can only instantiate a new component store with an id');
|
263
|
+
this.id = id;
|
264
|
+
this.keys = keys;
|
265
|
+
this.component = component;
|
266
|
+
if (initialState)
|
267
|
+
this.initialState = initialState;
|
268
|
+
if (method)
|
269
|
+
this.method = method;
|
270
|
+
this.savePropsToStore = throttle.debounce(this.savePropsToStore, 500);
|
271
|
+
if (this.method === 'url-hash-push' || this.method === 'url-query-push') {
|
272
|
+
window.addEventListener('popstate', this.onUrlChange);
|
273
|
+
}
|
274
|
+
}
|
275
|
+
equality(val1, val2) {
|
276
|
+
if (typeof val1 !== typeof val2)
|
277
|
+
return false;
|
278
|
+
if (typeof val1 !== 'object')
|
279
|
+
return val1 === val2;
|
280
|
+
return JSON.stringify(val1) === JSON.stringify(val2);
|
281
|
+
}
|
282
|
+
get getData() {
|
283
|
+
const data = this.keys.reduce((acc, key) => {
|
284
|
+
const isEqual = this.equality(this.component[key], this.initialState[key]);
|
285
|
+
if (typeof this.component[key] !== 'undefined' && !isEqual) {
|
286
|
+
acc[key] = this.component[key];
|
287
|
+
}
|
288
|
+
else if (isEqual)
|
289
|
+
delete acc[key];
|
290
|
+
return acc;
|
291
|
+
}, {});
|
292
|
+
return Object.keys(data).length ? data : undefined;
|
293
|
+
}
|
294
|
+
retrieve() {
|
295
|
+
switch (this.method) {
|
296
|
+
case 'url-hash':
|
297
|
+
case 'url-hash-push':
|
298
|
+
return urlGet(this.id, 'hash');
|
299
|
+
case 'url-query':
|
300
|
+
case 'url-query-push':
|
301
|
+
return urlGet(this.id, 'query');
|
302
|
+
case 'local':
|
303
|
+
return storageGet(this.id);
|
304
|
+
default:
|
305
|
+
return sessionGet(this.id);
|
306
|
+
}
|
307
|
+
}
|
308
|
+
save(data) {
|
309
|
+
switch (this.method) {
|
310
|
+
case 'url-hash':
|
311
|
+
return urlSet(this.id, data, 'hash');
|
312
|
+
case 'url-query':
|
313
|
+
return urlSet(this.id, data, 'query');
|
314
|
+
case 'url-hash-push':
|
315
|
+
return urlSet(this.id, data, 'hash', window, 'push');
|
316
|
+
case 'url-query-push':
|
317
|
+
return urlSet(this.id, data, 'query', window, 'push');
|
318
|
+
case 'local':
|
319
|
+
return storageSet(this.id, data);
|
320
|
+
default:
|
321
|
+
return sessionSet(this.id, data);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
326
|
+
exports.ComponentStore = ComponentStore;
|
327
|
+
|
328
|
+
//# sourceMappingURL=component-store-21cb4901.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"component-store-21cb4901.js","mappings":";;;;;;;;AAAO,SAAS,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AAC9F,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAC7D,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACjD,QAAQ,MAAM,QAAQ,GAAG,MAAM;AAC/B,aAAa,MAAM,CAAC,QAAQ,CAAC;AAC7B,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,aAAa,KAAK,CAAC,GAAG,CAAC;AACvB,aAAa,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AACrE,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,QAAQ;AACxB,YAAY,QAAQ,CAAC;AACrB,gBAAgB,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9D,gBAAgB,GAAG;AACnB,gBAAgB,QAAQ;AACxB,gBAAgB,KAAK;AACrB,aAAa,CAAC;AACd,YAAY,KAAK,CAAC;AAClB,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC/B,YAAY,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnC,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC/B,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,YAAY,GAAG,GAAG,CAAC,CAAC;AACpB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,CAAC;AACb;;ACjCO,SAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC3C,IAAI,IAAI,CAAC,KAAK;AACd,QAAQ,OAAO,EAAE,CAAC;AAClB,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;AACrC,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACjD,QAAQ,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK;AAC/D,YAAY,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI;AACpD,gBAAgB,OAAO;AACvB,YAAY,MAAM,WAAW,GAAG,QAAQ,QAAQ,CAAC,CAAC;AAClD,YAAY,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACrE,YAAY,IAAI,QAAQ,KAAK,IAAI,IAAI,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3F,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,GAAG,WAAW,KAAK,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAC;AACrE,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC3C,oBAAoB,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,qBAAqB,IAAI,QAAQ,EAAE,MAAM;AACzC,oBAAoB,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC9C,qBAAqB,IAAI,QAAQ,EAAE,QAAQ;AAC3C,oBAAoB,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAChD;AACA,oBAAoB,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7C,gBAAgB,MAAM,EAAE,GAAG,QAAQ;AACnC,oBAAoB,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACpE,oBAAoB,KAAK,CAAC;AAC1B,gBAAgB,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC1D,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACd,IAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzB;;AChCA,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAEnD,MAAM,OAAO,GAAG,CACd,OAAyB,MAAM,EAC/B,MAAc,MAAM;EAEpB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ;IAAE,OAAO,EAAE,CAAC;EACrC,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;OAChD,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;IAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;EACvD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CACd,MAAc,EACd,KAAuB,MAAM,EAC7B,MAAc,MAAM,EACpB,SAA6B,SAAS;EAEtC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;IAAE,OAAO;EACjC,MAAM,QAAQ,GAAG,EAAE,KAAK,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC1E,MAAM,QAAQ,GACZ,EAAE,KAAK,OAAO;MACV,GAAG,CAAC,QAAQ,CAAC,QAAQ;MACrB,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;EAClD,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;EAEjC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;IACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;MAAE,OAAO;IAC1C,IAAI,MAAM,KAAK,SAAS;MAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;;MACpE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO;GACR;EAED,IAAI,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,GAAG,QAAQ,EAAE;IACzD,IAAI;MACD,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,QAAQ,CAAiB,CAAC,KAAK,EAAE,CAAC;KACjE;IAAC,OAAO,CAAC,EAAE,GAAE;IACd,OAAO;GACR;EACD,QAAQ,GAAG,CAAC,EAAE,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC;EAClD,IAAI,QAAQ,KAAK,QAAQ;IAAE,OAAO;EAClC,IAAI,MAAM,KAAK,SAAS;IACtB,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;;IACvD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEK,MAAM,MAAM,GAAG,CACpB,EAAU,EACV,IAAY,EACZ,KAAuB,MAAM,EAC7B,MAAc,MAAM,EACpB,SAA6B,SAAS;;EAGtC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/B,MAAM,MAAM,GAAG,EAAE,CAAC;EAClB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;EAElB,IAAI,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;EACnC,WAAW,mCAAQ,WAAW,GAAK,MAAM,CAAE,CAAC;EAC5C,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC;AAEK,MAAM,MAAM,GAAG,CACpB,GAAW,EACX,KAAuB,MAAM,EAC7B,MAAc,MAAM;;EAGpB,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACjC,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;EACrC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CACxB,GAAW,EACX,MAAc,EACd,MAAc,MAAM;EAEpB,IAAI;IACF,IAAI,CAAC,MAAM,EAAE;MACX,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;MACxD,OAAO;KACR;IACD,GAAG,CAAC,cAAc,CAAC,OAAO,CACxB,kBAAkB,GAAG,GAAG,EACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;GACH;EAAC,OAAO,CAAC,EAAE;IACV,MAAM,CAAC,CAAC;GACT;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAAc,MAAM;EAC1D,IAAI;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;IACvE,OAAO,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;GAC1D;EAAC,OAAO,CAAC,EAAE;IACV,MAAM,CAAC,CAAC;GACT;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CACxB,GAAW,EACX,MAAc,EACd,MAAc,MAAM;EAEpB,IAAI;IACF,IAAI,CAAC,MAAM,EAAE;MACX,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;MACtD,OAAO;KACR;IACD,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;GAC5E;EAAC,OAAO,CAAC,EAAE;IACV,MAAM,CAAC,CAAC;GACT;AACH,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAAc,MAAM;EAC1D,IAAI;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;IACrE,OAAO,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;GAC1D;EAAC,OAAO,CAAC,EAAE;IACV,MAAM,CAAC,CAAC;GACT;AACH,CAAC;;AC5GD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;MAE1B,cAAc,GAAG;EAC5B,IAAI,CACF,SAAoB,EACpB,IAAc,EACd,MAAuB,EACvB,EAAW;IAEX,MAAM,KAAK,GAAG,EAAE,IAAI,SAAS,CAAC,OAAO,IAAIA,gBAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE;MACV,OAAO,CAAC,KAAK,CACX,wEAAwE,CACzE,CAAC;MACF,OAAO;KACR;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;MACpB,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,KAAK,CACN,CAAC;MACF,OAAO;KACR;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG;MACxC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;MACnE,OAAO,GAAG,CAAC;KACZ,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,cAAc,CAAC,eAAe,EAAE,CAAC;IAEjC,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;IACtD,SAAS,CAAC,iBAAiB,GAAG;MAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;MAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACxC,IAAI,iBAAiB,EAAE;QACrB,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OACnC;MACD,IAAI,cAAc;QAAE,cAAc,CAAC,eAAe,EAAE,CAAC;KACtD,CAAC;IAEF,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;IACxD,SAAS,CAAC,kBAAkB,GAAG;MAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACxC,IAAI,kBAAkB,EAAE;QACtB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OACpC;MACD,IAAI,cAAc;QAAE,cAAc,CAAC,gBAAgB,EAAE,CAAC;KACvD,CAAC;IAEF,MAAM,oBAAoB,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAC5D,SAAS,CAAC,oBAAoB,GAAG;MAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACxC,IAAI,cAAc;QAAE,cAAc,CAAC,MAAM,EAAE,CAAC;MAC5C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;MACpB,IAAI,oBAAoB,EAAE;QACxB,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OACtC;KACF,CAAC;GACH;EACD;AAEF,MAAM,KAAK;EAQT,YACE,EAAU,EACV,SAAoB,EACpB,IAAc,EACd,YAAkB,EAClB,MAAuB;IAZjB,WAAM,GAAmB,SAAS,CAAC;IAInC,iBAAY,GAA2B,EAAE,CAAC;IAC1C,gBAAW,GAAY,IAAI,CAAC;IA0B5B,gBAAW,GAAG;MACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC7B,CAAC;IAsDK,qBAAgB,GAAG;MACxB,IAAI,IAAI,CAAC,WAAW,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;OACzB;WAAM,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACvD,CAAC;IAEK,oBAAe,GAAG,CAAC,WAAW,GAAG,IAAI;MAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;MAClC,IAAI,CAAC,SAAS,IAAI,WAAW;QAAE,OAAO;;MAGtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;MAE/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;QACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;OAC9D,CAAC,CAAC;KACJ,CAAC;IAEK,WAAM,GAAG;MACd,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,EAAE;QACvE,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;OAC1D;KACF,CAAC;IA/FA,IAAI,CAAC,EAAE;MACL,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;IACJ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,IAAI,YAAY;MAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnD,IAAI,MAAM;MAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAEjC,IAAI,CAAC,gBAAgB,GAAGC,iBAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAE7D,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,EAAE;MACvE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACvD;GACF;EAMO,QAAQ,CAAC,IAAS,EAAE,IAAS;IACnC,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI;MAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ;MAAE,OAAO,IAAI,KAAK,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;GACtD;EAED,IAAI,OAAO;IACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG;MACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CACvB,CAAC;MACF,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,WAAW,IAAI,CAAC,OAAO,EAAE;QAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;OAChC;WAAM,IAAI,OAAO;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;MACpC,OAAO,GAAG,CAAC;KACZ,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;GACpD;EAEO,QAAQ;IACd,QAAQ,IAAI,CAAC,MAAM;MACjB,KAAK,UAAU,CAAC;MAChB,KAAK,eAAe;QAClB,OAAOC,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;MACxC,KAAK,WAAW,CAAC;MACjB,KAAK,gBAAgB;QACnB,OAAOA,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;MACzC,KAAK,OAAO;QACV,OAAOC,UAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACpC;QACE,OAAOC,UAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrC;GACF;EAEO,IAAI,CAAC,IAAS;IACpB,QAAQ,IAAI,CAAC,MAAM;MACjB,KAAK,UAAU;QACb,OAAOC,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;MAC9C,KAAK,WAAW;QACd,OAAOA,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;MAC/C,KAAK,eAAe;QAClB,OAAOA,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;MAC9D,KAAK,gBAAgB;QACnB,OAAOA,MAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;MAC/D,KAAK,OAAO;QACV,OAAOC,UAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;MAC1C;QACE,OAAOC,UAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC3C;GACF;;;;;","names":["getElement","debounce","getset.urlGet","getset.storageGet","getset.sessionGet","getset.urlSet","getset.storageSet","getset.sessionSet"],"sources":["./node_modules/tyqs/dist/parse.js","./node_modules/tyqs/dist/stringify.js","./src/utils/store/get-set.ts","./src/utils/store/component-store.ts"],"sourcesContent":["export function parse(searchParams, replacer) {\n const params = new URLSearchParams([...new URLSearchParams(searchParams)].map(([k, v]) => [\n k.replace(/([[\\]])/g, (_, s) => s === '[' ? '.' : ''),\n v,\n ]));\n const t = {};\n new Set(params.keys()).forEach((paramKey) => {\n const rawValue = params\n .getAll(paramKey)\n .join(',')\n .split(',')\n .map(n => decodeURIComponent(n.replace(/\\+/g, ' ')));\n const value = rawValue.length === 1 ? rawValue[0] : rawValue;\n let key = paramKey;\n let v = replacer ?\n replacer({\n firstRawValue: params.get(paramKey).split(','),\n key,\n rawValue,\n value,\n }) :\n value;\n if (key.includes('.')) {\n const [f, ...kl] = key.split('.');\n const o = (t[f] || {});\n const l = kl.pop();\n (kl.reduce((p, n) => (p[n] ??= {}), o))[l] = v;\n key = f;\n v = o;\n }\n t[key] = v;\n });\n return t;\n}\n//# sourceMappingURL=parse.js.map","export function stringify(input, replacer) {\n if (!input)\n return '';\n const stack = [['', input]];\n const sp = new URLSearchParams();\n while (stack.length) {\n const [itemKey, itemValue] = stack.pop();\n Object.entries(itemValue).forEach(([key, rawValue]) => {\n if (rawValue == null && replacer == null)\n return;\n const typeOfValue = typeof (rawValue);\n const flattenedKey = itemKey ? `${itemKey}.${key}` : key;\n if (rawValue !== null && typeOfValue === 'object' && !Array.isArray(rawValue)) {\n stack.push([flattenedKey, rawValue]);\n }\n else {\n let value = typeOfValue === 'string' ? rawValue : '';\n if (Array.isArray(rawValue))\n value = rawValue.join(',');\n else if (rawValue?.toJSON)\n value = rawValue.toJSON();\n else if (rawValue?.toString)\n value = rawValue.toString();\n else\n value = String(rawValue);\n const vv = replacer ?\n replacer({ flattenedKey, key, rawValue, value }) :\n value;\n vv != null && sp.append(flattenedKey, vv);\n }\n });\n }\n sp.sort();\n return sp.toString();\n}\n//# sourceMappingURL=stringify.js.map","import { parse, stringify } from 'tyqs';\n\nconst STORAGE_NAME_SPACE = 'nano-component-store:';\n\nconst urlRead = (\n from: 'hash' | 'query' = 'hash',\n win: Window = window\n): void | object => {\n if (!win || !win.location) return {};\n if (from === 'hash' && win.location.hash)\n return parse(win.location.hash.replace(/^\\#/, ''));\n else if (from === 'query' && win.location.search)\n return parse(win.location.search.replace(/^\\?/, ''));\n return {};\n};\n\nconst urlSave = (\n object: object,\n to: 'hash' | 'query' = 'hash',\n win: Window = window,\n method: 'replace' | 'push' = 'replace'\n) => {\n if (!win || !win.history) return;\n const oldQuery = to === 'query' ? win.location.search : win.location.hash;\n const basePath =\n to === 'query'\n ? win.location.pathname\n : win.location.pathname + win.location.search;\n let queryStr = stringify(object);\n\n if (!queryStr || !queryStr.length) {\n if (!oldQuery || !oldQuery.length) return;\n if (method === 'replace') win.history.replaceState(null, null, basePath);\n else win.history.pushState(null, null, basePath);\n return;\n }\n\n if (to === 'hash' && win.location.hash === '#' + queryStr) {\n try {\n (document.querySelector('#' + queryStr) as HTMLElement).focus();\n } catch (e) {}\n return;\n }\n queryStr = (to === 'hash' ? '#' : '?') + queryStr;\n if (queryStr === oldQuery) return;\n if (method === 'replace')\n win.history.replaceState(null, null, basePath + queryStr);\n else win.history.pushState(null, null, basePath + queryStr);\n};\n\nexport const urlSet = (\n id: string,\n data: object,\n to: 'hash' | 'query' = 'hash',\n win: Window = window,\n method: 'replace' | 'push' = 'replace'\n) => {\n // sanitize the incoming key\n id = Object.keys(parse(id))[0];\n const object = {};\n object[id] = data;\n\n let currentData = urlRead(to, win);\n currentData = { ...currentData, ...object };\n urlSave(currentData, to, win, method);\n};\n\nexport const urlGet = (\n key: string,\n to: 'hash' | 'query' = 'hash',\n win: Window = window\n) => {\n // sanitize the incoming key\n key = Object.keys(parse(key))[0];\n const currentData = urlRead(to, win);\n return currentData[key] || null;\n};\n\nexport const sessionSet = (\n key: string,\n object: object,\n win: Window = window\n) => {\n try {\n if (!object) {\n win.sessionStorage.removeItem(STORAGE_NAME_SPACE + key);\n return;\n }\n win.sessionStorage.setItem(\n STORAGE_NAME_SPACE + key,\n JSON.stringify(object)\n );\n } catch (e) {\n throw e;\n }\n};\n\nexport const sessionGet = (key: string, win: Window = window) => {\n try {\n const configStr = win.sessionStorage.getItem(STORAGE_NAME_SPACE + key);\n return configStr !== null ? JSON.parse(configStr) : null;\n } catch (e) {\n throw e;\n }\n};\n\nexport const storageSet = (\n key: string,\n object: object,\n win: Window = window\n) => {\n try {\n if (!object) {\n win.localStorage.removeItem(STORAGE_NAME_SPACE + key);\n return;\n }\n win.localStorage.setItem(STORAGE_NAME_SPACE + key, JSON.stringify(object));\n } catch (e) {\n throw e;\n }\n};\n\nexport const storageGet = (key: string, win: Window = window) => {\n try {\n const configStr = win.localStorage.getItem(STORAGE_NAME_SPACE + key);\n return configStr !== null ? JSON.parse(configStr) : null;\n } catch (e) {\n throw e;\n }\n};\n","import { getElement } from '@stencil/core';\nimport { debounce } from '../throttle';\nimport * as getset from './get-set';\n\nexport type StorageParams = Record<string, any>;\n\nexport type StorageMethods =\n | 'url-hash'\n | 'url-query'\n | 'url-hash-push'\n | 'url-query-push'\n | 'local'\n | 'session';\n\ninterface Component {\n connectedCallback?(): void;\n disconnectedCallback?(): void;\n componentDidRender?(): void;\n [key: string]: any;\n}\n\nconst store = new Map<string, Store>();\n\nexport const ComponentStore = {\n init(\n component: Component,\n keys: string[],\n method?: StorageMethods,\n id?: string\n ) {\n const getId = id || component.storeId || getElement(component).id;\n if (!getId) {\n console.error(\n 'No id set. You can only instantiate a new component store with an id. '\n );\n return;\n }\n if (store.get(getId)) {\n console.error(\n 'Duplicate store id usage. A store ID must be unique!',\n getId\n );\n return;\n }\n\n const initialState = keys.reduce((acc, key) => {\n if (typeof component[key] !== undefined) acc[key] = component[key];\n return acc;\n }, {});\n\n store.set(getId, new Store(getId, component, keys, initialState, method));\n const componentstore = store.get(getId);\n componentstore.dispatchToProps();\n\n const connectedCallback = component.connectedCallback;\n component.connectedCallback = function () {\n store.set(getId, new Store(getId, component, keys, initialState, method));\n const componentstore = store.get(getId);\n if (connectedCallback) {\n connectedCallback.call(component);\n }\n if (componentstore) componentstore.dispatchToProps();\n };\n\n const componentDidRender = component.componentDidRender;\n component.componentDidRender = function () {\n const componentstore = store.get(getId);\n if (componentDidRender) {\n componentDidRender.call(component);\n }\n if (componentstore) componentstore.savePropsToStore();\n };\n\n const disconnectedCallback = component.disconnectedCallback;\n component.disconnectedCallback = function () {\n const componentstore = store.get(getId);\n if (componentstore) componentstore.delete();\n store.delete(getId);\n if (disconnectedCallback) {\n disconnectedCallback.call(component);\n }\n };\n },\n};\n\nclass Store {\n private method: StorageMethods = 'session';\n private keys: string[];\n private id: string;\n private component: Component;\n private initialState: { [key: string]: any } = {};\n private updateStore: boolean = true;\n\n constructor(\n id: string,\n component: Component,\n keys: string[],\n initialState?: any,\n method?: StorageMethods\n ) {\n if (!id)\n throw new Error(\n 'No id set. You can only instantiate a new component store with an id'\n );\n this.id = id;\n this.keys = keys;\n this.component = component;\n if (initialState) this.initialState = initialState;\n if (method) this.method = method;\n\n this.savePropsToStore = debounce(this.savePropsToStore, 500);\n\n if (this.method === 'url-hash-push' || this.method === 'url-query-push') {\n window.addEventListener('popstate', this.onUrlChange);\n }\n }\n\n private onUrlChange = () => {\n this.dispatchToProps(false);\n };\n\n private equality(val1: any, val2: any) {\n if (typeof val1 !== typeof val2) return false;\n if (typeof val1 !== 'object') return val1 === val2;\n return JSON.stringify(val1) === JSON.stringify(val2);\n }\n\n get getData() {\n const data = this.keys.reduce((acc, key) => {\n const isEqual = this.equality(\n this.component[key],\n this.initialState[key]\n );\n if (typeof this.component[key] !== 'undefined' && !isEqual) {\n acc[key] = this.component[key];\n } else if (isEqual) delete acc[key];\n return acc;\n }, {});\n return Object.keys(data).length ? data : undefined;\n }\n\n private retrieve() {\n switch (this.method) {\n case 'url-hash':\n case 'url-hash-push':\n return getset.urlGet(this.id, 'hash');\n case 'url-query':\n case 'url-query-push':\n return getset.urlGet(this.id, 'query');\n case 'local':\n return getset.storageGet(this.id);\n default:\n return getset.sessionGet(this.id);\n }\n }\n\n private save(data: any) {\n switch (this.method) {\n case 'url-hash':\n return getset.urlSet(this.id, data, 'hash');\n case 'url-query':\n return getset.urlSet(this.id, data, 'query');\n case 'url-hash-push':\n return getset.urlSet(this.id, data, 'hash', window, 'push');\n case 'url-query-push':\n return getset.urlSet(this.id, data, 'query', window, 'push');\n case 'local':\n return getset.storageSet(this.id, data);\n default:\n return getset.sessionSet(this.id, data);\n }\n }\n\n public savePropsToStore = () => {\n if (this.updateStore) {\n this.save(this.getData);\n } else if (!this.updateStore) this.updateStore = true;\n };\n\n public dispatchToProps = (updateStore = true) => {\n const savedData = this.retrieve();\n if (!savedData && updateStore) return;\n\n // console.log('dispatching', savedData, this.id, this.initialState);\n this.updateStore = updateStore;\n\n this.keys.forEach((key) => {\n this.component[key] = savedData ? savedData[key] : undefined;\n });\n };\n\n public delete = () => {\n if (this.method === 'url-hash-push' || this.method === 'url-query-push') {\n window.removeEventListener('popstate', this.onUrlChange);\n }\n };\n}\n"],"version":3}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
'use strict';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Add multiple event listeners with the same callback function
|
8
|
+
* @param el the element which emits events
|
9
|
+
* @param events the event names to listen to (string separated by a space)
|
10
|
+
* @param fn the function to call
|
11
|
+
* @param opts the event options to apply
|
12
|
+
*/
|
13
|
+
function addListeners(el, events, fn, opts) {
|
14
|
+
events
|
15
|
+
.split(' ')
|
16
|
+
.forEach((e) => el.addEventListener(e, fn, opts));
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Waits for a specific event to be emitted from an element.
|
20
|
+
* Ignores events that bubble up from child elements.
|
21
|
+
* @param el an html element
|
22
|
+
* @param eventName name of the event
|
23
|
+
*/
|
24
|
+
function waitForEvent(el, eventName) {
|
25
|
+
return new Promise((resolve) => {
|
26
|
+
function done(event) {
|
27
|
+
if (event.target === el) {
|
28
|
+
el.removeEventListener(eventName, done);
|
29
|
+
resolve();
|
30
|
+
}
|
31
|
+
}
|
32
|
+
el.addEventListener(eventName, done);
|
33
|
+
});
|
34
|
+
}
|
35
|
+
|
36
|
+
exports.addListeners = addListeners;
|
37
|
+
exports.waitForEvent = waitForEvent;
|
38
|
+
|
39
|
+
//# sourceMappingURL=events-db0a42ee.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"events-db0a42ee.js","mappings":";;;;;AAAA;;;;;;;SAOgB,YAAY,CAC1B,EAAsB,EACtB,MAAc,EACd,EAAsB,EACtB,IAA8B;EAE9B,MAAM;KACH,KAAK,CAAC,GAAG,CAAC;KACV,OAAO,CAAC,CAAC,CAAC,KACT,EAAE,CAAC,gBAAgB,CAAC,CAA8B,EAAE,EAAE,EAAE,IAAI,CAAC,CAC9D,CAAC;AACN,CAAC;AAkBD;;;;;;SAMgB,YAAY,CAAC,EAAe,EAAE,SAAiB;EAC7D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO;IAC/B,SAAS,IAAI,CAAC,KAAY;MACxB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;QACvB,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;OACX;KACF;IAED,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;GACtC,CAAC,CAAC;AACL;;;;;","names":[],"sources":["./src/utils/events.ts"],"sourcesContent":["/**\n * Add multiple event listeners with the same callback function\n * @param el the element which emits events\n * @param events the event names to listen to (string separated by a space)\n * @param fn the function to call\n * @param opts the event options to apply\n */\nexport function addListeners(\n el: Element | Document,\n events: string,\n fn: (e: Event) => void,\n opts?: AddEventListenerOptions\n) {\n events\n .split(' ')\n .forEach((e) =>\n el.addEventListener(e as keyof HTMLElementEventMap, fn, opts)\n );\n}\n\n/**\n * Remove multiple event listeners with the same callback function\n * @param el the element which emits events\n * @param events the event names to listen to (string separated by a space)\n * @param fn the function to call\n */\nexport function removeListeners(\n el: Element | Document,\n events: string,\n fn: (e: Event) => void\n) {\n events\n .split(' ')\n .forEach((e) => el.removeEventListener(e as keyof HTMLElementEventMap, fn));\n}\n\n/**\n * Waits for a specific event to be emitted from an element.\n * Ignores events that bubble up from child elements.\n * @param el an html element\n * @param eventName name of the event\n */\nexport function waitForEvent(el: HTMLElement, eventName: string) {\n return new Promise<void>((resolve) => {\n function done(event: Event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n\n el.addEventListener(eventName, done);\n });\n}\n"],"version":3}
|