bitboss-ui 2.0.8 → 2.0.9
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/dist/index107.js +5 -5
- package/dist/index115.js +1 -1
- package/dist/index117.js +4 -4
- package/dist/index119.js +1 -1
- package/dist/index123.js +1 -1
- package/dist/index124.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index129.js +2 -2
- package/dist/index14.js +1 -1
- package/dist/index16.js +3 -3
- package/dist/index18.js +2 -2
- package/dist/index199.js +2 -81
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +14 -14
- package/dist/index200.js +126 -2
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +5 -3
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +119 -122
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +19 -5
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +13 -120
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +15 -18
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +2 -16
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +2 -16
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +35 -2
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +174 -2
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +6 -35
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +44 -174
- package/dist/index211.js.map +1 -1
- package/dist/index213.js +12 -43
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +8 -0
- package/dist/index214.js.map +1 -0
- package/dist/index215.js +369 -13
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +158 -5
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +83 -368
- package/dist/index217.js.map +1 -1
- package/dist/index219.js +81 -2
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +15 -15
- package/dist/index220.js +8 -4
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +3 -2
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +2 -3
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +4 -7
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +2 -19
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +3 -27
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +7 -3
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +17 -247
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +26 -51
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +3 -44
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +249 -5
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +43 -40
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +43 -157
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +5 -84
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +52 -0
- package/dist/index234.js.map +1 -0
- package/dist/index235.js +2 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +2 -18
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +17 -105
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +109 -0
- package/dist/index238.js.map +1 -0
- package/dist/index24.js +5 -5
- package/dist/{index239.js → index240.js} +2 -2
- package/dist/{index239.js.map → index240.js.map} +1 -1
- package/dist/index244.js +3 -9
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +12 -23
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +9 -6
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +8 -15
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +17 -224
- package/dist/index248.js.map +1 -1
- package/dist/index257.js +1 -1
- package/dist/index258.js +1 -1
- package/dist/index26.js +1 -1
- package/dist/index263.js +222 -7
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +3 -435
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +7 -125
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +6 -200
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +16 -4
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +8 -88
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +23 -2
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +200 -2
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +436 -2
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +127 -2
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +89 -2
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +5 -2
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +2 -28
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +2 -22
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +5 -0
- package/dist/index277.js.map +1 -0
- package/dist/index278.js +2 -3
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +2 -12
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +3 -3
- package/dist/index280.js +2 -9
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +27 -8
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +20 -15
- package/dist/index282.js.map +1 -1
- package/dist/index284.js +2 -69
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +69 -5
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +1 -1
- package/dist/index287.js +1 -1
- package/dist/index288.js +2 -2
- package/dist/index290.js +11 -4
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +35 -4
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +4 -59
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +4 -35
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +58 -6
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +2 -7
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +5 -17
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +7 -2
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +17 -45
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +46 -10
- package/dist/index299.js.map +1 -1
- package/dist/index30.js +2 -2
- package/dist/index32.js +2 -2
- package/dist/index34.js +3 -3
- package/dist/index36.js +13 -13
- package/dist/index38.js +4 -4
- package/dist/index40.js +2 -2
- package/dist/index42.js +2 -2
- package/dist/index44.js +6 -6
- package/dist/index46.js +2 -2
- package/dist/index48.js +2 -2
- package/dist/index54.js +1 -1
- package/dist/index56.js +1 -1
- package/dist/index72.js +4 -4
- package/dist/index76.js +2 -2
- package/dist/index78.js +1 -1
- package/dist/index81.js +2 -2
- package/dist/index83.js +1 -1
- package/dist/index85.js +3 -3
- package/dist/index87.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/index212.js +0 -9
- package/dist/index212.js.map +0 -1
- package/dist/index218.js +0 -11
- package/dist/index218.js.map +0 -1
- package/dist/index241.js +0 -5
- package/dist/index241.js.map +0 -1
- package/dist/index283.js +0 -5
- package/dist/index283.js.map +0 -1
package/dist/index232.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index232.js","sources":["../src/composables/useOptions.ts"],"sourcesContent":["import {\n\tcomputed,\n\tnextTick,\n\tonBeforeMount,\n\tonBeforeUnmount,\n\tref,\n\twatch,\n\ttype Ref,\n} from 'vue';\nimport type { Option as BaseOption } from '@/types/Option';\nimport { last } from '@/utilities/functions/last';\nimport { useArray } from './useArray';\nimport { uniqBy } from '@/utilities/functions/uniqBy';\nimport { useItemValue } from './useItemValue';\nimport { useItemText } from './useItemText';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport { isNil } from '@/utilities/functions/isNil';\n\ntype Options = {\n\tmultiple: boolean;\n\tstash: boolean;\n\titemText: string | ((item: any) => string) | undefined;\n\titemValue: string | ((item: any) => string) | undefined;\n\tmodelValue: Ref<any>;\n\tresetQueryOnOptionSelected: boolean;\n\temit: any;\n\titems: Ref<any>;\n\tenforceCoherence: boolean;\n\tprefill: boolean;\n\tmodelValueDebounceTime: number;\n\tdepsDebounceTime: number;\n\tdependencies: Ref<any[]>;\n\tqueryDebounceTime: number;\n\tdisabled: Ref<boolean>;\n};\n\nexport const useOptions = (params: Options) => {\n\tconst query = ref<string>('');\n\n\tconst lastEmittedValue = ref();\n\tconst updateModelValue = (value: any) => {\n\t\tlastEmittedValue.value = value;\n\t\tparams.emit('update:modelValue', value);\n\t};\n\n\tconst internalItems = ref<any[]>([]);\n\tconst {\n\t\tarray: innerStash,\n\t\tadd: addToStash,\n\t\tremove: removeFromStash,\n\t\tset: setStash,\n\t} = useArray<BaseOption>();\n\n\tconst {\n\t\tarray: manualItems,\n\t\tadd: addToManualItems,\n\t\tremove: removeFromManualItems,\n\t} = useArray<BaseOption>();\n\n\tconst { getItemText } = useItemText();\n\tconst { getItemValue } = useItemValue();\n\tconst createOption = (item: any): BaseOption => {\n\t\tconst disabled = !!(params.disabled.value || item.disabled);\n\t\tconst text = getItemText(item, params.itemText);\n\t\tconst value = getItemValue(item, params.itemValue);\n\n\t\t// Undefined is not supported\n\t\tif (value === undefined)\n\t\t\tthrow new Error(\n\t\t\t\t'The result of extracting \"value\" from option was undefined. Affected item is ' +\n\t\t\t\t\tJSON.stringify(item) +\n\t\t\t\t\t' please check itemValue property is correct.'\n\t\t\t);\n\t\tconst valueHash = hash(value);\n\t\tconst selected = false;\n\t\treturn {\n\t\t\titem,\n\t\t\ttext,\n\t\t\tvalue,\n\t\t\tvalueHash,\n\t\t\tdisabled,\n\t\t\tselected,\n\t\t};\n\t};\n\n\tconst setSelected = (o: BaseOption) => {\n\t\to.selected = isNotNil(modelValueIndexedByHash.value[o.valueHash]);\n\t\treturn o;\n\t};\n\tconst options = computed<BaseOption[]>(() => {\n\t\tconst base = ([] as BaseOption[]).concat(\n\t\t\tinternalItems.value.map((item) => {\n\t\t\t\treturn setSelected(createOption(item));\n\t\t\t}),\n\t\t\tmanualItems.value.map(setSelected),\n\t\t\tinnerStash.value.map(setSelected)\n\t\t);\n\t\treturn uniqBy(base, (o) => o.valueHash);\n\t});\n\n\tconst selectOption = (option: BaseOption) => {\n\t\tif (params.multiple) {\n\t\t\tupdateModelValue(params.modelValue.value.concat(option.value));\n\t\t\tif (params.stash) {\n\t\t\t\taddToStash(option);\n\t\t\t}\n\n\t\t\tif (params.resetQueryOnOptionSelected) {\n\t\t\t\talignQueryToState();\n\t\t\t}\n\t\t} else {\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(option);\n\t\t\t}\n\t\t\tupdateModelValue(option.value);\n\t\t\tnextTick(() => alignQueryToState());\n\t\t}\n\t};\n\tconst unselectOption = async (option: BaseOption) => {\n\t\tremoveFromManualItems((o) => o.valueHash !== option.valueHash);\n\t\tremoveFromStash((o) => o.valueHash !== option.valueHash);\n\t\tif (params.multiple) {\n\t\t\tconst copy = { ...modelValueIndexedByHash.value };\n\t\t\tdelete copy[option.valueHash];\n\t\t\tupdateModelValue(Object.values(copy));\n\t\t} else {\n\t\t\tupdateModelValue(null);\n\t\t\tawait nextTick();\n\t\t\talignQueryToState();\n\t\t}\n\t};\n\n\t/**\n\t * Indexes modelValue to a map of hash - value pairs so we can easily track which values are selected\n\t */\n\tconst modelValueIndexedByHash = computed(() => {\n\t\tconst map: Record<string, any> = {};\n\t\tconst arr = [].concat(params.modelValue.value);\n\t\tfor (let index = 0; index < arr.length; index++) {\n\t\t\tconst element = arr[index];\n\t\t\tmap[hash(element)] = element;\n\t\t}\n\t\treturn map;\n\t});\n\n\tconst getOptions = async ({ prefill = false }) => {\n\t\tlet items: any[] = [];\n\t\tif (Array.isArray(params.items.value)) {\n\t\t\titems = params.items.value;\n\t\t} else {\n\t\t\tif (typeof params.items.value === 'function') {\n\t\t\t\tconst order = ++innerLoading.value;\n\t\t\t\ttry {\n\t\t\t\t\titems = await params.items.value(\n\t\t\t\t\t\tquery.value,\n\t\t\t\t\t\tprefill,\n\t\t\t\t\t\tparams.modelValue.value\n\t\t\t\t\t);\n\t\t\t\t\t// If by the time this resolves another call has already been made discard this result\n\t\t\t\t\tif (order < innerLoading.value) {\n\t\t\t\t\t\tawait waitFor(() => order === innerLoading.value);\n\t\t\t\t\t\titems = internalItems.value;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\tinnerLoading.value--;\n\t\t\t}\n\t\t}\n\t\tinternalItems.value = items as any;\n\t};\n\n\t/**\n\t * Indexes options by their hash so they can be retrieved\n\t */\n\tconst optionsIndexedByHash = computed(() => {\n\t\tconst map: Record<string, BaseOption> = {};\n\t\tfor (let index = 0; index < options.value.length; index++) {\n\t\t\tconst element = options.value[index];\n\t\t\tconst { valueHash } = element;\n\t\t\tmap[valueHash] = element;\n\t\t}\n\t\treturn {\n\t\t\tget: (value: any) => {\n\t\t\t\treturn map[hash(value)];\n\t\t\t},\n\t\t};\n\t});\n\n\t/**\n\t * For every item in modelValue find the linked option if it exists.\n\t * This is used to display chips.\n\t */\n\tconst selectedOptions = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce((acc, h) => {\n\t\t\tconst found = optionsIndexedByHash.value.get(h);\n\t\t\tif (found) {\n\t\t\t\tacc.push(found);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] as BaseOption[]);\n\t});\n\n\tconst valueIsSelected = (value: any) =>\n\t\tisNotNil(optionsIndexedByHash.value.get(value));\n\n\tconst alignQueryToState = () => {\n\t\tif (params.multiple) {\n\t\t\tquery.value = '';\n\t\t\treturn;\n\t\t}\n\t\tlet option: BaseOption | undefined;\n\t\tif (selectedOptions.value) {\n\t\t\toption = last(selectedOptions.value);\n\t\t}\n\t\tquery.value = option?.text || '';\n\t};\n\n\t/**\n\t * Add an option to the manual items and then reset the query\n\t */\n\tconst addCurrentQueryToManualItems = () => {\n\t\tconst text = query.value.trim();\n\t\tconst option = createOption(text);\n\t\taddToManualItems(option);\n\t\talignQueryToState();\n\t};\n\n\t/**\n\t * Use a number accumulator because if the fn takes 5 seconds\n\t * and after 2 seconds another search is run\n\t * When the first returns the second is still out for 2 seconds\n\t * and we want to track them both.\n\t * Debounce will not be enough.\n\t */\n\tconst innerLoading = ref(0);\n\n\t/**\n\t * Coherent values are values that have an option they can be linked to.\n\t * Divide coherent and incoherent values.\n\t */\n\n\tconst coherenceStatus = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce(\n\t\t\t(acc, curr) => {\n\t\t\t\tif (valueIsSelected(curr)) {\n\t\t\t\t\tacc.coherent.push(curr);\n\t\t\t\t} else {\n\t\t\t\t\tacc.incoherent.push(curr);\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ coherent: [], incoherent: [] }\n\t\t);\n\t});\n\n\t/**\n\t * Model value is considered coherent when:\n\t * - multiple mode is empty\n\t * - single mode is null\n\t */\n\tconst modelValueIsCoherent = computed(() => {\n\t\tif (params.multiple && !params.modelValue.value.length) return true;\n\t\telse if (!params.multiple && isNil(params.modelValue.value)) return true;\n\t\treturn !coherenceStatus.value.incoherent.length;\n\t});\n\n\t/**\n\t * Realign selection state to the passed settings.\n\t * If modelValue has any value that is not coherent while\n\t * coherence is enforced the value should be removed\n\t */\n\tconst alignToCoherenceSettings = () => {\n\t\tif (params.enforceCoherence && !modelValueIsCoherent.value) {\n\t\t\tif (!params.multiple) updateModelValue(null);\n\t\t\telse updateModelValue(coherenceStatus.value.coherent);\n\t\t}\n\t};\n\n\t/**\n\t * Prefilling is the phase where the component understands it needs\n\t * to update its inner items due to a change in state, whether dependencies have changed, items or modelValue have changed.\n\t * It can be intended as the component aligning itself to what state is passed to it.\n\t */\n\tconst hasPrefilled = ref(false);\n\tconst isPrefilling = ref(false);\n\tconst prefillItems = async () => {\n\t\tisPrefilling.value = true;\n\t\tawait getOptions({ prefill: true });\n\t\talignToCoherenceSettings();\n\t\talignQueryToState();\n\t\thasPrefilled.value = true;\n\t\tisPrefilling.value = false;\n\t};\n\n\tonBeforeMount(async () => {\n\t\tif (params.prefill) {\n\t\t\tawait prefillItems();\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(...selectedOptions.value);\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Triggered on input when items is a function.\n\t */\n\n\tlet timeout: ReturnType<typeof setTimeout>;\n\tconst searchByQuery = () => {\n\t\tif (timeout) clearTimeout(timeout);\n\t\ttimeout = setTimeout(async () => {\n\t\t\ttry {\n\t\t\t\tawait getOptions({ prefill: false });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}, params.queryDebounceTime);\n\t};\n\tonBeforeUnmount(() => clearTimeout(timeout));\n\n\t/**\n\t * When modelValue changes split behavior for single and multiple selection:\n\t */\n\tlet modelValueTimeout: ReturnType<typeof setTimeout>;\n\twatch(\n\t\t() => params.modelValue.value,\n\t\t() => {\n\t\t\tif (modelValueIsCoherent.value) return;\n\t\t\tif (modelValueTimeout) clearTimeout(modelValueTimeout);\n\t\t\tmodelValueTimeout = setTimeout(async () => {\n\t\t\t\tprefillItems();\n\t\t\t}, params.modelValueDebounceTime);\n\t\t}\n\t);\n\n\t/**\n\t * START DEPENDENCY HANDLING\n\t * Explicit dependencies (props.dependencies) and implicit dependencies (props.items)\n\t * need to trigger a pipeline of realignment whenever they change\n\t */\n\tlet depsTimeout: ReturnType<typeof setTimeout>;\n\n\tconst handleDependencyChange = async (current: any, previous: any) => {\n\t\t// Circumvent arrays defined in the template by the parent triggering the watcher\n\t\tif (hash(previous) === hash(current)) return;\n\t\t// Do not track until prefill completes\n\t\tif (!hasPrefilled.value) return;\n\t\tif (depsTimeout) clearTimeout(depsTimeout);\n\t\tdepsTimeout = setTimeout(async () => {\n\t\t\tawait prefillItems();\n\t\t}, params.depsDebounceTime);\n\t};\n\n\t/**\n\t * This is triggered to refresh static items whenever the passed array changes.\n\t * If the parent defines an array in the template this is triggered\n\t * at every render so we take counter measures\n\t * Even if the entire array changes all the previously selected values are still in the stash.\n\t */\n\twatch(() => params.items.value, handleDependencyChange);\n\n\t/**\n\t * When dependencies change\n\t * If the input has not been prefilled yet just return\n\t * Check dependencies are the same by value and not reference\n\t * Otherwise we search again for options as they might be different base on dependencies.\n\t * If coherence is enforced we set the state accordingly\n\t */\n\twatch(() => params.dependencies.value, handleDependencyChange);\n\n\t/**\n\t * END DEPENDENCIES HANDLING\n\t */\n\n\treturn {\n\t\taddCurrentQueryToManualItems,\n\t\talignQueryToState,\n\t\tgetOptions,\n\t\thasPrefilled,\n\t\tinnerLoading,\n\t\tisPrefilling,\n\t\tmanualItems,\n\t\toptions,\n\t\tprefillItems,\n\t\tquery,\n\t\tsearchByQuery,\n\t\tselectedOptions,\n\t\tselectOption,\n\t\tsetStash,\n\t\tunselectOption,\n\t\tupdateModelValue,\n\t\tvalueIsSelected,\n\t\tinternalItems,\n\t};\n};\n"],"names":["useOptions","params","query","ref","lastEmittedValue","updateModelValue","value","internalItems","innerStash","addToStash","removeFromStash","setStash","useArray","manualItems","addToManualItems","removeFromManualItems","getItemText","useItemText","getItemValue","useItemValue","createOption","item","disabled","text","valueHash","hash","setSelected","o","isNotNil","modelValueIndexedByHash","options","computed","base","uniqBy","selectOption","option","alignQueryToState","nextTick","unselectOption","copy","map","arr","index","element","getOptions","prefill","items","order","innerLoading","waitFor","error","optionsIndexedByHash","selectedOptions","acc","h","found","valueIsSelected","last","addCurrentQueryToManualItems","coherenceStatus","curr","modelValueIsCoherent","isNil","alignToCoherenceSettings","hasPrefilled","isPrefilling","prefillItems","onBeforeMount","timeout","searchByQuery","onBeforeUnmount","modelValueTimeout","watch","depsTimeout","handleDependencyChange","current","previous"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index232.js","sources":["../src/components/BaseDatePicker/BaseDatePickerMonthSelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tclass=\"bb-base-date-picker__button-menu bb-base-date-picker__month-selector\"\n\t>\n\t\t<div class=\"content\">\n\t\t\t<BaseButton\n\t\t\t\tv-for=\"option in options\"\n\t\t\t\t:key=\"option.key\"\n\t\t\t\t:class=\"{\n\t\t\t\t\tcontent__btn: true,\n\t\t\t\t\t'content__btn--selected': option.selected,\n\t\t\t\t}\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@click=\"option.handler\"\n\t\t\t>\n\t\t\t\t{{ option.text }}\n\t\t\t</BaseButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { computed } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.vue';\n\ntype Props = {\n\tcursor: Dayjs;\n\tdisabled: boolean;\n};\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n\t(event: 'update:month', value: number): void;\n}>();\n\nconst month = computed(() => props.cursor.month());\n\nconst options = computed(() =>\n\tnew Array(12).fill(0).map((_: unknown, index) => {\n\t\tlet base = props.cursor.clone().startOf('year');\n\t\tconst d = base.add(index, 'month');\n\t\treturn {\n\t\t\ttext: d.format('MMMM'),\n\t\t\tkey: d.unix(),\n\t\t\tselected: d.month() === month.value,\n\t\t\thandler: () => emit('update:month', index),\n\t\t};\n\t})\n);\n</script>\n"],"names":["props","__props","emit","__emit","month","computed","options","_","index","d"],"mappings":";;;;;;;;;;;AA+BA,UAAMA,IAAQC,GACRC,IAAOC,GAIPC,IAAQC,EAAS,MAAML,EAAM,OAAO,OAAO,GAE3CM,IAAUD;AAAA,MAAS,MACxB,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,GAAYC,MAAU;AAEhD,cAAMC,IADKT,EAAM,OAAO,MAAM,EAAE,QAAQ,MAAM,EAC/B,IAAIQ,GAAO,OAAO;AAC1B,eAAA;AAAA,UACN,MAAMC,EAAE,OAAO,MAAM;AAAA,UACrB,KAAKA,EAAE,KAAK;AAAA,UACZ,UAAUA,EAAE,MAAM,MAAML,EAAM;AAAA,UAC9B,SAAS,MAAMF,EAAK,gBAAgBM,CAAK;AAAA,QAAA;AAAA,MAC1C,CACA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index233.js
CHANGED
|
@@ -1,87 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}, g = {
|
|
6
|
-
key: 1,
|
|
7
|
-
class: "bb-cr-container__no-data-container"
|
|
8
|
-
}, _ = /* @__PURE__ */ b({
|
|
9
|
-
__name: "OptionsContainer",
|
|
10
|
-
props: {
|
|
11
|
-
direction: {},
|
|
12
|
-
hasErrors: { type: Boolean },
|
|
13
|
-
hideLabel: { type: Boolean },
|
|
14
|
-
loadingText: {},
|
|
15
|
-
loading: { type: Boolean },
|
|
16
|
-
noDataText: {},
|
|
17
|
-
options: {}
|
|
18
|
-
},
|
|
19
|
-
setup(k) {
|
|
20
|
-
return (a, $) => (n(), s("span", {
|
|
21
|
-
ref: "container",
|
|
22
|
-
class: r(["bb-cr-container", {
|
|
23
|
-
"bb-cr-container--errors": a.hasErrors,
|
|
24
|
-
"bb-cr-container--horizontal": a.direction === "horizontal",
|
|
25
|
-
"bb-cr-container--vertical": a.direction === "vertical"
|
|
26
|
-
}])
|
|
27
|
-
}, [
|
|
28
|
-
l("span", p, [
|
|
29
|
-
t(a.$slots, "prepend"),
|
|
30
|
-
!a.options.length && a.loading ? (n(), s("span", u, [
|
|
31
|
-
t(a.$slots, "loading", {}, () => [
|
|
32
|
-
o(d(a.loadingText), 1)
|
|
33
|
-
])
|
|
34
|
-
])) : a.options.length ? h("", !0) : (n(), s("span", g, [
|
|
35
|
-
t(a.$slots, "no-data", {}, () => [
|
|
36
|
-
o(d(a.noDataText), 1)
|
|
37
|
-
])
|
|
38
|
-
])),
|
|
39
|
-
(n(!0), s(c, null, m(a.options, (e, i) => (n(), s(c, {
|
|
40
|
-
key: (e == null ? void 0 : e.id) || i
|
|
41
|
-
}, [
|
|
42
|
-
t(a.$slots, "option:prepend", {
|
|
43
|
-
id: e.valueHash,
|
|
44
|
-
checked: !!e.selected,
|
|
45
|
-
disabled: !!e.disabled,
|
|
46
|
-
item: e.item,
|
|
47
|
-
text: e.text
|
|
48
|
-
}),
|
|
49
|
-
l("label", {
|
|
50
|
-
class: r(["bb-cr-container-option", { "bb-base-radio-selected": e.selected }])
|
|
51
|
-
}, [
|
|
52
|
-
t(a.$slots, "input", {
|
|
53
|
-
index: i,
|
|
54
|
-
option: e
|
|
55
|
-
}),
|
|
56
|
-
l("span", {
|
|
57
|
-
class: r({
|
|
58
|
-
"bb-cr-container-option__text": !0,
|
|
59
|
-
"bb-cr-container-option__text--hidden": a.hideLabel
|
|
60
|
-
})
|
|
61
|
-
}, [
|
|
62
|
-
t(a.$slots, "label", {
|
|
63
|
-
checked: !!e.selected,
|
|
64
|
-
item: e.item,
|
|
65
|
-
text: e.text
|
|
66
|
-
}, () => [
|
|
67
|
-
o(d(e.text), 1)
|
|
68
|
-
])
|
|
69
|
-
], 2)
|
|
70
|
-
], 2),
|
|
71
|
-
t(a.$slots, "option:append", {
|
|
72
|
-
id: e.valueHash,
|
|
73
|
-
checked: !!e.selected,
|
|
74
|
-
disabled: !!e.disabled,
|
|
75
|
-
item: e.item,
|
|
76
|
-
text: e.text
|
|
77
|
-
})
|
|
78
|
-
], 64))), 128)),
|
|
79
|
-
t(a.$slots, "append")
|
|
80
|
-
])
|
|
81
|
-
], 2));
|
|
82
|
-
}
|
|
83
|
-
});
|
|
1
|
+
import o from "./index282.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import t from "./index260.js";
|
|
4
|
+
const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-8c6b13bd"]]);
|
|
84
5
|
export {
|
|
85
|
-
|
|
6
|
+
m as default
|
|
86
7
|
};
|
|
87
8
|
//# sourceMappingURL=index233.js.map
|
package/dist/index233.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index233.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index233.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/dist/index234.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineComponent as p, ref as _, computed as b, onMounted as f, openBlock as n, createElementBlock as o, createElementVNode as k, Fragment as y, renderList as h, unref as g, createBlock as v, normalizeClass as x, withCtx as B, createTextVNode as C, toDisplayString as E } from "vue";
|
|
2
|
+
import { range as w } from "./index296.js";
|
|
3
|
+
import D from "./index14.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
const S = { class: "content" }, c = 100, V = /* @__PURE__ */ p({
|
|
6
|
+
__name: "BaseDatePickerYearSelector",
|
|
7
|
+
props: {
|
|
8
|
+
cursor: {},
|
|
9
|
+
disabled: { type: Boolean }
|
|
10
|
+
},
|
|
11
|
+
emits: ["update:year"],
|
|
12
|
+
setup(s, { emit: l }) {
|
|
13
|
+
const i = s, d = l, r = _(), u = b(() => i.cursor.year()), a = (/* @__PURE__ */ new Date()).getFullYear() - c / 2, m = w(a, a + c).map((e) => ({
|
|
14
|
+
text: e,
|
|
15
|
+
key: e,
|
|
16
|
+
selected: e === u.value,
|
|
17
|
+
handler: () => d("update:year", e)
|
|
18
|
+
}));
|
|
19
|
+
return f(() => {
|
|
20
|
+
if (!r.value) return;
|
|
21
|
+
const e = r.value.querySelector(
|
|
22
|
+
".content__btn--selected"
|
|
23
|
+
);
|
|
24
|
+
e && (e.parentElement.scrollTop = e.offsetTop - e.parentElement.clientHeight / 2 + 16);
|
|
25
|
+
}), (e, T) => (n(), o("div", {
|
|
26
|
+
ref_key: "container",
|
|
27
|
+
ref: r,
|
|
28
|
+
class: "bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border"
|
|
29
|
+
}, [
|
|
30
|
+
k("div", S, [
|
|
31
|
+
(n(!0), o(y, null, h(g(m), (t) => (n(), v(D, {
|
|
32
|
+
key: t.key,
|
|
33
|
+
class: x({
|
|
34
|
+
content__btn: !0,
|
|
35
|
+
"content__btn--selected": t.selected
|
|
36
|
+
}),
|
|
37
|
+
disabled: e.disabled,
|
|
38
|
+
onClick: t.handler
|
|
39
|
+
}, {
|
|
40
|
+
default: B(() => [
|
|
41
|
+
C(E(t.text), 1)
|
|
42
|
+
]),
|
|
43
|
+
_: 2
|
|
44
|
+
}, 1032, ["class", "disabled", "onClick"]))), 128))
|
|
45
|
+
])
|
|
46
|
+
], 512));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
export {
|
|
50
|
+
V as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=index234.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index234.js","sources":["../src/components/BaseDatePicker/BaseDatePickerYearSelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tref=\"container\"\n\t\tclass=\"bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border\"\n\t>\n\t\t<div class=\"content\">\n\t\t\t<BaseButton\n\t\t\t\tv-for=\"option in options\"\n\t\t\t\t:key=\"option.key\"\n\t\t\t\t:class=\"{\n\t\t\t\t\tcontent__btn: true,\n\t\t\t\t\t'content__btn--selected': option.selected,\n\t\t\t\t}\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@click=\"option.handler\"\n\t\t\t>\n\t\t\t\t{{ option.text }}\n\t\t\t</BaseButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { computed, onMounted } from 'vue';\nimport { range } from '@/utilities/functions/range';\nimport { ref } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.vue';\n\ntype Props = {\n\tcursor: Dayjs;\n\tdisabled: boolean;\n};\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n\t(event: 'update:year', value: number): void;\n}>();\n\nconst container = ref<HTMLElement>();\n\nconst year = computed(() => props.cursor.year());\n\nconst howMany = 100;\nconst startingYear = new Date().getFullYear() - howMany / 2;\n\nconst options = range(startingYear, startingYear + howMany).map((y) => {\n\treturn {\n\t\ttext: y,\n\t\tkey: y,\n\t\tselected: y === year.value,\n\t\thandler: () => emit('update:year', y),\n\t};\n});\nonMounted(() => {\n\tif (!container.value) return;\n\tconst el = container.value.querySelector<HTMLElement>(\n\t\t'.content__btn--selected'\n\t);\n\tif (!el) return;\n\tel.parentElement!.scrollTop =\n\t\tel.offsetTop - el.parentElement!.clientHeight / 2 + 16;\n});\n</script>\n"],"names":["howMany","props","__props","emit","__emit","container","ref","year","computed","startingYear","options","range","y","onMounted","el"],"mappings":";;;;gCA0CMA,IAAU;;;;;;;;AAThB,UAAMC,IAAQC,GACRC,IAAOC,GAIPC,IAAYC,KAEZC,IAAOC,EAAS,MAAMP,EAAM,OAAO,MAAM,GAGzCQ,KAAmB,oBAAA,KAAA,GAAO,gBAAgBT,IAAU,GAEpDU,IAAUC,EAAMF,GAAcA,IAAeT,CAAO,EAAE,IAAI,CAACY,OACzD;AAAA,MACN,MAAMA;AAAA,MACN,KAAKA;AAAA,MACL,UAAUA,MAAML,EAAK;AAAA,MACrB,SAAS,MAAMJ,EAAK,eAAeS,CAAC;AAAA,IAAA,EAErC;AACD,WAAAC,EAAU,MAAM;AACX,UAAA,CAACR,EAAU,MAAO;AAChB,YAAAS,IAAKT,EAAU,MAAM;AAAA,QAC1B;AAAA,MAAA;AAED,MAAKS,MACLA,EAAG,cAAe,YACjBA,EAAG,YAAYA,EAAG,cAAe,eAAe,IAAI;AAAA,IAAA,CACrD;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index235.js
CHANGED
package/dist/index235.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index235.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index235.js","sources":["../src/utilities/functions/head.ts"],"sourcesContent":["/** Takes an array and returns the first item in it */\nexport const head = <T>(arr: T[]) => arr[0];\n"],"names":["head","arr"],"mappings":"AACO,MAAMA,IAAO,CAAIC,MAAaA,EAAI,CAAC;"}
|
package/dist/index236.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
const a = (t, r) => {
|
|
3
|
-
if (!Object.prototype.hasOwnProperty.call(t, r))
|
|
4
|
-
throw new Error(
|
|
5
|
-
`Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
|
|
6
|
-
);
|
|
7
|
-
}, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
|
|
8
|
-
const i = s.toLocaleLowerCase();
|
|
9
|
-
for (let e = 0; e < r.length; e++) {
|
|
10
|
-
const n = r[e];
|
|
11
|
-
a(t, n);
|
|
12
|
-
const o = t[n];
|
|
13
|
-
if (c(o)) continue;
|
|
14
|
-
if (l(o).includes(i)) return !0;
|
|
15
|
-
}
|
|
16
|
-
return !1;
|
|
17
|
-
};
|
|
1
|
+
import f from "./index288.js";
|
|
18
2
|
export {
|
|
19
|
-
|
|
3
|
+
f as default
|
|
20
4
|
};
|
|
21
5
|
//# sourceMappingURL=index236.js.map
|
package/dist/index236.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index236.js","sources":[
|
|
1
|
+
{"version":3,"file":"index236.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index237.js
CHANGED
|
@@ -1,109 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let o = (s + e) % t.options.length;
|
|
16
|
-
for (; t.options[o].disabled && o !== s; )
|
|
17
|
-
o = a(e + 1);
|
|
18
|
-
return o;
|
|
19
|
-
}, x = () => {
|
|
20
|
-
if (!i.value) return;
|
|
21
|
-
const e = a();
|
|
22
|
-
n.value = e;
|
|
23
|
-
}, c = (e = 1) => {
|
|
24
|
-
const s = l(n.value) ? 0 : n.value;
|
|
25
|
-
let o = (s - e + t.options.length) % t.options.length;
|
|
26
|
-
for (; t.options[o].disabled && o !== s; )
|
|
27
|
-
o = c(e + 1);
|
|
28
|
-
return o;
|
|
29
|
-
}, m = async () => {
|
|
30
|
-
if (!i.value) return;
|
|
31
|
-
const e = c();
|
|
32
|
-
n.value = e;
|
|
33
|
-
}, w = () => {
|
|
34
|
-
if (!i.value) return;
|
|
35
|
-
let e = 0;
|
|
36
|
-
for (; t.options[e].disabled; )
|
|
37
|
-
e++;
|
|
38
|
-
n.value = e;
|
|
39
|
-
}, b = () => {
|
|
40
|
-
if (!i.value) return;
|
|
41
|
-
let e = t.options.length - 1;
|
|
42
|
-
for (; t.options[e].disabled && e !== 0; )
|
|
43
|
-
e--;
|
|
44
|
-
n.value = e;
|
|
45
|
-
}, I = () => {
|
|
46
|
-
if (!i.value) return;
|
|
47
|
-
let e = 0;
|
|
48
|
-
for (; !t.options[e].selected && t.options.length !== e; )
|
|
49
|
-
e++;
|
|
50
|
-
n.value = e;
|
|
51
|
-
}, g = () => {
|
|
52
|
-
if (!i.value) return;
|
|
53
|
-
let e = t.options.length - 1;
|
|
54
|
-
for (; t.options[e].selected && e !== 0; )
|
|
55
|
-
e--;
|
|
56
|
-
n.value = e;
|
|
57
|
-
}, _ = (e) => {
|
|
58
|
-
if (!i.value) return;
|
|
59
|
-
const s = t.options.findIndex(
|
|
60
|
-
(o) => o.valueHash === e
|
|
61
|
-
);
|
|
62
|
-
s >= 0 && (n.value = s);
|
|
63
|
-
}, r = () => {
|
|
64
|
-
n.value = null;
|
|
65
|
-
}, k = () => {
|
|
66
|
-
if (l(n.value)) return;
|
|
67
|
-
const e = t.options[n.value];
|
|
68
|
-
e.selected && u("option:unselected", e);
|
|
69
|
-
}, C = () => l(n.value) ? void 0 : t.options[n.value];
|
|
70
|
-
return N(
|
|
71
|
-
() => t.options,
|
|
72
|
-
(e, s) => {
|
|
73
|
-
d(e) !== d(s) && r();
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
flush: "post"
|
|
77
|
-
}
|
|
78
|
-
), v({
|
|
79
|
-
focusNext: x,
|
|
80
|
-
focusPrevious: m,
|
|
81
|
-
focusFirst: w,
|
|
82
|
-
focusFirstSelected: I,
|
|
83
|
-
focusLast: b,
|
|
84
|
-
focusLastSelected: g,
|
|
85
|
-
blur: r,
|
|
86
|
-
confirmOption: k,
|
|
87
|
-
focusByHash: _,
|
|
88
|
-
getHighlighted: C
|
|
89
|
-
}), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
|
|
90
|
-
key: o.valueHash,
|
|
91
|
-
class: O({
|
|
92
|
-
"bb-chipsbox-item": !0,
|
|
93
|
-
"bb-chipsbox-item--focused": B === n.value
|
|
94
|
-
}),
|
|
95
|
-
clearable: !0,
|
|
96
|
-
text: o.text,
|
|
97
|
-
"onClick:clear": P((M) => u("option:unselected", o), ["stop"])
|
|
98
|
-
}, {
|
|
99
|
-
default: $(() => [
|
|
100
|
-
z(D(o.text), 1)
|
|
101
|
-
]),
|
|
102
|
-
_: 2
|
|
103
|
-
}, 1032, ["class", "text", "onClick:clear"]))), 128));
|
|
1
|
+
import { isNil as c } from "./index126.js";
|
|
2
|
+
const a = (t, r) => {
|
|
3
|
+
if (!Object.prototype.hasOwnProperty.call(t, r))
|
|
4
|
+
throw new Error(
|
|
5
|
+
`Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
|
|
6
|
+
);
|
|
7
|
+
}, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
|
|
8
|
+
const i = s.toLocaleLowerCase();
|
|
9
|
+
for (let e = 0; e < r.length; e++) {
|
|
10
|
+
const n = r[e];
|
|
11
|
+
a(t, n);
|
|
12
|
+
const o = t[n];
|
|
13
|
+
if (c(o)) continue;
|
|
14
|
+
if (l(o).includes(i)) return !0;
|
|
104
15
|
}
|
|
105
|
-
|
|
16
|
+
return !1;
|
|
17
|
+
};
|
|
106
18
|
export {
|
|
107
|
-
|
|
19
|
+
y as matchAnyKey
|
|
108
20
|
};
|
|
109
21
|
//# sourceMappingURL=index237.js.map
|
package/dist/index237.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index237.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index237.js","sources":["../src/utilities/functions/matchAnyKey.ts"],"sourcesContent":["import { isNil } from './isNil';\n\nconst ensureKeyExists = <T extends object>(item: T, key: keyof T) => {\n\tif (!Object.prototype.hasOwnProperty.call(item, key)) {\n\t\tthrow new Error(\n\t\t\t`Object ${JSON.stringify(item, null, 2)} has no property named \"${key.toString()}\"`\n\t\t);\n\t}\n};\nconst asString = (value: any) => {\n\tif (typeof value === 'string') return value.toLocaleLowerCase();\n\treturn JSON.stringify(value).toLowerCase();\n};\n\n/**\n * Return true or false based on whether the query is included in the passed keys\n * @param item The object to test\n * @param keys The keys to be tested as haystack\n * @param query The query to searched as needle\n * @returns boolean\n */\nexport const matchAnyKey = <T extends object>(\n\titem: T,\n\tkeys: (keyof T)[],\n\tquery: string\n) => {\n\tconst lcQuery = query.toLocaleLowerCase();\n\tfor (let index = 0; index < keys.length; index++) {\n\t\tconst key = keys[index];\n\t\tensureKeyExists(item, key);\n\t\tconst value = item[key];\n\t\tif (isNil(value)) continue;\n\t\tconst valueAsString = asString(value);\n\t\tif (valueAsString.includes(lcQuery)) return true;\n\t}\n\treturn false;\n};\n"],"names":["ensureKeyExists","item","key","asString","value","matchAnyKey","keys","query","lcQuery","index","isNil"],"mappings":";AAEA,MAAMA,IAAkB,CAAmBC,GAASC,MAAiB;AACpE,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKD,GAAMC,CAAG;AAClD,UAAM,IAAI;AAAA,MACT,UAAU,KAAK,UAAUD,GAAM,MAAM,CAAC,CAAC,2BAA2BC,EAAI,SAAA,CAAU;AAAA,IAAA;AAGnF,GACMC,IAAW,CAACC,MACb,OAAOA,KAAU,WAAiBA,EAAM,kBAAkB,IACvD,KAAK,UAAUA,CAAK,EAAE,YAAY,GAU7BC,IAAc,CAC1BJ,GACAK,GACAC,MACI;AACE,QAAAC,IAAUD,EAAM;AACtB,WAASE,IAAQ,GAAGA,IAAQH,EAAK,QAAQG,KAAS;AAC3C,UAAAP,IAAMI,EAAKG,CAAK;AACtB,IAAAT,EAAgBC,GAAMC,CAAG;AACnB,UAAAE,IAAQH,EAAKC,CAAG;AAClB,QAAAQ,EAAMN,CAAK,EAAG;AAElB,QADsBD,EAASC,CAAK,EAClB,SAASI,CAAO,EAAU,QAAA;AAAA,EAC7C;AACO,SAAA;AACR;"}
|
package/dist/index238.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { defineComponent as y, ref as F, computed as H, watch as N, openBlock as p, createElementBlock as L, Fragment as S, renderList as V, createBlock as A, normalizeClass as O, withModifiers as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
|
|
2
|
+
import { hash as d } from "./index229.js";
|
|
3
|
+
import { isNil as l } from "./index126.js";
|
|
4
|
+
import E from "./index121.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
const K = /* @__PURE__ */ y({
|
|
7
|
+
__name: "ChipsBox",
|
|
8
|
+
props: {
|
|
9
|
+
options: {}
|
|
10
|
+
},
|
|
11
|
+
emits: ["option:unselected"],
|
|
12
|
+
setup(f, { expose: v, emit: h }) {
|
|
13
|
+
const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
|
|
14
|
+
const s = l(n.value) ? -1 : n.value;
|
|
15
|
+
let o = (s + e) % t.options.length;
|
|
16
|
+
for (; t.options[o].disabled && o !== s; )
|
|
17
|
+
o = a(e + 1);
|
|
18
|
+
return o;
|
|
19
|
+
}, x = () => {
|
|
20
|
+
if (!i.value) return;
|
|
21
|
+
const e = a();
|
|
22
|
+
n.value = e;
|
|
23
|
+
}, c = (e = 1) => {
|
|
24
|
+
const s = l(n.value) ? 0 : n.value;
|
|
25
|
+
let o = (s - e + t.options.length) % t.options.length;
|
|
26
|
+
for (; t.options[o].disabled && o !== s; )
|
|
27
|
+
o = c(e + 1);
|
|
28
|
+
return o;
|
|
29
|
+
}, m = async () => {
|
|
30
|
+
if (!i.value) return;
|
|
31
|
+
const e = c();
|
|
32
|
+
n.value = e;
|
|
33
|
+
}, w = () => {
|
|
34
|
+
if (!i.value) return;
|
|
35
|
+
let e = 0;
|
|
36
|
+
for (; t.options[e].disabled; )
|
|
37
|
+
e++;
|
|
38
|
+
n.value = e;
|
|
39
|
+
}, b = () => {
|
|
40
|
+
if (!i.value) return;
|
|
41
|
+
let e = t.options.length - 1;
|
|
42
|
+
for (; t.options[e].disabled && e !== 0; )
|
|
43
|
+
e--;
|
|
44
|
+
n.value = e;
|
|
45
|
+
}, I = () => {
|
|
46
|
+
if (!i.value) return;
|
|
47
|
+
let e = 0;
|
|
48
|
+
for (; !t.options[e].selected && t.options.length !== e; )
|
|
49
|
+
e++;
|
|
50
|
+
n.value = e;
|
|
51
|
+
}, g = () => {
|
|
52
|
+
if (!i.value) return;
|
|
53
|
+
let e = t.options.length - 1;
|
|
54
|
+
for (; t.options[e].selected && e !== 0; )
|
|
55
|
+
e--;
|
|
56
|
+
n.value = e;
|
|
57
|
+
}, _ = (e) => {
|
|
58
|
+
if (!i.value) return;
|
|
59
|
+
const s = t.options.findIndex(
|
|
60
|
+
(o) => o.valueHash === e
|
|
61
|
+
);
|
|
62
|
+
s >= 0 && (n.value = s);
|
|
63
|
+
}, r = () => {
|
|
64
|
+
n.value = null;
|
|
65
|
+
}, k = () => {
|
|
66
|
+
if (l(n.value)) return;
|
|
67
|
+
const e = t.options[n.value];
|
|
68
|
+
e.selected && u("option:unselected", e);
|
|
69
|
+
}, C = () => l(n.value) ? void 0 : t.options[n.value];
|
|
70
|
+
return N(
|
|
71
|
+
() => t.options,
|
|
72
|
+
(e, s) => {
|
|
73
|
+
d(e) !== d(s) && r();
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
flush: "post"
|
|
77
|
+
}
|
|
78
|
+
), v({
|
|
79
|
+
focusNext: x,
|
|
80
|
+
focusPrevious: m,
|
|
81
|
+
focusFirst: w,
|
|
82
|
+
focusFirstSelected: I,
|
|
83
|
+
focusLast: b,
|
|
84
|
+
focusLastSelected: g,
|
|
85
|
+
blur: r,
|
|
86
|
+
confirmOption: k,
|
|
87
|
+
focusByHash: _,
|
|
88
|
+
getHighlighted: C
|
|
89
|
+
}), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
|
|
90
|
+
key: o.valueHash,
|
|
91
|
+
class: O({
|
|
92
|
+
"bb-chipsbox-item": !0,
|
|
93
|
+
"bb-chipsbox-item--focused": B === n.value
|
|
94
|
+
}),
|
|
95
|
+
clearable: !0,
|
|
96
|
+
text: o.text,
|
|
97
|
+
"onClick:clear": P((M) => u("option:unselected", o), ["stop"])
|
|
98
|
+
}, {
|
|
99
|
+
default: $(() => [
|
|
100
|
+
z(D(o.text), 1)
|
|
101
|
+
]),
|
|
102
|
+
_: 2
|
|
103
|
+
}, 1032, ["class", "text", "onClick:clear"]))), 128));
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
export {
|
|
107
|
+
K as default
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=index238.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index238.js","sources":["../src/components/ChipsBox.vue"],"sourcesContent":["<template>\n\t<BbChip\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-chipsbox-item': true,\n\t\t\t'bb-chipsbox-item--focused': index === focusedIndex,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</BbChip\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport BbChip from './BbChip/BbChip.vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/ChipsBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
|
package/dist/index24.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent as ae, ref as o, getCurrentInstance as se, computed as m, nextTick as N, useAttrs as ne, onMounted as ie, onBeforeUnmount as F, watch as re, openBlock as _, createBlock as ue, Teleport as de, createElementVNode as a, mergeProps as G, createElementBlock as T, renderSlot as u, createTextVNode as ce, toDisplayString as P, createCommentVNode as z } from "vue";
|
|
2
|
-
import { throttle as ve } from "./
|
|
3
|
-
import { useFocusTrap as fe } from "./
|
|
2
|
+
import { throttle as ve } from "./index225.js";
|
|
3
|
+
import { useFocusTrap as fe } from "./index208.js";
|
|
4
4
|
import { useId as K } from "./index9.js";
|
|
5
5
|
import { wait as H } from "./index128.js";
|
|
6
|
-
import { waitFor as be } from "./
|
|
7
|
-
import { useModalsState as k } from "./
|
|
8
|
-
import { useLogger as pe } from "./
|
|
6
|
+
import { waitFor as be } from "./index210.js";
|
|
7
|
+
import { useModalsState as k } from "./index226.js";
|
|
8
|
+
import { useLogger as pe } from "./index220.js";
|
|
9
9
|
const me = { class: "bb-base-dialog-close" }, ge = ["aria-label"], ye = /* @__PURE__ */ a("span", { class: "bb-base-dialog-close__icon" }, [
|
|
10
10
|
/* @__PURE__ */ a("svg", {
|
|
11
11
|
"aria-hidden": "true",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as F, ref as H, computed as L, watch as N, openBlock as d, createElementBlock as v, Fragment as S, renderList as A, normalizeClass as O, withModifiers as P, toDisplayString as V } from "vue";
|
|
2
|
-
import { hash as f } from "./
|
|
2
|
+
import { hash as f } from "./index229.js";
|
|
3
3
|
import { isNil as i } from "./index126.js";
|
|
4
4
|
const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
|
|
5
5
|
__name: "CommaBox",
|
|
@@ -100,4 +100,4 @@ const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
|
|
|
100
100
|
export {
|
|
101
101
|
j as default
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=
|
|
103
|
+
//# sourceMappingURL=index240.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index240.js","sources":["../src/components/CommaBox.vue"],"sourcesContent":["<template>\n\t<span\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-commabox-item': true,\n\t\t\t'bb-commabox-item--focused': index === focusedIndex,\n\t\t\t'bb-commabox-item--has-comma': index !== options.length - 1,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</span\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (!focusedIndex.value) return;\n\tconst option = props.options[focusedIndex.value];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/CommaBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
|
package/dist/index244.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const i = n[e];
|
|
4
|
-
if (t(i, e, n))
|
|
5
|
-
return e;
|
|
6
|
-
}
|
|
7
|
-
return -1;
|
|
8
|
-
};
|
|
1
|
+
import o from "./index217.js";
|
|
2
|
+
/* empty css */
|
|
9
3
|
export {
|
|
10
|
-
o as
|
|
4
|
+
o as default
|
|
11
5
|
};
|
|
12
6
|
//# sourceMappingURL=index244.js.map
|