@leaflink/stash 42.4.4 → 42.5.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/README.md +27 -3
- package/dist/ActionsDropdown.js +15 -20
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/AddressSelect.js +34 -45
- package/dist/AddressSelect.js.map +1 -1
- package/dist/Alert.js +58 -57
- package/dist/Alert.js.map +1 -1
- package/dist/AppNavigationItem.js +4 -6
- package/dist/AppNavigationItem.js.map +1 -1
- package/dist/AppTopbar.js +13 -15
- package/dist/AppTopbar.js.map +1 -1
- package/dist/ButtonGroup.js +12 -14
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/CardMedia.js +9 -11
- package/dist/CardMedia.js.map +1 -1
- package/dist/Carousel.js +41 -44
- package/dist/Carousel.js.map +1 -1
- package/dist/Checkbox.js +9 -11
- package/dist/Checkbox.js.map +1 -1
- package/dist/ChevronToggle.js +2 -4
- package/dist/ChevronToggle.js.map +1 -1
- package/dist/Chip.js +4 -6
- package/dist/Chip.js.map +1 -1
- package/dist/ContextSwitcher.js +12 -17
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/Copy.js +19 -24
- package/dist/Copy.js.map +1 -1
- package/dist/CurrencyInput.js +8 -13
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/DataView.js +48 -59
- package/dist/DataView.js.map +1 -1
- package/dist/DataViewFilters.js +87 -97
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/DataViewSortButton.js +14 -18
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewToolbar.js +12 -14
- package/dist/DataViewToolbar.js.map +1 -1
- package/dist/DatePicker.js +2624 -2581
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePicker.vue.d.ts +19 -0
- package/dist/Dialog.js +6 -9
- package/dist/Dialog.js.map +1 -1
- package/dist/Dropdown.js +15 -20
- package/dist/Dropdown.js.map +1 -1
- package/dist/EmptyState.js +10 -13
- package/dist/EmptyState.js.map +1 -1
- package/dist/Field.js +3 -6
- package/dist/Field.js.map +1 -1
- package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js → Field.vue_vue_type_script_setup_true_lang-475832fe.js} +2 -2
- package/dist/{Field.vue_vue_type_script_setup_true_lang-c864abd3.js.map → Field.vue_vue_type_script_setup_true_lang-475832fe.js.map} +1 -1
- package/dist/FileUpload.js +27 -30
- package/dist/FileUpload.js.map +1 -1
- package/dist/FilterChip.js +10 -13
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterDrawerItem.js +5 -8
- package/dist/FilterDrawerItem.js.map +1 -1
- package/dist/FilterDropdown.js +73 -88
- package/dist/FilterDropdown.js.map +1 -1
- package/dist/FilterSelect.js +15 -18
- package/dist/FilterSelect.js.map +1 -1
- package/dist/Filters.js +67 -78
- package/dist/Filters.js.map +1 -1
- package/dist/HttpError.js +4 -7
- package/dist/HttpError.js.map +1 -1
- package/dist/Icon.js +236 -14
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.vue.d.ts +2 -2
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js +11 -0
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js.map +1 -0
- package/dist/IconLabel.js +4 -6
- package/dist/IconLabel.js.map +1 -1
- package/dist/Illustration.js +6 -8
- package/dist/Illustration.js.map +1 -1
- package/dist/Image.js +39 -49
- package/dist/Image.js.map +1 -1
- package/dist/InlineEdit.js +10 -12
- package/dist/InlineEdit.js.map +1 -1
- package/dist/Input.js +50 -55
- package/dist/Input.js.map +1 -1
- package/dist/InputOptions.js +20 -29
- package/dist/InputOptions.js.map +1 -1
- package/dist/Label.js +1 -4
- package/dist/Label.js.map +1 -1
- package/dist/LicenseChip.js +7 -9
- package/dist/LicenseChip.js.map +1 -1
- package/dist/ListItem.js +11 -13
- package/dist/ListItem.js.map +1 -1
- package/dist/ListView.js +47 -58
- package/dist/ListView.js.map +1 -1
- package/dist/Metric.js +43 -45
- package/dist/Metric.js.map +1 -1
- package/dist/Metric.vue.d.ts +24 -15
- package/dist/Modal.js +16 -19
- package/dist/Modal.js.map +1 -1
- package/dist/Modals.js +16 -26
- package/dist/Modals.js.map +1 -1
- package/dist/ModalsPlugin.js +12 -22
- package/dist/ModalsPlugin.js.map +1 -1
- package/dist/ObfuscateText.js +7 -9
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/PageNavigation.js +25 -29
- package/dist/PageNavigation.js.map +1 -1
- package/dist/Paginate.js +29 -31
- package/dist/Paginate.js.map +1 -1
- package/dist/QuickAction.js +13 -15
- package/dist/QuickAction.js.map +1 -1
- package/dist/RadioGroup.js +86 -89
- package/dist/RadioGroup.js.map +1 -1
- package/dist/SearchBar.js +18 -20
- package/dist/SearchBar.js.map +1 -1
- package/dist/Select.js +13 -23
- package/dist/Select.js.map +1 -1
- package/dist/SelectStatus.js +26 -36
- package/dist/SelectStatus.js.map +1 -1
- package/dist/Step.js +19 -21
- package/dist/Step.js.map +1 -1
- package/dist/Switch.js +8 -10
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.js +25 -30
- package/dist/Tab.js.map +1 -1
- package/dist/Table.js +19 -21
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.js +21 -22
- package/dist/TableCell.js.map +1 -1
- package/dist/TableHeaderCell.js +4 -4
- package/dist/TableHeaderRow.js +7 -9
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableRow.js +22 -24
- package/dist/TableRow.js.map +1 -1
- package/dist/Tabs.js +11 -16
- package/dist/Tabs.js.map +1 -1
- package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js} +3 -3
- package/dist/{Tabs.vue_vue_type_script_setup_true_lang-ba383fda.js.map → Tabs.vue_vue_type_script_setup_true_lang-aca4f8b8.js.map} +1 -1
- package/dist/Textarea.js +10 -13
- package/dist/Textarea.js.map +1 -1
- package/dist/Toast.js +8 -10
- package/dist/Toast.js.map +1 -1
- package/dist/Toasts.js +14 -25
- package/dist/Toasts.js.map +1 -1
- package/dist/ToastsPlugin.js +14 -25
- package/dist/ToastsPlugin.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/index.js +53 -62
- package/dist/index.js.map +1 -1
- package/dist/locale.js +12 -15
- package/dist/locale.js.map +1 -1
- package/dist/{searchFuzzy-13c124f8.js → searchFuzzy-74a7de1c.js} +2 -2
- package/dist/{searchFuzzy-13c124f8.js.map → searchFuzzy-74a7de1c.js.map} +1 -1
- package/dist/storage.js +6 -11
- package/dist/storage.js.map +1 -1
- package/dist/tooltip.js +21 -26
- package/dist/tooltip.js.map +1 -1
- package/dist/useGoogleMaps.js +91 -226
- package/dist/useGoogleMaps.js.map +1 -1
- package/dist/useModals.js +21 -31
- package/dist/useModals.js.map +1 -1
- package/dist/useSearch.js +17 -22
- package/dist/useSearch.js.map +1 -1
- package/dist/useToasts.js +25 -36
- package/dist/useToasts.js.map +1 -1
- package/dist/useValidation.js +79 -108
- package/dist/useValidation.js.map +1 -1
- package/dist/utils/calculateElementOverflow.js +9 -14
- package/dist/utils/calculateElementOverflow.js.map +1 -1
- package/dist/utils/createQueryString.js +9 -15
- package/dist/utils/createQueryString.js.map +1 -1
- package/dist/utils/helpers.js +46 -59
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/i18n.js +17 -20
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/searchFuzzy.js +7 -12
- package/dist/utils/searchFuzzy.js.map +1 -1
- package/dist/utils/storage.js +10 -15
- package/dist/utils/storage.js.map +1 -1
- package/dist/viewable.js +26 -34
- package/dist/viewable.js.map +1 -1
- package/package.json +4 -6
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js +0 -243
- package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js.map +0 -1
- package/dist/_MapCache-65811284.js +0 -188
- package/dist/_MapCache-65811284.js.map +0 -1
- package/dist/_Uint8Array-06e4d083.js +0 -66
- package/dist/_Uint8Array-06e4d083.js.map +0 -1
- package/dist/_baseAssignValue-dd1499b4.js +0 -22
- package/dist/_baseAssignValue-dd1499b4.js.map +0 -1
- package/dist/_baseIsEqual-d594c87f.js +0 -171
- package/dist/_baseIsEqual-d594c87f.js.map +0 -1
- package/dist/_createCompounder-ae01a723.js +0 -245
- package/dist/_createCompounder-ae01a723.js.map +0 -1
- package/dist/_getAllKeys-5e735d41.js +0 -44
- package/dist/_getAllKeys-5e735d41.js.map +0 -1
- package/dist/_getPrototype-3e6fccd6.js +0 -7
- package/dist/_getPrototype-3e6fccd6.js.map +0 -1
- package/dist/_getTag-4db47fa6.js +0 -47
- package/dist/_getTag-4db47fa6.js.map +0 -1
- package/dist/_initCloneObject-161353b9.js +0 -88
- package/dist/_initCloneObject-161353b9.js.map +0 -1
- package/dist/_overArg-6d920d99.js +0 -9
- package/dist/_overArg-6d920d99.js.map +0 -1
- package/dist/capitalize-667d9f60.js +0 -42
- package/dist/capitalize-667d9f60.js.map +0 -1
- package/dist/cloneDeep-5bc375b0.js +0 -146
- package/dist/cloneDeep-5bc375b0.js.map +0 -1
- package/dist/debounce-6aca1ca9.js +0 -86
- package/dist/debounce-6aca1ca9.js.map +0 -1
- package/dist/get-27d90892.js +0 -66
- package/dist/get-27d90892.js.map +0 -1
- package/dist/identity-452d03fd.js +0 -20
- package/dist/identity-452d03fd.js.map +0 -1
- package/dist/isArrayLike-09233e52.js +0 -61
- package/dist/isArrayLike-09233e52.js.map +0 -1
- package/dist/isEmpty-2fbad344.js +0 -23
- package/dist/isEmpty-2fbad344.js.map +0 -1
- package/dist/isEqual-fca467fb.js +0 -8
- package/dist/isEqual-fca467fb.js.map +0 -1
- package/dist/isObjectLike-54341556.js +0 -39
- package/dist/isObjectLike-54341556.js.map +0 -1
- package/dist/isPlainObject-55c7f916.js +0 -16
- package/dist/isPlainObject-55c7f916.js.map +0 -1
- package/dist/merge-b14fad9d.js +0 -124
- package/dist/merge-b14fad9d.js.map +0 -1
- package/dist/toString-7d5bf363.js +0 -29
- package/dist/toString-7d5bf363.js.map +0 -1
- package/dist/uniqueId-847efe53.js +0 -10
- package/dist/uniqueId-847efe53.js.map +0 -1
package/dist/utils/storage.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { hashCode as s } from "./helpers.js";
|
|
2
|
-
import "
|
|
3
|
-
import "
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import "../get-27d90892.js";
|
|
7
|
-
import "../_MapCache-65811284.js";
|
|
8
|
-
import "../isPlainObject-55c7f916.js";
|
|
9
|
-
import "../_getPrototype-3e6fccd6.js";
|
|
10
|
-
import "../_overArg-6d920d99.js";
|
|
2
|
+
import "lodash-es/camelCase";
|
|
3
|
+
import "lodash-es/get";
|
|
4
|
+
import "lodash-es/isFinite";
|
|
5
|
+
import "lodash-es/isPlainObject";
|
|
11
6
|
import "../constants.js";
|
|
12
7
|
const n = "ll";
|
|
13
8
|
function i(t, o, l = {}) {
|
|
@@ -37,7 +32,7 @@ function g(t, o = {}) {
|
|
|
37
32
|
console.error(a);
|
|
38
33
|
}
|
|
39
34
|
}
|
|
40
|
-
function
|
|
35
|
+
function $(t, o) {
|
|
41
36
|
const l = JSON.parse(localStorage.getItem(t) || "{}");
|
|
42
37
|
try {
|
|
43
38
|
return (l[o] || {})[s(location.pathname)];
|
|
@@ -46,7 +41,7 @@ function E(t, o) {
|
|
|
46
41
|
return;
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
|
-
function
|
|
44
|
+
function h(t, o) {
|
|
50
45
|
const e = { ...JSON.parse(localStorage.getItem(t) || "{}") };
|
|
51
46
|
e[o] && delete e[o][s(location.pathname)];
|
|
52
47
|
try {
|
|
@@ -55,17 +50,17 @@ function F(t, o) {
|
|
|
55
50
|
r && r.name === "QuotaExceededError" ? console.log("Your localStorage is full. Failed to set item.") : console.log("Failed to set item to localStorage.");
|
|
56
51
|
}
|
|
57
52
|
}
|
|
58
|
-
const
|
|
53
|
+
const y = {
|
|
59
54
|
setItem: i,
|
|
60
55
|
getItem: m,
|
|
61
56
|
removeItem: g
|
|
62
57
|
};
|
|
63
58
|
export {
|
|
64
59
|
m as getPersistentItem,
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
$ as getPersistentItem__deprecated,
|
|
61
|
+
y as persistentStorage,
|
|
67
62
|
g as removePersistentItem,
|
|
68
|
-
|
|
63
|
+
h as removePersistentItem__deprecated,
|
|
69
64
|
i as setPersistentItem
|
|
70
65
|
};
|
|
71
66
|
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sources":["../../src/utils/storage.ts"],"sourcesContent":["import { hashCode } from './helpers';\n\nconst PREFIX = 'll';\n\n/**\n * Persist an item to localStorage, unique to each url pathname unless [options.global] is set to true\n *\n * If global is set to false (the default):\n * name: 'foo'\n * data: { a: 'a' }\n *\n * localStorage key: 'll-foo-/c/the-leaf-shop/customers/'\n * localStorage value: { a: 'a' }\n *\n * If global is set to true:\n * name: 'bar'\n * data: { b: 'b' }\n *\n * localStorage key: 'll-bar'\n * localStorage value: { b: 'b' }\n *\n * @param {string} name - the storage key name, often a component name\n * @param {object} data - the data to persist\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n */\nexport function setPersistentItem(name, data, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const storageKey = `${PREFIX}-${name}${scope}`;\n const storageValue = JSON.stringify(data);\n\n try {\n localStorage.setItem(storageKey, storageValue);\n } catch (error: any) {\n if (error && error.name === 'QuotaExceededError') {\n console.log(`Your localStorage is full. Failed to save item for key: ${storageKey}`);\n } else {\n console.log(`Failed to save value to localStorage for key: ${storageKey}`);\n }\n }\n}\n\n/**\n * Retrieve an item from localStorage, previously saved by `setPersistentItem`.\n * @param {string} name The storage key name, often a component name\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n * @returns {any | undefined}\n */\nexport function getPersistentItem(name, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const item = localStorage.getItem(`${PREFIX}-${name}${scope}`);\n\n // localStorage.getItem always returns a string or null. When it's a string,\n // it usually contains an object or a boolean. If the value is 'false', we\n // need to ensure we return false instead of null.\n if (item === null || item === 'undefined') {\n return null;\n }\n\n try {\n return JSON.parse(item);\n } catch (error) {\n console.error(error);\n\n return null;\n }\n}\n\n/**\n * Remove an item from localStorage, previously saved by `setPersistentItem`.\n * @param {string} name The storage key name, often a component name\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n */\nexport function removePersistentItem(name, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const storageKey = `${PREFIX}-${name}${scope}`;\n const item = localStorage.getItem(storageKey);\n\n if (item === null) {\n return;\n }\n\n try {\n localStorage.removeItem(storageKey);\n } catch (error) {\n console.error(error);\n }\n}\n\n/**\n ***************** DEPRECATED *****************\n */\nexport function getPersistentItem__deprecated(itemKey: string, name) {\n const item = JSON.parse(localStorage.getItem(itemKey) || '{}');\n\n try {\n return (item[name] || {})[hashCode(location.pathname)];\n } catch (error) {\n console.error(error);\n\n return undefined;\n }\n}\n\nexport function removePersistentItem__deprecated(itemKey, name) {\n const item = JSON.parse(localStorage.getItem(itemKey) || '{}');\n const itemValue = { ...item };\n\n if (itemValue[name]) {\n delete itemValue[name][hashCode(location.pathname)];\n }\n\n try {\n localStorage.setItem(itemKey, JSON.stringify(itemValue));\n } catch (error: any) {\n if (error && error.name === 'QuotaExceededError') {\n console.log(`Your localStorage is full. Failed to set item.`);\n } else {\n console.log(`Failed to set item to localStorage.`);\n }\n }\n}\n// END DEPRECATED\n\nexport const persistentStorage = {\n setItem: setPersistentItem,\n getItem: getPersistentItem,\n removeItem: removePersistentItem,\n};\n"],"names":["PREFIX","setPersistentItem","name","data","options","scope","storageKey","storageValue","error","getPersistentItem","item","removePersistentItem","getPersistentItem__deprecated","itemKey","hashCode","removePersistentItem__deprecated","itemValue","persistentStorage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../../src/utils/storage.ts"],"sourcesContent":["import { hashCode } from './helpers';\n\nconst PREFIX = 'll';\n\n/**\n * Persist an item to localStorage, unique to each url pathname unless [options.global] is set to true\n *\n * If global is set to false (the default):\n * name: 'foo'\n * data: { a: 'a' }\n *\n * localStorage key: 'll-foo-/c/the-leaf-shop/customers/'\n * localStorage value: { a: 'a' }\n *\n * If global is set to true:\n * name: 'bar'\n * data: { b: 'b' }\n *\n * localStorage key: 'll-bar'\n * localStorage value: { b: 'b' }\n *\n * @param {string} name - the storage key name, often a component name\n * @param {object} data - the data to persist\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n */\nexport function setPersistentItem(name, data, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const storageKey = `${PREFIX}-${name}${scope}`;\n const storageValue = JSON.stringify(data);\n\n try {\n localStorage.setItem(storageKey, storageValue);\n } catch (error: any) {\n if (error && error.name === 'QuotaExceededError') {\n console.log(`Your localStorage is full. Failed to save item for key: ${storageKey}`);\n } else {\n console.log(`Failed to save value to localStorage for key: ${storageKey}`);\n }\n }\n}\n\n/**\n * Retrieve an item from localStorage, previously saved by `setPersistentItem`.\n * @param {string} name The storage key name, often a component name\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n * @returns {any | undefined}\n */\nexport function getPersistentItem(name, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const item = localStorage.getItem(`${PREFIX}-${name}${scope}`);\n\n // localStorage.getItem always returns a string or null. When it's a string,\n // it usually contains an object or a boolean. If the value is 'false', we\n // need to ensure we return false instead of null.\n if (item === null || item === 'undefined') {\n return null;\n }\n\n try {\n return JSON.parse(item);\n } catch (error) {\n console.error(error);\n\n return null;\n }\n}\n\n/**\n * Remove an item from localStorage, previously saved by `setPersistentItem`.\n * @param {string} name The storage key name, often a component name\n * @param {object} [options] - an optional options object\n * @param {boolean} [options.global] - does not add url to the key when true\n */\nexport function removePersistentItem(name, options: { global?: boolean } = {}) {\n const scope = options.global ? '' : `-${location.pathname}`;\n const storageKey = `${PREFIX}-${name}${scope}`;\n const item = localStorage.getItem(storageKey);\n\n if (item === null) {\n return;\n }\n\n try {\n localStorage.removeItem(storageKey);\n } catch (error) {\n console.error(error);\n }\n}\n\n/**\n ***************** DEPRECATED *****************\n */\nexport function getPersistentItem__deprecated(itemKey: string, name) {\n const item = JSON.parse(localStorage.getItem(itemKey) || '{}');\n\n try {\n return (item[name] || {})[hashCode(location.pathname)];\n } catch (error) {\n console.error(error);\n\n return undefined;\n }\n}\n\nexport function removePersistentItem__deprecated(itemKey, name) {\n const item = JSON.parse(localStorage.getItem(itemKey) || '{}');\n const itemValue = { ...item };\n\n if (itemValue[name]) {\n delete itemValue[name][hashCode(location.pathname)];\n }\n\n try {\n localStorage.setItem(itemKey, JSON.stringify(itemValue));\n } catch (error: any) {\n if (error && error.name === 'QuotaExceededError') {\n console.log(`Your localStorage is full. Failed to set item.`);\n } else {\n console.log(`Failed to set item to localStorage.`);\n }\n }\n}\n// END DEPRECATED\n\nexport const persistentStorage = {\n setItem: setPersistentItem,\n getItem: getPersistentItem,\n removeItem: removePersistentItem,\n};\n"],"names":["PREFIX","setPersistentItem","name","data","options","scope","storageKey","storageValue","error","getPersistentItem","item","removePersistentItem","getPersistentItem__deprecated","itemKey","hashCode","removePersistentItem__deprecated","itemValue","persistentStorage"],"mappings":";;;;;;AAEA,MAAMA,IAAS;AAwBR,SAASC,EAAkBC,GAAMC,GAAMC,IAAgC,CAAA,GAAI;AAChF,QAAMC,IAAQD,EAAQ,SAAS,KAAK,IAAI,SAAS,QAAQ,IACnDE,IAAa,GAAGN,CAAM,IAAIE,CAAI,GAAGG,CAAK,IACtCE,IAAe,KAAK,UAAUJ,CAAI;AAEpC,MAAA;AACW,iBAAA,QAAQG,GAAYC,CAAY;AAAA,WACtCC,GAAY;AACf,IAAAA,KAASA,EAAM,SAAS,uBAClB,QAAA,IAAI,2DAA2DF,CAAU,EAAE,IAE3E,QAAA,IAAI,iDAAiDA,CAAU,EAAE;AAAA,EAE7E;AACF;AASO,SAASG,EAAkBP,GAAME,IAAgC,IAAI;AAC1E,QAAMC,IAAQD,EAAQ,SAAS,KAAK,IAAI,SAAS,QAAQ,IACnDM,IAAO,aAAa,QAAQ,GAAGV,CAAM,IAAIE,CAAI,GAAGG,CAAK,EAAE;AAKzD,MAAAK,MAAS,QAAQA,MAAS;AACrB,WAAA;AAGL,MAAA;AACK,WAAA,KAAK,MAAMA,CAAI;AAAA,WACfF,GAAO;AACd,mBAAQ,MAAMA,CAAK,GAEZ;AAAA,EACT;AACF;AAQO,SAASG,EAAqBT,GAAME,IAAgC,IAAI;AAC7E,QAAMC,IAAQD,EAAQ,SAAS,KAAK,IAAI,SAAS,QAAQ,IACnDE,IAAa,GAAGN,CAAM,IAAIE,CAAI,GAAGG,CAAK;AAG5C,MAFa,aAAa,QAAQC,CAAU,MAE/B;AAIT,QAAA;AACF,mBAAa,WAAWA,CAAU;AAAA,aAC3BE,GAAO;AACd,cAAQ,MAAMA,CAAK;AAAA,IACrB;AACF;AAKgB,SAAAI,EAA8BC,GAAiBX,GAAM;AACnE,QAAMQ,IAAO,KAAK,MAAM,aAAa,QAAQG,CAAO,KAAK,IAAI;AAEzD,MAAA;AACM,YAAAH,EAAKR,CAAI,KAAK,CAAA,GAAIY,EAAS,SAAS,QAAQ,CAAC;AAAA,WAC9CN,GAAO;AACd,YAAQ,MAAMA,CAAK;AAEZ;AAAA,EACT;AACF;AAEgB,SAAAO,EAAiCF,GAASX,GAAM;AAExD,QAAAc,IAAY,EAAE,GADP,KAAK,MAAM,aAAa,QAAQH,CAAO,KAAK,IAAI;AAGzD,EAAAG,EAAUd,CAAI,KAChB,OAAOc,EAAUd,CAAI,EAAEY,EAAS,SAAS,QAAQ,CAAC;AAGhD,MAAA;AACF,iBAAa,QAAQD,GAAS,KAAK,UAAUG,CAAS,CAAC;AAAA,WAChDR,GAAY;AACf,IAAAA,KAASA,EAAM,SAAS,uBAC1B,QAAQ,IAAI,gDAAgD,IAE5D,QAAQ,IAAI,qCAAqC;AAAA,EAErD;AACF;AAGO,MAAMS,IAAoB;AAAA,EAC/B,SAAShB;AAAA,EACT,SAASQ;AAAA,EACT,YAAYE;AACd;"}
|
package/dist/viewable.js
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
var b = Object.defineProperty;
|
|
2
2
|
var f = (s, e, t) => e in s ? b(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
3
3
|
var o = (s, e, t) => (f(s, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
-
import
|
|
5
|
-
import { nextTick as
|
|
6
|
-
import "./_baseIsEqual-d594c87f.js";
|
|
7
|
-
import "./_Uint8Array-06e4d083.js";
|
|
8
|
-
import "./isArrayLike-09233e52.js";
|
|
9
|
-
import "./isObjectLike-54341556.js";
|
|
10
|
-
import "./_MapCache-65811284.js";
|
|
11
|
-
import "./_getAllKeys-5e735d41.js";
|
|
12
|
-
import "./_getTag-4db47fa6.js";
|
|
13
|
-
import "./_overArg-6d920d99.js";
|
|
4
|
+
import a from "lodash-es/isEqual";
|
|
5
|
+
import { nextTick as d } from "vue";
|
|
14
6
|
const n = Symbol("v-viewable");
|
|
15
|
-
class
|
|
16
|
-
constructor(e, t,
|
|
7
|
+
class u {
|
|
8
|
+
constructor(e, t, i = {}) {
|
|
17
9
|
o(this, "observer");
|
|
18
10
|
o(this, "el");
|
|
19
11
|
o(this, "frozen");
|
|
@@ -21,7 +13,7 @@ class d {
|
|
|
21
13
|
o(this, "oldResult");
|
|
22
14
|
o(this, "callback");
|
|
23
15
|
o(this, "modifiers");
|
|
24
|
-
this.el = e, this.modifiers =
|
|
16
|
+
this.el = e, this.modifiers = i, this.observer = null, this.callback = null, this.frozen = !1, this.options = {
|
|
25
17
|
callback: () => {
|
|
26
18
|
},
|
|
27
19
|
intersection: {}
|
|
@@ -43,22 +35,22 @@ class d {
|
|
|
43
35
|
};
|
|
44
36
|
}
|
|
45
37
|
createObserver(e) {
|
|
46
|
-
this.observer && this.destroyObserver(), !this.frozen && (this.options = this.processOptions(e), this.callback = (t,
|
|
47
|
-
var
|
|
48
|
-
this.options.callback(t,
|
|
38
|
+
this.observer && this.destroyObserver(), !this.frozen && (this.options = this.processOptions(e), this.callback = (t, i) => {
|
|
39
|
+
var r;
|
|
40
|
+
this.options.callback(t, i), t && ((r = this.modifiers) != null && r.once) && (this.frozen = !0, this.destroyObserver());
|
|
49
41
|
}, this.oldResult = void 0, "IntersectionObserver" in window && (this.observer = new IntersectionObserver((t) => {
|
|
50
|
-
let
|
|
42
|
+
let i = t[0];
|
|
51
43
|
if (t.length > 1) {
|
|
52
|
-
const
|
|
53
|
-
|
|
44
|
+
const r = t.find((l) => l.isIntersecting);
|
|
45
|
+
r && (i = r);
|
|
54
46
|
}
|
|
55
47
|
if (this.callback) {
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
48
|
+
const r = i.isIntersecting && i.intersectionRatio >= this.threshold;
|
|
49
|
+
if (r === this.oldResult)
|
|
58
50
|
return;
|
|
59
|
-
this.oldResult =
|
|
51
|
+
this.oldResult = r, this.callback(r, i);
|
|
60
52
|
}
|
|
61
|
-
}, this.intersectionObserverOptions)),
|
|
53
|
+
}, this.intersectionObserverOptions)), d(() => {
|
|
62
54
|
this.observer && this.observer.observe(this.el);
|
|
63
55
|
}));
|
|
64
56
|
}
|
|
@@ -70,34 +62,34 @@ class d {
|
|
|
70
62
|
}
|
|
71
63
|
}
|
|
72
64
|
function h(s, { modifiers: e = {}, value: t }) {
|
|
73
|
-
var
|
|
65
|
+
var r;
|
|
74
66
|
if (!t)
|
|
75
67
|
return;
|
|
76
|
-
if (((
|
|
68
|
+
if (((r = t.intersection) == null ? void 0 : r.threshold) instanceof Array)
|
|
77
69
|
throw new Error("`threshold` must be a number. v-viewable does not support `threshold` as an array.");
|
|
78
|
-
const
|
|
79
|
-
s[n] =
|
|
70
|
+
const i = new u(s, t, e);
|
|
71
|
+
s[n] = i;
|
|
80
72
|
}
|
|
81
|
-
function
|
|
82
|
-
if (a(t,
|
|
73
|
+
function p(s, { modifiers: e, value: t, oldValue: i }) {
|
|
74
|
+
if (a(t, i) || t.toString() === i.toString())
|
|
83
75
|
return;
|
|
84
|
-
const
|
|
76
|
+
const r = s[n];
|
|
85
77
|
if (!t) {
|
|
86
78
|
c(s);
|
|
87
79
|
return;
|
|
88
80
|
}
|
|
89
|
-
|
|
81
|
+
r ? r.createObserver(t) : h(s, { modifiers: e, value: t });
|
|
90
82
|
}
|
|
91
83
|
function c(s) {
|
|
92
84
|
const e = s[n];
|
|
93
85
|
e && (e.destroyObserver(), delete s[n]);
|
|
94
86
|
}
|
|
95
|
-
const
|
|
87
|
+
const y = {
|
|
96
88
|
beforeMount: h,
|
|
97
|
-
updated:
|
|
89
|
+
updated: p,
|
|
98
90
|
unmounted: c
|
|
99
91
|
};
|
|
100
92
|
export {
|
|
101
|
-
|
|
93
|
+
y as default
|
|
102
94
|
};
|
|
103
95
|
//# sourceMappingURL=viewable.js.map
|
package/dist/viewable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewable.js","sources":["../src/directives/viewable/viewable.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { nextTick } from 'vue';\n\nconst viewableKey = Symbol('v-viewable');\n\ntype ViewableCallback = (result: boolean, entry: IntersectionObserverEntry) => void;\n\nclass ViewableState {\n private observer: IntersectionObserver | null;\n private el: Element;\n private frozen: boolean;\n private options: {\n callback: ViewableCallback;\n intersection: IntersectionObserverInit;\n };\n private oldResult: undefined | boolean;\n private callback: ViewableCallback | null;\n private modifiers?: {\n once?: boolean;\n };\n\n constructor(el, options, modifiers = {}) {\n this.el = el;\n this.modifiers = modifiers;\n this.observer = null;\n this.callback = null;\n this.frozen = false;\n this.options = {\n callback: () => {},\n intersection: {},\n };\n this.createObserver(options);\n }\n\n /**\n * Default threshold of 100%.\n * Informs when the element is 100% visibile, or at the provided threshold(s)\n * Does not support an array of values.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#thresholds\n */\n get threshold() {\n return this.options.intersection && typeof this.options.intersection.threshold === 'number'\n ? this.options.intersection.threshold\n : 1;\n }\n\n get intersectionObserverOptions() {\n return {\n threshold: this.threshold,\n ...this.options.intersection,\n };\n }\n\n createObserver(options) {\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) {\n return;\n }\n\n this.options = this.processOptions(options);\n\n this.callback = (result, entry) => {\n this.options.callback(result, entry);\n\n if (result && this.modifiers?.once) {\n this.frozen = true;\n this.destroyObserver();\n }\n };\n\n this.oldResult = undefined;\n\n if ('IntersectionObserver' in window) {\n this.observer = new IntersectionObserver((entries) => {\n let entry = entries[0];\n\n if (entries.length > 1) {\n const intersectingEntry = entries.find((e) => e.isIntersecting);\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n const result = entry.isIntersecting && entry.intersectionRatio >= this.threshold;\n\n if (result === this.oldResult) {\n return;\n }\n\n this.oldResult = result;\n this.callback(result, entry);\n }\n }, this.intersectionObserverOptions);\n }\n\n // Wait for the element to be in document\n nextTick(() => {\n if (this.observer) {\n this.observer.observe(this.el);\n }\n });\n }\n\n destroyObserver() {\n if (this.observer) {\n this.observer.unobserve(this.el);\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n private processOptions(value) {\n const options =\n typeof value === 'function'\n ? { callback: value } // Simple options (callback-only)\n : value; // Options object\n\n return options;\n }\n}\n\nfunction mount(el, { modifiers = {}, value }) {\n if (!value) {\n return;\n }\n\n if (value.intersection?.threshold instanceof Array) {\n throw new Error('`threshold` must be a number. v-viewable does not support `threshold` as an array.');\n }\n\n const state = new ViewableState(el, value, modifiers);\n\n el[viewableKey] = state;\n}\n\nfunction updated(el, { modifiers, value, oldValue }) {\n if (isEqual(value, oldValue) || value.toString() === oldValue.toString()) {\n return;\n }\n\n const state = el[viewableKey];\n\n if (!value) {\n unmount(el);\n return;\n }\n\n if (state) {\n state.createObserver(value);\n } else {\n mount(el, { modifiers, value });\n }\n}\n\nfunction unmount(el) {\n const state = el[viewableKey];\n\n if (state) {\n state.destroyObserver();\n delete el[viewableKey];\n }\n}\n\nexport default {\n beforeMount: mount,\n updated,\n unmounted: unmount,\n};\n"],"names":["viewableKey","ViewableState","el","options","modifiers","__publicField","result","entry","_a","entries","intersectingEntry","e","nextTick","value","mount","state","updated","oldValue","isEqual","unmount","viewable"],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewable.js","sources":["../src/directives/viewable/viewable.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { nextTick } from 'vue';\n\nconst viewableKey = Symbol('v-viewable');\n\ntype ViewableCallback = (result: boolean, entry: IntersectionObserverEntry) => void;\n\nclass ViewableState {\n private observer: IntersectionObserver | null;\n private el: Element;\n private frozen: boolean;\n private options: {\n callback: ViewableCallback;\n intersection: IntersectionObserverInit;\n };\n private oldResult: undefined | boolean;\n private callback: ViewableCallback | null;\n private modifiers?: {\n once?: boolean;\n };\n\n constructor(el, options, modifiers = {}) {\n this.el = el;\n this.modifiers = modifiers;\n this.observer = null;\n this.callback = null;\n this.frozen = false;\n this.options = {\n callback: () => {},\n intersection: {},\n };\n this.createObserver(options);\n }\n\n /**\n * Default threshold of 100%.\n * Informs when the element is 100% visibile, or at the provided threshold(s)\n * Does not support an array of values.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#thresholds\n */\n get threshold() {\n return this.options.intersection && typeof this.options.intersection.threshold === 'number'\n ? this.options.intersection.threshold\n : 1;\n }\n\n get intersectionObserverOptions() {\n return {\n threshold: this.threshold,\n ...this.options.intersection,\n };\n }\n\n createObserver(options) {\n if (this.observer) {\n this.destroyObserver();\n }\n\n if (this.frozen) {\n return;\n }\n\n this.options = this.processOptions(options);\n\n this.callback = (result, entry) => {\n this.options.callback(result, entry);\n\n if (result && this.modifiers?.once) {\n this.frozen = true;\n this.destroyObserver();\n }\n };\n\n this.oldResult = undefined;\n\n if ('IntersectionObserver' in window) {\n this.observer = new IntersectionObserver((entries) => {\n let entry = entries[0];\n\n if (entries.length > 1) {\n const intersectingEntry = entries.find((e) => e.isIntersecting);\n\n if (intersectingEntry) {\n entry = intersectingEntry;\n }\n }\n\n if (this.callback) {\n // Use isIntersecting if possible because browsers can report isIntersecting as true, but intersectionRatio as 0, when something very slowly enters the viewport.\n const result = entry.isIntersecting && entry.intersectionRatio >= this.threshold;\n\n if (result === this.oldResult) {\n return;\n }\n\n this.oldResult = result;\n this.callback(result, entry);\n }\n }, this.intersectionObserverOptions);\n }\n\n // Wait for the element to be in document\n nextTick(() => {\n if (this.observer) {\n this.observer.observe(this.el);\n }\n });\n }\n\n destroyObserver() {\n if (this.observer) {\n this.observer.unobserve(this.el);\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n private processOptions(value) {\n const options =\n typeof value === 'function'\n ? { callback: value } // Simple options (callback-only)\n : value; // Options object\n\n return options;\n }\n}\n\nfunction mount(el, { modifiers = {}, value }) {\n if (!value) {\n return;\n }\n\n if (value.intersection?.threshold instanceof Array) {\n throw new Error('`threshold` must be a number. v-viewable does not support `threshold` as an array.');\n }\n\n const state = new ViewableState(el, value, modifiers);\n\n el[viewableKey] = state;\n}\n\nfunction updated(el, { modifiers, value, oldValue }) {\n if (isEqual(value, oldValue) || value.toString() === oldValue.toString()) {\n return;\n }\n\n const state = el[viewableKey];\n\n if (!value) {\n unmount(el);\n return;\n }\n\n if (state) {\n state.createObserver(value);\n } else {\n mount(el, { modifiers, value });\n }\n}\n\nfunction unmount(el) {\n const state = el[viewableKey];\n\n if (state) {\n state.destroyObserver();\n delete el[viewableKey];\n }\n}\n\nexport default {\n beforeMount: mount,\n updated,\n unmounted: unmount,\n};\n"],"names":["viewableKey","ViewableState","el","options","modifiers","__publicField","result","entry","_a","entries","intersectingEntry","e","nextTick","value","mount","state","updated","oldValue","isEqual","unmount","viewable"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leaflink/stash",
|
|
3
|
-
"version": "42.
|
|
3
|
+
"version": "42.5.1",
|
|
4
4
|
"description": "LeafLink's design system.",
|
|
5
5
|
"homepage": "https://stash.leaflink.com",
|
|
6
6
|
"main": "./dist/index.ts",
|
|
@@ -102,7 +102,6 @@
|
|
|
102
102
|
"date-fns-tz": "2.0.0",
|
|
103
103
|
"flat": "6.0.1",
|
|
104
104
|
"fuzzysort": "2.0.1",
|
|
105
|
-
"lodash-es": "4.17.21",
|
|
106
105
|
"sanitize-html": "2.11.0",
|
|
107
106
|
"v-calendar": "^3.1.2",
|
|
108
107
|
"vue": "^3.3.4",
|
|
@@ -141,7 +140,7 @@
|
|
|
141
140
|
"eslint": "^8.41.0",
|
|
142
141
|
"eslint-config-leaflink": "^1.18.2",
|
|
143
142
|
"jsdom": "^22.1.0",
|
|
144
|
-
"postcss": "^8.4.
|
|
143
|
+
"postcss": "^8.4.35",
|
|
145
144
|
"postcss-html": "^1.5.0",
|
|
146
145
|
"postcss-prefix-selector": "^1.16.0",
|
|
147
146
|
"postcss-preset-env": "^9.1.0",
|
|
@@ -152,7 +151,7 @@
|
|
|
152
151
|
"stylelint-config-standard-scss": "^10.0.0",
|
|
153
152
|
"stylelint-config-standard-vue": "^1.0.0",
|
|
154
153
|
"svg-sprite": "2.0.2",
|
|
155
|
-
"tailwindcss": "^3.
|
|
154
|
+
"tailwindcss": "^3.4.1",
|
|
156
155
|
"typescript": "^5.1.6",
|
|
157
156
|
"vite": "^4.3.8",
|
|
158
157
|
"vite-plugin-dts": "3.6.4",
|
|
@@ -165,10 +164,9 @@
|
|
|
165
164
|
"vuepress": "^1.9.9"
|
|
166
165
|
},
|
|
167
166
|
"peerDependencies": {
|
|
168
|
-
"
|
|
167
|
+
"lodash-es": "^4.x.x",
|
|
169
168
|
"postcss-preset-env": "9.x",
|
|
170
169
|
"tailwindcss": "^3.3.1",
|
|
171
|
-
"typescript": "^5.x",
|
|
172
170
|
"vue-router": "^4.x.x"
|
|
173
171
|
},
|
|
174
172
|
"peerDependenciesMeta": {
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { defineComponent as p, useCssModule as m, inject as h, computed as i, openBlock as g, createBlock as f, unref as r, normalizeClass as b } from "vue";
|
|
2
|
-
import { u as w } from "./uniqueId-847efe53.js";
|
|
3
|
-
import { I as k } from "./index-79ce320f.js";
|
|
4
|
-
const _ = [
|
|
5
|
-
"action-dots",
|
|
6
|
-
"activity",
|
|
7
|
-
"alert-bell",
|
|
8
|
-
"archive",
|
|
9
|
-
"arrow-down",
|
|
10
|
-
"arrow-left",
|
|
11
|
-
"arrow-right",
|
|
12
|
-
"arrow-up",
|
|
13
|
-
"badge-discount",
|
|
14
|
-
"badge-seller-elite",
|
|
15
|
-
"badge-seller-power",
|
|
16
|
-
"book-customer",
|
|
17
|
-
"building-office",
|
|
18
|
-
"bulk-add",
|
|
19
|
-
"calendar-reschedule",
|
|
20
|
-
"calendar",
|
|
21
|
-
"caret-down",
|
|
22
|
-
"caret-up",
|
|
23
|
-
"cart-active",
|
|
24
|
-
"cart-plus",
|
|
25
|
-
"change-log",
|
|
26
|
-
"check",
|
|
27
|
-
"chevron-down",
|
|
28
|
-
"chevron-left",
|
|
29
|
-
"chevron-right",
|
|
30
|
-
"chevron-up",
|
|
31
|
-
"circle-check",
|
|
32
|
-
"circle-close",
|
|
33
|
-
"circle-dollar",
|
|
34
|
-
"circle-info",
|
|
35
|
-
"circle-partial",
|
|
36
|
-
"circle-percent",
|
|
37
|
-
"circle-question-mark",
|
|
38
|
-
"circle-status",
|
|
39
|
-
"circle-warning",
|
|
40
|
-
"clipboard-checkmark",
|
|
41
|
-
"clipboard-inventory",
|
|
42
|
-
"close",
|
|
43
|
-
"combine",
|
|
44
|
-
"compass",
|
|
45
|
-
"contact",
|
|
46
|
-
"contract",
|
|
47
|
-
"copy",
|
|
48
|
-
"credit-card",
|
|
49
|
-
"credit-profile",
|
|
50
|
-
"dashboard",
|
|
51
|
-
"document-accept",
|
|
52
|
-
"document-invoice",
|
|
53
|
-
"document-recieved",
|
|
54
|
-
"document-sent",
|
|
55
|
-
"document-view",
|
|
56
|
-
"document",
|
|
57
|
-
"dolly",
|
|
58
|
-
"download",
|
|
59
|
-
"edit",
|
|
60
|
-
"ellipsis",
|
|
61
|
-
"envelope-open",
|
|
62
|
-
"envelope",
|
|
63
|
-
"export",
|
|
64
|
-
"figma",
|
|
65
|
-
"file-csv",
|
|
66
|
-
"file",
|
|
67
|
-
"filter-funnel",
|
|
68
|
-
"filter-line",
|
|
69
|
-
"flag",
|
|
70
|
-
"folder",
|
|
71
|
-
"folder-bar-graph",
|
|
72
|
-
"folder-orders",
|
|
73
|
-
"gear",
|
|
74
|
-
"github",
|
|
75
|
-
"globe",
|
|
76
|
-
"graph-bar-chart",
|
|
77
|
-
"graph-line-chart",
|
|
78
|
-
"graph-pie-chart",
|
|
79
|
-
"hazard",
|
|
80
|
-
"hazard-outline",
|
|
81
|
-
"headset-agent",
|
|
82
|
-
"headset-mic",
|
|
83
|
-
"heart-filled",
|
|
84
|
-
"heart-outline",
|
|
85
|
-
"hide",
|
|
86
|
-
"history",
|
|
87
|
-
"image",
|
|
88
|
-
"import",
|
|
89
|
-
"keyboard-return",
|
|
90
|
-
"license-approved",
|
|
91
|
-
"license-certificate",
|
|
92
|
-
"lightbulb",
|
|
93
|
-
"link-add",
|
|
94
|
-
"link-unlink",
|
|
95
|
-
"link",
|
|
96
|
-
"list-items",
|
|
97
|
-
"loading-big",
|
|
98
|
-
"loading-small",
|
|
99
|
-
"location",
|
|
100
|
-
"lock-unlock",
|
|
101
|
-
"lock",
|
|
102
|
-
"logo-facebook",
|
|
103
|
-
"logo-instagram",
|
|
104
|
-
"logo-linkedin",
|
|
105
|
-
"logo-ll",
|
|
106
|
-
"logo-metrc",
|
|
107
|
-
"logo-plaid",
|
|
108
|
-
"logo-x",
|
|
109
|
-
"logo-youtube",
|
|
110
|
-
"logout",
|
|
111
|
-
"medical",
|
|
112
|
-
"megaphone-sound",
|
|
113
|
-
"megaphone",
|
|
114
|
-
"menu",
|
|
115
|
-
"message-dispute",
|
|
116
|
-
"message-reply",
|
|
117
|
-
"message",
|
|
118
|
-
"minus",
|
|
119
|
-
"mj-leaf",
|
|
120
|
-
"money",
|
|
121
|
-
"note-add",
|
|
122
|
-
"note",
|
|
123
|
-
"open-in-new",
|
|
124
|
-
"paperclip",
|
|
125
|
-
"performance",
|
|
126
|
-
"phone",
|
|
127
|
-
"plus",
|
|
128
|
-
"preview",
|
|
129
|
-
"print",
|
|
130
|
-
"product-menu-manage",
|
|
131
|
-
"product-menu-search",
|
|
132
|
-
"product-menu",
|
|
133
|
-
"queue-add",
|
|
134
|
-
"queue",
|
|
135
|
-
"recent",
|
|
136
|
-
"refresh",
|
|
137
|
-
"register",
|
|
138
|
-
"reply",
|
|
139
|
-
"report-download",
|
|
140
|
-
"sample",
|
|
141
|
-
"save",
|
|
142
|
-
"scale-law",
|
|
143
|
-
"scale-weight",
|
|
144
|
-
"search",
|
|
145
|
-
"seed-cycle",
|
|
146
|
-
"share",
|
|
147
|
-
"shop-bag-browse",
|
|
148
|
-
"shop-bag-reorder",
|
|
149
|
-
"shop-bag",
|
|
150
|
-
"shop-basket",
|
|
151
|
-
"shop-cart-add",
|
|
152
|
-
"shop-cart",
|
|
153
|
-
"show",
|
|
154
|
-
"sign-dollar",
|
|
155
|
-
"sign-percent",
|
|
156
|
-
"sort",
|
|
157
|
-
"split",
|
|
158
|
-
"star-filled",
|
|
159
|
-
"star-outline",
|
|
160
|
-
"storefront",
|
|
161
|
-
"submit",
|
|
162
|
-
"swap-horizontal",
|
|
163
|
-
"swap-vertical",
|
|
164
|
-
"tag-star",
|
|
165
|
-
"tag",
|
|
166
|
-
"test-results",
|
|
167
|
-
"ticket-star",
|
|
168
|
-
"ticket",
|
|
169
|
-
"tool-dropper",
|
|
170
|
-
"tool-wrench",
|
|
171
|
-
"transfer",
|
|
172
|
-
"trashcan",
|
|
173
|
-
"truck",
|
|
174
|
-
"upload",
|
|
175
|
-
"user-add",
|
|
176
|
-
"user-admin",
|
|
177
|
-
"user-check",
|
|
178
|
-
"user",
|
|
179
|
-
"view-card",
|
|
180
|
-
"view-detailed",
|
|
181
|
-
"view-list",
|
|
182
|
-
"warehouse",
|
|
183
|
-
"working"
|
|
184
|
-
];
|
|
185
|
-
var v = /* @__PURE__ */ ((t) => (t.Standard = "standard", t.Dense = "dense", t.Small = "small", t.Large = "large", t))(v || {});
|
|
186
|
-
const y = {
|
|
187
|
-
name: "ll-icon"
|
|
188
|
-
}, $ = /* @__PURE__ */ p({
|
|
189
|
-
...y,
|
|
190
|
-
props: {
|
|
191
|
-
id: { default: w("ll-icon-") },
|
|
192
|
-
name: {},
|
|
193
|
-
title: { default: "" },
|
|
194
|
-
size: { default: "standard" },
|
|
195
|
-
dense: { type: Boolean },
|
|
196
|
-
small: { type: Boolean },
|
|
197
|
-
staticPath: { default: "" }
|
|
198
|
-
},
|
|
199
|
-
setup(t) {
|
|
200
|
-
const e = t, o = m(), s = h("stashOptions", {
|
|
201
|
-
staticPath: "/static"
|
|
202
|
-
}), n = i(() => _.includes(e.name) ? e.name : "mj-leaf"), d = i(() => e.staticPath || (s == null ? void 0 : s.staticPath)), u = (a) => {
|
|
203
|
-
if (!a)
|
|
204
|
-
return a;
|
|
205
|
-
const l = document.createElement("use");
|
|
206
|
-
l.setAttribute("href", `#${n.value}`);
|
|
207
|
-
const c = a.querySelector(`#${n.value}`);
|
|
208
|
-
return c ? (a.replaceChildren(c, l), a) : (a.insertBefore(l, a.firstChild), a);
|
|
209
|
-
};
|
|
210
|
-
return (a, l) => (g(), f(r(k), {
|
|
211
|
-
id: e.id,
|
|
212
|
-
role: "presentation",
|
|
213
|
-
"aria-labelledby": e.id,
|
|
214
|
-
class: b(["stash-icon", [
|
|
215
|
-
r(o).icon,
|
|
216
|
-
`icon--${e.name}`,
|
|
217
|
-
{
|
|
218
|
-
[r(o).standard]: e.size === "standard",
|
|
219
|
-
[r(o).dense]: e.size === "dense" || e.dense,
|
|
220
|
-
[r(o).small]: e.size === "small" || e.small,
|
|
221
|
-
[r(o).large]: e.size === "large"
|
|
222
|
-
}
|
|
223
|
-
]]),
|
|
224
|
-
"data-test": "stash-icon",
|
|
225
|
-
src: `${d.value}/spritesheet.svg`,
|
|
226
|
-
title: e.title,
|
|
227
|
-
"transform-source": u
|
|
228
|
-
}, null, 8, ["id", "aria-labelledby", "class", "src", "title"]));
|
|
229
|
-
}
|
|
230
|
-
}), x = "_icon_1x7lf_2", z = "_standard_1x7lf_8", q = "_dense_1x7lf_15", B = "_small_1x7lf_22", C = "_large_1x7lf_29", j = {
|
|
231
|
-
icon: x,
|
|
232
|
-
standard: z,
|
|
233
|
-
dense: q,
|
|
234
|
-
small: B,
|
|
235
|
-
large: C
|
|
236
|
-
};
|
|
237
|
-
export {
|
|
238
|
-
v as I,
|
|
239
|
-
$ as _,
|
|
240
|
-
_ as i,
|
|
241
|
-
j as s
|
|
242
|
-
};
|
|
243
|
-
//# sourceMappingURL=Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.vue_used_vue_type_style_index_0_lang.module-d2507af3.js","sources":["../src/components/Icon/Icon.types.ts","../src/components/Icon/Icon.vue"],"sourcesContent":["export const iconNames = [\n 'action-dots',\n 'activity',\n 'alert-bell',\n 'archive',\n 'arrow-down',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up',\n 'badge-discount',\n 'badge-seller-elite',\n 'badge-seller-power',\n 'book-customer',\n 'building-office',\n 'bulk-add',\n 'calendar-reschedule',\n 'calendar',\n 'caret-down',\n 'caret-up',\n 'cart-active',\n 'cart-plus',\n 'change-log',\n 'check',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'circle-check',\n 'circle-close',\n 'circle-dollar',\n 'circle-info',\n 'circle-partial',\n 'circle-percent',\n 'circle-question-mark',\n 'circle-status',\n 'circle-warning',\n 'clipboard-checkmark',\n 'clipboard-inventory',\n 'close',\n 'combine',\n 'compass',\n 'contact',\n 'contract',\n 'copy',\n 'credit-card',\n 'credit-profile',\n 'dashboard',\n 'document-accept',\n 'document-invoice',\n 'document-recieved',\n 'document-sent',\n 'document-view',\n 'document',\n 'dolly',\n 'download',\n 'edit',\n 'ellipsis',\n 'envelope-open',\n 'envelope',\n 'export',\n 'figma',\n 'file-csv',\n 'file',\n 'filter-funnel',\n 'filter-line',\n 'flag',\n 'folder',\n 'folder-bar-graph',\n 'folder-orders',\n 'gear',\n 'github',\n 'globe',\n 'graph-bar-chart',\n 'graph-line-chart',\n 'graph-pie-chart',\n 'hazard',\n 'hazard-outline',\n 'headset-agent',\n 'headset-mic',\n 'heart-filled',\n 'heart-outline',\n 'hide',\n 'history',\n 'image',\n 'import',\n 'keyboard-return',\n 'license-approved',\n 'license-certificate',\n 'lightbulb',\n 'link-add',\n 'link-unlink',\n 'link',\n 'list-items',\n 'loading-big',\n 'loading-small',\n 'location',\n 'lock-unlock',\n 'lock',\n 'logo-facebook',\n 'logo-instagram',\n 'logo-linkedin',\n 'logo-ll',\n 'logo-metrc',\n 'logo-plaid',\n 'logo-x',\n 'logo-youtube',\n 'logout',\n 'medical',\n 'megaphone-sound',\n 'megaphone',\n 'menu',\n 'message-dispute',\n 'message-reply',\n 'message',\n 'minus',\n 'mj-leaf',\n 'money',\n 'note-add',\n 'note',\n 'open-in-new',\n 'paperclip',\n 'performance',\n 'phone',\n 'plus',\n 'preview',\n 'print',\n 'product-menu-manage',\n 'product-menu-search',\n 'product-menu',\n 'queue-add',\n 'queue',\n 'recent',\n 'refresh',\n 'register',\n 'reply',\n 'report-download',\n 'sample',\n 'save',\n 'scale-law',\n 'scale-weight',\n 'search',\n 'seed-cycle',\n 'share',\n 'shop-bag-browse',\n 'shop-bag-reorder',\n 'shop-bag',\n 'shop-basket',\n 'shop-cart-add',\n 'shop-cart',\n 'show',\n 'sign-dollar',\n 'sign-percent',\n 'sort',\n 'split',\n 'star-filled',\n 'star-outline',\n 'storefront',\n 'submit',\n 'swap-horizontal',\n 'swap-vertical',\n 'tag-star',\n 'tag',\n 'test-results',\n 'ticket-star',\n 'ticket',\n 'tool-dropper',\n 'tool-wrench',\n 'transfer',\n 'trashcan',\n 'truck',\n 'upload',\n 'user-add',\n 'user-admin',\n 'user-check',\n 'user',\n 'view-card',\n 'view-detailed',\n 'view-list',\n 'warehouse',\n 'working',\n] as const;\n\nexport type IconName = typeof iconNames[number];\n\nexport enum IconSizes {\n Standard = 'standard',\n Dense = 'dense',\n Small = 'small',\n Large = 'large',\n}\n\nexport type IconSize = `${IconSizes}`;\n","<script lang=\"ts\">\n export * from './Icon.types';\n\n export default {\n name: 'll-icon',\n };\n</script>\n\n<script lang=\"ts\" setup>\n import uniqueId from 'lodash-es/uniqueId';\n import { computed, inject, useCssModule } from 'vue';\n import InlineSvg from 'vue-inline-svg';\n\n import { StashProvideState } from '../../../types/misc';\n import { IconName, iconNames, IconSize } from './Icon.types';\n\n export interface IconProps {\n id?: string;\n\n /**\n * The filename of the icon that should be displayed\n */\n name: IconName;\n\n /**\n * Accessible, short-text description for the icon. Not rendered as part of the graphic, but\n * browsers usually display it as a tooltip and screen readers use this.\n */\n title?: string;\n\n /**\n * The size of the icon\n * Options: large (32x32px), default (24x24px), dense (20x20px), small (14x14px).\n */\n size?: IconSize;\n\n /**\n * @deprecated Use the `size` prop with value \"dense\" instead\n */\n dense?: boolean;\n\n /**\n` * @deprecated Use the `size` prop with value \"small\" instead\n */\n small?: boolean;\n\n /**\n * Icon's custom static path. It'll default to either the staticPath defined on the library installation or '/static' if none are provided.\n */\n staticPath?: string;\n }\n\n const props = withDefaults(defineProps<IconProps>(), {\n id: uniqueId('ll-icon-'),\n size: 'standard',\n title: '',\n staticPath: '',\n });\n const classes = useCssModule();\n const stashOptions = inject<Partial<StashProvideState>>('stashOptions', {\n staticPath: '/static',\n });\n\n const computedName = computed<IconName>(() => {\n if (iconNames.includes(props.name)) {\n return props.name;\n }\n\n return 'mj-leaf';\n });\n\n const computedStaticPath = computed(() => {\n return props.staticPath || stashOptions?.staticPath;\n });\n\n /**\n * Event handler to add the use tag for the specific icon we need to the svg\n */\n const transformSvgSource = (svgElem: SVGElement) => {\n if (!svgElem) {\n return svgElem;\n }\n\n const useNode = document.createElement('use');\n useNode.setAttribute('href', `#${computedName.value}`);\n\n // Grab icon from sprite\n const symbolNode = svgElem.querySelector(`#${computedName.value}`);\n\n // This really shouldn't happen but if the spritesheet gets out of sync with the `IconName` type it could\n if (!symbolNode) {\n // still insert <use> element but it will not be found (this is more for tests than anything else)\n svgElem.insertBefore(useNode, svgElem.firstChild);\n return svgElem;\n }\n\n /**\n * Repeatedly inlining the entire spritesheet was causing failures in mobile Safari, and also\n * performance issues on long list pages where the svg was being inlined over and over.\n * Since the SVG is cached after the first request, this callback is just removing the unnecessary\n * <symbol> nodes to slim down the DOM manipulation and insertion.\n */\n // Replace all children with just the one <symbol> element and <use> element\n svgElem.replaceChildren(symbolNode, useNode);\n\n return svgElem;\n };\n</script>\n\n<!-- Use inline svg so that requests to pull the spritesheet are done via JS and avoid\n browser restrictions for different domains for svgs. inline svg also caches the requests\n so we don't load the spritesheet multiple times\n Reference: https://oreillymedia.github.io/Using_SVG/extras/ch10-cors.html -->\n<template>\n <InlineSvg\n :id=\"props.id\"\n role=\"presentation\"\n :aria-labelledby=\"props.id\"\n class=\"stash-icon\"\n :class=\"[\n classes.icon,\n `icon--${props.name}`,\n {\n [classes.standard]: props.size === 'standard',\n [classes.dense]: props.size === 'dense' || props.dense,\n [classes.small]: props.size === 'small' || props.small,\n [classes.large]: props.size === 'large',\n },\n ]\"\n data-test=\"stash-icon\"\n :src=\"`${computedStaticPath}/spritesheet.svg`\"\n :title=\"props.title\"\n :transform-source=\"transformSvgSource\"\n />\n</template>\n\n<style module>\n .icon {\n display: inline-block;\n fill: currentcolor;\n vertical-align: middle;\n }\n\n .standard {\n height: 24px;\n min-height: 24px;\n min-width: 24px;\n width: 24px;\n }\n\n .dense {\n height: 20px;\n min-height: 20px;\n min-width: 20px;\n width: 20px;\n }\n\n .small {\n height: 14px;\n min-height: 14px;\n min-width: 14px;\n width: 14px;\n }\n\n .large {\n height: 32px;\n min-height: 32px;\n min-width: 32px;\n width: 32px;\n }\n</style>\n"],"names":["iconNames","IconSizes","classes","useCssModule","stashOptions","inject","computedName","computed","props","computedStaticPath","transformSvgSource","svgElem","useNode","symbolNode"],"mappings":";;;AAAO,MAAMA,IAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIY,IAAAC,sBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SAJEA,IAAAA,KAAA,CAAA,CAAA;ACrLV,UAAe;AAAA,EACb,MAAM;AACR;;;;;;;;;;;;iBAqDMC,IAAUC,KACVC,IAAeC,EAAmC,gBAAgB;AAAA,MACtE,YAAY;AAAA,IAAA,CACb,GAEKC,IAAeC,EAAmB,MAClCP,EAAU,SAASQ,EAAM,IAAI,IACxBA,EAAM,OAGR,SACR,GAEKC,IAAqBF,EAAS,MAC3BC,EAAM,eAAcJ,KAAA,gBAAAA,EAAc,WAC1C,GAKKM,IAAqB,CAACC,MAAwB;AAClD,UAAI,CAACA;AACI,eAAAA;AAGH,YAAAC,IAAU,SAAS,cAAc,KAAK;AAC5C,MAAAA,EAAQ,aAAa,QAAQ,IAAIN,EAAa,KAAK,EAAE;AAGrD,YAAMO,IAAaF,EAAQ,cAAc,IAAIL,EAAa,KAAK,EAAE;AAGjE,aAAKO,KAaGF,EAAA,gBAAgBE,GAAYD,CAAO,GAEpCD,MAbGA,EAAA,aAAaC,GAASD,EAAQ,UAAU,GACzCA;AAAA,IAYF;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|