@useinsider/ab-components 0.0.13 → 0.0.14
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/ab-components.cjs.js +1 -1
- package/dist/ab-components.cjs.js.map +1 -1
- package/dist/ab-components.css +1 -1
- package/dist/ab-components.es.js +56 -56
- package/dist/ab-components.es.js.map +1 -1
- package/dist/ab-components.iife.js +1 -1
- package/dist/ab-components.iife.js.map +1 -1
- package/dist/ab-components.umd.js +1 -1
- package/dist/ab-components.umd.js.map +1 -1
- package/dist/icons.svg +33 -31
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ab-components.es.js","sources":["../src/components/Button/Button.vue","../src/directives/clickOutside.ts","../src/utils/search.ts","../src/components/Dropdown/DropdownMenu.vue","../src/components/Icon/Icon.vue","../src/components/OnPageMessage/OnPageMessage.vue","../src/components/SegmentButton/SegmentButton.vue","../src/components/TextInput/TextInput.vue","../src/components/NumberInput/NumberInput.vue","../src/components/Toggle/Toggle.vue","../src/utils/preventXSS.ts","../src/components/Tooltip/Tooltip.vue","../src/components/Box/DefaultBox.vue","../src/components/Box/Box.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\n\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n variant: 'solid' | 'ghost' | 'text' | 'outline';\n color: 'primary' | 'subtle-primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n leftIconName?: IconNames;\n rightIconName?: IconNames;\n loadingStatus?: boolean;\n successStatus?: boolean;\n label?: string;\n disabled?: boolean;\n fill?: boolean;\n}\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n fill: false,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit('click', event);\n};\n\nconst leftIcon = computed<IconNames | undefined>(() => {\n if (props.loadingStatus) {\n return 'loading-circle';\n } else if (props.successStatus) {\n return 'line-check-natural';\n }\n\n return props.leftIconName;\n});\n</script>\n\n<template>\n <button\n :class=\"[\n styles.button,\n styles[`button__${variant}`],\n styles[`button__${variant}-${color}`],\n styles[`button__size_${size}`],\n { [styles.fill]: fill },\n ]\"\n :disabled=\"props.disabled\"\n @click=\"onClick\">\n <Icon\n v-if=\"leftIcon\"\n :name=\"leftIcon\" />\n <span\n v-if=\"label\"\n :class=\"styles.button__label\">\n {{ label }}\n </span>\n <Icon\n v-if=\"rightIconName\"\n :name=\"rightIconName\" />\n </button>\n</template>\n","import type { DirectiveBinding } from 'vue';\n\ninterface ClickOutsideElement extends HTMLElement {\n clickOutsideEvent?: (event: Event) => void;\n}\n\nexport default {\n mounted(el: ClickOutsideElement, binding: DirectiveBinding<{ handler: () => void; exclude?: HTMLElement[] }>) {\n el.clickOutsideEvent = (event: Event) => {\n const isClickInside = [el, ...(binding.value.exclude || [])].some(element => {\n return element && (element === event.target || element.contains(event.target as Node))\n });\n\n if (!isClickInside) {\n binding.value.handler(); // Close handler\n }\n };\n\n document.addEventListener('click', el.clickOutsideEvent);\n },\n unmounted(el: ClickOutsideElement) {\n if (el.clickOutsideEvent) {\n document.removeEventListener('click', el.clickOutsideEvent);\n }\n },\n};","const isFuzzyMatch = (choiceValue: string, searchTerm: string): boolean => {\n let searchIndex = 0;\n for (const char of choiceValue) {\n if (char.toLowerCase() === searchTerm[searchIndex]?.toLowerCase()) {\n searchIndex++;\n }\n if (searchIndex === searchTerm.length) {\n return true;\n }\n }\n return false;\n};\n\n\nexport const fuzzySearch = <T>(\n choices: T[],\n key: keyof T,\n searchTerm: string,\n): T[] => {\n if (!searchTerm.trim()) {\n return choices;\n }\n\n const normalizedSearchTerm = searchTerm.toLowerCase();\n\n return choices\n .filter(choice => {\n const value = String(choice[key]);\n\n return isFuzzyMatch(value.toLowerCase(), normalizedSearchTerm)\n })\n .sort((a, b) => {\n const aValue = String(a[key]).toLowerCase();\n const bValue = String(b[key]).toLowerCase();\n\n if (aValue === normalizedSearchTerm) return -1;\n if (bValue === normalizedSearchTerm) return 1;\n\n if (aValue.startsWith(normalizedSearchTerm) && !bValue.startsWith(normalizedSearchTerm))\n return -1;\n if (!aValue.startsWith(normalizedSearchTerm) && bValue.startsWith(normalizedSearchTerm))\n return 1;\n\n return aValue.length - bValue.length;\n });\n};\n","<script lang=\"ts\" setup>\nimport { ref, computed, type StyleValue, onMounted, reactive, watch } from 'vue';\nimport clickOutside from '@/directives/clickOutside';\nimport { fuzzySearch } from '@/utils/search';\nimport styles from './Dropdown.module.scss';\n\nconst vClickOutside = clickOutside;\n\ninterface MenuItem {\n text: string;\n value: string;\n}\n\ninterface DropdownProps {\n id: string;\n label?: string;\n modelValue?: string;\n menuHeight?: number;\n placeholder?: string;\n addable?: boolean;\n addButtonText?: string;\n searchable?: boolean;\n searchPlaceHolder?: string;\n items: MenuItem[];\n validateAddItem?: (item: string, items: MenuItem[]) => string | null;\n}\n\ninterface Emits {\n (e: 'update:modelValue', value: string): void;\n (e: 'add-error', error: string): void;\n (e: 'item-added', item: MenuItem): void;\n (e: 'select-item', item: MenuItem): void;\n}\n\nconst props = withDefaults(defineProps<DropdownProps>(), {\n menuHeight: 154,\n searchBar: false,\n addItem: false,\n modelValue: '',\n validateAddItem: () => null,\n});\n\nconst emit = defineEmits<Emits>();\nconst dropdownRef = ref<HTMLDivElement>();\nconst menuRef = ref<HTMLDivElement>();\nconst isOpen = ref(false);\nconst selectedItem = ref<MenuItem | null>(null);\nconst searchQuery = ref('');\nconst errorMessage = ref<string | null>(null);\nconst menuPosition = ref({ x: 0, y: 0, width: 0, shouldOpenUp: false, height: props.menuHeight });\nconst filteredItems = reactive([...props.items]);\nconst allItems = reactive([...props.items]);\n\nconst calculateMenuPosition = () => {\n if (!dropdownRef.value) {\n return;\n }\n\n const { offsetTop: top, offsetLeft: left, offsetWidth: width } = dropdownRef.value;\n const viewportHeight = window.innerHeight;\n const bottom = top + dropdownRef.value.offsetHeight;\n const shouldOpenUp = bottom + props.menuHeight > viewportHeight;\n\n menuPosition.value = {\n x: left + window.scrollX,\n y: shouldOpenUp ? top + window.scrollY : bottom + window.scrollY,\n width,\n shouldOpenUp,\n height: props.menuHeight,\n };\n};\n\nconst toggleMenu = () => {\n calculateMenuPosition();\n isOpen.value = !isOpen.value;\n};\n\nconst resetSettings = () => {\n errorMessage.value = null;\n searchQuery.value = '';\n filteredItems.splice(0, filteredItems.length, ...allItems);\n};\n\nconst closeMenu = () => {\n isOpen.value = false;\n\n resetSettings();\n};\n\nconst selectItem = (item: MenuItem) => {\n selectedItem.value = item;\n\n emit('select-item', item);\n emit('update:modelValue', item.value);\n\n closeMenu();\n};\n\nconst addItem = () => {\n const query = searchQuery.value.trim();\n const error = props.validateAddItem(query, allItems);\n\n if (error) {\n errorMessage.value = error;\n\n emit('add-error', error);\n\n return;\n }\n\n const newItem: MenuItem = {\n text: query,\n value: query,\n };\n\n allItems.push(newItem);\n resetSettings();\n\n emit('item-added', newItem);\n};\n\nconst onSearch = () => {\n const results = fuzzySearch<MenuItem>(allItems, 'text', searchQuery.value);\n\n filteredItems.splice(0, filteredItems.length, ...results);\n};\n\nconst onFocusSearch = () => {\n errorMessage.value = '';\n};\n\nconst menuStyle = computed<Partial<StyleValue>>(() => ({\n top: menuPosition.value.shouldOpenUp ? `${menuPosition.value.y - 10}px` : `${menuPosition.value.y}px`,\n left: `${menuPosition.value.x}px`,\n width: `${menuPosition.value.width}px`,\n height: `${props.menuHeight}px`,\n}));\n\nonMounted(() => {\n calculateMenuPosition();\n\n if (props.modelValue) {\n const defaultItem = allItems.find(item => item.value === props.modelValue);\n\n if (defaultItem) {\n selectedItem.value = defaultItem;\n }\n }\n});\n\nconst selectedValue = computed(() => (selectedItem.value ? selectedItem.value.text : ''));\n\nwatch(\n () => props.items,\n newItems => {\n allItems.splice(0, allItems.length, ...newItems);\n filteredItems.splice(0, filteredItems.length, ...newItems);\n },\n { deep: true }\n);\n</script>\n\n<template>\n <div\n ref=\"dropdownRef\"\n :class=\"styles.dropdown\">\n <label\n v-if=\"label\"\n :class=\"styles.dropdown__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <button\n :class=\"[\n styles.dropdown__valueContent, {\n [styles['dropdown__valueContent--open']]: isOpen,\n },\n ]\"\n @click=\"toggleMenu\">\n <span :class=\"styles.dropdown__value\">\n {{ selectedValue }}\n </span>\n <span\n v-if=\"placeholder && !selectedValue\"\n :class=\"styles.dropdown__placeholder\">\n {{ placeholder }}\n </span>\n <svg\n fill=\"none\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"styles.dropdown__arrowIcon\">\n <path\n d=\"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z\"\n fill=\"#91949F\" />\n </svg>\n </button>\n </div>\n\n <div\n v-if=\"isOpen\"\n ref=\"menuRef\"\n :class=\"styles.menu\"\n :style=\"menuStyle\"\n v-click-outside=\"{ handler: closeMenu, exclude: [dropdownRef, menuRef] }\"\n @click.prevent>\n <div\n v-if=\"props.searchable\"\n :class=\"styles.menu__searchContainer\">\n <div :class=\"styles.menu__searchInputWrap\">\n <input\n type=\"text\"\n :class=\"[\n styles.menu__searchInput, {\n [styles['menu__searchInput--error']]: errorMessage,\n },\n ]\"\n :placeholder=\"searchPlaceHolder\"\n v-model=\"searchQuery\"\n @focus=\"onFocusSearch\"\n @input=\"onSearch\">\n <p\n v-if=\"errorMessage\"\n :class=\"styles.menu__errorMessage\">\n {{ errorMessage }}\n </p>\n </div>\n <button\n v-if=\"props.addable\"\n :class=\"styles.menu__addButton\"\n @click=\"addItem\">\n {{ addButtonText }}\n </button>\n </div>\n <ul :class=\"styles.menu__itemContainer\">\n <li\n v-for=\"(item, index) in filteredItems\"\n :key=\"`${item.value}-${index}`\"\n :class=\"[\n styles.menu__item, {\n [styles['menu__item--active']]: selectedItem && item.value === selectedItem.value,\n },\n ]\"\n @click=\"selectItem(item)\">\n {{ item.text }}\n </li>\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\n\nexport interface IconProps {\n name: IconNames;\n size?: 16 | 24;\n color?: string;\n}\n\nconst props = withDefaults(defineProps<IconProps>(), {\n size: 16,\n});\n\nconst iconSize = computed(() => (typeof props.size === 'number' ? `${props.size}px` : props.size));\n</script>\n\n<template>\n <svg\n class=\"icon\"\n :fill=\"color || 'currentColor'\"\n :height=\"iconSize\"\n :width=\"iconSize\">\n <use :xlink:href=\"`#${name}`\" />\n </svg>\n</template>\n\n<style scoped>\n.icon {\n display: inline-block;\n line-height: 0;\n vertical-align: middle;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport Icon from '@/components/Icon/Icon.vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './OnPageMessage.module.scss';\n\ninterface OnPageMessageProps {\n variant?: 'default' | 'warning' | 'alert' | 'success';\n text: string;\n}\n\nconst props = withDefaults(defineProps<OnPageMessageProps>(), {\n variant: 'default',\n});\n\nconst IconName = computed<IconNames>(() => {\n switch (props.variant) {\n case 'alert': return 'filled-error-box';\n case 'warning': return 'line-caution-triangle';\n case 'success': return 'line-check-natural';\n\n default: return 'filled-info-circle';\n }\n});\n</script>\n\n<template>\n <div\n :class=\"[\n styles.container,\n styles[`container__${variant}`],\n ]\">\n <Icon\n :name=\"IconName\"\n :size=\"24\" />\n <span :class=\"styles.container__text\">{{ text }}</span>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue';\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './SegmentButton.module.scss';\n\nexport interface SegmentType {\n value: string;\n label: string;\n disabled?: boolean;\n icon?: IconNames;\n}\n\nexport interface SegmentButtonProps {\n color: 'primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n align?: 'vertical' | 'horizontal';\n disabled?: boolean;\n segments: SegmentType[];\n fill?: boolean;\n modelValue?: string;\n}\n\ninterface SegmentButtonEmits {\n 'update:modelValue': [value: string];\n click: [value: SegmentType['value']];\n}\n\nconst props = withDefaults(defineProps<SegmentButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n size: 'default',\n align: 'horizontal',\n});\n\nconst emit = defineEmits<SegmentButtonEmits>();\nconst selected = ref<string>(props.modelValue || '');\n\nconst setSelect = (segment: SegmentType) => {\n if (props.disabled || segment.disabled) {\n return;\n }\n\n selected.value = segment.value;\n emit('update:modelValue', segment.value);\n emit('click', segment.value);\n};\n\nwatch(() => props.modelValue, newValue => {\n selected.value = newValue || '';\n});\n\nconst filteredSegments = ref<SegmentType[]>([...props.segments]);\n\nwatch(() => props.segments, newSegments => {\n filteredSegments.value = [...newSegments];\n\n if (!newSegments.some(segment => segment.value === selected.value)) {\n selected.value = '';\n emit('update:modelValue', '');\n }\n}, { deep: true });\n</script>\n\n<template>\n <div\n :class=\"[\n styles.segmentGroup,\n styles[`segmentGroup--${align}`],\n { [styles.fill]: fill },\n ]\">\n <button\n v-for=\"(segment, index) in filteredSegments\"\n :key=\"`${segment.value}-${index}`\"\n :class=\"[\n styles.button,\n styles[`button--${color}`],\n styles[`button__size_${size}`],\n styles.fill,\n {\n [styles[`button--selected`]]: segment.value === selected,\n },\n ]\"\n :disabled=\"segment.disabled || props.disabled\"\n @click=\"setSelect(segment)\">\n <Icon\n v-if=\"segment.icon\"\n :name=\"segment.icon\" />\n <span\n v-if=\"segment.label\"\n :class=\"styles.button__label\">\n {{ segment.label }}\n </span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue';\nimport styles from './TextInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: string;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n maxHeight?: number;\n error?: string;\n multiline?: boolean;\n autoGrow?: boolean;\n counter?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n maxHeight: undefined,\n error: '',\n multiline: false,\n autoGrow: false,\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst autoGrow = () => {\n if (props.autoGrow && textareaRef.value) {\n textareaRef.value.style.height = '';\n\n const newHeight = Math.min(textareaRef.value.scrollHeight, props.maxHeight || textareaRef.value.scrollHeight);\n\n textareaRef.value.style.height = `${newHeight}px`;\n }\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n emit('input', event);\n emit('update:modelValue', target.value);\n\n autoGrow();\n};\n\nonMounted(() => {\n autoGrow();\n});\n</script>\n\n<template>\n <div :class=\"styles.wrapper\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <template v-if=\"multiline\">\n <textarea\n :id=\"id\"\n ref=\"textareaRef\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :style=\"maxHeight ? { maxHeight: `${maxHeight}px` } : undefined\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\" />\n </template>\n <template v-else>\n <input\n :id=\"id\"\n type=\"text\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n </template>\n\n <div :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport styles from './NumberInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: number;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n error?: string;\n errorStatus?: boolean;\n counter?: boolean;\n min?: number;\n max?: number;\n size?: 'default' | 'small';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n min: undefined,\n max: undefined,\n error: '',\n modelValue: undefined,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst applyMinMax = (value: string): string => {\n if (value === '') {\n return value;\n }\n\n const numericValue = Number(value);\n\n if (typeof props.min === 'number' && numericValue < props.min) {\n return props.min?.toString();\n } else if (typeof props.max === 'number' && numericValue > props.max) {\n return props.max?.toString();\n }\n\n return numericValue.toString();\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const sanitizedValue = applyMinMax(target.value);\n\n target.value = sanitizedValue;\n\n emit('input', event);\n emit('update:modelValue', Number(sanitizedValue));\n};\n</script>\n\n<template>\n <div :class=\"[styles.wrapper, styles[`wrapper__size_${size}`]]\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <input\n :id=\"id\"\n type=\"number\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error || errorStatus,\n },\n ]\"\n :max=\"max\"\n :maxlength=\"maxLength\"\n :min=\"min\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n\n <div\n v-if=\"counter || error\"\n :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport styles from './Toggle.module.scss';\n\ninterface ToggleProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n checked: false,\n disabled: false,\n});\n\nconst emit = defineEmits<{\n click: [checked: boolean];\n}>();\n\nconst onClick = () => {\n emit('click', !props.checked);\n};\n</script>\n\n<template>\n <fieldset\n :class=\"[\n styles.wrapper,\n {\n [styles.wrapper_checked]: checked,\n [styles.wrapper_disabled]: disabled,\n },\n ]\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"checked\"\n :class=\"styles.wrapper__input\"\n :disabled=\"disabled\"\n :name=\"name\"\n @click=\"onClick\">\n <label\n :class=\"styles.wrapper__label\"\n :for=\"id\" />\n </fieldset>\n</template>\n","export function preventXSS (html = '') {\n if (typeof(html) === 'string') {\n return html.replace(/<\\/style>/gi, '')\n .replace(/<(.*?) on(.*?)=['\"](.*?)>/gi, '')\n .replace(/(<meta |<style|<\\/*script)(.*?)>/gi, '')\n .replace(/(<([^>]+)>)/ig, '')\n .replace(/<(.*?) (href|src)=\"j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi, '');\n }\n return html;\n}\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, type StyleValue } from 'vue';\nimport { Box, Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport { preventXSS } from '@/utils/preventXSS';\nimport styles from './Tooltip.module.scss';\n\ntype TriangleAlignment = 'start' | 'center' | 'end' | 'top';\n\nexport interface TooltipProps {\n id: string;\n text: string;\n staticPosition?: (\n 'top center'\n | 'top left'\n | 'top right'\n | 'bottom center'\n | 'bottom left'\n | 'bottom right'\n | 'right center'\n | 'right top'\n | 'right bottom'\n | 'left center'\n | 'left top'\n | 'left bottom'\n );\n dynamicPosition?: boolean;\n absolutePositionStatus?: boolean;\n offsetX?: number;\n offsetY?: number;\n maxHeight?: number;\n status?: boolean;\n preventXss?: boolean;\n iconName?: IconNames;\n absoluteTriangleAlignment?: TriangleAlignment;\n absoluteTrianglePosition?: 'top' | 'bottom';\n absolutePosition?: StyleValue;\n}\n\nconst props = withDefaults(defineProps<TooltipProps>(), {\n offsetX: 4,\n offsetY: 4,\n staticPosition: 'top center',\n maxHeight: 320,\n status: true,\n iconName: undefined,\n absoluteTriangleAlignment: 'center',\n absoluteTrianglePosition: 'top',\n position: 'bottom',\n align: 'end',\n absolutePositionStatus: false,\n});\n\nconst tooltipIconRef = ref<HTMLElement | null>(null);\nconst dynamicPositionTriangle = ref('center');\nconst dynamicPositionAlignment = ref('bottom');\nconst dynamicPositionTrianglePosition = ref<TriangleAlignment>('center');\nconst dynamicPositionInitialized = ref(false);\nconst animationClass = ref('');\nconst mouseEnterWrapper = ref(false);\nconst mouseEnterIcon = ref(false);\nconst lastEnteredElement = ref('');\nconst displayClass = ref('d-n');\nconst scrollAreaRef = ref<Document | HTMLElement | ParentNode | null>(null);\nconst tooltipRootRef = ref<HTMLElement | null>(null);\nconst tooltipPopupRef = ref<HTMLElement | null>(null);\nconst position = computed(() => props.staticPosition.split(' ')[0]);\nconst alignment = computed(() => props.staticPosition.split(' ')[1]);\nconst topClass = computed(() => (props.iconName ? 'mt-1' : 'mt-0'));\nconst secureText = computed(() => (props.preventXss ? preventXSS(props.text) : props.text));\n\nconst trianglePosition = computed(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTrianglePosition;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n }\n\n if (position.value === 'top') {\n return 'bottom';\n }\n\n if (position.value === 'bottom') {\n return 'top';\n }\n\n if (position.value === 'left') {\n return 'right';\n }\n\n if (position.value === 'right') {\n return 'left';\n }\n\n return 'bottom';\n});\n\nconst visibilityClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (\n (mouseEnterWrapper.value && mouseEnterIcon.value)\n || (lastEnteredElement.value === 'icon' && mouseEnterWrapper.value)\n ) {\n return 'opa-1';\n }\n\n return 'opa-0';\n});\n\nconst triangleAlignment = computed<TriangleAlignment>(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTriangleAlignment;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n if (dynamicPositionTriangle.value === 'center') {\n return 'center';\n }\n\n if (dynamicPositionTriangle.value === 'end') {\n return 'end';\n }\n\n if (dynamicPositionTriangle.value === 'start') {\n return 'start';\n }\n\n return dynamicPositionTrianglePosition.value;\n }\n\n if (alignment.value === 'center') {\n return 'center';\n }\n\n if (alignment.value === 'left' || alignment.value === 'top') {\n return 'start';\n }\n\n if (alignment.value === 'right' || alignment.value === 'bottom') {\n return 'end';\n }\n\n return 'center';\n});\n\nconst staticPositionClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return styles[`wrapper__box_${dynamicPositionAlignment.value}-${dynamicPositionTriangle.value}`];\n }\n\n return styles[`wrapper__box_${position.value}-${triangleAlignment.value}`];\n});\n\nconst offsetStyle = computed(() => {\n if (props.offsetX === 0 && props.offsetY === 0) {\n return {};\n }\n\n if (props.dynamicPosition) {\n const marginDirection = dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n\n return {\n [`margin-${marginDirection}`]: `${props.offsetY}px`,\n };\n }\n\n if (trianglePosition.value === 'top' || trianglePosition.value === 'bottom') {\n return {\n [`margin-${trianglePosition.value}`]: `${props.offsetY}px`,\n };\n }\n\n return { [`margin-${trianglePosition.value}`]: `${props.offsetX}px` };\n});\n\nconst getDynamicPosition = (\n target: HTMLElement | null | undefined,\n parent: HTMLElement | null | undefined,\n nested = false\n) => {\n if (!target || !tooltipRootRef.value) {\n return { left: false, right: false, top: false, bottom: false, center: false };\n }\n\n const customRect = { left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0 };\n const tooltipElementHeight = tooltipRootRef.value.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const targetHeight = target.clientHeight;\n const targetWidth = target.clientWidth || 264;\n const parentRectangle = parent?.getBoundingClientRect() || customRect;\n const parentXOffset = nested ? parentRectangle?.right : parentRectangle?.left;\n const parentYOffset = nested ? parentRectangle?.top : parentRectangle?.bottom;\n const hasSpaceOnRight = (\n (parentXOffset + parentRectangle.width) + targetWidth + props.offsetX\n ) < windowWidth;\n const hasSpaceOnLeft = ((parentXOffset + (parentRectangle.width / 2))\n - (targetWidth + props.offsetX)) > 10;\n const hasSpaceOnBottom = (parentYOffset + targetHeight) < (windowHeight - props.offsetY);\n const hasSpaceOnTop = (parentYOffset - (targetHeight + tooltipElementHeight + props.offsetY)) > 0;\n let hasSpaceOnCenter = false;\n\n if (props.iconName) {\n hasSpaceOnCenter = (parentRectangle.right + (targetWidth / 2) < windowWidth)\n && (parentRectangle.left - ((targetWidth + props.offsetX) / 2) >= 10);\n }\n\n return {\n left: hasSpaceOnLeft,\n right: hasSpaceOnRight,\n bottom: hasSpaceOnBottom,\n top: hasSpaceOnTop,\n center: hasSpaceOnCenter,\n };\n};\n\nconst handleDynamicPosition = () => {\n nextTick(() => {\n dynamicPositionInitialized.value = true;\n\n const { bottom, left, right, top, center } = getDynamicPosition(\n tooltipPopupRef.value,\n tooltipPopupRef.value?.parentNode as HTMLElement\n );\n\n if (center) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = bottom && !top ? 'bottom' : 'top';\n\n return;\n }\n\n // Means that every direction has an available space\n if (bottom && left && right && top) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (top && !bottom) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n }\n\n if (bottom && top) {\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'end';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'start';\n\n return;\n }\n }\n\n if (bottom && !top) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n }\n }\n });\n};\n\nconst isScrollable = (el: HTMLElement | ParentNode): boolean => {\n if (!(el instanceof HTMLElement)) {\n return false;\n }\n\n const hasScrollableContent = el.scrollHeight > el.clientHeight;\n const overflowYStyle = window.getComputedStyle(el).overflowY;\n const isOverflowScroll = ['auto', 'scroll'].includes(overflowYStyle);\n\n return hasScrollableContent && isOverflowScroll;\n};\n\nconst getScrollableParent = (element: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null => {\n const isComment = element?.nodeType === Node.COMMENT_NODE;\n const isDocument = element?.nodeType === Node.DOCUMENT_NODE;\n\n if (!element || isComment || isDocument) {\n return document;\n }\n\n if (isScrollable(element)) {\n return element;\n }\n\n return getScrollableParent(element.parentNode);\n};\n\nconst killDynamicPositioning = () => {\n scrollAreaRef.value?.removeEventListener('scroll', handleDynamicPosition);\n window?.removeEventListener('resize', handleDynamicPosition);\n};\n\nconst initDynamicPositioning = () => {\n nextTick(() => {\n scrollAreaRef.value = getScrollableParent(tooltipRootRef.value);\n scrollAreaRef.value?.addEventListener('scroll', handleDynamicPosition);\n window?.addEventListener('resize', handleDynamicPosition);\n });\n};\n\nconst onMouseEnterWrapper = () => {\n lastEnteredElement.value = 'wrapper';\n displayClass.value = 'd-b';\n\n mouseEnterWrapper.value = true;\n};\n\nconst onMouseEnterIcon = () => {\n lastEnteredElement.value = 'icon';\n displayClass.value = 'd-b';\n\n mouseEnterIcon.value = true;\n};\n\nconst onMouseLeaveIcon = () => {\n mouseEnterIcon.value = false;\n};\n\nconst onMouseLeaveWrapper = () => {\n lastEnteredElement.value = '';\n mouseEnterWrapper.value = false;\n mouseEnterIcon.value = false;\n};\n\nconst mouseLeave = () => {\n onMouseLeaveWrapper();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'top-leave';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'top-leave';\n } else if (position.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (position.value === 'left') {\n animationClass.value = 'left-leave';\n } else if (position.value === 'right') {\n animationClass.value = 'right-leave';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n displayClass.value = 'd-n';\n }, props.absolutePositionStatus ? 0 : 250);\n};\n\nconst addAnimationClass = () => {\n onMouseEnterWrapper();\n handleDynamicPosition();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'bottom-entrance';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'bottom-entrance';\n } else if (position.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (position.value === 'left') {\n animationClass.value = 'right-entrance';\n } else if (position.value === 'right') {\n animationClass.value = 'left-entrance';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n }, 250);\n};\n\nonMounted(() => {\n if (props.dynamicPosition) {\n initDynamicPositioning();\n }\n});\n\nonBeforeUnmount(() => {\n killDynamicPositioning();\n});\n</script>\n\n<template>\n <div\n :id=\"id\"\n ref=\"tooltipRootRef\"\n :class=\"styles.wrapper\"\n @mouseenter=\"addAnimationClass\"\n @mouseleave=\"mouseLeave\">\n <Icon\n v-if=\"iconName\"\n ref=\"tooltipIconRef\"\n :class=\"styles.wrapper__icon\"\n :name=\"iconName\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseLeaveIcon\" />\n <div\n v-else\n :class=\"styles.wrapper__icon\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseEnterIcon\">\n <slot name=\"triggerElement\" />\n </div>\n <div\n v-if=\"status\"\n ref=\"tooltipPopupRef\"\n :class=\"[styles.wrapper__box, staticPositionClass, visibilityClass, displayClass]\"\n :style=\"absolutePosition\">\n <Box\n border-triangle\n :border-triangle-align=\"triangleAlignment\"\n :border-triangle-position=\"trianglePosition\"\n :class=\"[styles['wrapper__box-content'], topClass, animationClass]\"\n :style=\"offsetStyle\">\n <div\n :class=\"styles.wrapper__text\"\n :style=\"{ maxHeight: `${maxHeight}px`, overflowY: 'auto' }\">\n <div v-html=\"secureText\" />\n <slot name=\"contentSlot\" />\n </div>\n </Box>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport styles from './Box.module.scss';\n\nexport interface Props {\n border?: string;\n borderRadius?: string;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n borderRadius: 'bor-r-1',\n borderTriangle: false,\n borderTriangleAlign: 'center',\n borderTrianglePosition: 'top',\n});\n\nconst emit = defineEmits<{\n click: [];\n}>();\n\nconst trianglePosition = computed(\n () => (props.borderTriangle ? styles[`box_${props.borderTrianglePosition}-${props.borderTriangleAlign}`] : '')\n);\n\nfunction trigger (): void {\n emit('click');\n}\n</script>\n\n<template>\n <div\n :class=\"[styles.box, trianglePosition, border, borderRadius]\"\n @click=\"trigger\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport DefaultBox from './DefaultBox.vue';\nimport FlipBox from './FlipBox.vue';\n\nconst boxes = {\n default: DefaultBox,\n flip: FlipBox,\n} as const;\n\nwithDefaults(defineProps<{\n type?: keyof typeof boxes;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end' | 'top';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n boxSpacing?: string;\n}>(), {\n borderTriangle: false,\n boxSpacing: '',\n type: 'default',\n});\n</script>\n\n<template>\n <component\n :is=\"boxes[type]\"\n :border-triangle=\"borderTriangle\"\n :border-triangle-align=\"borderTriangleAlign\"\n :border-triangle-position=\"borderTrianglePosition\"\n :box-spacing=\"boxSpacing\">\n <slot />\n <slot name=\"front\" />\n <slot name=\"reverse\" />\n </component>\n</template>\n"],"names":["props","__props","emit","__emit","onClick","event","leftIcon","computed","clickOutside","el","binding","element","isFuzzyMatch","choiceValue","searchTerm","searchIndex","char","_a","fuzzySearch","choices","key","normalizedSearchTerm","choice","value","a","b","aValue","bValue","vClickOutside","dropdownRef","ref","menuRef","isOpen","selectedItem","searchQuery","errorMessage","menuPosition","filteredItems","reactive","allItems","calculateMenuPosition","top","left","width","viewportHeight","bottom","shouldOpenUp","toggleMenu","resetSettings","closeMenu","selectItem","item","addItem","query","error","newItem","onSearch","results","onFocusSearch","menuStyle","onMounted","defaultItem","selectedValue","watch","newItems","iconSize","IconName","selected","setSelect","segment","newValue","filteredSegments","newSegments","textareaRef","autoGrow","newHeight","handleInput","target","applyMinMax","numericValue","_b","sanitizedValue","preventXSS","html","tooltipIconRef","dynamicPositionTriangle","dynamicPositionAlignment","dynamicPositionTrianglePosition","dynamicPositionInitialized","animationClass","mouseEnterWrapper","mouseEnterIcon","lastEnteredElement","displayClass","scrollAreaRef","tooltipRootRef","tooltipPopupRef","position","alignment","topClass","secureText","trianglePosition","visibilityClass","triangleAlignment","staticPositionClass","styles","offsetStyle","getDynamicPosition","parent","nested","customRect","tooltipElementHeight","windowWidth","windowHeight","targetHeight","targetWidth","parentRectangle","parentXOffset","parentYOffset","hasSpaceOnRight","hasSpaceOnLeft","hasSpaceOnBottom","hasSpaceOnTop","hasSpaceOnCenter","handleDynamicPosition","nextTick","right","center","isScrollable","hasScrollableContent","overflowYStyle","isOverflowScroll","getScrollableParent","isComment","isDocument","killDynamicPositioning","initDynamicPositioning","onMouseEnterWrapper","onMouseEnterIcon","onMouseLeaveIcon","onMouseLeaveWrapper","mouseLeave","addAnimationClass","onBeforeUnmount","trigger","boxes","DefaultBox","FlipBox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ab-components.es.js","sources":["../src/components/Button/Button.vue","../src/directives/clickOutside.ts","../src/utils/search.ts","../src/components/Dropdown/DropdownMenu.vue","../src/components/Icon/Icon.vue","../src/components/OnPageMessage/OnPageMessage.vue","../src/components/SegmentButton/SegmentButton.vue","../src/components/TextInput/TextInput.vue","../src/components/NumberInput/NumberInput.vue","../src/components/Toggle/Toggle.vue","../src/utils/preventXSS.ts","../src/components/Tooltip/Tooltip.vue","../src/components/Box/DefaultBox.vue","../src/components/Box/Box.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\n\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n variant: 'solid' | 'ghost' | 'text' | 'outline';\n color: 'primary' | 'subtle-primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n leftIconName?: IconNames;\n rightIconName?: IconNames;\n loadingStatus?: boolean;\n successStatus?: boolean;\n label?: string;\n disabled?: boolean;\n fill?: boolean;\n}\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n fill: false,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit('click', event);\n};\n\nconst leftIcon = computed<IconNames | undefined>(() => {\n if (props.loadingStatus) {\n return 'loading-circle';\n } else if (props.successStatus) {\n return 'line-check-natural';\n }\n\n return props.leftIconName;\n});\n</script>\n\n<template>\n <button\n :class=\"[\n styles.button,\n styles[`button__${variant}`],\n styles[`button__${variant}-${color}`],\n styles[`button__size_${size}`],\n { [styles.fill]: fill },\n ]\"\n :disabled=\"props.disabled\"\n @click=\"onClick\">\n <Icon\n v-if=\"leftIcon\"\n :name=\"leftIcon\" />\n <span\n v-if=\"label\"\n :class=\"styles.button__label\">\n {{ label }}\n </span>\n <Icon\n v-if=\"rightIconName\"\n :name=\"rightIconName\" />\n </button>\n</template>\n","import type { DirectiveBinding } from 'vue';\n\ninterface ClickOutsideElement extends HTMLElement {\n clickOutsideEvent?: (event: Event) => void;\n}\n\nexport default {\n mounted(el: ClickOutsideElement, binding: DirectiveBinding<{ handler: () => void; exclude?: HTMLElement[] }>) {\n el.clickOutsideEvent = (event: Event) => {\n const isClickInside = [el, ...(binding.value.exclude || [])].some(element => {\n return element && (element === event.target || element.contains(event.target as Node))\n });\n\n if (!isClickInside) {\n binding.value.handler(); // Close handler\n }\n };\n\n document.addEventListener('click', el.clickOutsideEvent);\n },\n unmounted(el: ClickOutsideElement) {\n if (el.clickOutsideEvent) {\n document.removeEventListener('click', el.clickOutsideEvent);\n }\n },\n};","const isFuzzyMatch = (choiceValue: string, searchTerm: string): boolean => {\n let searchIndex = 0;\n for (const char of choiceValue) {\n if (char.toLowerCase() === searchTerm[searchIndex]?.toLowerCase()) {\n searchIndex++;\n }\n if (searchIndex === searchTerm.length) {\n return true;\n }\n }\n return false;\n};\n\n\nexport const fuzzySearch = <T>(\n choices: T[],\n key: keyof T,\n searchTerm: string,\n): T[] => {\n if (!searchTerm.trim()) {\n return choices;\n }\n\n const normalizedSearchTerm = searchTerm.toLowerCase();\n\n return choices\n .filter(choice => {\n const value = String(choice[key]);\n\n return isFuzzyMatch(value.toLowerCase(), normalizedSearchTerm)\n })\n .sort((a, b) => {\n const aValue = String(a[key]).toLowerCase();\n const bValue = String(b[key]).toLowerCase();\n\n if (aValue === normalizedSearchTerm) return -1;\n if (bValue === normalizedSearchTerm) return 1;\n\n if (aValue.startsWith(normalizedSearchTerm) && !bValue.startsWith(normalizedSearchTerm))\n return -1;\n if (!aValue.startsWith(normalizedSearchTerm) && bValue.startsWith(normalizedSearchTerm))\n return 1;\n\n return aValue.length - bValue.length;\n });\n};\n","<script lang=\"ts\" setup>\nimport { ref, computed, type StyleValue, onMounted, reactive, watch } from 'vue';\nimport clickOutside from '@/directives/clickOutside';\nimport { fuzzySearch } from '@/utils/search';\nimport styles from './Dropdown.module.scss';\n\nconst vClickOutside = clickOutside;\n\ninterface MenuItem {\n text: string;\n value: string;\n}\n\ninterface DropdownProps {\n id: string;\n label?: string;\n modelValue?: string;\n menuHeight?: number;\n placeholder?: string;\n addable?: boolean;\n addButtonText?: string;\n searchable?: boolean;\n searchPlaceHolder?: string;\n items: MenuItem[];\n validateAddItem?: (item: string, items: MenuItem[]) => string | null;\n}\n\ninterface Emits {\n (e: 'update:modelValue', value: string): void;\n (e: 'add-error', error: string): void;\n (e: 'item-added', item: MenuItem): void;\n (e: 'select-item', item: MenuItem): void;\n}\n\nconst props = withDefaults(defineProps<DropdownProps>(), {\n menuHeight: 154,\n searchBar: false,\n addItem: false,\n modelValue: '',\n validateAddItem: () => null,\n});\n\nconst emit = defineEmits<Emits>();\nconst dropdownRef = ref<HTMLDivElement>();\nconst menuRef = ref<HTMLDivElement>();\nconst isOpen = ref(false);\nconst selectedItem = ref<MenuItem | null>(null);\nconst searchQuery = ref('');\nconst errorMessage = ref<string | null>(null);\nconst menuPosition = ref({ x: 0, y: 0, width: 0, shouldOpenUp: false, height: props.menuHeight });\nconst filteredItems = reactive([...props.items]);\nconst allItems = reactive([...props.items]);\n\nconst calculateMenuPosition = () => {\n if (!dropdownRef.value) {\n return;\n }\n\n const { offsetTop: top, offsetLeft: left, offsetWidth: width } = dropdownRef.value;\n const viewportHeight = window.innerHeight;\n const bottom = top + dropdownRef.value.offsetHeight;\n const shouldOpenUp = bottom + props.menuHeight > viewportHeight;\n\n menuPosition.value = {\n x: left + window.scrollX,\n y: shouldOpenUp ? top + window.scrollY : bottom + window.scrollY,\n width,\n shouldOpenUp,\n height: props.menuHeight,\n };\n};\n\nconst toggleMenu = () => {\n calculateMenuPosition();\n isOpen.value = !isOpen.value;\n};\n\nconst resetSettings = () => {\n errorMessage.value = null;\n searchQuery.value = '';\n filteredItems.splice(0, filteredItems.length, ...allItems);\n};\n\nconst closeMenu = () => {\n isOpen.value = false;\n\n resetSettings();\n};\n\nconst selectItem = (item: MenuItem) => {\n selectedItem.value = item;\n\n emit('select-item', item);\n emit('update:modelValue', item.value);\n\n closeMenu();\n};\n\nconst addItem = () => {\n const query = searchQuery.value.trim();\n const error = props.validateAddItem(query, allItems);\n\n if (error) {\n errorMessage.value = error;\n\n emit('add-error', error);\n\n return;\n }\n\n const newItem: MenuItem = {\n text: query,\n value: query,\n };\n\n allItems.push(newItem);\n resetSettings();\n\n emit('item-added', newItem);\n};\n\nconst onSearch = () => {\n const results = fuzzySearch<MenuItem>(allItems, 'text', searchQuery.value);\n\n filteredItems.splice(0, filteredItems.length, ...results);\n};\n\nconst onFocusSearch = () => {\n errorMessage.value = '';\n};\n\nconst menuStyle = computed<Partial<StyleValue>>(() => ({\n top: menuPosition.value.shouldOpenUp ? `${menuPosition.value.y - 10}px` : `${menuPosition.value.y}px`,\n left: `${menuPosition.value.x}px`,\n width: `${menuPosition.value.width}px`,\n height: `${props.menuHeight}px`,\n}));\n\nonMounted(() => {\n calculateMenuPosition();\n\n if (props.modelValue) {\n const defaultItem = allItems.find(item => item.value === props.modelValue);\n\n if (defaultItem) {\n selectedItem.value = defaultItem;\n }\n }\n});\n\nconst selectedValue = computed(() => (selectedItem.value ? selectedItem.value.text : ''));\n\nwatch(\n () => props.items,\n newItems => {\n allItems.splice(0, allItems.length, ...newItems);\n filteredItems.splice(0, filteredItems.length, ...newItems);\n },\n { deep: true }\n);\n</script>\n\n<template>\n <div\n ref=\"dropdownRef\"\n :class=\"styles.dropdown\">\n <label\n v-if=\"label\"\n :class=\"styles.dropdown__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <button\n :class=\"[\n styles.dropdown__valueContent, {\n [styles['dropdown__valueContent--open']]: isOpen,\n },\n ]\"\n @click=\"toggleMenu\">\n <span :class=\"styles.dropdown__value\">\n {{ selectedValue }}\n </span>\n <span\n v-if=\"placeholder && !selectedValue\"\n :class=\"styles.dropdown__placeholder\">\n {{ placeholder }}\n </span>\n <svg\n fill=\"none\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"styles.dropdown__arrowIcon\">\n <path\n d=\"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z\"\n fill=\"#91949F\" />\n </svg>\n </button>\n </div>\n\n <div\n v-if=\"isOpen\"\n ref=\"menuRef\"\n :class=\"styles.menu\"\n :style=\"menuStyle\"\n v-click-outside=\"{ handler: closeMenu, exclude: [dropdownRef, menuRef] }\"\n @click.prevent>\n <div\n v-if=\"props.searchable\"\n :class=\"styles.menu__searchContainer\">\n <div :class=\"styles.menu__searchInputWrap\">\n <input\n type=\"text\"\n :class=\"[\n styles.menu__searchInput, {\n [styles['menu__searchInput--error']]: errorMessage,\n },\n ]\"\n :placeholder=\"searchPlaceHolder\"\n v-model=\"searchQuery\"\n @focus=\"onFocusSearch\"\n @input=\"onSearch\">\n <p\n v-if=\"errorMessage\"\n :class=\"styles.menu__errorMessage\">\n {{ errorMessage }}\n </p>\n </div>\n <button\n v-if=\"props.addable\"\n :class=\"styles.menu__addButton\"\n @click=\"addItem\">\n {{ addButtonText }}\n </button>\n </div>\n <ul :class=\"styles.menu__itemContainer\">\n <li\n v-for=\"(item, index) in filteredItems\"\n :key=\"`${item.value}-${index}`\"\n :class=\"[\n styles.menu__item, {\n [styles['menu__item--active']]: selectedItem && item.value === selectedItem.value,\n },\n ]\"\n @click=\"selectItem(item)\">\n {{ item.text }}\n </li>\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\n\nexport interface IconProps {\n name: IconNames;\n size?: 16 | 24;\n color?: string;\n}\n\nconst props = withDefaults(defineProps<IconProps>(), {\n size: 16,\n});\n\nconst iconSize = computed(() => (typeof props.size === 'number' ? `${props.size}px` : props.size));\n</script>\n\n<template>\n <svg\n class=\"icon\"\n :fill=\"color || 'currentColor'\"\n :height=\"iconSize\"\n :width=\"iconSize\">\n <use :xlink:href=\"`#${name}`\" />\n </svg>\n</template>\n\n<style scoped>\n.icon {\n display: inline-block;\n line-height: 0;\n vertical-align: middle;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport Icon from '@/components/Icon/Icon.vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './OnPageMessage.module.scss';\n\ninterface OnPageMessageProps {\n variant?: 'default' | 'warning' | 'alert' | 'success';\n text: string;\n}\n\nconst props = withDefaults(defineProps<OnPageMessageProps>(), {\n variant: 'default',\n});\n\nconst IconName = computed<IconNames>(() => {\n switch (props.variant) {\n case 'alert': return 'icon-info-box-error';\n case 'warning': return 'line-caution-triangle';\n case 'success': return 'line-check-natural';\n\n default: return 'filled-info-circle';\n }\n});\n</script>\n\n<template>\n <div\n :class=\"[\n styles.container,\n styles[`container__${variant}`],\n ]\">\n <Icon\n :name=\"IconName\"\n :size=\"24\" />\n <span :class=\"styles.container__text\">{{ text }}</span>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue';\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './SegmentButton.module.scss';\n\nexport interface SegmentType {\n value: string;\n label: string;\n disabled?: boolean;\n icon?: IconNames;\n}\n\nexport interface SegmentButtonProps {\n color: 'primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n align?: 'vertical' | 'horizontal';\n disabled?: boolean;\n segments: SegmentType[];\n fill?: boolean;\n modelValue?: string;\n}\n\ninterface SegmentButtonEmits {\n 'update:modelValue': [value: string];\n click: [value: SegmentType['value']];\n}\n\nconst props = withDefaults(defineProps<SegmentButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n size: 'default',\n align: 'horizontal',\n});\n\nconst emit = defineEmits<SegmentButtonEmits>();\nconst selected = ref<string>(props.modelValue || '');\n\nconst setSelect = (segment: SegmentType) => {\n if (props.disabled || segment.disabled) {\n return;\n }\n\n selected.value = segment.value;\n emit('update:modelValue', segment.value);\n emit('click', segment.value);\n};\n\nwatch(() => props.modelValue, newValue => {\n if (selected.value !== newValue) {\n selected.value = newValue || '';\n }\n});\n\nconst filteredSegments = ref<SegmentType[]>([...props.segments]);\n\nwatch(() => props.segments, newSegments => {\n filteredSegments.value = [...newSegments];\n\n if (!newSegments.some(segment => segment.value === selected.value)) {\n selected.value = '';\n emit('update:modelValue', '');\n }\n}, { deep: true });\n</script>\n\n<template>\n <div\n :class=\"[\n styles.segmentGroup,\n styles[`segmentGroup--${align}`],\n { [styles.fill]: fill },\n ]\">\n <button\n v-for=\"(segment, index) in filteredSegments\"\n :key=\"`${segment.value}-${index}`\"\n :class=\"[\n styles.button,\n styles[`button--${color}`],\n styles[`button__size_${size}`],\n styles.fill,\n {\n [styles[`button--selected`]]: segment.value === selected,\n },\n ]\"\n :disabled=\"segment.disabled || props.disabled\"\n @click=\"setSelect(segment)\">\n <Icon\n v-if=\"segment.icon\"\n :name=\"segment.icon\" />\n <span\n v-if=\"segment.label\"\n :class=\"styles.button__label\">\n {{ segment.label }}\n </span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue';\nimport styles from './TextInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: string;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n maxHeight?: number;\n error?: string;\n multiline?: boolean;\n autoGrow?: boolean;\n counter?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n maxHeight: undefined,\n error: '',\n multiline: false,\n autoGrow: false,\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst autoGrow = () => {\n if (props.autoGrow && textareaRef.value) {\n textareaRef.value.style.height = '';\n\n const newHeight = Math.min(textareaRef.value.scrollHeight, props.maxHeight || textareaRef.value.scrollHeight);\n\n textareaRef.value.style.height = `${newHeight}px`;\n }\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n emit('input', event);\n emit('update:modelValue', target.value);\n\n autoGrow();\n};\n\nonMounted(() => {\n autoGrow();\n});\n</script>\n\n<template>\n <div :class=\"styles.wrapper\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <template v-if=\"multiline\">\n <textarea\n :id=\"id\"\n ref=\"textareaRef\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :style=\"maxHeight ? { maxHeight: `${maxHeight}px` } : undefined\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\" />\n </template>\n <template v-else>\n <input\n :id=\"id\"\n type=\"text\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n </template>\n\n <div :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport styles from './NumberInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: number;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n error?: string;\n errorStatus?: boolean;\n counter?: boolean;\n min?: number;\n max?: number;\n size?: 'default' | 'small';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n min: undefined,\n max: undefined,\n error: '',\n modelValue: undefined,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst applyMinMax = (value: string): string => {\n if (value === '') {\n return value;\n }\n\n const numericValue = Number(value);\n\n if (typeof props.min === 'number' && numericValue < props.min) {\n return props.min?.toString();\n } else if (typeof props.max === 'number' && numericValue > props.max) {\n return props.max?.toString();\n }\n\n return numericValue.toString();\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const sanitizedValue = applyMinMax(target.value);\n\n target.value = sanitizedValue;\n\n emit('input', event);\n emit('update:modelValue', Number(sanitizedValue));\n};\n</script>\n\n<template>\n <div :class=\"[styles.wrapper, styles[`wrapper__size_${size}`]]\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <input\n :id=\"id\"\n type=\"number\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error || errorStatus,\n },\n ]\"\n :max=\"max\"\n :maxlength=\"maxLength\"\n :min=\"min\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n\n <div\n v-if=\"counter || error\"\n :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport styles from './Toggle.module.scss';\n\ninterface ToggleProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n checked: false,\n disabled: false,\n});\n\nconst emit = defineEmits<{\n click: [checked: boolean];\n}>();\n\nconst onClick = () => {\n emit('click', !props.checked);\n};\n</script>\n\n<template>\n <fieldset\n :class=\"[\n styles.wrapper,\n {\n [styles.wrapper_checked]: checked,\n [styles.wrapper_disabled]: disabled,\n },\n ]\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"checked\"\n :class=\"styles.wrapper__input\"\n :disabled=\"disabled\"\n :name=\"name\"\n @click=\"onClick\">\n <label\n :class=\"styles.wrapper__label\"\n :for=\"id\" />\n </fieldset>\n</template>\n","export function preventXSS (html = '') {\n if (typeof(html) === 'string') {\n return html.replace(/<\\/style>/gi, '')\n .replace(/<(.*?) on(.*?)=['\"](.*?)>/gi, '')\n .replace(/(<meta |<style|<\\/*script)(.*?)>/gi, '')\n .replace(/(<([^>]+)>)/ig, '')\n .replace(/<(.*?) (href|src)=\"j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi, '');\n }\n return html;\n}\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, type StyleValue } from 'vue';\nimport { Box, Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport { preventXSS } from '@/utils/preventXSS';\nimport styles from './Tooltip.module.scss';\n\ntype TriangleAlignment = 'start' | 'center' | 'end' | 'top';\n\nexport interface TooltipProps {\n id: string;\n text: string;\n staticPosition?: (\n 'top center'\n | 'top left'\n | 'top right'\n | 'bottom center'\n | 'bottom left'\n | 'bottom right'\n | 'right center'\n | 'right top'\n | 'right bottom'\n | 'left center'\n | 'left top'\n | 'left bottom'\n );\n dynamicPosition?: boolean;\n absolutePositionStatus?: boolean;\n offsetX?: number;\n offsetY?: number;\n maxHeight?: number;\n status?: boolean;\n preventXss?: boolean;\n iconName?: IconNames;\n absoluteTriangleAlignment?: TriangleAlignment;\n absoluteTrianglePosition?: 'top' | 'bottom';\n absolutePosition?: StyleValue;\n}\n\nconst props = withDefaults(defineProps<TooltipProps>(), {\n offsetX: 4,\n offsetY: 4,\n staticPosition: 'top center',\n maxHeight: 320,\n status: true,\n iconName: undefined,\n absoluteTriangleAlignment: 'center',\n absoluteTrianglePosition: 'top',\n position: 'bottom',\n align: 'end',\n absolutePositionStatus: false,\n});\n\nconst tooltipIconRef = ref<HTMLElement | null>(null);\nconst dynamicPositionTriangle = ref('center');\nconst dynamicPositionAlignment = ref('bottom');\nconst dynamicPositionTrianglePosition = ref<TriangleAlignment>('center');\nconst dynamicPositionInitialized = ref(false);\nconst animationClass = ref('');\nconst mouseEnterWrapper = ref(false);\nconst mouseEnterIcon = ref(false);\nconst lastEnteredElement = ref('');\nconst displayClass = ref('d-n');\nconst scrollAreaRef = ref<Document | HTMLElement | ParentNode | null>(null);\nconst tooltipRootRef = ref<HTMLElement | null>(null);\nconst tooltipPopupRef = ref<HTMLElement | null>(null);\nconst position = computed(() => props.staticPosition.split(' ')[0]);\nconst alignment = computed(() => props.staticPosition.split(' ')[1]);\nconst topClass = computed(() => (props.iconName ? 'mt-1' : 'mt-0'));\nconst secureText = computed(() => (props.preventXss ? preventXSS(props.text) : props.text));\n\nconst trianglePosition = computed(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTrianglePosition;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n }\n\n if (position.value === 'top') {\n return 'bottom';\n }\n\n if (position.value === 'bottom') {\n return 'top';\n }\n\n if (position.value === 'left') {\n return 'right';\n }\n\n if (position.value === 'right') {\n return 'left';\n }\n\n return 'bottom';\n});\n\nconst visibilityClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (\n (mouseEnterWrapper.value && mouseEnterIcon.value)\n || (lastEnteredElement.value === 'icon' && mouseEnterWrapper.value)\n ) {\n return 'opa-1';\n }\n\n return 'opa-0';\n});\n\nconst triangleAlignment = computed<TriangleAlignment>(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTriangleAlignment;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n if (dynamicPositionTriangle.value === 'center') {\n return 'center';\n }\n\n if (dynamicPositionTriangle.value === 'end') {\n return 'end';\n }\n\n if (dynamicPositionTriangle.value === 'start') {\n return 'start';\n }\n\n return dynamicPositionTrianglePosition.value;\n }\n\n if (alignment.value === 'center') {\n return 'center';\n }\n\n if (alignment.value === 'left' || alignment.value === 'top') {\n return 'start';\n }\n\n if (alignment.value === 'right' || alignment.value === 'bottom') {\n return 'end';\n }\n\n return 'center';\n});\n\nconst staticPositionClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return styles[`wrapper__box_${dynamicPositionAlignment.value}-${dynamicPositionTriangle.value}`];\n }\n\n return styles[`wrapper__box_${position.value}-${triangleAlignment.value}`];\n});\n\nconst offsetStyle = computed(() => {\n if (props.offsetX === 0 && props.offsetY === 0) {\n return {};\n }\n\n if (props.dynamicPosition) {\n const marginDirection = dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n\n return {\n [`margin-${marginDirection}`]: `${props.offsetY}px`,\n };\n }\n\n if (trianglePosition.value === 'top' || trianglePosition.value === 'bottom') {\n return {\n [`margin-${trianglePosition.value}`]: `${props.offsetY}px`,\n };\n }\n\n return { [`margin-${trianglePosition.value}`]: `${props.offsetX}px` };\n});\n\nconst getDynamicPosition = (\n target: HTMLElement | null | undefined,\n parent: HTMLElement | null | undefined,\n nested = false\n) => {\n if (!target || !tooltipRootRef.value) {\n return { left: false, right: false, top: false, bottom: false, center: false };\n }\n\n const customRect = { left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0 };\n const tooltipElementHeight = tooltipRootRef.value.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const targetHeight = target.clientHeight;\n const targetWidth = target.clientWidth || 264;\n const parentRectangle = parent?.getBoundingClientRect() || customRect;\n const parentXOffset = nested ? parentRectangle?.right : parentRectangle?.left;\n const parentYOffset = nested ? parentRectangle?.top : parentRectangle?.bottom;\n const hasSpaceOnRight = (\n (parentXOffset + parentRectangle.width) + targetWidth + props.offsetX\n ) < windowWidth;\n const hasSpaceOnLeft = ((parentXOffset + (parentRectangle.width / 2))\n - (targetWidth + props.offsetX)) > 10;\n const hasSpaceOnBottom = (parentYOffset + targetHeight) < (windowHeight - props.offsetY);\n const hasSpaceOnTop = (parentYOffset - (targetHeight + tooltipElementHeight + props.offsetY)) > 0;\n let hasSpaceOnCenter = false;\n\n if (props.iconName) {\n hasSpaceOnCenter = (parentRectangle.right + (targetWidth / 2) < windowWidth)\n && (parentRectangle.left - ((targetWidth + props.offsetX) / 2) >= 10);\n }\n\n return {\n left: hasSpaceOnLeft,\n right: hasSpaceOnRight,\n bottom: hasSpaceOnBottom,\n top: hasSpaceOnTop,\n center: hasSpaceOnCenter,\n };\n};\n\nconst handleDynamicPosition = () => {\n nextTick(() => {\n dynamicPositionInitialized.value = true;\n\n const { bottom, left, right, top, center } = getDynamicPosition(\n tooltipPopupRef.value,\n tooltipPopupRef.value?.parentNode as HTMLElement\n );\n\n if (center) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = bottom && !top ? 'bottom' : 'top';\n\n return;\n }\n\n // Means that every direction has an available space\n if (bottom && left && right && top) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (top && !bottom) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n }\n\n if (bottom && top) {\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'end';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'start';\n\n return;\n }\n }\n\n if (bottom && !top) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n }\n }\n });\n};\n\nconst isScrollable = (el: HTMLElement | ParentNode): boolean => {\n if (!(el instanceof HTMLElement)) {\n return false;\n }\n\n const hasScrollableContent = el.scrollHeight > el.clientHeight;\n const overflowYStyle = window.getComputedStyle(el).overflowY;\n const isOverflowScroll = ['auto', 'scroll'].includes(overflowYStyle);\n\n return hasScrollableContent && isOverflowScroll;\n};\n\nconst getScrollableParent = (element: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null => {\n const isComment = element?.nodeType === Node.COMMENT_NODE;\n const isDocument = element?.nodeType === Node.DOCUMENT_NODE;\n\n if (!element || isComment || isDocument) {\n return document;\n }\n\n if (isScrollable(element)) {\n return element;\n }\n\n return getScrollableParent(element.parentNode);\n};\n\nconst killDynamicPositioning = () => {\n scrollAreaRef.value?.removeEventListener('scroll', handleDynamicPosition);\n window?.removeEventListener('resize', handleDynamicPosition);\n};\n\nconst initDynamicPositioning = () => {\n nextTick(() => {\n scrollAreaRef.value = getScrollableParent(tooltipRootRef.value);\n scrollAreaRef.value?.addEventListener('scroll', handleDynamicPosition);\n window?.addEventListener('resize', handleDynamicPosition);\n });\n};\n\nconst onMouseEnterWrapper = () => {\n lastEnteredElement.value = 'wrapper';\n displayClass.value = 'd-b';\n\n mouseEnterWrapper.value = true;\n};\n\nconst onMouseEnterIcon = () => {\n lastEnteredElement.value = 'icon';\n displayClass.value = 'd-b';\n\n mouseEnterIcon.value = true;\n};\n\nconst onMouseLeaveIcon = () => {\n mouseEnterIcon.value = false;\n};\n\nconst onMouseLeaveWrapper = () => {\n lastEnteredElement.value = '';\n mouseEnterWrapper.value = false;\n mouseEnterIcon.value = false;\n};\n\nconst mouseLeave = () => {\n onMouseLeaveWrapper();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'top-leave';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'top-leave';\n } else if (position.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (position.value === 'left') {\n animationClass.value = 'left-leave';\n } else if (position.value === 'right') {\n animationClass.value = 'right-leave';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n displayClass.value = 'd-n';\n }, props.absolutePositionStatus ? 0 : 250);\n};\n\nconst addAnimationClass = () => {\n onMouseEnterWrapper();\n handleDynamicPosition();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'bottom-entrance';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'bottom-entrance';\n } else if (position.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (position.value === 'left') {\n animationClass.value = 'right-entrance';\n } else if (position.value === 'right') {\n animationClass.value = 'left-entrance';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n }, 250);\n};\n\nonMounted(() => {\n if (props.dynamicPosition) {\n initDynamicPositioning();\n }\n});\n\nonBeforeUnmount(() => {\n killDynamicPositioning();\n});\n</script>\n\n<template>\n <div\n :id=\"id\"\n ref=\"tooltipRootRef\"\n :class=\"styles.wrapper\"\n @mouseenter=\"addAnimationClass\"\n @mouseleave=\"mouseLeave\">\n <Icon\n v-if=\"iconName\"\n ref=\"tooltipIconRef\"\n :class=\"styles.wrapper__icon\"\n :name=\"iconName\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseLeaveIcon\" />\n <div\n v-else\n :class=\"styles.wrapper__icon\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseEnterIcon\">\n <slot name=\"triggerElement\" />\n </div>\n <div\n v-if=\"status\"\n ref=\"tooltipPopupRef\"\n :class=\"[styles.wrapper__box, staticPositionClass, visibilityClass, displayClass]\"\n :style=\"absolutePosition\">\n <Box\n border-triangle\n :border-triangle-align=\"triangleAlignment\"\n :border-triangle-position=\"trianglePosition\"\n :class=\"[styles['wrapper__box-content'], topClass, animationClass]\"\n :style=\"offsetStyle\">\n <div\n :class=\"styles.wrapper__text\"\n :style=\"{ maxHeight: `${maxHeight}px`, overflowY: 'auto' }\">\n <div v-html=\"secureText\" />\n <slot name=\"contentSlot\" />\n </div>\n </Box>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport styles from './Box.module.scss';\n\nexport interface Props {\n border?: string;\n borderRadius?: string;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n borderRadius: 'bor-r-1',\n borderTriangle: false,\n borderTriangleAlign: 'center',\n borderTrianglePosition: 'top',\n});\n\nconst emit = defineEmits<{\n click: [];\n}>();\n\nconst trianglePosition = computed(\n () => (props.borderTriangle ? styles[`box_${props.borderTrianglePosition}-${props.borderTriangleAlign}`] : '')\n);\n\nfunction trigger (): void {\n emit('click');\n}\n</script>\n\n<template>\n <div\n :class=\"[styles.box, trianglePosition, border, borderRadius]\"\n @click=\"trigger\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport DefaultBox from './DefaultBox.vue';\nimport FlipBox from './FlipBox.vue';\n\nconst boxes = {\n default: DefaultBox,\n flip: FlipBox,\n} as const;\n\nwithDefaults(defineProps<{\n type?: keyof typeof boxes;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end' | 'top';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n boxSpacing?: string;\n}>(), {\n borderTriangle: false,\n boxSpacing: '',\n type: 'default',\n});\n</script>\n\n<template>\n <component\n :is=\"boxes[type]\"\n :border-triangle=\"borderTriangle\"\n :border-triangle-align=\"borderTriangleAlign\"\n :border-triangle-position=\"borderTrianglePosition\"\n :box-spacing=\"boxSpacing\">\n <slot />\n <slot name=\"front\" />\n <slot name=\"reverse\" />\n </component>\n</template>\n"],"names":["props","__props","emit","__emit","onClick","event","leftIcon","computed","clickOutside","el","binding","element","isFuzzyMatch","choiceValue","searchTerm","searchIndex","char","_a","fuzzySearch","choices","key","normalizedSearchTerm","choice","value","a","b","aValue","bValue","vClickOutside","dropdownRef","ref","menuRef","isOpen","selectedItem","searchQuery","errorMessage","menuPosition","filteredItems","reactive","allItems","calculateMenuPosition","top","left","width","viewportHeight","bottom","shouldOpenUp","toggleMenu","resetSettings","closeMenu","selectItem","item","addItem","query","error","newItem","onSearch","results","onFocusSearch","menuStyle","onMounted","defaultItem","selectedValue","watch","newItems","iconSize","IconName","selected","setSelect","segment","newValue","filteredSegments","newSegments","textareaRef","autoGrow","newHeight","handleInput","target","applyMinMax","numericValue","_b","sanitizedValue","preventXSS","html","tooltipIconRef","dynamicPositionTriangle","dynamicPositionAlignment","dynamicPositionTrianglePosition","dynamicPositionInitialized","animationClass","mouseEnterWrapper","mouseEnterIcon","lastEnteredElement","displayClass","scrollAreaRef","tooltipRootRef","tooltipPopupRef","position","alignment","topClass","secureText","trianglePosition","visibilityClass","triangleAlignment","staticPositionClass","styles","offsetStyle","getDynamicPosition","parent","nested","customRect","tooltipElementHeight","windowWidth","windowHeight","targetHeight","targetWidth","parentRectangle","parentXOffset","parentYOffset","hasSpaceOnRight","hasSpaceOnLeft","hasSpaceOnBottom","hasSpaceOnTop","hasSpaceOnCenter","handleDynamicPosition","nextTick","right","center","isScrollable","hasScrollableContent","overflowYStyle","isOverflowScroll","getScrollableParent","isComment","isDocument","killDynamicPositioning","initDynamicPositioning","onMouseEnterWrapper","onMouseEnterIcon","onMouseLeaveIcon","onMouseLeaveWrapper","mouseLeave","addAnimationClass","onBeforeUnmount","trigger","boxes","DefaultBox","FlipBox"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var AbComponents=function(y,e){"use strict";const M={button__size_default:"_button__size_default_16zzc_1",button__size_small:"_button__size_small_16zzc_8",button:"_button_16zzc_1",button__label:"_button__label_16zzc_193","button__solid-primary":"_button__solid-primary_16zzc_205","no-hover-effect":"_no-hover-effect_16zzc_212","button--selected":"_button--selected_16zzc_234","button__solid-subtle-primary":"_button__solid-subtle-primary_16zzc_241","button__solid-secondary":"_button__solid-secondary_16zzc_277","button__solid-danger":"_button__solid-danger_16zzc_313","button__solid-warning":"_button__solid-warning_16zzc_349","button__solid-smart":"_button__solid-smart_16zzc_385","button__ghost-primary":"_button__ghost-primary_16zzc_421","button__ghost-subtle-primary":"_button__ghost-subtle-primary_16zzc_457","button__ghost-secondary":"_button__ghost-secondary_16zzc_493","button__ghost-danger":"_button__ghost-danger_16zzc_529","button__ghost-warning":"_button__ghost-warning_16zzc_565","button__ghost-smart":"_button__ghost-smart_16zzc_601","button__text-primary":"_button__text-primary_16zzc_637","button__text-text":"_button__text-text_16zzc_673","button__text-subtle-primary":"_button__text-subtle-primary_16zzc_709","button__text-secondary":"_button__text-secondary_16zzc_745","button__text-danger":"_button__text-danger_16zzc_781","button__text-warning":"_button__text-warning_16zzc_817","button__text-smart":"_button__text-smart_16zzc_853","button__outline-primary":"_button__outline-primary_16zzc_889","button__outline-subtle-primary":"_button__outline-subtle-primary_16zzc_926","button__outline-secondary":"_button__outline-secondary_16zzc_963","button__outline-danger":"_button__outline-danger_16zzc_1000","button__outline-warning":"_button__outline-warning_16zzc_1037","button__outline-smart":"_button__outline-smart_16zzc_1074",button__solid:"_button__solid_16zzc_205",fill:"_fill_16zzc_1125"},oe=["disabled"],ne=e.defineComponent({__name:"Button",props:{variant:{},color:{},size:{default:"default"},leftIconName:{},rightIconName:{},loadingStatus:{type:Boolean,default:!1},successStatus:{type:Boolean,default:!1},label:{},disabled:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=r=>{a.disabled||o("click",r)},c=e.computed(()=>a.loadingStatus?"loading-circle":a.successStatus?"line-check-natural":a.leftIconName);return(r,t)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass([e.unref(M).button,e.unref(M)[`button__${r.variant}`],e.unref(M)[`button__${r.variant}-${r.color}`],e.unref(M)[`button__size_${r.size}`],{[e.unref(M).fill]:r.fill}]),disabled:a.disabled,onClick:l},[c.value?(e.openBlock(),e.createBlock(e.unref(P),{key:0,name:c.value},null,8,["name"])):e.createCommentVNode("",!0),r.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(M).button__label)},e.toDisplayString(r.label),3)):e.createCommentVNode("",!0),r.rightIconName?(e.openBlock(),e.createBlock(e.unref(P),{key:2,name:r.rightIconName},null,8,["name"])):e.createCommentVNode("",!0)],10,oe))}}),re={mounted(i,n){i.clickOutsideEvent=a=>{[i,...n.value.exclude||[]].some(l=>l&&(l===a.target||l.contains(a.target)))||n.value.handler()},document.addEventListener("click",i.clickOutsideEvent)},unmounted(i){i.clickOutsideEvent&&document.removeEventListener("click",i.clickOutsideEvent)}},ae=(i,n)=>{var o;let a=0;for(const l of i)if(l.toLowerCase()===((o=n[a])==null?void 0:o.toLowerCase())&&a++,a===n.length)return!0;return!1},le=(i,n,a)=>{if(!a.trim())return i;const o=a.toLowerCase();return i.filter(l=>{const c=String(l[n]);return ae(c.toLowerCase(),o)}).sort((l,c)=>{const r=String(l[n]).toLowerCase(),t=String(c[n]).toLowerCase();return r===o?-1:t===o?1:r.startsWith(o)&&!t.startsWith(o)?-1:!r.startsWith(o)&&t.startsWith(o)?1:r.length-t.length})},b={dropdown:"_dropdown_c02u6_1",menu:"_menu_c02u6_1",dropdown__valueContent:"_dropdown__valueContent_c02u6_183","dropdown__valueContent--open":"_dropdown__valueContent--open_c02u6_191",dropdown__label:"_dropdown__label_c02u6_194",dropdown__value:"_dropdown__value_c02u6_183",dropdown__placeholder:"_dropdown__placeholder_c02u6_202",dropdown__arrowIcon:"_dropdown__arrowIcon_c02u6_210",menu__searchContainer:"_menu__searchContainer_c02u6_225",menu__searchInputWrap:"_menu__searchInputWrap_c02u6_229",menu__searchInput:"_menu__searchInput_c02u6_229","menu__searchInput--error":"_menu__searchInput--error_c02u6_248",menu__errorMessage:"_menu__errorMessage_c02u6_251",menu__addButton:"_menu__addButton_c02u6_258",menu__itemContainer:"_menu__itemContainer_c02u6_266",menu__item:"_menu__item_c02u6_266","menu__item--active":"_menu__item--active_c02u6_304"},se=["for"],_e=["placeholder"],ie=["onClick"],ce=e.defineComponent({__name:"DropdownMenu",props:{id:{},label:{},modelValue:{default:""},menuHeight:{default:154},placeholder:{},addable:{type:Boolean},addButtonText:{},searchable:{type:Boolean},searchPlaceHolder:{},items:{},validateAddItem:{type:Function,default:()=>null}},emits:["update:modelValue","add-error","item-added","select-item"],setup(i,{emit:n}){const a=re,o=i,l=n,c=e.ref(),r=e.ref(),t=e.ref(!1),s=e.ref(null),p=e.ref(""),d=e.ref(null),k=e.ref({x:0,y:0,width:0,shouldOpenUp:!1,height:o.menuHeight}),B=e.reactive([...o.items]),C=e.reactive([...o.items]),T=()=>{if(!c.value)return;const{offsetTop:u,offsetLeft:m,offsetWidth:z}=c.value,H=window.innerHeight,L=u+c.value.offsetHeight,G=L+o.menuHeight>H;k.value={x:m+window.scrollX,y:G?u+window.scrollY:L+window.scrollY,width:z,shouldOpenUp:G,height:o.menuHeight}},h=()=>{T(),t.value=!t.value},N=()=>{d.value=null,p.value="",B.splice(0,B.length,...C)},j=()=>{t.value=!1,N()},Y=u=>{s.value=u,l("select-item",u),l("update:modelValue",u.value),j()},I=()=>{const u=p.value.trim(),m=o.validateAddItem(u,C);if(m){d.value=m,l("add-error",m);return}const z={text:u,value:u};C.push(z),N(),l("item-added",z)},X=()=>{const u=le(C,"text",p.value);B.splice(0,B.length,...u)},q=()=>{d.value=""},U=e.computed(()=>({top:k.value.shouldOpenUp?`${k.value.y-10}px`:`${k.value.y}px`,left:`${k.value.x}px`,width:`${k.value.width}px`,height:`${o.menuHeight}px`}));e.onMounted(()=>{if(T(),o.modelValue){const u=C.find(m=>m.value===o.modelValue);u&&(s.value=u)}});const A=e.computed(()=>s.value?s.value.text:"");return e.watch(()=>o.items,u=>{C.splice(0,C.length,...u),B.splice(0,B.length,...u)},{deep:!0}),(u,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"dropdownRef",ref:c,class:e.normalizeClass(e.unref(b).dropdown)},[u.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(b).dropdown__label),for:u.id},e.toDisplayString(u.label),11,se)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass([e.unref(b).dropdown__valueContent,{[e.unref(b)["dropdown__valueContent--open"]]:t.value}]),onClick:h},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(b).dropdown__value)},e.toDisplayString(A.value),3),u.placeholder&&!A.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(b).dropdown__placeholder)},e.toDisplayString(u.placeholder),3)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{fill:"none",height:"17",viewBox:"0 0 16 17",width:"16",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(b).dropdown__arrowIcon)},m[2]||(m[2]=[e.createElementVNode("path",{d:"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z",fill:"#91949F"},null,-1)]),2))],2)],2),t.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:r,class:e.normalizeClass(e.unref(b).menu),style:e.normalizeStyle(U.value),onClick:m[1]||(m[1]=e.withModifiers(()=>{},["prevent"]))},[o.searchable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(b).menu__searchContainer)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(b).menu__searchInputWrap)},[e.withDirectives(e.createElementVNode("input",{type:"text",class:e.normalizeClass([e.unref(b).menu__searchInput,{[e.unref(b)["menu__searchInput--error"]]:d.value}]),placeholder:u.searchPlaceHolder,"onUpdate:modelValue":m[0]||(m[0]=z=>p.value=z),onFocus:q,onInput:X},null,42,_e),[[e.vModelText,p.value]]),d.value?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(b).menu__errorMessage)},e.toDisplayString(d.value),3)):e.createCommentVNode("",!0)],2),o.addable?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(b).menu__addButton),onClick:I},e.toDisplayString(u.addButtonText),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(b).menu__itemContainer)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B,(z,H)=>(e.openBlock(),e.createElementBlock("li",{key:`${z.value}-${H}`,class:e.normalizeClass([e.unref(b).menu__item,{[e.unref(b)["menu__item--active"]]:s.value&&z.value===s.value.value}]),onClick:L=>Y(z)},e.toDisplayString(z.text),11,ie))),128))],2)],6)),[[e.unref(a),{handler:j,exclude:[c.value,r.value]}]]):e.createCommentVNode("",!0)],64))}}),pe=["fill","height","width"],de=["xlink:href"],P=((i,n)=>{const a=i.__vccOpts||i;for(const[o,l]of n)a[o]=l;return a})(e.defineComponent({__name:"Icon",props:{name:{},size:{default:16},color:{}},setup(i){const n=i,a=e.computed(()=>typeof n.size=="number"?`${n.size}px`:n.size);return(o,l)=>(e.openBlock(),e.createElementBlock("svg",{class:"icon",fill:o.color||"currentColor",height:a.value,width:a.value},[e.createElementVNode("use",{"xlink:href":`#${o.name}`},null,8,de)],8,pe))}}),[["__scopeId","data-v-f04c8857"]]),F={container:"_container_2joy4_1",container__text:"_container__text_2joy4_187",container__default:"_container__default_2joy4_191",container__warning:"_container__warning_2joy4_199",container__alert:"_container__alert_2joy4_207",container__success:"_container__success_2joy4_215"},ue=e.defineComponent({__name:"OnPageMessage",props:{variant:{default:"default"},text:{}},setup(i){const n=i,a=e.computed(()=>{switch(n.variant){case"alert":return"filled-error-box";case"warning":return"line-caution-triangle";case"success":return"line-check-natural";default:return"filled-info-circle"}});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(F).container,e.unref(F)[`container__${o.variant}`]])},[e.createVNode(P,{name:a.value,size:24},null,8,["name"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(F).container__text)},e.toDisplayString(o.text),3)],2))}}),$={button__size_default:"_button__size_default_4wo1i_1",button__size_small:"_button__size_small_4wo1i_8",button:"_button_4wo1i_1",button__label:"_button__label_4wo1i_191","button--primary":"_button--primary_4wo1i_208","button--selected":"_button--selected_4wo1i_218","button--secondary":"_button--secondary_4wo1i_231","button--danger":"_button--danger_4wo1i_254","button--warning":"_button--warning_4wo1i_277","button--smart":"_button--smart_4wo1i_300",button__solid:"_button__solid_4wo1i_330",segmentGroup:"_segmentGroup_4wo1i_337","segmentGroup--vertical":"_segmentGroup--vertical_4wo1i_340","segmentGroup--horizontal":"_segmentGroup--horizontal_4wo1i_349",fill:"_fill_4wo1i_359"},me=["disabled","onClick"],fe=e.defineComponent({__name:"SegmentButton",props:{color:{},size:{default:"default"},align:{default:"horizontal"},disabled:{type:Boolean,default:!1},segments:{},fill:{type:Boolean},modelValue:{}},emits:["update:modelValue","click"],setup(i,{emit:n}){const a=i,o=n,l=e.ref(a.modelValue||""),c=t=>{a.disabled||t.disabled||(l.value=t.value,o("update:modelValue",t.value),o("click",t.value))};e.watch(()=>a.modelValue,t=>{l.value=t||""});const r=e.ref([...a.segments]);return e.watch(()=>a.segments,t=>{r.value=[...t],t.some(s=>s.value===l.value)||(l.value="",o("update:modelValue",""))},{deep:!0}),(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref($).segmentGroup,e.unref($)[`segmentGroup--${t.align}`],{[e.unref($).fill]:t.fill}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(p,d)=>(e.openBlock(),e.createElementBlock("button",{key:`${p.value}-${d}`,class:e.normalizeClass([e.unref($).button,e.unref($)[`button--${t.color}`],e.unref($)[`button__size_${t.size}`],e.unref($).fill,{[e.unref($)["button--selected"]]:p.value===l.value}]),disabled:p.disabled||a.disabled,onClick:k=>c(p)},[p.icon?(e.openBlock(),e.createBlock(e.unref(P),{key:0,name:p.icon},null,8,["name"])):e.createCommentVNode("",!0),p.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref($).button__label)},e.toDisplayString(p.label),3)):e.createCommentVNode("",!0)],10,me))),128))],2))}}),x={wrapper__field:"_wrapper__field_1ujuh_1",wrapper__label:"_wrapper__label_1ujuh_1",wrapper__errorMessage:"_wrapper__errorMessage_1ujuh_1",wrapper__counter:"_wrapper__counter_1ujuh_1",wrapper:"_wrapper_1ujuh_1",wrapper__bottom:"_wrapper__bottom_1ujuh_220","wrapper--error":"_wrapper--error_1ujuh_233"},be=["for"],we=["id","maxlength","name","placeholder","value"],ge=["id","maxlength","name","placeholder","value"],he=e.defineComponent({__name:"TextInput",props:{id:{},name:{},modelValue:{default:""},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},maxHeight:{default:void 0},error:{default:""},multiline:{type:Boolean,default:!1},autoGrow:{type:Boolean,default:!1},counter:{type:Boolean}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(i,{emit:n}){const a=i,o=n,l=e.ref(null),c=()=>{if(a.autoGrow&&l.value){l.value.style.height="";const t=Math.min(l.value.scrollHeight,a.maxHeight||l.value.scrollHeight);l.value.style.height=`${t}px`}},r=t=>{const s=t.target;o("input",t),o("update:modelValue",s.value),c()};return e.onMounted(()=>{c()}),(t,s)=>{var p;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(x).wrapper)},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(x).wrapper__label),for:t.id},e.toDisplayString(t.label),11,be)):e.createCommentVNode("",!0),t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,id:t.id,ref_key:"textareaRef",ref:l,class:e.normalizeClass([e.unref(x).wrapper__field,{[e.unref(x)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,style:e.normalizeStyle(t.maxHeight?{maxHeight:`${t.maxHeight}px`}:void 0),value:t.modelValue,onBlur:s[0]||(s[0]=d=>o("blur",d)),onChange:s[1]||(s[1]=d=>t.$emit("change",d)),onFocus:s[2]||(s[2]=d=>o("focus",d)),onInput:r,onPaste:s[3]||(s[3]=d=>o("paste",d))},null,46,we)):(e.openBlock(),e.createElementBlock("input",{key:2,id:t.id,type:"text",class:e.normalizeClass([e.unref(x).wrapper__field,{[e.unref(x)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,value:t.modelValue,onBlur:s[4]||(s[4]=d=>o("blur",d)),onChange:s[5]||(s[5]=d=>t.$emit("change",d)),onFocus:s[6]||(s[6]=d=>o("focus",d)),onInput:r,onPaste:s[7]||(s[7]=d=>o("paste",d))},null,42,ge)),e.createElementVNode("div",{class:e.normalizeClass(e.unref(x).wrapper__bottom)},[t.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(x).wrapper__errorMessage)},e.toDisplayString(t.error),3)):e.createCommentVNode("",!0),t.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(x).wrapper__counter)},e.toDisplayString(((p=t.modelValue)==null?void 0:p.toString().length)||0),3)):e.createCommentVNode("",!0)],2)],2)}}}),E={wrapper__label:"_wrapper__label_3sncs_1",wrapper__errorMessage:"_wrapper__errorMessage_3sncs_1",wrapper__counter:"_wrapper__counter_3sncs_1",wrapper:"_wrapper_3sncs_1",wrapper__field:"_wrapper__field_3sncs_8",wrapper__size_default:"_wrapper__size_default_3sncs_185",wrapper__size_small:"_wrapper__size_small_3sncs_188",wrapper__bottom:"_wrapper__bottom_3sncs_225","wrapper--error":"_wrapper--error_3sncs_238"},ze=["for"],ye=["id","max","maxlength","min","name","placeholder","value"],ke=e.defineComponent({__name:"NumberInput",props:{id:{},name:{},modelValue:{default:void 0},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},error:{default:""},errorStatus:{type:Boolean},counter:{type:Boolean},min:{default:void 0},max:{default:void 0},size:{default:"default"}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(i,{emit:n}){const a=i,o=n,l=r=>{var s,p;if(r==="")return r;const t=Number(r);return typeof a.min=="number"&&t<a.min?(s=a.min)==null?void 0:s.toString():typeof a.max=="number"&&t>a.max?(p=a.max)==null?void 0:p.toString():t.toString()},c=r=>{const t=r.target,s=l(t.value);t.value=s,o("input",r),o("update:modelValue",Number(s))};return(r,t)=>{var s;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(E).wrapper,e.unref(E)[`wrapper__size_${r.size}`]])},[r.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(E).wrapper__label),for:r.id},e.toDisplayString(r.label),11,ze)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:r.id,type:"number",class:e.normalizeClass([e.unref(E).wrapper__field,{[e.unref(E)["wrapper--error"]]:r.error||r.errorStatus}]),max:r.max,maxlength:r.maxLength,min:r.min,name:r.name,placeholder:r.placeholder,value:r.modelValue,onBlur:t[0]||(t[0]=p=>o("blur",p)),onChange:t[1]||(t[1]=p=>r.$emit("change",p)),onFocus:t[2]||(t[2]=p=>o("focus",p)),onInput:c,onPaste:t[3]||(t[3]=p=>o("paste",p))},null,42,ye),r.counter||r.error?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__bottom)},[r.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(E).wrapper__errorMessage)},e.toDisplayString(r.error),3)):e.createCommentVNode("",!0),r.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__counter)},e.toDisplayString(((s=r.modelValue)==null?void 0:s.toString().length)||0),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],2)}}}),D={wrapper:"_wrapper_d1zlt_169",wrapper__label:"_wrapper__label_d1zlt_176",wrapper__input:"_wrapper__input_d1zlt_200",wrapper_checked:"_wrapper_checked_d1zlt_210",wrapper_disabled:"_wrapper_disabled_d1zlt_217"},Ce=["id","checked","disabled","name"],Be=["for"],$e=e.defineComponent({__name:"Toggle",props:{id:{},name:{},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=()=>{o("click",!a.checked)};return(c,r)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass([e.unref(D).wrapper,{[e.unref(D).wrapper_checked]:c.checked,[e.unref(D).wrapper_disabled]:c.disabled}])},[e.createElementVNode("input",{id:c.id,type:"checkbox",checked:c.checked,class:e.normalizeClass(e.unref(D).wrapper__input),disabled:c.disabled,name:c.name,onClick:l},null,10,Ce),e.createElementVNode("label",{class:e.normalizeClass(e.unref(D).wrapper__label),for:c.id},null,10,Be)],2))}});function xe(i=""){return typeof i=="string"?i.replace(/<\/style>/gi,"").replace(/<(.*?) on(.*?)=['"](.*?)>/gi,"").replace(/(<meta |<style|<\/*script)(.*?)>/gi,"").replace(/(<([^>]+)>)/ig,"").replace(/<(.*?) (href|src)="j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi,""):i}const V={wrapper__box:"_wrapper__box_1cst8_1",wrapper:"_wrapper_1cst8_1",wrapper__icon:"_wrapper__icon_1cst8_184","wrapper__box_bottom-start":"_wrapper__box_bottom-start_1cst8_199","wrapper__box_bottom-center":"_wrapper__box_bottom-center_1cst8_205","wrapper__box_bottom-end":"_wrapper__box_bottom-end_1cst8_211","wrapper__box_top-start":"_wrapper__box_top-start_1cst8_217","wrapper__box_top-center":"_wrapper__box_top-center_1cst8_223","wrapper__box_top-end":"_wrapper__box_top-end_1cst8_229","wrapper__box_right-start":"_wrapper__box_right-start_1cst8_235","wrapper__box_right-center":"_wrapper__box_right-center_1cst8_241","wrapper__box_right-end":"_wrapper__box_right-end_1cst8_247","wrapper__box_left-start":"_wrapper__box_left-start_1cst8_252","wrapper__box_left-center":"_wrapper__box_left-center_1cst8_257","wrapper__box_left-end":"_wrapper__box_left-end_1cst8_262",wrapper__text:"_wrapper__text_1cst8_267","wrapper__box-content":"_wrapper__box-content_1cst8_296","bottom-entrance":"_bottom-entrance_1cst8_309","top-entrance":"_top-entrance_1cst8_312","left-entrance":"_left-entrance_1cst8_315","right-entrance":"_right-entrance_1cst8_318","bottom-leave":"_bottom-leave_1cst8_321","top-leave":"_top-leave_1cst8_324","right-leave":"_right-leave_1cst8_327","left-leave":"_left-leave_1cst8_330"},Se=["id"],Ee=["innerHTML"],Ve=e.defineComponent({__name:"Tooltip",props:{id:{},text:{},staticPosition:{default:"top center"},dynamicPosition:{type:Boolean},absolutePositionStatus:{type:Boolean,default:!1},offsetX:{default:4},offsetY:{default:4},maxHeight:{default:320},status:{type:Boolean,default:!0},preventXss:{type:Boolean},iconName:{default:void 0},absoluteTriangleAlignment:{default:"center"},absoluteTrianglePosition:{default:"top"},absolutePosition:{type:[Boolean,null,String,Object,Array]}},setup(i){const n=i,a=e.ref(null),o=e.ref("center"),l=e.ref("bottom"),c=e.ref("center"),r=e.ref(!1),t=e.ref(""),s=e.ref(!1),p=e.ref(!1),d=e.ref(""),k=e.ref("d-n"),B=e.ref(null),C=e.ref(null),T=e.ref(null),h=e.computed(()=>n.staticPosition.split(" ")[0]),N=e.computed(()=>n.staticPosition.split(" ")[1]),j=e.computed(()=>n.iconName?"mt-1":"mt-0"),Y=e.computed(()=>n.preventXss?xe(n.text):n.text),I=e.computed(()=>n.absolutePositionStatus?n.absoluteTrianglePosition:n.dynamicPosition&&r.value?l.value==="bottom"?"top":"bottom":h.value==="top"?"bottom":h.value==="bottom"?"top":h.value==="left"?"right":h.value==="right"?"left":"bottom"),X=e.computed(()=>n.absolutePositionStatus?"":s.value&&p.value||d.value==="icon"&&s.value?"opa-1":"opa-0"),q=e.computed(()=>n.absolutePositionStatus?n.absoluteTriangleAlignment:n.dynamicPosition&&r.value?o.value==="center"?"center":o.value==="end"?"end":o.value==="start"?"start":c.value:N.value==="center"?"center":N.value==="left"||N.value==="top"?"start":N.value==="right"||N.value==="bottom"?"end":"center"),U=e.computed(()=>n.absolutePositionStatus?"":n.dynamicPosition&&r.value?V[`wrapper__box_${l.value}-${o.value}`]:V[`wrapper__box_${h.value}-${q.value}`]),A=e.computed(()=>n.offsetX===0&&n.offsetY===0?{}:n.dynamicPosition?{[`margin-${l.value==="bottom"?"top":"bottom"}`]:`${n.offsetY}px`}:I.value==="top"||I.value==="bottom"?{[`margin-${I.value}`]:`${n.offsetY}px`}:{[`margin-${I.value}`]:`${n.offsetX}px`}),u=(_,f,w=!1)=>{if(!_||!C.value)return{left:!1,right:!1,top:!1,bottom:!1,center:!1};const S={left:0,right:0,top:0,bottom:0,width:0,height:0},Z=C.value.clientHeight,O=window.innerWidth,Le=window.innerHeight,K=_.clientHeight,R=_.clientWidth||264,g=(f==null?void 0:f.getBoundingClientRect())||S,v=w?g==null?void 0:g.right:g==null?void 0:g.left,ee=w?g==null?void 0:g.top:g==null?void 0:g.bottom,Oe=v+g.width+R+n.offsetX<O,We=v+g.width/2-(R+n.offsetX)>10,je=ee+K<Le-n.offsetY,qe=ee-(K+Z+n.offsetY)>0;let te=!1;return n.iconName&&(te=g.right+R/2<O&&g.left-(R+n.offsetX)/2>=10),{left:We,right:Oe,bottom:je,top:qe,center:te}},m=()=>{e.nextTick(()=>{var O;r.value=!0;const{bottom:_,left:f,right:w,top:S,center:Z}=u(T.value,(O=T.value)==null?void 0:O.parentNode);if(Z){o.value="center",l.value=_&&!S?"bottom":"top";return}if(_&&f&&w&&S){o.value="center",l.value="top";return}if(S&&!_){if(w&&f){o.value="center",l.value="top";return}if(w&&!f){o.value="start",l.value="top";return}if(!w&&f){o.value="end",l.value="top";return}}if(_&&S){if(!w&&f){o.value="end",l.value="top",c.value="end";return}if(w&&!f){o.value="start",l.value="top",c.value="start";return}}if(_&&!S){if(w&&f){o.value="center",l.value="bottom",c.value="top";return}if(!w&&f){o.value="end",l.value="bottom",c.value="top";return}w&&!f&&(o.value="start",l.value="bottom",c.value="top")}})},z=_=>{if(!(_ instanceof HTMLElement))return!1;const f=_.scrollHeight>_.clientHeight,w=window.getComputedStyle(_).overflowY,S=["auto","scroll"].includes(w);return f&&S},H=_=>{const f=(_==null?void 0:_.nodeType)===Node.COMMENT_NODE,w=(_==null?void 0:_.nodeType)===Node.DOCUMENT_NODE;return!_||f||w?document:z(_)?_:H(_.parentNode)},L=()=>{var _;(_=B.value)==null||_.removeEventListener("scroll",m),window==null||window.removeEventListener("resize",m)},G=()=>{e.nextTick(()=>{var _;B.value=H(C.value),(_=B.value)==null||_.addEventListener("scroll",m),window==null||window.addEventListener("resize",m)})},Me=()=>{d.value="wrapper",k.value="d-b",s.value=!0},Q=()=>{d.value="icon",k.value="d-b",p.value=!0},Pe=()=>{p.value=!1},Te=()=>{d.value="",s.value=!1,p.value=!1},He=()=>{Te(),n.dynamicPosition?l.value==="bottom"?t.value="bottom-leave":l.value==="top"&&(t.value="top-leave"):h.value==="top"?t.value="top-leave":h.value==="bottom"?t.value="bottom-leave":h.value==="left"?t.value="left-leave":h.value==="right"&&(t.value="right-leave"),setTimeout(()=>{t.value="",k.value="d-n"},n.absolutePositionStatus?0:250)},De=()=>{Me(),m(),n.dynamicPosition?l.value==="bottom"?t.value="top-entrance":l.value==="top"&&(t.value="bottom-entrance"):h.value==="top"?t.value="bottom-entrance":h.value==="bottom"?t.value="top-entrance":h.value==="left"?t.value="right-entrance":h.value==="right"&&(t.value="left-entrance"),setTimeout(()=>{t.value=""},250)};return e.onMounted(()=>{n.dynamicPosition&&G()}),e.onBeforeUnmount(()=>{L()}),(_,f)=>(e.openBlock(),e.createElementBlock("div",{id:_.id,ref_key:"tooltipRootRef",ref:C,class:e.normalizeClass(e.unref(V).wrapper),onMouseenter:De,onMouseleave:He},[_.iconName?(e.openBlock(),e.createBlock(e.unref(P),{key:0,ref_key:"tooltipIconRef",ref:a,class:e.normalizeClass(e.unref(V).wrapper__icon),name:_.iconName,onMouseenter:Q,onMouseleave:Pe},null,8,["class","name"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(V).wrapper__icon),onMouseenter:Q,onMouseleave:Q},[e.renderSlot(_.$slots,"triggerElement")],34)),_.status?(e.openBlock(),e.createElementBlock("div",{key:2,ref_key:"tooltipPopupRef",ref:T,class:e.normalizeClass([e.unref(V).wrapper__box,U.value,X.value,k.value]),style:e.normalizeStyle(_.absolutePosition)},[e.createVNode(e.unref(J),{"border-triangle":"","border-triangle-align":q.value,"border-triangle-position":I.value,class:e.normalizeClass([e.unref(V)["wrapper__box-content"],j.value,t.value]),style:e.normalizeStyle(A.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(V).wrapper__text),style:e.normalizeStyle({maxHeight:`${_.maxHeight}px`,overflowY:"auto"})},[e.createElementVNode("div",{innerHTML:Y.value},null,8,Ee),e.renderSlot(_.$slots,"contentSlot")],6)]),_:3},8,["border-triangle-align","border-triangle-position","class","style"])],6)):e.createCommentVNode("",!0)],42,Se))}}),W={box:"_box_14qkh_169","box_top-start":"_box_top-start_14qkh_173","box_top-center":"_box_top-center_14qkh_173","box_top-end":"_box_top-end_14qkh_173","box_right-start":"_box_right-start_14qkh_173","box_right-center":"_box_right-center_14qkh_173","box_right-end":"_box_right-end_14qkh_173","box_bottom-start":"_box_bottom-start_14qkh_173","box_bottom-center":"_box_bottom-center_14qkh_173","box_bottom-end":"_box_bottom-end_14qkh_173","box_left-start":"_box_left-start_14qkh_173","box_left-center":"_box_left-center_14qkh_173","box_left-end":"_box_left-end_14qkh_173",flipBox:"_flipBox_14qkh_257"},Ne=e.defineComponent({__name:"DefaultBox",props:{border:{},borderRadius:{default:"bor-r-1"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{default:"center"},borderTrianglePosition:{default:"top"}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=e.computed(()=>a.borderTriangle?W[`box_${a.borderTrianglePosition}-${a.borderTriangleAlign}`]:"");function c(){o("click")}return(r,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(W).box,l.value,r.border,r.borderRadius]),onClick:c},[e.renderSlot(r.$slots,"default")],2))}}),Ie=e.defineComponent({__name:"FlipBox",props:{boxSpacing:{default:""}},setup(i){return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(W).flipBox,n.boxSpacing])},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass([e.unref(W).box,n.boxSpacing])},[e.renderSlot(n.$slots,"front")],2),e.createElementVNode("div",{class:e.normalizeClass([n.boxSpacing])},[e.renderSlot(n.$slots,"reverse")],2)])],2))}}),J=e.defineComponent({__name:"Box",props:{type:{default:"default"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{},borderTrianglePosition:{},boxSpacing:{default:""}},setup(i){const n={default:Ne,flip:Ie};return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.type]),{"border-triangle":a.borderTriangle,"border-triangle-align":a.borderTriangleAlign,"border-triangle-position":a.borderTrianglePosition,"box-spacing":a.boxSpacing},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default"),e.renderSlot(a.$slots,"front"),e.renderSlot(a.$slots,"reverse")]),_:3},8,["border-triangle","border-triangle-align","border-triangle-position","box-spacing"]))}});return y.Box=J,y.Button=ne,y.DropdownMenu=ce,y.Icon=P,y.NumberInput=ke,y.OnPageMessage=ue,y.SegmentButton=fe,y.TextInput=he,y.Toggle=$e,y.Tooltip=Ve,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}),y}({},Vue);
|
|
1
|
+
var AbComponents=function(k,e){"use strict";const M={button__size_default:"_button__size_default_16zzc_1",button__size_small:"_button__size_small_16zzc_8",button:"_button_16zzc_1",button__label:"_button__label_16zzc_193","button__solid-primary":"_button__solid-primary_16zzc_205","no-hover-effect":"_no-hover-effect_16zzc_212","button--selected":"_button--selected_16zzc_234","button__solid-subtle-primary":"_button__solid-subtle-primary_16zzc_241","button__solid-secondary":"_button__solid-secondary_16zzc_277","button__solid-danger":"_button__solid-danger_16zzc_313","button__solid-warning":"_button__solid-warning_16zzc_349","button__solid-smart":"_button__solid-smart_16zzc_385","button__ghost-primary":"_button__ghost-primary_16zzc_421","button__ghost-subtle-primary":"_button__ghost-subtle-primary_16zzc_457","button__ghost-secondary":"_button__ghost-secondary_16zzc_493","button__ghost-danger":"_button__ghost-danger_16zzc_529","button__ghost-warning":"_button__ghost-warning_16zzc_565","button__ghost-smart":"_button__ghost-smart_16zzc_601","button__text-primary":"_button__text-primary_16zzc_637","button__text-text":"_button__text-text_16zzc_673","button__text-subtle-primary":"_button__text-subtle-primary_16zzc_709","button__text-secondary":"_button__text-secondary_16zzc_745","button__text-danger":"_button__text-danger_16zzc_781","button__text-warning":"_button__text-warning_16zzc_817","button__text-smart":"_button__text-smart_16zzc_853","button__outline-primary":"_button__outline-primary_16zzc_889","button__outline-subtle-primary":"_button__outline-subtle-primary_16zzc_926","button__outline-secondary":"_button__outline-secondary_16zzc_963","button__outline-danger":"_button__outline-danger_16zzc_1000","button__outline-warning":"_button__outline-warning_16zzc_1037","button__outline-smart":"_button__outline-smart_16zzc_1074",button__solid:"_button__solid_16zzc_205",fill:"_fill_16zzc_1125"},oe=["disabled"],ne=e.defineComponent({__name:"Button",props:{variant:{},color:{},size:{default:"default"},leftIconName:{},rightIconName:{},loadingStatus:{type:Boolean,default:!1},successStatus:{type:Boolean,default:!1},label:{},disabled:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=r=>{a.disabled||o("click",r)},c=e.computed(()=>a.loadingStatus?"loading-circle":a.successStatus?"line-check-natural":a.leftIconName);return(r,t)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass([e.unref(M).button,e.unref(M)[`button__${r.variant}`],e.unref(M)[`button__${r.variant}-${r.color}`],e.unref(M)[`button__size_${r.size}`],{[e.unref(M).fill]:r.fill}]),disabled:a.disabled,onClick:l},[c.value?(e.openBlock(),e.createBlock(e.unref(P),{key:0,name:c.value},null,8,["name"])):e.createCommentVNode("",!0),r.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(M).button__label)},e.toDisplayString(r.label),3)):e.createCommentVNode("",!0),r.rightIconName?(e.openBlock(),e.createBlock(e.unref(P),{key:2,name:r.rightIconName},null,8,["name"])):e.createCommentVNode("",!0)],10,oe))}}),re={mounted(i,n){i.clickOutsideEvent=a=>{[i,...n.value.exclude||[]].some(l=>l&&(l===a.target||l.contains(a.target)))||n.value.handler()},document.addEventListener("click",i.clickOutsideEvent)},unmounted(i){i.clickOutsideEvent&&document.removeEventListener("click",i.clickOutsideEvent)}},ae=(i,n)=>{var o;let a=0;for(const l of i)if(l.toLowerCase()===((o=n[a])==null?void 0:o.toLowerCase())&&a++,a===n.length)return!0;return!1},le=(i,n,a)=>{if(!a.trim())return i;const o=a.toLowerCase();return i.filter(l=>{const c=String(l[n]);return ae(c.toLowerCase(),o)}).sort((l,c)=>{const r=String(l[n]).toLowerCase(),t=String(c[n]).toLowerCase();return r===o?-1:t===o?1:r.startsWith(o)&&!t.startsWith(o)?-1:!r.startsWith(o)&&t.startsWith(o)?1:r.length-t.length})},b={dropdown:"_dropdown_c02u6_1",menu:"_menu_c02u6_1",dropdown__valueContent:"_dropdown__valueContent_c02u6_183","dropdown__valueContent--open":"_dropdown__valueContent--open_c02u6_191",dropdown__label:"_dropdown__label_c02u6_194",dropdown__value:"_dropdown__value_c02u6_183",dropdown__placeholder:"_dropdown__placeholder_c02u6_202",dropdown__arrowIcon:"_dropdown__arrowIcon_c02u6_210",menu__searchContainer:"_menu__searchContainer_c02u6_225",menu__searchInputWrap:"_menu__searchInputWrap_c02u6_229",menu__searchInput:"_menu__searchInput_c02u6_229","menu__searchInput--error":"_menu__searchInput--error_c02u6_248",menu__errorMessage:"_menu__errorMessage_c02u6_251",menu__addButton:"_menu__addButton_c02u6_258",menu__itemContainer:"_menu__itemContainer_c02u6_266",menu__item:"_menu__item_c02u6_266","menu__item--active":"_menu__item--active_c02u6_304"},se=["for"],_e=["placeholder"],ie=["onClick"],ce=e.defineComponent({__name:"DropdownMenu",props:{id:{},label:{},modelValue:{default:""},menuHeight:{default:154},placeholder:{},addable:{type:Boolean},addButtonText:{},searchable:{type:Boolean},searchPlaceHolder:{},items:{},validateAddItem:{type:Function,default:()=>null}},emits:["update:modelValue","add-error","item-added","select-item"],setup(i,{emit:n}){const a=re,o=i,l=n,c=e.ref(),r=e.ref(),t=e.ref(!1),s=e.ref(null),p=e.ref(""),d=e.ref(null),y=e.ref({x:0,y:0,width:0,shouldOpenUp:!1,height:o.menuHeight}),B=e.reactive([...o.items]),C=e.reactive([...o.items]),T=()=>{if(!c.value)return;const{offsetTop:u,offsetLeft:m,offsetWidth:z}=c.value,H=window.innerHeight,L=u+c.value.offsetHeight,G=L+o.menuHeight>H;y.value={x:m+window.scrollX,y:G?u+window.scrollY:L+window.scrollY,width:z,shouldOpenUp:G,height:o.menuHeight}},h=()=>{T(),t.value=!t.value},N=()=>{d.value=null,p.value="",B.splice(0,B.length,...C)},j=()=>{t.value=!1,N()},Y=u=>{s.value=u,l("select-item",u),l("update:modelValue",u.value),j()},I=()=>{const u=p.value.trim(),m=o.validateAddItem(u,C);if(m){d.value=m,l("add-error",m);return}const z={text:u,value:u};C.push(z),N(),l("item-added",z)},X=()=>{const u=le(C,"text",p.value);B.splice(0,B.length,...u)},q=()=>{d.value=""},U=e.computed(()=>({top:y.value.shouldOpenUp?`${y.value.y-10}px`:`${y.value.y}px`,left:`${y.value.x}px`,width:`${y.value.width}px`,height:`${o.menuHeight}px`}));e.onMounted(()=>{if(T(),o.modelValue){const u=C.find(m=>m.value===o.modelValue);u&&(s.value=u)}});const A=e.computed(()=>s.value?s.value.text:"");return e.watch(()=>o.items,u=>{C.splice(0,C.length,...u),B.splice(0,B.length,...u)},{deep:!0}),(u,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"dropdownRef",ref:c,class:e.normalizeClass(e.unref(b).dropdown)},[u.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(b).dropdown__label),for:u.id},e.toDisplayString(u.label),11,se)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass([e.unref(b).dropdown__valueContent,{[e.unref(b)["dropdown__valueContent--open"]]:t.value}]),onClick:h},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(b).dropdown__value)},e.toDisplayString(A.value),3),u.placeholder&&!A.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(b).dropdown__placeholder)},e.toDisplayString(u.placeholder),3)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{fill:"none",height:"17",viewBox:"0 0 16 17",width:"16",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(b).dropdown__arrowIcon)},m[2]||(m[2]=[e.createElementVNode("path",{d:"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z",fill:"#91949F"},null,-1)]),2))],2)],2),t.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:r,class:e.normalizeClass(e.unref(b).menu),style:e.normalizeStyle(U.value),onClick:m[1]||(m[1]=e.withModifiers(()=>{},["prevent"]))},[o.searchable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(b).menu__searchContainer)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(b).menu__searchInputWrap)},[e.withDirectives(e.createElementVNode("input",{type:"text",class:e.normalizeClass([e.unref(b).menu__searchInput,{[e.unref(b)["menu__searchInput--error"]]:d.value}]),placeholder:u.searchPlaceHolder,"onUpdate:modelValue":m[0]||(m[0]=z=>p.value=z),onFocus:q,onInput:X},null,42,_e),[[e.vModelText,p.value]]),d.value?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(b).menu__errorMessage)},e.toDisplayString(d.value),3)):e.createCommentVNode("",!0)],2),o.addable?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(b).menu__addButton),onClick:I},e.toDisplayString(u.addButtonText),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(b).menu__itemContainer)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B,(z,H)=>(e.openBlock(),e.createElementBlock("li",{key:`${z.value}-${H}`,class:e.normalizeClass([e.unref(b).menu__item,{[e.unref(b)["menu__item--active"]]:s.value&&z.value===s.value.value}]),onClick:L=>Y(z)},e.toDisplayString(z.text),11,ie))),128))],2)],6)),[[e.unref(a),{handler:j,exclude:[c.value,r.value]}]]):e.createCommentVNode("",!0)],64))}}),pe=["fill","height","width"],de=["xlink:href"],P=((i,n)=>{const a=i.__vccOpts||i;for(const[o,l]of n)a[o]=l;return a})(e.defineComponent({__name:"Icon",props:{name:{},size:{default:16},color:{}},setup(i){const n=i,a=e.computed(()=>typeof n.size=="number"?`${n.size}px`:n.size);return(o,l)=>(e.openBlock(),e.createElementBlock("svg",{class:"icon",fill:o.color||"currentColor",height:a.value,width:a.value},[e.createElementVNode("use",{"xlink:href":`#${o.name}`},null,8,de)],8,pe))}}),[["__scopeId","data-v-f04c8857"]]),F={container:"_container_pab2j_1",container__text:"_container__text_pab2j_185",container__default:"_container__default_pab2j_189",container__warning:"_container__warning_pab2j_197",container__alert:"_container__alert_pab2j_205",container__success:"_container__success_pab2j_213"},ue=e.defineComponent({__name:"OnPageMessage",props:{variant:{default:"default"},text:{}},setup(i){const n=i,a=e.computed(()=>{switch(n.variant){case"alert":return"icon-info-box-error";case"warning":return"line-caution-triangle";case"success":return"line-check-natural";default:return"filled-info-circle"}});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(F).container,e.unref(F)[`container__${o.variant}`]])},[e.createVNode(P,{name:a.value,size:24},null,8,["name"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(F).container__text)},e.toDisplayString(o.text),3)],2))}}),$={button__size_default:"_button__size_default_4wo1i_1",button__size_small:"_button__size_small_4wo1i_8",button:"_button_4wo1i_1",button__label:"_button__label_4wo1i_191","button--primary":"_button--primary_4wo1i_208","button--selected":"_button--selected_4wo1i_218","button--secondary":"_button--secondary_4wo1i_231","button--danger":"_button--danger_4wo1i_254","button--warning":"_button--warning_4wo1i_277","button--smart":"_button--smart_4wo1i_300",button__solid:"_button__solid_4wo1i_330",segmentGroup:"_segmentGroup_4wo1i_337","segmentGroup--vertical":"_segmentGroup--vertical_4wo1i_340","segmentGroup--horizontal":"_segmentGroup--horizontal_4wo1i_349",fill:"_fill_4wo1i_359"},me=["disabled","onClick"],fe=e.defineComponent({__name:"SegmentButton",props:{color:{},size:{default:"default"},align:{default:"horizontal"},disabled:{type:Boolean,default:!1},segments:{},fill:{type:Boolean},modelValue:{}},emits:["update:modelValue","click"],setup(i,{emit:n}){const a=i,o=n,l=e.ref(a.modelValue||""),c=t=>{a.disabled||t.disabled||(l.value=t.value,o("update:modelValue",t.value),o("click",t.value))};e.watch(()=>a.modelValue,t=>{l.value!==t&&(l.value=t||"")});const r=e.ref([...a.segments]);return e.watch(()=>a.segments,t=>{r.value=[...t],t.some(s=>s.value===l.value)||(l.value="",o("update:modelValue",""))},{deep:!0}),(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref($).segmentGroup,e.unref($)[`segmentGroup--${t.align}`],{[e.unref($).fill]:t.fill}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(p,d)=>(e.openBlock(),e.createElementBlock("button",{key:`${p.value}-${d}`,class:e.normalizeClass([e.unref($).button,e.unref($)[`button--${t.color}`],e.unref($)[`button__size_${t.size}`],e.unref($).fill,{[e.unref($)["button--selected"]]:p.value===l.value}]),disabled:p.disabled||a.disabled,onClick:y=>c(p)},[p.icon?(e.openBlock(),e.createBlock(e.unref(P),{key:0,name:p.icon},null,8,["name"])):e.createCommentVNode("",!0),p.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref($).button__label)},e.toDisplayString(p.label),3)):e.createCommentVNode("",!0)],10,me))),128))],2))}}),x={wrapper__field:"_wrapper__field_1ujuh_1",wrapper__label:"_wrapper__label_1ujuh_1",wrapper__errorMessage:"_wrapper__errorMessage_1ujuh_1",wrapper__counter:"_wrapper__counter_1ujuh_1",wrapper:"_wrapper_1ujuh_1",wrapper__bottom:"_wrapper__bottom_1ujuh_220","wrapper--error":"_wrapper--error_1ujuh_233"},be=["for"],we=["id","maxlength","name","placeholder","value"],ge=["id","maxlength","name","placeholder","value"],he=e.defineComponent({__name:"TextInput",props:{id:{},name:{},modelValue:{default:""},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},maxHeight:{default:void 0},error:{default:""},multiline:{type:Boolean,default:!1},autoGrow:{type:Boolean,default:!1},counter:{type:Boolean}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(i,{emit:n}){const a=i,o=n,l=e.ref(null),c=()=>{if(a.autoGrow&&l.value){l.value.style.height="";const t=Math.min(l.value.scrollHeight,a.maxHeight||l.value.scrollHeight);l.value.style.height=`${t}px`}},r=t=>{const s=t.target;o("input",t),o("update:modelValue",s.value),c()};return e.onMounted(()=>{c()}),(t,s)=>{var p;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(x).wrapper)},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(x).wrapper__label),for:t.id},e.toDisplayString(t.label),11,be)):e.createCommentVNode("",!0),t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,id:t.id,ref_key:"textareaRef",ref:l,class:e.normalizeClass([e.unref(x).wrapper__field,{[e.unref(x)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,style:e.normalizeStyle(t.maxHeight?{maxHeight:`${t.maxHeight}px`}:void 0),value:t.modelValue,onBlur:s[0]||(s[0]=d=>o("blur",d)),onChange:s[1]||(s[1]=d=>t.$emit("change",d)),onFocus:s[2]||(s[2]=d=>o("focus",d)),onInput:r,onPaste:s[3]||(s[3]=d=>o("paste",d))},null,46,we)):(e.openBlock(),e.createElementBlock("input",{key:2,id:t.id,type:"text",class:e.normalizeClass([e.unref(x).wrapper__field,{[e.unref(x)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,value:t.modelValue,onBlur:s[4]||(s[4]=d=>o("blur",d)),onChange:s[5]||(s[5]=d=>t.$emit("change",d)),onFocus:s[6]||(s[6]=d=>o("focus",d)),onInput:r,onPaste:s[7]||(s[7]=d=>o("paste",d))},null,42,ge)),e.createElementVNode("div",{class:e.normalizeClass(e.unref(x).wrapper__bottom)},[t.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(x).wrapper__errorMessage)},e.toDisplayString(t.error),3)):e.createCommentVNode("",!0),t.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(x).wrapper__counter)},e.toDisplayString(((p=t.modelValue)==null?void 0:p.toString().length)||0),3)):e.createCommentVNode("",!0)],2)],2)}}}),E={wrapper__label:"_wrapper__label_3sncs_1",wrapper__errorMessage:"_wrapper__errorMessage_3sncs_1",wrapper__counter:"_wrapper__counter_3sncs_1",wrapper:"_wrapper_3sncs_1",wrapper__field:"_wrapper__field_3sncs_8",wrapper__size_default:"_wrapper__size_default_3sncs_185",wrapper__size_small:"_wrapper__size_small_3sncs_188",wrapper__bottom:"_wrapper__bottom_3sncs_225","wrapper--error":"_wrapper--error_3sncs_238"},ze=["for"],ke=["id","max","maxlength","min","name","placeholder","value"],ye=e.defineComponent({__name:"NumberInput",props:{id:{},name:{},modelValue:{default:void 0},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},error:{default:""},errorStatus:{type:Boolean},counter:{type:Boolean},min:{default:void 0},max:{default:void 0},size:{default:"default"}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(i,{emit:n}){const a=i,o=n,l=r=>{var s,p;if(r==="")return r;const t=Number(r);return typeof a.min=="number"&&t<a.min?(s=a.min)==null?void 0:s.toString():typeof a.max=="number"&&t>a.max?(p=a.max)==null?void 0:p.toString():t.toString()},c=r=>{const t=r.target,s=l(t.value);t.value=s,o("input",r),o("update:modelValue",Number(s))};return(r,t)=>{var s;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(E).wrapper,e.unref(E)[`wrapper__size_${r.size}`]])},[r.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(E).wrapper__label),for:r.id},e.toDisplayString(r.label),11,ze)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:r.id,type:"number",class:e.normalizeClass([e.unref(E).wrapper__field,{[e.unref(E)["wrapper--error"]]:r.error||r.errorStatus}]),max:r.max,maxlength:r.maxLength,min:r.min,name:r.name,placeholder:r.placeholder,value:r.modelValue,onBlur:t[0]||(t[0]=p=>o("blur",p)),onChange:t[1]||(t[1]=p=>r.$emit("change",p)),onFocus:t[2]||(t[2]=p=>o("focus",p)),onInput:c,onPaste:t[3]||(t[3]=p=>o("paste",p))},null,42,ke),r.counter||r.error?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__bottom)},[r.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(E).wrapper__errorMessage)},e.toDisplayString(r.error),3)):e.createCommentVNode("",!0),r.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__counter)},e.toDisplayString(((s=r.modelValue)==null?void 0:s.toString().length)||0),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],2)}}}),D={wrapper:"_wrapper_d1zlt_169",wrapper__label:"_wrapper__label_d1zlt_176",wrapper__input:"_wrapper__input_d1zlt_200",wrapper_checked:"_wrapper_checked_d1zlt_210",wrapper_disabled:"_wrapper_disabled_d1zlt_217"},Ce=["id","checked","disabled","name"],Be=["for"],$e=e.defineComponent({__name:"Toggle",props:{id:{},name:{},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=()=>{o("click",!a.checked)};return(c,r)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass([e.unref(D).wrapper,{[e.unref(D).wrapper_checked]:c.checked,[e.unref(D).wrapper_disabled]:c.disabled}])},[e.createElementVNode("input",{id:c.id,type:"checkbox",checked:c.checked,class:e.normalizeClass(e.unref(D).wrapper__input),disabled:c.disabled,name:c.name,onClick:l},null,10,Ce),e.createElementVNode("label",{class:e.normalizeClass(e.unref(D).wrapper__label),for:c.id},null,10,Be)],2))}});function xe(i=""){return typeof i=="string"?i.replace(/<\/style>/gi,"").replace(/<(.*?) on(.*?)=['"](.*?)>/gi,"").replace(/(<meta |<style|<\/*script)(.*?)>/gi,"").replace(/(<([^>]+)>)/ig,"").replace(/<(.*?) (href|src)="j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi,""):i}const V={wrapper__box:"_wrapper__box_1cst8_1",wrapper:"_wrapper_1cst8_1",wrapper__icon:"_wrapper__icon_1cst8_184","wrapper__box_bottom-start":"_wrapper__box_bottom-start_1cst8_199","wrapper__box_bottom-center":"_wrapper__box_bottom-center_1cst8_205","wrapper__box_bottom-end":"_wrapper__box_bottom-end_1cst8_211","wrapper__box_top-start":"_wrapper__box_top-start_1cst8_217","wrapper__box_top-center":"_wrapper__box_top-center_1cst8_223","wrapper__box_top-end":"_wrapper__box_top-end_1cst8_229","wrapper__box_right-start":"_wrapper__box_right-start_1cst8_235","wrapper__box_right-center":"_wrapper__box_right-center_1cst8_241","wrapper__box_right-end":"_wrapper__box_right-end_1cst8_247","wrapper__box_left-start":"_wrapper__box_left-start_1cst8_252","wrapper__box_left-center":"_wrapper__box_left-center_1cst8_257","wrapper__box_left-end":"_wrapper__box_left-end_1cst8_262",wrapper__text:"_wrapper__text_1cst8_267","wrapper__box-content":"_wrapper__box-content_1cst8_296","bottom-entrance":"_bottom-entrance_1cst8_309","top-entrance":"_top-entrance_1cst8_312","left-entrance":"_left-entrance_1cst8_315","right-entrance":"_right-entrance_1cst8_318","bottom-leave":"_bottom-leave_1cst8_321","top-leave":"_top-leave_1cst8_324","right-leave":"_right-leave_1cst8_327","left-leave":"_left-leave_1cst8_330"},Se=["id"],Ee=["innerHTML"],Ve=e.defineComponent({__name:"Tooltip",props:{id:{},text:{},staticPosition:{default:"top center"},dynamicPosition:{type:Boolean},absolutePositionStatus:{type:Boolean,default:!1},offsetX:{default:4},offsetY:{default:4},maxHeight:{default:320},status:{type:Boolean,default:!0},preventXss:{type:Boolean},iconName:{default:void 0},absoluteTriangleAlignment:{default:"center"},absoluteTrianglePosition:{default:"top"},absolutePosition:{type:[Boolean,null,String,Object,Array]}},setup(i){const n=i,a=e.ref(null),o=e.ref("center"),l=e.ref("bottom"),c=e.ref("center"),r=e.ref(!1),t=e.ref(""),s=e.ref(!1),p=e.ref(!1),d=e.ref(""),y=e.ref("d-n"),B=e.ref(null),C=e.ref(null),T=e.ref(null),h=e.computed(()=>n.staticPosition.split(" ")[0]),N=e.computed(()=>n.staticPosition.split(" ")[1]),j=e.computed(()=>n.iconName?"mt-1":"mt-0"),Y=e.computed(()=>n.preventXss?xe(n.text):n.text),I=e.computed(()=>n.absolutePositionStatus?n.absoluteTrianglePosition:n.dynamicPosition&&r.value?l.value==="bottom"?"top":"bottom":h.value==="top"?"bottom":h.value==="bottom"?"top":h.value==="left"?"right":h.value==="right"?"left":"bottom"),X=e.computed(()=>n.absolutePositionStatus?"":s.value&&p.value||d.value==="icon"&&s.value?"opa-1":"opa-0"),q=e.computed(()=>n.absolutePositionStatus?n.absoluteTriangleAlignment:n.dynamicPosition&&r.value?o.value==="center"?"center":o.value==="end"?"end":o.value==="start"?"start":c.value:N.value==="center"?"center":N.value==="left"||N.value==="top"?"start":N.value==="right"||N.value==="bottom"?"end":"center"),U=e.computed(()=>n.absolutePositionStatus?"":n.dynamicPosition&&r.value?V[`wrapper__box_${l.value}-${o.value}`]:V[`wrapper__box_${h.value}-${q.value}`]),A=e.computed(()=>n.offsetX===0&&n.offsetY===0?{}:n.dynamicPosition?{[`margin-${l.value==="bottom"?"top":"bottom"}`]:`${n.offsetY}px`}:I.value==="top"||I.value==="bottom"?{[`margin-${I.value}`]:`${n.offsetY}px`}:{[`margin-${I.value}`]:`${n.offsetX}px`}),u=(_,f,w=!1)=>{if(!_||!C.value)return{left:!1,right:!1,top:!1,bottom:!1,center:!1};const S={left:0,right:0,top:0,bottom:0,width:0,height:0},Z=C.value.clientHeight,O=window.innerWidth,Le=window.innerHeight,K=_.clientHeight,R=_.clientWidth||264,g=(f==null?void 0:f.getBoundingClientRect())||S,v=w?g==null?void 0:g.right:g==null?void 0:g.left,ee=w?g==null?void 0:g.top:g==null?void 0:g.bottom,Oe=v+g.width+R+n.offsetX<O,We=v+g.width/2-(R+n.offsetX)>10,je=ee+K<Le-n.offsetY,qe=ee-(K+Z+n.offsetY)>0;let te=!1;return n.iconName&&(te=g.right+R/2<O&&g.left-(R+n.offsetX)/2>=10),{left:We,right:Oe,bottom:je,top:qe,center:te}},m=()=>{e.nextTick(()=>{var O;r.value=!0;const{bottom:_,left:f,right:w,top:S,center:Z}=u(T.value,(O=T.value)==null?void 0:O.parentNode);if(Z){o.value="center",l.value=_&&!S?"bottom":"top";return}if(_&&f&&w&&S){o.value="center",l.value="top";return}if(S&&!_){if(w&&f){o.value="center",l.value="top";return}if(w&&!f){o.value="start",l.value="top";return}if(!w&&f){o.value="end",l.value="top";return}}if(_&&S){if(!w&&f){o.value="end",l.value="top",c.value="end";return}if(w&&!f){o.value="start",l.value="top",c.value="start";return}}if(_&&!S){if(w&&f){o.value="center",l.value="bottom",c.value="top";return}if(!w&&f){o.value="end",l.value="bottom",c.value="top";return}w&&!f&&(o.value="start",l.value="bottom",c.value="top")}})},z=_=>{if(!(_ instanceof HTMLElement))return!1;const f=_.scrollHeight>_.clientHeight,w=window.getComputedStyle(_).overflowY,S=["auto","scroll"].includes(w);return f&&S},H=_=>{const f=(_==null?void 0:_.nodeType)===Node.COMMENT_NODE,w=(_==null?void 0:_.nodeType)===Node.DOCUMENT_NODE;return!_||f||w?document:z(_)?_:H(_.parentNode)},L=()=>{var _;(_=B.value)==null||_.removeEventListener("scroll",m),window==null||window.removeEventListener("resize",m)},G=()=>{e.nextTick(()=>{var _;B.value=H(C.value),(_=B.value)==null||_.addEventListener("scroll",m),window==null||window.addEventListener("resize",m)})},Me=()=>{d.value="wrapper",y.value="d-b",s.value=!0},Q=()=>{d.value="icon",y.value="d-b",p.value=!0},Pe=()=>{p.value=!1},Te=()=>{d.value="",s.value=!1,p.value=!1},He=()=>{Te(),n.dynamicPosition?l.value==="bottom"?t.value="bottom-leave":l.value==="top"&&(t.value="top-leave"):h.value==="top"?t.value="top-leave":h.value==="bottom"?t.value="bottom-leave":h.value==="left"?t.value="left-leave":h.value==="right"&&(t.value="right-leave"),setTimeout(()=>{t.value="",y.value="d-n"},n.absolutePositionStatus?0:250)},De=()=>{Me(),m(),n.dynamicPosition?l.value==="bottom"?t.value="top-entrance":l.value==="top"&&(t.value="bottom-entrance"):h.value==="top"?t.value="bottom-entrance":h.value==="bottom"?t.value="top-entrance":h.value==="left"?t.value="right-entrance":h.value==="right"&&(t.value="left-entrance"),setTimeout(()=>{t.value=""},250)};return e.onMounted(()=>{n.dynamicPosition&&G()}),e.onBeforeUnmount(()=>{L()}),(_,f)=>(e.openBlock(),e.createElementBlock("div",{id:_.id,ref_key:"tooltipRootRef",ref:C,class:e.normalizeClass(e.unref(V).wrapper),onMouseenter:De,onMouseleave:He},[_.iconName?(e.openBlock(),e.createBlock(e.unref(P),{key:0,ref_key:"tooltipIconRef",ref:a,class:e.normalizeClass(e.unref(V).wrapper__icon),name:_.iconName,onMouseenter:Q,onMouseleave:Pe},null,8,["class","name"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(V).wrapper__icon),onMouseenter:Q,onMouseleave:Q},[e.renderSlot(_.$slots,"triggerElement")],34)),_.status?(e.openBlock(),e.createElementBlock("div",{key:2,ref_key:"tooltipPopupRef",ref:T,class:e.normalizeClass([e.unref(V).wrapper__box,U.value,X.value,y.value]),style:e.normalizeStyle(_.absolutePosition)},[e.createVNode(e.unref(J),{"border-triangle":"","border-triangle-align":q.value,"border-triangle-position":I.value,class:e.normalizeClass([e.unref(V)["wrapper__box-content"],j.value,t.value]),style:e.normalizeStyle(A.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(V).wrapper__text),style:e.normalizeStyle({maxHeight:`${_.maxHeight}px`,overflowY:"auto"})},[e.createElementVNode("div",{innerHTML:Y.value},null,8,Ee),e.renderSlot(_.$slots,"contentSlot")],6)]),_:3},8,["border-triangle-align","border-triangle-position","class","style"])],6)):e.createCommentVNode("",!0)],42,Se))}}),W={box:"_box_14qkh_169","box_top-start":"_box_top-start_14qkh_173","box_top-center":"_box_top-center_14qkh_173","box_top-end":"_box_top-end_14qkh_173","box_right-start":"_box_right-start_14qkh_173","box_right-center":"_box_right-center_14qkh_173","box_right-end":"_box_right-end_14qkh_173","box_bottom-start":"_box_bottom-start_14qkh_173","box_bottom-center":"_box_bottom-center_14qkh_173","box_bottom-end":"_box_bottom-end_14qkh_173","box_left-start":"_box_left-start_14qkh_173","box_left-center":"_box_left-center_14qkh_173","box_left-end":"_box_left-end_14qkh_173",flipBox:"_flipBox_14qkh_257"},Ne=e.defineComponent({__name:"DefaultBox",props:{border:{},borderRadius:{default:"bor-r-1"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{default:"center"},borderTrianglePosition:{default:"top"}},emits:["click"],setup(i,{emit:n}){const a=i,o=n,l=e.computed(()=>a.borderTriangle?W[`box_${a.borderTrianglePosition}-${a.borderTriangleAlign}`]:"");function c(){o("click")}return(r,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(W).box,l.value,r.border,r.borderRadius]),onClick:c},[e.renderSlot(r.$slots,"default")],2))}}),Ie=e.defineComponent({__name:"FlipBox",props:{boxSpacing:{default:""}},setup(i){return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(W).flipBox,n.boxSpacing])},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass([e.unref(W).box,n.boxSpacing])},[e.renderSlot(n.$slots,"front")],2),e.createElementVNode("div",{class:e.normalizeClass([n.boxSpacing])},[e.renderSlot(n.$slots,"reverse")],2)])],2))}}),J=e.defineComponent({__name:"Box",props:{type:{default:"default"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{},borderTrianglePosition:{},boxSpacing:{default:""}},setup(i){const n={default:Ne,flip:Ie};return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.type]),{"border-triangle":a.borderTriangle,"border-triangle-align":a.borderTriangleAlign,"border-triangle-position":a.borderTrianglePosition,"box-spacing":a.boxSpacing},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default"),e.renderSlot(a.$slots,"front"),e.renderSlot(a.$slots,"reverse")]),_:3},8,["border-triangle","border-triangle-align","border-triangle-position","box-spacing"]))}});return k.Box=J,k.Button=ne,k.DropdownMenu=ce,k.Icon=P,k.NumberInput=ye,k.OnPageMessage=ue,k.SegmentButton=fe,k.TextInput=he,k.Toggle=$e,k.Tooltip=Ve,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}),k}({},Vue);
|
|
2
2
|
//# sourceMappingURL=ab-components.iife.js.map
|