bitboss-ui 0.2.71 → 0.2.73
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/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +1 -1
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +1 -1
- package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +1 -1
- package/dist/components/BbAccordion/BbAccordion.vue.d.ts +1 -1
- package/dist/components/BbAlert/BbAlert.vue.d.ts +1 -1
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
- package/dist/components/BbBadge/BbBadge.vue.d.ts +1 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +1 -1
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +1 -1
- package/dist/components/BbChip/BbChip.vue.d.ts +1 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +1 -1
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -1
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +1 -1
- package/dist/components/BbIcon/BbIcon.vue.d.ts +1 -1
- package/dist/components/BbIntersection/BbIntersection.vue.d.ts +1 -1
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
- package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
- package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -1
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +1 -1
- package/dist/components/BbRatio/BbRatio.vue.d.ts +1 -1
- package/dist/components/BbSelect/BbSelect.vue.d.ts +1 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -1
- package/dist/components/BbTab/BbTab.vue.d.ts +1 -1
- package/dist/components/BbTable/BbTable.vue.d.ts +1 -1
- package/dist/components/BbTable/types.d.ts +1 -1
- package/dist/components/BbTooltip/BbTooltip.vue.d.ts +1 -1
- package/dist/composables/useConfirm.d.ts +1 -1
- package/dist/composables/useOptions.d.ts +1 -1
- package/dist/composables/useToast.d.ts +1 -1
- package/dist/index101.js +3 -3
- package/dist/index103.js +2 -2
- package/dist/index109.js +1 -1
- package/dist/index11.js +1 -1
- package/dist/index111.js +4 -4
- package/dist/index113.js +1 -1
- package/dist/index116.js +1 -1
- package/dist/index118.js +1 -1
- package/dist/index121.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index126.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index131.js +2 -2
- package/dist/index15.js +8 -8
- package/dist/index17.js +9 -9
- package/dist/index19.js +3 -3
- package/dist/index196.js +2 -2
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +10 -2
- package/dist/index197.js.map +1 -1
- package/dist/index199.js +4 -235
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +235 -2
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +3 -5
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +35 -16
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +6 -16
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +294 -18
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +13 -17
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +13 -26
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +19 -8
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +20 -2
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +27 -119
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index210.js +8 -2
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +2 -6
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +368 -4
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +131 -365
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +2 -373
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +174 -3
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +23 -3
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +373 -3
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +2 -35
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +3 -134
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +3 -174
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +121 -23
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +2 -10
- package/dist/index222.js.map +1 -1
- package/dist/index224.js +79 -6
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +6 -17
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +17 -79
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +69 -2
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +5 -295
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +2 -6
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +1 -1
- package/dist/index230.js +160 -2
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +1 -4
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +4 -2
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +15 -2
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +435 -2
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +89 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +197 -157
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +8 -1
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +2 -69
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +2 -106
- package/dist/index239.js.map +1 -1
- package/dist/index240.js +2 -4
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +2 -5
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +2 -2
- package/dist/index243.js +2 -224
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +2 -258
- package/dist/index244.js.map +1 -1
- package/dist/index246.js +99 -428
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +218 -83
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +258 -200
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +2 -2
- package/dist/index25.js +1 -1
- package/dist/index253.js +2 -15
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +3 -2
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +2 -3
- package/dist/index255.js.map +1 -1
- package/dist/index29.js +2 -2
- package/dist/index31.js +8 -8
- package/dist/index33.js +1 -1
- package/dist/index35.js +1 -1
- package/dist/index65.js +4 -4
- package/dist/index69.js +2 -2
- package/dist/index72.js +1 -1
- package/dist/index75.js +1 -1
- package/dist/index77.js +1 -1
- package/dist/index79.js +4 -4
- package/dist/index81.js +1 -1
- package/dist/index99.js +93 -89
- package/dist/index99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/components/BbStep/BbStep.vue.d.ts +0 -159
- package/dist/index256.js +0 -5
- package/dist/index256.js.map +0 -1
package/dist/index230.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index230.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index230.js","sources":["../src/components/BaseTag/BaseTag.vue"],"sourcesContent":["<template>\n\t<span\n\t\tref=\"outerContainer\"\n\t\t:class=\"{\n\t\t\t'bb-base-tag': true,\n\t\t\t'bb-base-tag--active': active,\n\t\t\t'bb-base-tag--disabled': disabled,\n\t\t\t'bb-base-tag--errors': hasErrors,\n\t\t\t'bb-base-tag--readonly': readonly,\n\t\t}\"\n\t\t@click=\"onOuterContainerClick\"\n\t>\n\t\t<slot name=\"prepend-outer\"></slot>\n\t\t<span ref=\"innerContainer\" class=\"bb-base-tag__inner-container\">\n\t\t\t<slot name=\"prepend\"></slot>\n\t\t\t<span class=\"bb-base-tag__input-container\">\n\t\t\t\t<template v-if=\"comma\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tv-for=\"(option, index) in modelValueNormalized\"\n\t\t\t\t\t\t:key=\"option\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-tag__selected': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--comma': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--focused': index === focusedIndex,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t>{{ option\n\t\t\t\t\t\t}}{{ index < modelValueNormalized.length - 1 ? ',' : '' }}</span\n\t\t\t\t\t>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<BbChip\n\t\t\t\t\t\tv-for=\"(option, index) in modelValueNormalized\"\n\t\t\t\t\t\t:key=\"option\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-tag__selected': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--chip': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--focused': index === focusedIndex,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:clearable=\"true\"\n\t\t\t\t\t\t:text=\"option\"\n\t\t\t\t\t\t@click:clear=\"removeValue(index)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\n\t\t\t\t<input\n\t\t\t\t\t:id=\"id\"\n\t\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\t\tref=\"input\"\n\t\t\t\t\tv-model=\"query\"\n\t\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t\t:class=\"'bb-base-tag__text-input'\"\n\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t:placeholder=\"computedPlaceholder\"\n\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t:type=\"'text'\"\n\t\t\t\t\t@focus=\"onInputFocus\"\n\t\t\t\t\t@keyup=\"onInputKeyup\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<slot name=\"append\"></slot>\n\t\t</span>\n\t\t<slot name=\"append-outer\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { clamp } from '@/utilities/functions/clamp';\nimport { computed, ref } from 'vue';\nimport { drop } from '@/utilities/functions/drop';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { wait } from '@/utilities/functions/wait';\nimport BbChip from '../BbChip/BbChip.vue';\nimport type { InputHTMLAttributes, HTMLAttributes } from 'vue';\n\nexport type BaseTagProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Sets the display model for selected values to a list\n\t * of comma separated string. In this mode the user\n\t * cannot deselect an option by pressing the close button.\n\t */\n\tcomma?: boolean;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * The divider key used to separate values from one another. By default it is \"Enter\"\n\t */\n\tdivider?: KeyboardEvent['key'];\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Used by v-model. Can be any serializable type.\n\t */\n\tmodelValue: any;\n\n\t/**\n\t * Allows the selection of multiple items.\n\t */\n\tmultiple?: boolean;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n};\n\nconst props = withDefaults(defineProps<BaseTagProps>(), {\n\tdivider: 'Enter',\n\tmultiple: true,\n});\n\nexport type BaseTagEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\n\t(e: 'change', event: Event): void;\n\n\t(e: 'click', event: MouseEvent): void;\n\n\t(e: 'duplicate', string: string): void;\n\n\t(e: 'focus', event: FocusEvent): void;\n\n\t(e: 'inactive'): void;\n\n\t(e: 'input', event: Event): void;\n\n\t(e: 'keydown', event: KeyboardEvent): void;\n\n\t(e: 'keyup', event: KeyboardEvent): void;\n\n\t(e: 'update:modelValue', value: any): void;\n};\n\nconst emit = defineEmits<BaseTagEvents>();\n\nexport type BaseTagSlots = {\n\tappend?: (props: object) => any;\n\n\t'append-outer'?: (props: object) => any;\n\n\tprepend?: (props: object) => any;\n\n\t'prepend-outer'?: (props: object) => any;\n};\n\ndefineSlots<BaseTagSlots>();\n\nif (props.multiple && !Array.isArray(props.modelValue)) {\n\tthrow new Error('Multiple is set to \"true\" but modelValue is not an array.');\n}\n\nconst outerContainer = ref<HTMLElement | null>(null);\nconst innerContainer = ref<HTMLElement | null>(null);\nconst input = ref<HTMLElement | null>(null);\nconst query = ref<string>('');\nconst computedPlaceholder = computed(() => {\n\treturn props.placeholder;\n});\n\nconst modelValueNormalized = computed(() =>\n\t[].concat(props.modelValue).filter(isNotNil)\n);\n\n/**\n * Indexes modelValue to a map so when can easily know which values are selected\n */\nconst modelValueIndexed = computed(() => {\n\tlet map: { [key: string]: number } = {};\n\tmodelValueNormalized.value.forEach((value: any, index: number) => {\n\t\tmap[JSON.stringify(value)] = index;\n\t});\n\treturn {\n\t\tget: (value: any) => map[JSON.stringify(value)],\n\t};\n});\n\n/**\n * Applies a class when the user is inside this whole component.\n * We cannot use focus within as it doesn't work for elements that are teleported.\n * Also we cannot use the <input/> if we phisically move focus to the options so\n * we track it manually.\n */\nconst active = ref(false);\n\nconst focusedIndex = ref<null | number>(null);\n\nconst onInputKeyup = (event: KeyboardEvent) => {\n\temit('keyup', event);\n\tif (props.readonly || props.disabled) {\n\t\tevent.preventDefault();\n\t\treturn;\n\t}\n\tif (event.key === props.divider) {\n\t\tif (query.value[query.value.length - 1] === event.key) {\n\t\t\tquery.value = query.value.slice(0, query.value.length - 1);\n\t\t}\n\t\tif (!query.value) return;\n\t\tfocusedIndex.value = null;\n\t\tconst currentIndex = modelValueIndexed.value.get(query.value);\n\t\tif (isNil(currentIndex)) selectValue(query.value);\n\t\telse emit('duplicate', query.value);\n\t\tquery.value = '';\n\t} else if (event.key === 'ArrowLeft') {\n\t\tif (focusedIndex.value === null)\n\t\t\tfocusedIndex.value = modelValueNormalized.value.length - 1;\n\t\telse if (focusedIndex.value === 0) focusedIndex.value = null;\n\t\telse focusedIndex.value--;\n\t} else if (event.key === 'ArrowRight') {\n\t\tif (focusedIndex.value === null) focusedIndex.value = 1;\n\t\telse if (focusedIndex.value === modelValueNormalized.value.length - 1)\n\t\t\tfocusedIndex.value = null;\n\t\telse focusedIndex.value++;\n\t} else if (event.key === 'Backspace') {\n\t\tif (query.value) return;\n\t\tif (isNotNil(focusedIndex.value)) {\n\t\t\tremoveValue(focusedIndex.value);\n\t\t\tfocusedIndex.value = clamp(\n\t\t\t\tfocusedIndex.value,\n\t\t\t\t0,\n\t\t\t\tmodelValueNormalized.value.length - 2\n\t\t\t);\n\t\t\tif (modelValueNormalized.value.length === 1) focusedIndex.value = null;\n\t\t} else focusedIndex.value = modelValueNormalized.value.length - 1;\n\t} else if (event.key === 'Tab' || event.key === 'Escape') {\n\t\tfocusedIndex.value = null;\n\t}\n};\n\nconst selectValue = (text: string) => {\n\tif (props.multiple) emit('update:modelValue', props.modelValue.concat(text));\n\telse emit('update:modelValue', text);\n};\n\nconst removeValue = (indexOrString: number | string) => {\n\tif (typeof indexOrString === 'number') {\n\t\tif (props.multiple)\n\t\t\temit('update:modelValue', drop(props.modelValue, 1, indexOrString));\n\t\telse emit('update:modelValue', null);\n\t} else {\n\t\tconst currentIndex = modelValueIndexed.value.get(query.value);\n\t\tremoveValue(currentIndex);\n\t}\n};\n\nconst onInputFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tactive.value = true;\n\tdocument.addEventListener('click', onClickOutside);\n\tdocument.addEventListener('focusin', onFocusOutside);\n\tif (input.value instanceof HTMLInputElement) input.value.select();\n};\n\n/**\n * When clicking on the outside container seamlessly move focus to the input and open the panel\n */\nconst onOuterContainerClick = (event: MouseEvent) => {\n\temit('click', event);\n\tif (props.disabled || props.readonly) return;\n\tif (input.value instanceof HTMLElement) {\n\t\tinput.value.focus();\n\t}\n};\n\n/**\n * On click outside of the container close the panel, remove active state.\n * In multiple selection clear query after a timeout\n */\nconst onClickOutside = (event: Event) => {\n\tif (event.target instanceof Node) {\n\t\tif (outerContainer.value) {\n\t\t\tif (!outerContainer.value.contains(event.target)) {\n\t\t\t\temit('inactive');\n\t\t\t\tdocument.removeEventListener('click', onClickOutside);\n\t\t\t\tactive.value = false;\n\t\t\t\tif (props.multiple)\n\t\t\t\t\twait(500).then(() => {\n\t\t\t\t\t\tquery.value = '';\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst onFocusOutside = (event: FocusEvent) => {\n\tif (event.target instanceof Node) {\n\t\tif (outerContainer.value) {\n\t\t\tif (!outerContainer.value.contains(event.target)) {\n\t\t\t\temit('inactive');\n\t\t\t\tdocument.removeEventListener('focusin', onFocusOutside);\n\t\t\t\tactive.value = false;\n\t\t\t\tif (props.multiple)\n\t\t\t\t\twait(500).then(() => {\n\t\t\t\t\t\tquery.value = '';\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonKeydown: (event: KeyboardEvent) => {\n\t\tif (event.key === 'Enter' && props.divider === 'Enter') {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\temit('keydown', event);\n\t},\n\tonInput: (event: Event) => emit('input', event),\n};\n</script>\n<style lang=\"postcss\">\n@import '@/assets/css/BaseTag';\n</style>\n"],"names":["props","__props","emit","__emit","outerContainer","ref","innerContainer","input","query","computedPlaceholder","computed","modelValueNormalized","isNotNil","modelValueIndexed","map","value","index","active","focusedIndex","onInputKeyup","event","currentIndex","isNil","selectValue","removeValue","clamp","text","indexOrString","drop","onInputFocus","onClickOutside","onFocusOutside","onOuterContainerClick","wait","eventListeners"],"mappings":"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"}
|
package/dist/index231.js
CHANGED
package/dist/index231.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index231.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index231.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index232.js
CHANGED
package/dist/index232.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index232.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index232.js","sources":["../src/utilities/functions/curry.ts"],"sourcesContent":["export type Curried<A extends any[], R> = <P extends Partial<A>>(\n\t...args: P\n) => P extends A\n\t? R\n\t: A extends [...SameLength<P>, ...infer S]\n\t\t? S extends any[]\n\t\t\t? Curried<S, R>\n\t\t\t: never\n\t\t: never;\n\ntype SameLength<T extends any[]> = Extract<{ [K in keyof T]: any }, any[]>;\n\nexport const curry = function <A extends any[], R>(\n\tfn: (...args: A) => R\n): Curried<A, R> {\n\treturn (...args: any[]): any =>\n\t\targs.length >= fn.length\n\t\t\t? fn(...(args as any))\n\t\t\t: curry((fn as any).bind(undefined, ...args));\n};\n"],"names":["curry","fn","args"],"mappings":"AAYa,MAAAA,IAAQ,SACpBC,GACgB;AAChB,SAAO,IAAIC,MACVA,EAAK,UAAUD,EAAG,SACfA,EAAG,GAAIC,CAAY,IACnBF,EAAOC,EAAW,KAAK,QAAW,GAAGC,CAAI,CAAC;AAC/C;"}
|
package/dist/index233.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
function r(t) {
|
|
2
|
+
return Object.prototype.toString.call(t).slice(8, -1);
|
|
3
|
+
}
|
|
4
|
+
function o(t) {
|
|
5
|
+
return r(t) === "Array";
|
|
6
|
+
}
|
|
7
|
+
function c(t) {
|
|
8
|
+
if (r(t) !== "Object")
|
|
9
|
+
return !1;
|
|
10
|
+
const e = Object.getPrototypeOf(t);
|
|
11
|
+
return !!e && e.constructor === Object && e === Object.prototype;
|
|
12
|
+
}
|
|
2
13
|
export {
|
|
3
|
-
|
|
14
|
+
r as getType,
|
|
15
|
+
o as isArray,
|
|
16
|
+
c as isPlainObject
|
|
4
17
|
};
|
|
5
18
|
//# 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":["../node_modules/is-what/dist/index.js"],"sourcesContent":["function getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n\nfunction isAnyObject(payload) {\n return getType(payload) === \"Object\";\n}\n\nfunction isArray(payload) {\n return getType(payload) === \"Array\";\n}\n\nfunction isBlob(payload) {\n return getType(payload) === \"Blob\";\n}\n\nfunction isBoolean(payload) {\n return getType(payload) === \"Boolean\";\n}\n\nfunction isDate(payload) {\n return getType(payload) === \"Date\" && !isNaN(payload);\n}\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n\nfunction isEmptyString(payload) {\n return payload === \"\";\n}\n\nfunction isError(payload) {\n return getType(payload) === \"Error\" || payload instanceof Error;\n}\n\nfunction isFile(payload) {\n return getType(payload) === \"File\";\n}\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n\nfunction isString(payload) {\n return getType(payload) === \"String\";\n}\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== \"\";\n}\n\nfunction isFunction(payload) {\n return typeof payload === \"function\";\n}\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError(\"Type must be a function\");\n }\n if (!Object.prototype.hasOwnProperty.call(type, \"prototype\")) {\n throw new TypeError(\"Type is not a class\");\n }\n const name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nfunction isInstanceOf(value, classOrClassName) {\n if (typeof classOrClassName === \"function\") {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (isType(p, classOrClassName)) {\n return true;\n }\n }\n return false;\n } else {\n for (let p = value; p; p = Object.getPrototypeOf(p)) {\n if (getType(p) === classOrClassName) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction isMap(payload) {\n return getType(payload) === \"Map\";\n}\n\nfunction isNaNValue(payload) {\n return getType(payload) === \"Number\" && isNaN(payload);\n}\n\nfunction isNumber(payload) {\n return getType(payload) === \"Number\" && !isNaN(payload);\n}\n\nfunction isNegativeNumber(payload) {\n return isNumber(payload) && payload < 0;\n}\n\nfunction isNull(payload) {\n return getType(payload) === \"Null\";\n}\n\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n\nfunction isUndefined(payload) {\n return getType(payload) === \"Undefined\";\n}\n\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n\nfunction isPositiveNumber(payload) {\n return isNumber(payload) && payload > 0;\n}\n\nfunction isSymbol(payload) {\n return getType(payload) === \"Symbol\";\n}\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n\nfunction isPromise(payload) {\n return getType(payload) === \"Promise\";\n}\n\nfunction isRegExp(payload) {\n return getType(payload) === \"RegExp\";\n}\n\nfunction isSet(payload) {\n return getType(payload) === \"Set\";\n}\n\nfunction isWeakMap(payload) {\n return getType(payload) === \"WeakMap\";\n}\n\nfunction isWeakSet(payload) {\n return getType(payload) === \"WeakSet\";\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n"],"names":["getType","payload","isArray","isPlainObject","prototype"],"mappings":"AAAA,SAASA,EAAQC,GAAS;AACxB,SAAO,OAAO,UAAU,SAAS,KAAKA,CAAO,EAAE,MAAM,GAAG,EAAE;AAC5D;AAMA,SAASC,EAAQD,GAAS;AACxB,SAAOD,EAAQC,CAAO,MAAM;AAC9B;AAkBA,SAASE,EAAcF,GAAS;AAC9B,MAAID,EAAQC,CAAO,MAAM;AACvB,WAAO;AACT,QAAMG,IAAY,OAAO,eAAeH,CAAO;AAC/C,SAAO,CAAC,CAACG,KAAaA,EAAU,gBAAgB,UAAUA,MAAc,OAAO;AACjF;","x_google_ignoreList":[0]}
|
package/dist/index234.js
CHANGED
|
@@ -1,5 +1,438 @@
|
|
|
1
|
-
|
|
1
|
+
import { isFocusable as G, tabbable as te, focusable as ae, isTabbable as T, getTabIndex as K } from "./index236.js";
|
|
2
|
+
/*!
|
|
3
|
+
* focus-trap 7.5.4
|
|
4
|
+
* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
|
|
5
|
+
*/
|
|
6
|
+
function z(u, a) {
|
|
7
|
+
var o = Object.keys(u);
|
|
8
|
+
if (Object.getOwnPropertySymbols) {
|
|
9
|
+
var i = Object.getOwnPropertySymbols(u);
|
|
10
|
+
a && (i = i.filter(function(m) {
|
|
11
|
+
return Object.getOwnPropertyDescriptor(u, m).enumerable;
|
|
12
|
+
})), o.push.apply(o, i);
|
|
13
|
+
}
|
|
14
|
+
return o;
|
|
15
|
+
}
|
|
16
|
+
function J(u) {
|
|
17
|
+
for (var a = 1; a < arguments.length; a++) {
|
|
18
|
+
var o = arguments[a] != null ? arguments[a] : {};
|
|
19
|
+
a % 2 ? z(Object(o), !0).forEach(function(i) {
|
|
20
|
+
ne(u, i, o[i]);
|
|
21
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(u, Object.getOwnPropertyDescriptors(o)) : z(Object(o)).forEach(function(i) {
|
|
22
|
+
Object.defineProperty(u, i, Object.getOwnPropertyDescriptor(o, i));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return u;
|
|
26
|
+
}
|
|
27
|
+
function ne(u, a, o) {
|
|
28
|
+
return a = ie(a), a in u ? Object.defineProperty(u, a, {
|
|
29
|
+
value: o,
|
|
30
|
+
enumerable: !0,
|
|
31
|
+
configurable: !0,
|
|
32
|
+
writable: !0
|
|
33
|
+
}) : u[a] = o, u;
|
|
34
|
+
}
|
|
35
|
+
function re(u, a) {
|
|
36
|
+
if (typeof u != "object" || u === null)
|
|
37
|
+
return u;
|
|
38
|
+
var o = u[Symbol.toPrimitive];
|
|
39
|
+
if (o !== void 0) {
|
|
40
|
+
var i = o.call(u, a || "default");
|
|
41
|
+
if (typeof i != "object")
|
|
42
|
+
return i;
|
|
43
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
44
|
+
}
|
|
45
|
+
return (a === "string" ? String : Number)(u);
|
|
46
|
+
}
|
|
47
|
+
function ie(u) {
|
|
48
|
+
var a = re(u, "string");
|
|
49
|
+
return typeof a == "symbol" ? a : String(a);
|
|
50
|
+
}
|
|
51
|
+
var Q = {
|
|
52
|
+
activateTrap: function(a, o) {
|
|
53
|
+
if (a.length > 0) {
|
|
54
|
+
var i = a[a.length - 1];
|
|
55
|
+
i !== o && i.pause();
|
|
56
|
+
}
|
|
57
|
+
var m = a.indexOf(o);
|
|
58
|
+
m === -1 || a.splice(m, 1), a.push(o);
|
|
59
|
+
},
|
|
60
|
+
deactivateTrap: function(a, o) {
|
|
61
|
+
var i = a.indexOf(o);
|
|
62
|
+
i !== -1 && a.splice(i, 1), a.length > 0 && a[a.length - 1].unpause();
|
|
63
|
+
}
|
|
64
|
+
}, oe = function(a) {
|
|
65
|
+
return a.tagName && a.tagName.toLowerCase() === "input" && typeof a.select == "function";
|
|
66
|
+
}, ue = function(a) {
|
|
67
|
+
return (a == null ? void 0 : a.key) === "Escape" || (a == null ? void 0 : a.key) === "Esc" || (a == null ? void 0 : a.keyCode) === 27;
|
|
68
|
+
}, L = function(a) {
|
|
69
|
+
return (a == null ? void 0 : a.key) === "Tab" || (a == null ? void 0 : a.keyCode) === 9;
|
|
70
|
+
}, se = function(a) {
|
|
71
|
+
return L(a) && !a.shiftKey;
|
|
72
|
+
}, ce = function(a) {
|
|
73
|
+
return L(a) && a.shiftKey;
|
|
74
|
+
}, W = function(a) {
|
|
75
|
+
return setTimeout(a, 0);
|
|
76
|
+
}, X = function(a, o) {
|
|
77
|
+
var i = -1;
|
|
78
|
+
return a.every(function(m, s) {
|
|
79
|
+
return o(m) ? (i = s, !1) : !0;
|
|
80
|
+
}), i;
|
|
81
|
+
}, B = function(a) {
|
|
82
|
+
for (var o = arguments.length, i = new Array(o > 1 ? o - 1 : 0), m = 1; m < o; m++)
|
|
83
|
+
i[m - 1] = arguments[m];
|
|
84
|
+
return typeof a == "function" ? a.apply(void 0, i) : a;
|
|
85
|
+
}, C = function(a) {
|
|
86
|
+
return a.target.shadowRoot && typeof a.composedPath == "function" ? a.composedPath()[0] : a.target;
|
|
87
|
+
}, le = [], de = function(a, o) {
|
|
88
|
+
var i = (o == null ? void 0 : o.document) || document, m = (o == null ? void 0 : o.trapStack) || le, s = J({
|
|
89
|
+
returnFocusOnDeactivate: !0,
|
|
90
|
+
escapeDeactivates: !0,
|
|
91
|
+
delayInitialFocus: !0,
|
|
92
|
+
isKeyForward: se,
|
|
93
|
+
isKeyBackward: ce
|
|
94
|
+
}, o), n = {
|
|
95
|
+
// containers given to createFocusTrap()
|
|
96
|
+
// @type {Array<HTMLElement>}
|
|
97
|
+
containers: [],
|
|
98
|
+
// list of objects identifying tabbable nodes in `containers` in the trap
|
|
99
|
+
// NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap
|
|
100
|
+
// is active, but the trap should never get to a state where there isn't at least one group
|
|
101
|
+
// with at least one tabbable node in it (that would lead to an error condition that would
|
|
102
|
+
// result in an error being thrown)
|
|
103
|
+
// @type {Array<{
|
|
104
|
+
// container: HTMLElement,
|
|
105
|
+
// tabbableNodes: Array<HTMLElement>, // empty if none
|
|
106
|
+
// focusableNodes: Array<HTMLElement>, // empty if none
|
|
107
|
+
// posTabIndexesFound: boolean,
|
|
108
|
+
// firstTabbableNode: HTMLElement|undefined,
|
|
109
|
+
// lastTabbableNode: HTMLElement|undefined,
|
|
110
|
+
// firstDomTabbableNode: HTMLElement|undefined,
|
|
111
|
+
// lastDomTabbableNode: HTMLElement|undefined,
|
|
112
|
+
// nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined
|
|
113
|
+
// }>}
|
|
114
|
+
containerGroups: [],
|
|
115
|
+
// same order/length as `containers` list
|
|
116
|
+
// references to objects in `containerGroups`, but only those that actually have
|
|
117
|
+
// tabbable nodes in them
|
|
118
|
+
// NOTE: same order as `containers` and `containerGroups`, but __not necessarily__
|
|
119
|
+
// the same length
|
|
120
|
+
tabbableGroups: [],
|
|
121
|
+
nodeFocusedBeforeActivation: null,
|
|
122
|
+
mostRecentlyFocusedNode: null,
|
|
123
|
+
active: !1,
|
|
124
|
+
paused: !1,
|
|
125
|
+
// timer ID for when delayInitialFocus is true and initial focus in this trap
|
|
126
|
+
// has been delayed during activation
|
|
127
|
+
delayInitialFocusTimer: void 0,
|
|
128
|
+
// the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any
|
|
129
|
+
recentNavEvent: void 0
|
|
130
|
+
}, g, h = function(t, e, r) {
|
|
131
|
+
return t && t[e] !== void 0 ? t[e] : s[r || e];
|
|
132
|
+
}, F = function(t, e) {
|
|
133
|
+
var r = typeof (e == null ? void 0 : e.composedPath) == "function" ? e.composedPath() : void 0;
|
|
134
|
+
return n.containerGroups.findIndex(function(c) {
|
|
135
|
+
var l = c.container, d = c.tabbableNodes;
|
|
136
|
+
return l.contains(t) || // fall back to explicit tabbable search which will take into consideration any
|
|
137
|
+
// web components if the `tabbableOptions.getShadowRoot` option was used for
|
|
138
|
+
// the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
|
|
139
|
+
// look inside web components even if open)
|
|
140
|
+
(r == null ? void 0 : r.includes(l)) || d.find(function(v) {
|
|
141
|
+
return v === t;
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}, E = function(t) {
|
|
145
|
+
var e = s[t];
|
|
146
|
+
if (typeof e == "function") {
|
|
147
|
+
for (var r = arguments.length, c = new Array(r > 1 ? r - 1 : 0), l = 1; l < r; l++)
|
|
148
|
+
c[l - 1] = arguments[l];
|
|
149
|
+
e = e.apply(void 0, c);
|
|
150
|
+
}
|
|
151
|
+
if (e === !0 && (e = void 0), !e) {
|
|
152
|
+
if (e === void 0 || e === !1)
|
|
153
|
+
return e;
|
|
154
|
+
throw new Error("`".concat(t, "` was specified but was not a node, or did not return a node"));
|
|
155
|
+
}
|
|
156
|
+
var d = e;
|
|
157
|
+
if (typeof e == "string" && (d = i.querySelector(e), !d))
|
|
158
|
+
throw new Error("`".concat(t, "` as selector refers to no known node"));
|
|
159
|
+
return d;
|
|
160
|
+
}, P = function() {
|
|
161
|
+
var t = E("initialFocus");
|
|
162
|
+
if (t === !1)
|
|
163
|
+
return !1;
|
|
164
|
+
if (t === void 0 || !G(t, s.tabbableOptions))
|
|
165
|
+
if (F(i.activeElement) >= 0)
|
|
166
|
+
t = i.activeElement;
|
|
167
|
+
else {
|
|
168
|
+
var e = n.tabbableGroups[0], r = e && e.firstTabbableNode;
|
|
169
|
+
t = r || E("fallbackFocus");
|
|
170
|
+
}
|
|
171
|
+
if (!t)
|
|
172
|
+
throw new Error("Your focus-trap needs to have at least one focusable element");
|
|
173
|
+
return t;
|
|
174
|
+
}, D = function() {
|
|
175
|
+
if (n.containerGroups = n.containers.map(function(t) {
|
|
176
|
+
var e = te(t, s.tabbableOptions), r = ae(t, s.tabbableOptions), c = e.length > 0 ? e[0] : void 0, l = e.length > 0 ? e[e.length - 1] : void 0, d = r.find(function(b) {
|
|
177
|
+
return T(b);
|
|
178
|
+
}), v = r.slice().reverse().find(function(b) {
|
|
179
|
+
return T(b);
|
|
180
|
+
}), p = !!e.find(function(b) {
|
|
181
|
+
return K(b) > 0;
|
|
182
|
+
});
|
|
183
|
+
return {
|
|
184
|
+
container: t,
|
|
185
|
+
tabbableNodes: e,
|
|
186
|
+
focusableNodes: r,
|
|
187
|
+
/** True if at least one node with positive `tabindex` was found in this container. */
|
|
188
|
+
posTabIndexesFound: p,
|
|
189
|
+
/** First tabbable node in container, __tabindex__ order; `undefined` if none. */
|
|
190
|
+
firstTabbableNode: c,
|
|
191
|
+
/** Last tabbable node in container, __tabindex__ order; `undefined` if none. */
|
|
192
|
+
lastTabbableNode: l,
|
|
193
|
+
// NOTE: DOM order is NOT NECESSARILY "document position" order, but figuring that out
|
|
194
|
+
// would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition
|
|
195
|
+
// because that API doesn't work with Shadow DOM as well as it should (@see
|
|
196
|
+
// https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,
|
|
197
|
+
// to address an edge case related to positive tabindex support, this seems like a much easier,
|
|
198
|
+
// "close enough most of the time" alternative for positive tabindexes which should generally
|
|
199
|
+
// be avoided anyway...
|
|
200
|
+
/** First tabbable node in container, __DOM__ order; `undefined` if none. */
|
|
201
|
+
firstDomTabbableNode: d,
|
|
202
|
+
/** Last tabbable node in container, __DOM__ order; `undefined` if none. */
|
|
203
|
+
lastDomTabbableNode: v,
|
|
204
|
+
/**
|
|
205
|
+
* Finds the __tabbable__ node that follows the given node in the specified direction,
|
|
206
|
+
* in this container, if any.
|
|
207
|
+
* @param {HTMLElement} node
|
|
208
|
+
* @param {boolean} [forward] True if going in forward tab order; false if going
|
|
209
|
+
* in reverse.
|
|
210
|
+
* @returns {HTMLElement|undefined} The next tabbable node, if any.
|
|
211
|
+
*/
|
|
212
|
+
nextTabbableNode: function(N) {
|
|
213
|
+
var O = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, y = e.indexOf(N);
|
|
214
|
+
return y < 0 ? O ? r.slice(r.indexOf(N) + 1).find(function(R) {
|
|
215
|
+
return T(R);
|
|
216
|
+
}) : r.slice(0, r.indexOf(N)).reverse().find(function(R) {
|
|
217
|
+
return T(R);
|
|
218
|
+
}) : e[y + (O ? 1 : -1)];
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
}), n.tabbableGroups = n.containerGroups.filter(function(t) {
|
|
222
|
+
return t.tabbableNodes.length > 0;
|
|
223
|
+
}), n.tabbableGroups.length <= 0 && !E("fallbackFocus"))
|
|
224
|
+
throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");
|
|
225
|
+
if (n.containerGroups.find(function(t) {
|
|
226
|
+
return t.posTabIndexesFound;
|
|
227
|
+
}) && n.containerGroups.length > 1)
|
|
228
|
+
throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.");
|
|
229
|
+
}, Z = function f(t) {
|
|
230
|
+
var e = t.activeElement;
|
|
231
|
+
if (e)
|
|
232
|
+
return e.shadowRoot && e.shadowRoot.activeElement !== null ? f(e.shadowRoot) : e;
|
|
233
|
+
}, w = function f(t) {
|
|
234
|
+
if (t !== !1 && t !== Z(document)) {
|
|
235
|
+
if (!t || !t.focus) {
|
|
236
|
+
f(P());
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
t.focus({
|
|
240
|
+
preventScroll: !!s.preventScroll
|
|
241
|
+
}), n.mostRecentlyFocusedNode = t, oe(t) && t.select();
|
|
242
|
+
}
|
|
243
|
+
}, S = function(t) {
|
|
244
|
+
var e = E("setReturnFocus", t);
|
|
245
|
+
return e || (e === !1 ? !1 : t);
|
|
246
|
+
}, U = function(t) {
|
|
247
|
+
var e = t.target, r = t.event, c = t.isBackward, l = c === void 0 ? !1 : c;
|
|
248
|
+
e = e || C(r), D();
|
|
249
|
+
var d = null;
|
|
250
|
+
if (n.tabbableGroups.length > 0) {
|
|
251
|
+
var v = F(e, r), p = v >= 0 ? n.containerGroups[v] : void 0;
|
|
252
|
+
if (v < 0)
|
|
253
|
+
l ? d = n.tabbableGroups[n.tabbableGroups.length - 1].lastTabbableNode : d = n.tabbableGroups[0].firstTabbableNode;
|
|
254
|
+
else if (l) {
|
|
255
|
+
var b = X(n.tabbableGroups, function(I) {
|
|
256
|
+
var x = I.firstTabbableNode;
|
|
257
|
+
return e === x;
|
|
258
|
+
});
|
|
259
|
+
if (b < 0 && (p.container === e || G(e, s.tabbableOptions) && !T(e, s.tabbableOptions) && !p.nextTabbableNode(e, !1)) && (b = v), b >= 0) {
|
|
260
|
+
var N = b === 0 ? n.tabbableGroups.length - 1 : b - 1, O = n.tabbableGroups[N];
|
|
261
|
+
d = K(e) >= 0 ? O.lastTabbableNode : O.lastDomTabbableNode;
|
|
262
|
+
} else
|
|
263
|
+
L(r) || (d = p.nextTabbableNode(e, !1));
|
|
264
|
+
} else {
|
|
265
|
+
var y = X(n.tabbableGroups, function(I) {
|
|
266
|
+
var x = I.lastTabbableNode;
|
|
267
|
+
return e === x;
|
|
268
|
+
});
|
|
269
|
+
if (y < 0 && (p.container === e || G(e, s.tabbableOptions) && !T(e, s.tabbableOptions) && !p.nextTabbableNode(e)) && (y = v), y >= 0) {
|
|
270
|
+
var R = y === n.tabbableGroups.length - 1 ? 0 : y + 1, $ = n.tabbableGroups[R];
|
|
271
|
+
d = K(e) >= 0 ? $.firstTabbableNode : $.firstDomTabbableNode;
|
|
272
|
+
} else
|
|
273
|
+
L(r) || (d = p.nextTabbableNode(e));
|
|
274
|
+
}
|
|
275
|
+
} else
|
|
276
|
+
d = E("fallbackFocus");
|
|
277
|
+
return d;
|
|
278
|
+
}, A = function(t) {
|
|
279
|
+
var e = C(t);
|
|
280
|
+
if (!(F(e, t) >= 0)) {
|
|
281
|
+
if (B(s.clickOutsideDeactivates, t)) {
|
|
282
|
+
g.deactivate({
|
|
283
|
+
// NOTE: by setting `returnFocus: false`, deactivate() will do nothing,
|
|
284
|
+
// which will result in the outside click setting focus to the node
|
|
285
|
+
// that was clicked (and if not focusable, to "nothing"); by setting
|
|
286
|
+
// `returnFocus: true`, we'll attempt to re-focus the node originally-focused
|
|
287
|
+
// on activation (or the configured `setReturnFocus` node), whether the
|
|
288
|
+
// outside click was on a focusable node or not
|
|
289
|
+
returnFocus: s.returnFocusOnDeactivate
|
|
290
|
+
});
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
B(s.allowOutsideClick, t) || t.preventDefault();
|
|
294
|
+
}
|
|
295
|
+
}, q = function(t) {
|
|
296
|
+
var e = C(t), r = F(e, t) >= 0;
|
|
297
|
+
if (r || e instanceof Document)
|
|
298
|
+
r && (n.mostRecentlyFocusedNode = e);
|
|
299
|
+
else {
|
|
300
|
+
t.stopImmediatePropagation();
|
|
301
|
+
var c, l = !0;
|
|
302
|
+
if (n.mostRecentlyFocusedNode)
|
|
303
|
+
if (K(n.mostRecentlyFocusedNode) > 0) {
|
|
304
|
+
var d = F(n.mostRecentlyFocusedNode), v = n.containerGroups[d].tabbableNodes;
|
|
305
|
+
if (v.length > 0) {
|
|
306
|
+
var p = v.findIndex(function(b) {
|
|
307
|
+
return b === n.mostRecentlyFocusedNode;
|
|
308
|
+
});
|
|
309
|
+
p >= 0 && (s.isKeyForward(n.recentNavEvent) ? p + 1 < v.length && (c = v[p + 1], l = !1) : p - 1 >= 0 && (c = v[p - 1], l = !1));
|
|
310
|
+
}
|
|
311
|
+
} else
|
|
312
|
+
n.containerGroups.some(function(b) {
|
|
313
|
+
return b.tabbableNodes.some(function(N) {
|
|
314
|
+
return K(N) > 0;
|
|
315
|
+
});
|
|
316
|
+
}) || (l = !1);
|
|
317
|
+
else
|
|
318
|
+
l = !1;
|
|
319
|
+
l && (c = U({
|
|
320
|
+
// move FROM the MRU node, not event-related node (which will be the node that is
|
|
321
|
+
// outside the trap causing the focus escape we're trying to fix)
|
|
322
|
+
target: n.mostRecentlyFocusedNode,
|
|
323
|
+
isBackward: s.isKeyBackward(n.recentNavEvent)
|
|
324
|
+
})), w(c || n.mostRecentlyFocusedNode || P());
|
|
325
|
+
}
|
|
326
|
+
n.recentNavEvent = void 0;
|
|
327
|
+
}, _ = function(t) {
|
|
328
|
+
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
|
|
329
|
+
n.recentNavEvent = t;
|
|
330
|
+
var r = U({
|
|
331
|
+
event: t,
|
|
332
|
+
isBackward: e
|
|
333
|
+
});
|
|
334
|
+
r && (L(t) && t.preventDefault(), w(r));
|
|
335
|
+
}, H = function(t) {
|
|
336
|
+
if (ue(t) && B(s.escapeDeactivates, t) !== !1) {
|
|
337
|
+
t.preventDefault(), g.deactivate();
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
(s.isKeyForward(t) || s.isKeyBackward(t)) && _(t, s.isKeyBackward(t));
|
|
341
|
+
}, M = function(t) {
|
|
342
|
+
var e = C(t);
|
|
343
|
+
F(e, t) >= 0 || B(s.clickOutsideDeactivates, t) || B(s.allowOutsideClick, t) || (t.preventDefault(), t.stopImmediatePropagation());
|
|
344
|
+
}, Y = function() {
|
|
345
|
+
if (n.active)
|
|
346
|
+
return Q.activateTrap(m, g), n.delayInitialFocusTimer = s.delayInitialFocus ? W(function() {
|
|
347
|
+
w(P());
|
|
348
|
+
}) : w(P()), i.addEventListener("focusin", q, !0), i.addEventListener("mousedown", A, {
|
|
349
|
+
capture: !0,
|
|
350
|
+
passive: !1
|
|
351
|
+
}), i.addEventListener("touchstart", A, {
|
|
352
|
+
capture: !0,
|
|
353
|
+
passive: !1
|
|
354
|
+
}), i.addEventListener("click", M, {
|
|
355
|
+
capture: !0,
|
|
356
|
+
passive: !1
|
|
357
|
+
}), i.addEventListener("keydown", H, {
|
|
358
|
+
capture: !0,
|
|
359
|
+
passive: !1
|
|
360
|
+
}), g;
|
|
361
|
+
}, V = function() {
|
|
362
|
+
if (n.active)
|
|
363
|
+
return i.removeEventListener("focusin", q, !0), i.removeEventListener("mousedown", A, !0), i.removeEventListener("touchstart", A, !0), i.removeEventListener("click", M, !0), i.removeEventListener("keydown", H, !0), g;
|
|
364
|
+
}, ee = function(t) {
|
|
365
|
+
var e = t.some(function(r) {
|
|
366
|
+
var c = Array.from(r.removedNodes);
|
|
367
|
+
return c.some(function(l) {
|
|
368
|
+
return l === n.mostRecentlyFocusedNode;
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
e && w(P());
|
|
372
|
+
}, j = typeof window < "u" && "MutationObserver" in window ? new MutationObserver(ee) : void 0, k = function() {
|
|
373
|
+
j && (j.disconnect(), n.active && !n.paused && n.containers.map(function(t) {
|
|
374
|
+
j.observe(t, {
|
|
375
|
+
subtree: !0,
|
|
376
|
+
childList: !0
|
|
377
|
+
});
|
|
378
|
+
}));
|
|
379
|
+
};
|
|
380
|
+
return g = {
|
|
381
|
+
get active() {
|
|
382
|
+
return n.active;
|
|
383
|
+
},
|
|
384
|
+
get paused() {
|
|
385
|
+
return n.paused;
|
|
386
|
+
},
|
|
387
|
+
activate: function(t) {
|
|
388
|
+
if (n.active)
|
|
389
|
+
return this;
|
|
390
|
+
var e = h(t, "onActivate"), r = h(t, "onPostActivate"), c = h(t, "checkCanFocusTrap");
|
|
391
|
+
c || D(), n.active = !0, n.paused = !1, n.nodeFocusedBeforeActivation = i.activeElement, e == null || e();
|
|
392
|
+
var l = function() {
|
|
393
|
+
c && D(), Y(), k(), r == null || r();
|
|
394
|
+
};
|
|
395
|
+
return c ? (c(n.containers.concat()).then(l, l), this) : (l(), this);
|
|
396
|
+
},
|
|
397
|
+
deactivate: function(t) {
|
|
398
|
+
if (!n.active)
|
|
399
|
+
return this;
|
|
400
|
+
var e = J({
|
|
401
|
+
onDeactivate: s.onDeactivate,
|
|
402
|
+
onPostDeactivate: s.onPostDeactivate,
|
|
403
|
+
checkCanReturnFocus: s.checkCanReturnFocus
|
|
404
|
+
}, t);
|
|
405
|
+
clearTimeout(n.delayInitialFocusTimer), n.delayInitialFocusTimer = void 0, V(), n.active = !1, n.paused = !1, k(), Q.deactivateTrap(m, g);
|
|
406
|
+
var r = h(e, "onDeactivate"), c = h(e, "onPostDeactivate"), l = h(e, "checkCanReturnFocus"), d = h(e, "returnFocus", "returnFocusOnDeactivate");
|
|
407
|
+
r == null || r();
|
|
408
|
+
var v = function() {
|
|
409
|
+
W(function() {
|
|
410
|
+
d && w(S(n.nodeFocusedBeforeActivation)), c == null || c();
|
|
411
|
+
});
|
|
412
|
+
};
|
|
413
|
+
return d && l ? (l(S(n.nodeFocusedBeforeActivation)).then(v, v), this) : (v(), this);
|
|
414
|
+
},
|
|
415
|
+
pause: function(t) {
|
|
416
|
+
if (n.paused || !n.active)
|
|
417
|
+
return this;
|
|
418
|
+
var e = h(t, "onPause"), r = h(t, "onPostPause");
|
|
419
|
+
return n.paused = !0, e == null || e(), V(), k(), r == null || r(), this;
|
|
420
|
+
},
|
|
421
|
+
unpause: function(t) {
|
|
422
|
+
if (!n.paused || !n.active)
|
|
423
|
+
return this;
|
|
424
|
+
var e = h(t, "onUnpause"), r = h(t, "onPostUnpause");
|
|
425
|
+
return n.paused = !1, e == null || e(), D(), Y(), k(), r == null || r(), this;
|
|
426
|
+
},
|
|
427
|
+
updateContainerElements: function(t) {
|
|
428
|
+
var e = [].concat(t).filter(Boolean);
|
|
429
|
+
return n.containers = e.map(function(r) {
|
|
430
|
+
return typeof r == "string" ? i.querySelector(r) : r;
|
|
431
|
+
}), n.active && D(), k(), this;
|
|
432
|
+
}
|
|
433
|
+
}, g.updateContainerElements(a), g;
|
|
434
|
+
};
|
|
2
435
|
export {
|
|
3
|
-
|
|
436
|
+
de as createFocusTrap
|
|
4
437
|
};
|
|
5
438
|
//# sourceMappingURL=index234.js.map
|