@volverjs/ui-vue 0.0.10-beta.35 → 0.0.10-beta.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -77
- package/bin/icons.cjs +1 -1
- package/bin/icons.js +5 -5
- package/dist/Volver.d.ts +10 -10
- package/dist/components/VvAccordion/VvAccordion.es.js +11 -11
- package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
- package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +17 -17
- package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
- package/dist/components/VvAction/VvAction.es.js +6 -6
- package/dist/components/VvAction/VvAction.umd.js +1 -1
- package/dist/components/VvAlert/VvAlert.es.js +23 -21
- package/dist/components/VvAlert/VvAlert.umd.js +1 -1
- package/dist/components/VvAlert/index.d.ts +2 -2
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +351 -349
- package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
- package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +3 -3
- package/dist/components/VvAlertGroup/index.d.ts +1 -1
- package/dist/components/VvAvatar/VvAvatar.es.js +4 -1
- package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +11 -3
- package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +10 -10
- package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
- package/dist/components/VvButton/VvButton.es.js +31 -25
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvButtonGroup/VvButtonGroup.es.js +1 -1
- package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
- package/dist/components/VvCheckbox/VvCheckbox.es.js +208 -202
- package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
- package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +3 -3
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +21 -15
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +2 -2
- package/dist/components/VvCombobox/VvCombobox.es.js +454 -446
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +5 -5
- package/dist/components/VvCombobox/index.d.ts +5 -10
- package/dist/components/VvDialog/VvDialog.es.js +17 -17
- package/dist/components/VvDialog/VvDialog.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.es.js +29 -25
- package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +16 -12
- package/dist/components/VvDropdownAction/VvDropdownAction.es.js +11 -14
- package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.es.js +1 -1
- package/dist/components/VvIcon/VvIcon.umd.js +1 -1
- package/dist/components/VvInputFile/VvInputFile.es.js +61 -55
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -1
- package/dist/components/VvInputFile/VvInputFile.vue.d.ts +2 -2
- package/dist/components/VvInputFile/index.d.ts +6 -6
- package/dist/components/VvInputText/VvInputText.es.js +287 -286
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +2 -2
- package/dist/components/VvInputText/index.d.ts +7 -2
- package/dist/components/VvNav/VvNav.es.js +23 -20
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNavItem/VvNavItem.es.js +6 -6
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
- package/dist/components/VvRadio/VvRadio.es.js +208 -202
- package/dist/components/VvRadio/VvRadio.umd.js +1 -1
- package/dist/components/VvRadio/VvRadio.vue.d.ts +2 -2
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +21 -15
- package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +2 -2
- package/dist/components/VvSelect/VvSelect.es.js +22 -20
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.vue.d.ts +2 -2
- package/dist/components/VvTab/VvTab.es.js +29 -23
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.es.js +29 -27
- package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.vue.d.ts +2 -2
- package/dist/components/VvTooltip/VvTooltip.es.js +4 -1
- package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
- package/dist/components/common/HintSlot.d.ts +3 -4
- package/dist/components/index.es.js +905 -888
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/alert/useAlert.d.ts +2 -2
- package/dist/composables/index.es.js +10 -10
- package/dist/composables/index.umd.js +1 -1
- package/dist/composables/useBlurhash.d.ts +1 -1
- package/dist/composables/usePersistence.d.ts +2 -1
- package/dist/composables/useUniqueId.d.ts +1 -1
- package/dist/directives/index.es.js +5 -2
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-contextmenu.es.js +1 -1
- package/dist/directives/v-contextmenu.umd.js +1 -1
- package/dist/directives/v-tooltip.es.js +4 -1
- package/dist/directives/v-tooltip.umd.js +1 -1
- package/dist/icons.es.js +3 -3
- package/dist/icons.umd.js +1 -1
- package/dist/index.es.js +2 -2
- package/dist/stories/Alert/AlertModifiers.stories.d.ts +1 -1
- package/dist/stories/Alert/AlertSlots.stories.d.ts +1 -1
- package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +1 -1
- package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +1 -1
- package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
- package/dist/stories/Badge/Badge.test.d.ts +1 -1
- package/dist/stories/Combobox/Combobox.settings.d.ts +1 -1
- package/dist/test/options.d.ts +1 -1
- package/dist/test/sleep.d.ts +1 -1
- package/dist/types/alert.d.ts +1 -1
- package/dist/utils/ObjectUtilities.d.ts +7 -7
- package/package.json +232 -239
- package/src/Volver.ts +243 -243
- package/src/assets/icons/detailed.json +1 -1
- package/src/assets/icons/normal.json +1 -1
- package/src/assets/icons/simple.json +1 -1
- package/src/components/VvAccordion/VvAccordion.vue +155 -155
- package/src/components/VvAccordion/index.ts +62 -62
- package/src/components/VvAccordionGroup/VvAccordionGroup.vue +220 -219
- package/src/components/VvAccordionGroup/index.ts +41 -41
- package/src/components/VvAction/VvAction.vue +144 -142
- package/src/components/VvAlert/VvAlert.vue +72 -70
- package/src/components/VvAlert/index.ts +147 -150
- package/src/components/VvAlertGroup/VvAlertGroup.vue +56 -55
- package/src/components/VvAlertGroup/index.ts +99 -103
- package/src/components/VvAvatar/VvAvatar.vue +20 -14
- package/src/components/VvAvatar/index.ts +5 -5
- package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
- package/src/components/VvAvatarGroup/index.ts +21 -21
- package/src/components/VvBadge/VvBadge.vue +15 -14
- package/src/components/VvBadge/index.ts +2 -2
- package/src/components/VvBreadcrumb/VvBreadcrumb.vue +49 -48
- package/src/components/VvBreadcrumb/index.ts +2 -2
- package/src/components/VvButton/VvButton.vue +163 -162
- package/src/components/VvButton/index.ts +102 -102
- package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -72
- package/src/components/VvButtonGroup/index.ts +22 -22
- package/src/components/VvCard/VvCard.vue +30 -30
- package/src/components/VvCard/index.ts +2 -2
- package/src/components/VvCheckbox/VvCheckbox.vue +185 -180
- package/src/components/VvCheckbox/index.ts +44 -44
- package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -86
- package/src/components/VvCombobox/VvCombobox.vue +633 -623
- package/src/components/VvCombobox/index.ts +166 -166
- package/src/components/VvDialog/VvDialog.vue +131 -129
- package/src/components/VvDialog/index.ts +35 -35
- package/src/components/VvDropdown/VvDropdown.vue +464 -452
- package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
- package/src/components/VvDropdown/VvDropdownItem.vue +29 -28
- package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
- package/src/components/VvDropdown/VvDropdownOption.vue +47 -47
- package/src/components/VvDropdown/index.ts +53 -53
- package/src/components/VvIcon/README.md +1 -1
- package/src/components/VvIcon/VvIcon.vue +133 -133
- package/src/components/VvIcon/index.ts +77 -77
- package/src/components/VvInputFile/VvInputFile.vue +367 -363
- package/src/components/VvInputFile/index.ts +125 -125
- package/src/components/VvInputText/VvInputClearAction.ts +50 -50
- package/src/components/VvInputText/VvInputPasswordAction.ts +65 -65
- package/src/components/VvInputText/VvInputStepAction.ts +43 -43
- package/src/components/VvInputText/VvInputText.vue +636 -637
- package/src/components/VvInputText/VvInputTextActions.ts +86 -86
- package/src/components/VvInputText/index.ts +198 -198
- package/src/components/VvNav/VvNav.vue +40 -33
- package/src/components/VvNav/VvNavItem.vue +12 -12
- package/src/components/VvNav/VvNavSeparator.vue +6 -6
- package/src/components/VvNav/index.ts +2 -2
- package/src/components/VvProgress/VvProgress.vue +27 -26
- package/src/components/VvProgress/index.ts +28 -28
- package/src/components/VvRadio/VvRadio.vue +115 -112
- package/src/components/VvRadio/index.ts +27 -27
- package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -89
- package/src/components/VvSelect/VvSelect.vue +241 -238
- package/src/components/VvSelect/index.ts +62 -62
- package/src/components/VvTab/VvTab.vue +79 -73
- package/src/components/VvTab/index.ts +12 -12
- package/src/components/VvTextarea/VvTextarea.vue +218 -216
- package/src/components/VvTextarea/index.ts +35 -35
- package/src/components/VvTooltip/VvTooltip.vue +22 -16
- package/src/components/VvTooltip/index.ts +12 -12
- package/src/components/common/HintSlot.ts +149 -150
- package/src/composables/alert/useAlert.ts +74 -74
- package/src/composables/alert/useInjectAlert.ts +1 -1
- package/src/composables/alert/useProvideAlert.ts +10 -10
- package/src/composables/dropdown/useInjectDropdown.ts +6 -6
- package/src/composables/dropdown/useProvideDropdown.ts +62 -62
- package/src/composables/group/useInjectedGroupState.ts +41 -41
- package/src/composables/group/useProvideGroupState.ts +1 -2
- package/src/composables/useBlurhash.ts +52 -60
- package/src/composables/useComponentFocus.ts +9 -9
- package/src/composables/useComponentIcon.ts +35 -35
- package/src/composables/useDebouncedInput.ts +25 -25
- package/src/composables/useDefaults.ts +77 -76
- package/src/composables/useModifiers.ts +29 -29
- package/src/composables/useOptions.ts +45 -43
- package/src/composables/usePersistence.ts +70 -72
- package/src/composables/useTextCount.ts +44 -44
- package/src/composables/useUniqueId.ts +3 -2
- package/src/composables/useVolver.ts +1 -1
- package/src/constants.ts +70 -70
- package/src/directives/v-contextmenu.ts +34 -34
- package/src/directives/v-tooltip.ts +17 -17
- package/src/index.ts +3 -3
- package/src/props/index.ts +453 -453
- package/src/resolvers/unplugin.ts +138 -138
- package/src/shims.d.ts +4 -5
- package/src/stories/Accordion/Accordion.settings.ts +49 -49
- package/src/stories/Accordion/Accordion.stories.ts +21 -21
- package/src/stories/Accordion/Accordion.test.ts +56 -54
- package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
- package/src/stories/AccordionGroup/AccordionGroup.settings.ts +69 -67
- package/src/stories/AccordionGroup/AccordionGroup.stories.ts +37 -37
- package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -47
- package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +34 -34
- package/src/stories/Alert/Alert.settings.ts +115 -115
- package/src/stories/Alert/Alert.stories.ts +30 -30
- package/src/stories/Alert/Alert.test.ts +78 -78
- package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
- package/src/stories/Alert/AlertSlots.stories.ts +35 -35
- package/src/stories/AlertGroup/AlertGroup.settings.ts +104 -104
- package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
- package/src/stories/AlertGroup/AlertGroup.test.ts +67 -67
- package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
- package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
- package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +57 -57
- package/src/stories/Avatar/Avatar.settings.ts +29 -29
- package/src/stories/Avatar/Avatar.stories.ts +23 -23
- package/src/stories/Avatar/Avatar.test.ts +22 -22
- package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
- package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
- package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
- package/src/stories/AvatarGroup/AvatarGroup.settings.ts +53 -53
- package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
- package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -24
- package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
- package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
- package/src/stories/Badge/Badge.settings.ts +20 -20
- package/src/stories/Badge/Badge.stories.ts +23 -23
- package/src/stories/Badge/Badge.test.ts +8 -8
- package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
- package/src/stories/Blurhash/BlurhashComposable.stories.ts +77 -76
- package/src/stories/Breadcrumb/Breadcrumb.settings.ts +34 -34
- package/src/stories/Breadcrumb/Breadcrumb.stories.ts +22 -22
- package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
- package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
- package/src/stories/Button/Button.settings.ts +144 -144
- package/src/stories/Button/Button.stories.ts +18 -18
- package/src/stories/Button/Button.test.ts +41 -40
- package/src/stories/Button/ButtonIcon.stories.ts +42 -42
- package/src/stories/Button/ButtonLink.stories.ts +24 -24
- package/src/stories/Button/ButtonLoading.stories.ts +22 -22
- package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
- package/src/stories/Button/ButtonSlots.stories.ts +47 -47
- package/src/stories/Button/ButtonState.stories.ts +23 -23
- package/src/stories/Button/ButtonToggle.stories.ts +30 -30
- package/src/stories/ButtonGroup/ButtonGroup.settings.ts +32 -32
- package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
- package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -22
- package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
- package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
- package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
- package/src/stories/Card/Card.settings.ts +48 -48
- package/src/stories/Card/Card.stories.ts +22 -22
- package/src/stories/Card/Card.test.ts +14 -14
- package/src/stories/Card/CardSlots.stories.ts +42 -42
- package/src/stories/Checkbox/Checkbox.settings.ts +35 -35
- package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
- package/src/stories/Checkbox/Checkbox.test.ts +63 -62
- package/src/stories/Checkbox/CheckboxBinary.stories.ts +17 -17
- package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
- package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
- package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
- package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -63
- package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
- package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
- package/src/stories/Combobox/Combobox.settings.ts +390 -390
- package/src/stories/Combobox/Combobox.stories.ts +107 -107
- package/src/stories/Combobox/Combobox.test.ts +89 -87
- package/src/stories/Combobox/ComboboxIconPosition.stories.ts +24 -24
- package/src/stories/Combobox/ComboboxMultiple.stories.ts +22 -22
- package/src/stories/Combobox/ComboboxOptions.stories.ts +84 -84
- package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -55
- package/src/stories/Dialog/Dialog.settings.ts +39 -39
- package/src/stories/Dialog/Dialog.stories.ts +28 -28
- package/src/stories/Dialog/Dialog.test.ts +49 -49
- package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
- package/src/stories/Dropdown/Dropdown.settings.ts +62 -62
- package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
- package/src/stories/Dropdown/Dropdown.test.ts +9 -9
- package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
- package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
- package/src/stories/Dropdown/DropdownSlots.stories.ts +49 -49
- package/src/stories/Icon/Icon.settings.ts +64 -64
- package/src/stories/Icon/Icon.stories.ts +28 -28
- package/src/stories/Icon/IconsCollection.stories.ts +22 -22
- package/src/stories/InputFile/InputFile.settings.ts +29 -29
- package/src/stories/InputFile/InputFile.stories.ts +54 -54
- package/src/stories/InputFile/InputFileDropArea.stories.ts +34 -34
- package/src/stories/InputFile/InputFileIconPosition.stories.ts +24 -24
- package/src/stories/InputFile/InputFileSlots.stories.ts +17 -17
- package/src/stories/InputText/InputText.settings.ts +245 -246
- package/src/stories/InputText/InputText.stories.ts +67 -67
- package/src/stories/InputText/InputText.test.ts +118 -117
- package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
- package/src/stories/InputText/InputTextLength.stories.ts +33 -33
- package/src/stories/InputText/InputTextMask.stories.ts +91 -91
- package/src/stories/InputText/InputTextMinMax.stories.ts +29 -29
- package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
- package/src/stories/InputText/InputTextType.stories.ts +70 -70
- package/src/stories/Nav/Nav.settings.ts +25 -25
- package/src/stories/Nav/Nav.stories.ts +17 -17
- package/src/stories/Nav/Nav.test.ts +10 -10
- package/src/stories/Nav/NavModifiers.stories.ts +25 -25
- package/src/stories/Progress/Progress.settings.ts +23 -23
- package/src/stories/Progress/Progress.stories.ts +23 -23
- package/src/stories/Progress/Progress.test.ts +4 -4
- package/src/stories/Radio/Radio.settings.ts +9 -9
- package/src/stories/Radio/Radio.stories.ts +47 -47
- package/src/stories/Radio/Radio.test.ts +54 -53
- package/src/stories/Radio/RadioSlots.stories.ts +15 -15
- package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
- package/src/stories/RadioGroup/RadioGroup.stories.ts +50 -50
- package/src/stories/RadioGroup/RadioGroup.test.ts +63 -63
- package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +34 -34
- package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
- package/src/stories/Select/Select.settings.ts +70 -70
- package/src/stories/Select/Select.stories.ts +66 -66
- package/src/stories/Select/Select.test.ts +65 -64
- package/src/stories/Select/SelectIconPosition.stories.ts +24 -24
- package/src/stories/Select/SelectOptions.stories.ts +54 -54
- package/src/stories/Select/SelectSlots.stories.ts +20 -20
- package/src/stories/Tab/Tab.settings.ts +32 -32
- package/src/stories/Tab/Tab.stories.ts +17 -17
- package/src/stories/Tab/Tab.test.ts +17 -17
- package/src/stories/Textarea/Textarea.settings.ts +78 -79
- package/src/stories/Textarea/Textarea.stories.ts +63 -63
- package/src/stories/Textarea/Textarea.test.ts +70 -69
- package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
- package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
- package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
- package/src/stories/Tooltip/Tooltip.settings.ts +16 -16
- package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
- package/src/stories/Tooltip/Tooltip.test.ts +53 -52
- package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
- package/src/stories/argTypes.ts +484 -485
- package/src/test/expect.ts +71 -74
- package/src/test/options.ts +17 -16
- package/src/test/sleep.ts +3 -2
- package/src/test/types.d.ts +11 -11
- package/src/types/alert.ts +18 -18
- package/src/types/blurhash.ts +18 -18
- package/src/types/generic.ts +1 -2
- package/src/types/group.ts +21 -21
- package/src/types/input-file.ts +17 -17
- package/src/types/nav.ts +13 -13
- package/src/utils/ObjectUtilities.ts +192 -177
|
@@ -5,6 +5,10 @@ import { uid } from "uid";
|
|
|
5
5
|
import { useMutationObserver, useVModel, onClickOutside, useFocusWithin, useElementHover, onKeyStroke, useFocus, useElementVisibility, refDebounced, computedAsync } from "@vueuse/core";
|
|
6
6
|
import mitt from "mitt";
|
|
7
7
|
import { get } from "ts-dot-prop";
|
|
8
|
+
const VvIconPropsDefaults = {
|
|
9
|
+
prefix: "normal"
|
|
10
|
+
/* normal */
|
|
11
|
+
};
|
|
8
12
|
var StorageType = /* @__PURE__ */ ((StorageType2) => {
|
|
9
13
|
StorageType2["local"] = "local";
|
|
10
14
|
StorageType2["session"] = "session";
|
|
@@ -80,6 +84,145 @@ const INJECTION_KEY_DROPDOWN_ITEM = Symbol.for(
|
|
|
80
84
|
const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
|
|
81
85
|
"dropdownAction"
|
|
82
86
|
);
|
|
87
|
+
function useVolver() {
|
|
88
|
+
return inject(INJECTION_KEY_VOLVER);
|
|
89
|
+
}
|
|
90
|
+
function useModifiers(prefix, modifiers, others) {
|
|
91
|
+
return computed(() => {
|
|
92
|
+
const toReturn = {
|
|
93
|
+
[prefix]: true
|
|
94
|
+
};
|
|
95
|
+
const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
|
|
96
|
+
if (modifiersArray) {
|
|
97
|
+
if (Array.isArray(modifiersArray)) {
|
|
98
|
+
modifiersArray.forEach((modifier) => {
|
|
99
|
+
if (modifier) {
|
|
100
|
+
toReturn[`${prefix}--${modifier}`] = true;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (others) {
|
|
106
|
+
Object.keys(others.value).forEach((key) => {
|
|
107
|
+
toReturn[`${prefix}--${key}`] = unref(others.value[key]);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return toReturn;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const __default__$9 = {
|
|
114
|
+
name: "VvIcon"
|
|
115
|
+
};
|
|
116
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
117
|
+
...__default__$9,
|
|
118
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
119
|
+
name: {},
|
|
120
|
+
color: {},
|
|
121
|
+
width: {},
|
|
122
|
+
height: {},
|
|
123
|
+
provider: {},
|
|
124
|
+
prefix: {},
|
|
125
|
+
src: {},
|
|
126
|
+
horizontalFlip: { type: Boolean },
|
|
127
|
+
verticalFlip: { type: Boolean },
|
|
128
|
+
flip: {},
|
|
129
|
+
mode: {},
|
|
130
|
+
inline: { type: Boolean },
|
|
131
|
+
rotate: {},
|
|
132
|
+
onLoad: { type: Function },
|
|
133
|
+
svg: {},
|
|
134
|
+
modifiers: {}
|
|
135
|
+
}, VvIconPropsDefaults),
|
|
136
|
+
setup(__props) {
|
|
137
|
+
const props = __props;
|
|
138
|
+
const hasRotate = computed(() => {
|
|
139
|
+
if (typeof props.rotate === "string") {
|
|
140
|
+
return Number.parseFloat(props.rotate);
|
|
141
|
+
}
|
|
142
|
+
return props.rotate;
|
|
143
|
+
});
|
|
144
|
+
const show = ref(true);
|
|
145
|
+
const volver = useVolver();
|
|
146
|
+
const { modifiers } = toRefs(props);
|
|
147
|
+
const bemCssClasses = useModifiers("vv-icon", modifiers);
|
|
148
|
+
const provider = computed(() => {
|
|
149
|
+
return props.provider || (volver == null ? void 0 : volver.iconsProvider);
|
|
150
|
+
});
|
|
151
|
+
const icon = computed(() => {
|
|
152
|
+
const name = props.name ?? "";
|
|
153
|
+
const iconName = `@${provider.value}:${props.prefix}:${name}`;
|
|
154
|
+
if (iconExists(iconName)) {
|
|
155
|
+
return iconName;
|
|
156
|
+
}
|
|
157
|
+
const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
|
|
158
|
+
(iconsCollection2) => {
|
|
159
|
+
const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
|
|
160
|
+
return iconExists(icon2);
|
|
161
|
+
}
|
|
162
|
+
);
|
|
163
|
+
if (iconsCollection) {
|
|
164
|
+
return `@${provider.value}:${iconsCollection.prefix}:${name}`;
|
|
165
|
+
}
|
|
166
|
+
return name;
|
|
167
|
+
});
|
|
168
|
+
function getSvgContent(svg) {
|
|
169
|
+
let dom;
|
|
170
|
+
if (typeof window === "undefined") {
|
|
171
|
+
const { JSDOM } = require("jsdom");
|
|
172
|
+
dom = new JSDOM().window;
|
|
173
|
+
}
|
|
174
|
+
const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
|
|
175
|
+
const svgDomString = domParser.parseFromString(svg, "text/html");
|
|
176
|
+
const svgEl = svgDomString.querySelector("svg");
|
|
177
|
+
return svgEl;
|
|
178
|
+
}
|
|
179
|
+
function addIconFromSvg(svg) {
|
|
180
|
+
const svgContentEl = getSvgContent(svg);
|
|
181
|
+
const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
|
|
182
|
+
if (svgContentEl && svgContent) {
|
|
183
|
+
addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
|
|
184
|
+
body: svgContent,
|
|
185
|
+
// Set height and width from svg content
|
|
186
|
+
height: svgContentEl.viewBox.baseVal.height,
|
|
187
|
+
width: svgContentEl.viewBox.baseVal.width
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (volver) {
|
|
192
|
+
if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
|
|
193
|
+
show.value = false;
|
|
194
|
+
volver.fetchIcon(props.src).then((svg) => {
|
|
195
|
+
if (svg) {
|
|
196
|
+
addIconFromSvg(svg);
|
|
197
|
+
show.value = true;
|
|
198
|
+
}
|
|
199
|
+
}).catch((e) => {
|
|
200
|
+
throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (props.svg) {
|
|
205
|
+
addIconFromSvg(props.svg);
|
|
206
|
+
}
|
|
207
|
+
return (_ctx, _cache) => {
|
|
208
|
+
return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
|
|
209
|
+
key: 0,
|
|
210
|
+
class: unref(bemCssClasses)
|
|
211
|
+
}, {
|
|
212
|
+
inline: _ctx.inline,
|
|
213
|
+
width: _ctx.width,
|
|
214
|
+
height: _ctx.height,
|
|
215
|
+
horizontalFlip: _ctx.horizontalFlip,
|
|
216
|
+
verticalFlip: _ctx.verticalFlip,
|
|
217
|
+
flip: _ctx.flip,
|
|
218
|
+
rotate: unref(hasRotate),
|
|
219
|
+
color: _ctx.color,
|
|
220
|
+
onLoad: _ctx.onLoad,
|
|
221
|
+
icon: unref(icon)
|
|
222
|
+
}), null, 16, ["class"])) : createCommentVNode("v-if", true);
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
});
|
|
83
226
|
const LinkProps = {
|
|
84
227
|
/**
|
|
85
228
|
* The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
|
|
@@ -383,362 +526,66 @@ const DropdownProps = {
|
|
|
383
526
|
const IdNameProps = {
|
|
384
527
|
...IdProps,
|
|
385
528
|
/**
|
|
386
|
-
* Input / Textarea name
|
|
387
|
-
* Name of the form control. Submitted with the form as part of a name/value pair
|
|
388
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
|
|
389
|
-
*/
|
|
390
|
-
name: { type: String, required: true }
|
|
391
|
-
};
|
|
392
|
-
const AutofocusProps = {
|
|
393
|
-
/**
|
|
394
|
-
* Global attribute autofocus
|
|
395
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
|
|
396
|
-
*/
|
|
397
|
-
autofocus: {
|
|
398
|
-
type: Boolean,
|
|
399
|
-
default: false
|
|
400
|
-
}
|
|
401
|
-
};
|
|
402
|
-
const AutocompleteProps = {
|
|
403
|
-
/**
|
|
404
|
-
* Global attribute autocomplete
|
|
405
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
|
|
406
|
-
*/
|
|
407
|
-
autocomplete: { type: String, default: "off" }
|
|
408
|
-
};
|
|
409
|
-
const ActionProps = {
|
|
410
|
-
...DisabledProps,
|
|
411
|
-
...LabelProps,
|
|
412
|
-
...PressedProps,
|
|
413
|
-
...ActiveProps,
|
|
414
|
-
...CurrentProps,
|
|
415
|
-
...LinkProps,
|
|
416
|
-
/**
|
|
417
|
-
* Button type
|
|
418
|
-
*/
|
|
419
|
-
type: {
|
|
420
|
-
type: String,
|
|
421
|
-
default: ButtonType.button,
|
|
422
|
-
validator: (value) => Object.values(ButtonType).includes(value)
|
|
423
|
-
},
|
|
424
|
-
/**
|
|
425
|
-
* Button aria-label
|
|
426
|
-
*/
|
|
427
|
-
ariaLabel: {
|
|
428
|
-
type: String,
|
|
429
|
-
default: void 0
|
|
430
|
-
},
|
|
431
|
-
/**
|
|
432
|
-
* Default tag for the action
|
|
433
|
-
*/
|
|
434
|
-
defaultTag: {
|
|
435
|
-
type: String,
|
|
436
|
-
default: ActionTag.button
|
|
437
|
-
}
|
|
438
|
-
};
|
|
439
|
-
({
|
|
440
|
-
storageType: {
|
|
441
|
-
type: String,
|
|
442
|
-
default: StorageType.local,
|
|
443
|
-
validator: (value) => Object.values(StorageType).includes(value)
|
|
444
|
-
},
|
|
445
|
-
storageKey: String
|
|
446
|
-
});
|
|
447
|
-
const VvComboboxEvents = [
|
|
448
|
-
"update:modelValue",
|
|
449
|
-
"update:search",
|
|
450
|
-
/**
|
|
451
|
-
* @deprecated change:search should not be used, use update:search instead
|
|
452
|
-
*/
|
|
453
|
-
"change:search",
|
|
454
|
-
"focus",
|
|
455
|
-
"blur"
|
|
456
|
-
];
|
|
457
|
-
const VvComboboxProps = {
|
|
458
|
-
...IdNameProps,
|
|
459
|
-
...TabindexProps,
|
|
460
|
-
...ValidProps,
|
|
461
|
-
...InvalidProps,
|
|
462
|
-
...HintProps,
|
|
463
|
-
...LoadingProps,
|
|
464
|
-
...DisabledProps,
|
|
465
|
-
...ReadonlyProps,
|
|
466
|
-
...ModifiersProps,
|
|
467
|
-
...OptionsProps,
|
|
468
|
-
...IconProps,
|
|
469
|
-
...FloatingLabelProps,
|
|
470
|
-
...UnselectableProps,
|
|
471
|
-
...DropdownProps,
|
|
472
|
-
...LabelProps,
|
|
473
|
-
/**
|
|
474
|
-
* Dropdown show / hide transition name
|
|
475
|
-
*/
|
|
476
|
-
transitionName: {
|
|
477
|
-
type: String,
|
|
478
|
-
default: "vv-dropdown--mobile-fade-block"
|
|
479
|
-
},
|
|
480
|
-
/**
|
|
481
|
-
* modelValue can be a string, number, boolean, object or array of string, number, boolean, object
|
|
482
|
-
*/
|
|
483
|
-
modelValue: {
|
|
484
|
-
type: [String, Number, Boolean, Object, Array],
|
|
485
|
-
default: void 0
|
|
486
|
-
},
|
|
487
|
-
/**
|
|
488
|
-
* Label for no search results
|
|
489
|
-
*/
|
|
490
|
-
noResultsLabel: { type: String, default: "No results" },
|
|
491
|
-
/**
|
|
492
|
-
* Label for no options available
|
|
493
|
-
*/
|
|
494
|
-
noOptionsLabel: { type: String, default: "No options available" },
|
|
495
|
-
/**
|
|
496
|
-
* Label for selected option hint
|
|
497
|
-
*/
|
|
498
|
-
selectedHintLabel: { type: String, default: "Selected" },
|
|
499
|
-
/**
|
|
500
|
-
* Label for deselect action button
|
|
501
|
-
*/
|
|
502
|
-
deselectActionLabel: { type: String, default: "Deselect" },
|
|
503
|
-
/**
|
|
504
|
-
* Label for select option hint
|
|
505
|
-
*/
|
|
506
|
-
selectHintLabel: { type: String, default: "Press enter to select" },
|
|
507
|
-
/**
|
|
508
|
-
* Label for deselected option hint
|
|
509
|
-
*/
|
|
510
|
-
deselectHintLabel: { type: String, default: "Press enter to remove" },
|
|
511
|
-
/**
|
|
512
|
-
* Label close button
|
|
513
|
-
*/
|
|
514
|
-
closeLabel: { type: String, default: "Close" },
|
|
515
|
-
/**
|
|
516
|
-
* Select input placeholder
|
|
517
|
-
*/
|
|
518
|
-
placeholder: String,
|
|
519
|
-
/**
|
|
520
|
-
* Use input text to search on options
|
|
521
|
-
*/
|
|
522
|
-
searchable: Boolean,
|
|
523
|
-
/**
|
|
524
|
-
* Search function to filter options
|
|
525
|
-
*/
|
|
526
|
-
searchFunction: {
|
|
527
|
-
type: Function,
|
|
528
|
-
default: void 0
|
|
529
|
-
},
|
|
530
|
-
/**
|
|
531
|
-
* On searchable select is the input search placeholder
|
|
532
|
-
*/
|
|
533
|
-
searchPlaceholder: {
|
|
534
|
-
type: String,
|
|
535
|
-
default: "Search..."
|
|
536
|
-
},
|
|
537
|
-
/**
|
|
538
|
-
* The input search debounce time in ms
|
|
539
|
-
*/
|
|
540
|
-
debounceSearch: {
|
|
541
|
-
type: [Number, String],
|
|
542
|
-
default: 0
|
|
543
|
-
},
|
|
544
|
-
/**
|
|
545
|
-
* Manage modelValue as string[] or object[]
|
|
546
|
-
*/
|
|
547
|
-
multiple: Boolean,
|
|
548
|
-
/**
|
|
549
|
-
* The max number of selected values
|
|
550
|
-
*/
|
|
551
|
-
maxValues: [Number, String],
|
|
552
|
-
/**
|
|
553
|
-
* The select label separator visible to the user
|
|
554
|
-
*/
|
|
555
|
-
separator: { type: String, default: ", " },
|
|
556
|
-
/**
|
|
557
|
-
* Show native select
|
|
558
|
-
*/
|
|
559
|
-
native: Boolean,
|
|
560
|
-
/**
|
|
561
|
-
* Show badges
|
|
562
|
-
*/
|
|
563
|
-
badges: Boolean,
|
|
564
|
-
/**
|
|
565
|
-
* Badge modifiers
|
|
566
|
-
*/
|
|
567
|
-
badgeModifiers: {
|
|
568
|
-
type: [String, Array],
|
|
569
|
-
default: "action sm"
|
|
570
|
-
},
|
|
571
|
-
/**
|
|
572
|
-
* Set dropdown width to the same as the trigger
|
|
573
|
-
*/
|
|
574
|
-
triggerWidth: {
|
|
575
|
-
...DropdownProps.triggerWidth,
|
|
576
|
-
default: true
|
|
577
|
-
},
|
|
578
|
-
/**
|
|
579
|
-
* Dropdown modifiers
|
|
580
|
-
*/
|
|
581
|
-
dropdownModifiers: {
|
|
582
|
-
type: [String, Array],
|
|
583
|
-
default: "mobile"
|
|
584
|
-
},
|
|
585
|
-
/**
|
|
586
|
-
* Open dropdown on focus
|
|
587
|
-
*/
|
|
588
|
-
autoOpen: {
|
|
589
|
-
type: Boolean,
|
|
590
|
-
default: false
|
|
591
|
-
},
|
|
592
|
-
/**
|
|
593
|
-
* Keep open dropdown on single select
|
|
594
|
-
*/
|
|
595
|
-
keepOpen: {
|
|
596
|
-
type: Boolean,
|
|
597
|
-
default: false
|
|
598
|
-
}
|
|
599
|
-
};
|
|
600
|
-
const VvIconPropsDefaults = {
|
|
601
|
-
prefix: "normal"
|
|
602
|
-
/* normal */
|
|
603
|
-
};
|
|
604
|
-
function useVolver() {
|
|
605
|
-
return inject(INJECTION_KEY_VOLVER);
|
|
606
|
-
}
|
|
607
|
-
function useModifiers(prefix, modifiers, others) {
|
|
608
|
-
return computed(() => {
|
|
609
|
-
const toReturn = {
|
|
610
|
-
[prefix]: true
|
|
611
|
-
};
|
|
612
|
-
const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
|
|
613
|
-
if (modifiersArray) {
|
|
614
|
-
if (Array.isArray(modifiersArray)) {
|
|
615
|
-
modifiersArray.forEach((modifier) => {
|
|
616
|
-
if (modifier) {
|
|
617
|
-
toReturn[`${prefix}--${modifier}`] = true;
|
|
618
|
-
}
|
|
619
|
-
});
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
if (others) {
|
|
623
|
-
Object.keys(others.value).forEach((key) => {
|
|
624
|
-
toReturn[`${prefix}--${key}`] = unref(others.value[key]);
|
|
625
|
-
});
|
|
626
|
-
}
|
|
627
|
-
return toReturn;
|
|
628
|
-
});
|
|
629
|
-
}
|
|
630
|
-
const __default__$9 = {
|
|
631
|
-
name: "VvIcon"
|
|
632
|
-
};
|
|
633
|
-
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
634
|
-
...__default__$9,
|
|
635
|
-
props: /* @__PURE__ */ mergeDefaults({
|
|
636
|
-
name: {},
|
|
637
|
-
color: {},
|
|
638
|
-
width: {},
|
|
639
|
-
height: {},
|
|
640
|
-
provider: {},
|
|
641
|
-
prefix: {},
|
|
642
|
-
src: {},
|
|
643
|
-
horizontalFlip: { type: Boolean },
|
|
644
|
-
verticalFlip: { type: Boolean },
|
|
645
|
-
flip: {},
|
|
646
|
-
mode: {},
|
|
647
|
-
inline: { type: Boolean },
|
|
648
|
-
rotate: {},
|
|
649
|
-
onLoad: { type: Function },
|
|
650
|
-
svg: {},
|
|
651
|
-
modifiers: {}
|
|
652
|
-
}, VvIconPropsDefaults),
|
|
653
|
-
setup(__props) {
|
|
654
|
-
const props = __props;
|
|
655
|
-
const hasRotate = computed(() => {
|
|
656
|
-
if (typeof props.rotate === "string") {
|
|
657
|
-
return parseFloat(props.rotate);
|
|
658
|
-
}
|
|
659
|
-
return props.rotate;
|
|
660
|
-
});
|
|
661
|
-
const show = ref(true);
|
|
662
|
-
const volver = useVolver();
|
|
663
|
-
const { modifiers } = toRefs(props);
|
|
664
|
-
const bemCssClasses = useModifiers("vv-icon", modifiers);
|
|
665
|
-
const provider = computed(() => {
|
|
666
|
-
return props.provider || (volver == null ? void 0 : volver.iconsProvider);
|
|
667
|
-
});
|
|
668
|
-
const icon = computed(() => {
|
|
669
|
-
const name = props.name ?? "";
|
|
670
|
-
const iconName = `@${provider.value}:${props.prefix}:${name}`;
|
|
671
|
-
if (iconExists(iconName)) {
|
|
672
|
-
return iconName;
|
|
673
|
-
}
|
|
674
|
-
const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
|
|
675
|
-
(iconsCollection2) => {
|
|
676
|
-
const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
|
|
677
|
-
return iconExists(icon2);
|
|
678
|
-
}
|
|
679
|
-
);
|
|
680
|
-
if (iconsCollection) {
|
|
681
|
-
return `@${provider.value}:${iconsCollection.prefix}:${name}`;
|
|
682
|
-
}
|
|
683
|
-
return name;
|
|
684
|
-
});
|
|
685
|
-
function getSvgContent(svg) {
|
|
686
|
-
let dom;
|
|
687
|
-
if (typeof window === "undefined") {
|
|
688
|
-
const { JSDOM } = require("jsdom");
|
|
689
|
-
dom = new JSDOM().window;
|
|
690
|
-
}
|
|
691
|
-
const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
|
|
692
|
-
const svgDomString = domParser.parseFromString(svg, "text/html");
|
|
693
|
-
const svgEl = svgDomString.querySelector("svg");
|
|
694
|
-
return svgEl;
|
|
695
|
-
}
|
|
696
|
-
function addIconFromSvg(svg) {
|
|
697
|
-
const svgContentEl = getSvgContent(svg);
|
|
698
|
-
const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
|
|
699
|
-
if (svgContentEl && svgContent) {
|
|
700
|
-
addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
|
|
701
|
-
body: svgContent,
|
|
702
|
-
// Set height and width from svg content
|
|
703
|
-
height: svgContentEl.viewBox.baseVal.height,
|
|
704
|
-
width: svgContentEl.viewBox.baseVal.width
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
if (volver) {
|
|
709
|
-
if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
|
|
710
|
-
show.value = false;
|
|
711
|
-
volver.fetchIcon(props.src).then((svg) => {
|
|
712
|
-
if (svg) {
|
|
713
|
-
addIconFromSvg(svg);
|
|
714
|
-
show.value = true;
|
|
715
|
-
}
|
|
716
|
-
}).catch((e) => {
|
|
717
|
-
throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
|
|
718
|
-
});
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
if (props.svg) {
|
|
722
|
-
addIconFromSvg(props.svg);
|
|
723
|
-
}
|
|
724
|
-
return (_ctx, _cache) => {
|
|
725
|
-
return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
|
|
726
|
-
key: 0,
|
|
727
|
-
class: unref(bemCssClasses)
|
|
728
|
-
}, {
|
|
729
|
-
inline: _ctx.inline,
|
|
730
|
-
width: _ctx.width,
|
|
731
|
-
height: _ctx.height,
|
|
732
|
-
horizontalFlip: _ctx.horizontalFlip,
|
|
733
|
-
verticalFlip: _ctx.verticalFlip,
|
|
734
|
-
flip: _ctx.flip,
|
|
735
|
-
rotate: unref(hasRotate),
|
|
736
|
-
color: _ctx.color,
|
|
737
|
-
onLoad: _ctx.onLoad,
|
|
738
|
-
icon: unref(icon)
|
|
739
|
-
}), null, 16, ["class"])) : createCommentVNode("v-if", true);
|
|
740
|
-
};
|
|
529
|
+
* Input / Textarea name
|
|
530
|
+
* Name of the form control. Submitted with the form as part of a name/value pair
|
|
531
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
|
|
532
|
+
*/
|
|
533
|
+
name: { type: String, required: true }
|
|
534
|
+
};
|
|
535
|
+
const AutofocusProps = {
|
|
536
|
+
/**
|
|
537
|
+
* Global attribute autofocus
|
|
538
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
|
|
539
|
+
*/
|
|
540
|
+
autofocus: {
|
|
541
|
+
type: Boolean,
|
|
542
|
+
default: false
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
const AutocompleteProps = {
|
|
546
|
+
/**
|
|
547
|
+
* Global attribute autocomplete
|
|
548
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
|
|
549
|
+
*/
|
|
550
|
+
autocomplete: { type: String, default: "off" }
|
|
551
|
+
};
|
|
552
|
+
const ActionProps = {
|
|
553
|
+
...DisabledProps,
|
|
554
|
+
...LabelProps,
|
|
555
|
+
...PressedProps,
|
|
556
|
+
...ActiveProps,
|
|
557
|
+
...CurrentProps,
|
|
558
|
+
...LinkProps,
|
|
559
|
+
/**
|
|
560
|
+
* Button type
|
|
561
|
+
*/
|
|
562
|
+
type: {
|
|
563
|
+
type: String,
|
|
564
|
+
default: ButtonType.button,
|
|
565
|
+
validator: (value) => Object.values(ButtonType).includes(value)
|
|
566
|
+
},
|
|
567
|
+
/**
|
|
568
|
+
* Button aria-label
|
|
569
|
+
*/
|
|
570
|
+
ariaLabel: {
|
|
571
|
+
type: String,
|
|
572
|
+
default: void 0
|
|
573
|
+
},
|
|
574
|
+
/**
|
|
575
|
+
* Default tag for the action
|
|
576
|
+
*/
|
|
577
|
+
defaultTag: {
|
|
578
|
+
type: String,
|
|
579
|
+
default: ActionTag.button
|
|
741
580
|
}
|
|
581
|
+
};
|
|
582
|
+
({
|
|
583
|
+
storageType: {
|
|
584
|
+
type: String,
|
|
585
|
+
default: StorageType.local,
|
|
586
|
+
validator: (value) => Object.values(StorageType).includes(value)
|
|
587
|
+
},
|
|
588
|
+
storageKey: String
|
|
742
589
|
});
|
|
743
590
|
const VvDropdownProps = {
|
|
744
591
|
...IdProps,
|
|
@@ -792,7 +639,9 @@ const VvDropdownOptionProps = {
|
|
|
792
639
|
default: false
|
|
793
640
|
}
|
|
794
641
|
};
|
|
795
|
-
|
|
642
|
+
function useUniqueId(id) {
|
|
643
|
+
return computed(() => String((id == null ? void 0 : id.value) || uid()));
|
|
644
|
+
}
|
|
796
645
|
function useProvideDropdownTrigger({
|
|
797
646
|
reference,
|
|
798
647
|
id,
|
|
@@ -852,6 +701,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
852
701
|
props: VvDropdownProps,
|
|
853
702
|
emits: [
|
|
854
703
|
"update:modelValue",
|
|
704
|
+
"beforeEnter",
|
|
705
|
+
"afterLeave",
|
|
855
706
|
"beforeExpand",
|
|
856
707
|
"beforeCollapse",
|
|
857
708
|
"afterExpand",
|
|
@@ -859,11 +710,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
859
710
|
"before-enter",
|
|
860
711
|
"after-leave",
|
|
861
712
|
"enter",
|
|
862
|
-
"
|
|
863
|
-
"
|
|
864
|
-
"
|
|
713
|
+
"afterEnter",
|
|
714
|
+
"enterCancelled",
|
|
715
|
+
"beforeLeave",
|
|
865
716
|
"leave",
|
|
866
|
-
"
|
|
717
|
+
"leaveCancelled"
|
|
867
718
|
],
|
|
868
719
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
869
720
|
const props = __props;
|
|
@@ -1022,18 +873,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1022
873
|
modelValue.value = newValue;
|
|
1023
874
|
}
|
|
1024
875
|
});
|
|
1025
|
-
|
|
876
|
+
function show() {
|
|
1026
877
|
expanded.value = true;
|
|
1027
|
-
}
|
|
1028
|
-
|
|
878
|
+
}
|
|
879
|
+
function hide() {
|
|
1029
880
|
expanded.value = false;
|
|
1030
|
-
}
|
|
1031
|
-
|
|
881
|
+
}
|
|
882
|
+
function toggle() {
|
|
1032
883
|
expanded.value = !expanded.value;
|
|
1033
|
-
}
|
|
1034
|
-
|
|
884
|
+
}
|
|
885
|
+
function init(el) {
|
|
1035
886
|
referenceEl.value = el;
|
|
1036
|
-
}
|
|
887
|
+
}
|
|
1037
888
|
__expose({
|
|
1038
889
|
toggle,
|
|
1039
890
|
show,
|
|
@@ -1101,7 +952,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1101
952
|
(el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden")
|
|
1102
953
|
);
|
|
1103
954
|
}
|
|
1104
|
-
|
|
955
|
+
function focusNext() {
|
|
1105
956
|
nextTick(() => {
|
|
1106
957
|
if (focused.value) {
|
|
1107
958
|
const focusableElements = getKeyboardFocusableElements(
|
|
@@ -1124,8 +975,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1124
975
|
}
|
|
1125
976
|
}
|
|
1126
977
|
});
|
|
1127
|
-
}
|
|
1128
|
-
|
|
978
|
+
}
|
|
979
|
+
function focusPrev() {
|
|
1129
980
|
nextTick(() => {
|
|
1130
981
|
if (focused.value) {
|
|
1131
982
|
const focusableElements = getKeyboardFocusableElements(
|
|
@@ -1148,7 +999,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1148
999
|
}
|
|
1149
1000
|
}
|
|
1150
1001
|
});
|
|
1151
|
-
}
|
|
1002
|
+
}
|
|
1152
1003
|
const hovered = useElementHover(floatingEl);
|
|
1153
1004
|
const { itemRole } = useProvideDropdownItem({
|
|
1154
1005
|
role,
|
|
@@ -1183,29 +1034,29 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
1183
1034
|
const dropdownTransitionHandlers = {
|
|
1184
1035
|
"before-enter": () => {
|
|
1185
1036
|
emit(expanded.value ? "beforeExpand" : "beforeCollapse");
|
|
1186
|
-
emit("
|
|
1037
|
+
emit("beforeEnter");
|
|
1187
1038
|
},
|
|
1188
1039
|
"after-leave": () => {
|
|
1189
1040
|
emit(expanded.value ? "afterExpand" : "afterCollapse");
|
|
1190
|
-
emit("
|
|
1041
|
+
emit("afterLeave");
|
|
1191
1042
|
},
|
|
1192
|
-
enter: () => {
|
|
1043
|
+
"enter": () => {
|
|
1193
1044
|
emit("enter");
|
|
1194
1045
|
},
|
|
1195
1046
|
"after-enter": () => {
|
|
1196
|
-
emit("
|
|
1047
|
+
emit("afterEnter");
|
|
1197
1048
|
},
|
|
1198
1049
|
"enter-cancelled": () => {
|
|
1199
|
-
emit("
|
|
1050
|
+
emit("enterCancelled");
|
|
1200
1051
|
},
|
|
1201
1052
|
"before-leave": () => {
|
|
1202
|
-
emit("
|
|
1053
|
+
emit("beforeLeave");
|
|
1203
1054
|
},
|
|
1204
|
-
leave: () => {
|
|
1055
|
+
"leave": () => {
|
|
1205
1056
|
emit("leave");
|
|
1206
1057
|
},
|
|
1207
1058
|
"leave-cancelled": () => {
|
|
1208
|
-
emit("
|
|
1059
|
+
emit("leaveCancelled");
|
|
1209
1060
|
}
|
|
1210
1061
|
};
|
|
1211
1062
|
return (_ctx, _cache) => {
|
|
@@ -1419,32 +1270,36 @@ function deepEquals(a, b) {
|
|
|
1419
1270
|
let i, length, key;
|
|
1420
1271
|
if (arrA && arrB) {
|
|
1421
1272
|
length = a.length;
|
|
1422
|
-
if (length
|
|
1273
|
+
if (length !== b.length)
|
|
1423
1274
|
return false;
|
|
1424
|
-
for (i = length; i-- !== 0; )
|
|
1275
|
+
for (i = length; i-- !== 0; ) {
|
|
1425
1276
|
if (!deepEquals(a[i], b[i]))
|
|
1426
1277
|
return false;
|
|
1278
|
+
}
|
|
1427
1279
|
return true;
|
|
1428
1280
|
}
|
|
1429
|
-
if (arrA
|
|
1281
|
+
if (arrA !== arrB)
|
|
1430
1282
|
return false;
|
|
1431
|
-
const dateA = a instanceof Date
|
|
1432
|
-
|
|
1283
|
+
const dateA = a instanceof Date;
|
|
1284
|
+
const dateB = b instanceof Date;
|
|
1285
|
+
if (dateA !== dateB)
|
|
1433
1286
|
return false;
|
|
1434
1287
|
if (dateA && dateB)
|
|
1435
|
-
return a.getTime()
|
|
1436
|
-
const regexpA = a instanceof RegExp
|
|
1437
|
-
|
|
1288
|
+
return a.getTime() === b.getTime();
|
|
1289
|
+
const regexpA = a instanceof RegExp;
|
|
1290
|
+
const regexpB = b instanceof RegExp;
|
|
1291
|
+
if (regexpA !== regexpB)
|
|
1438
1292
|
return false;
|
|
1439
1293
|
if (regexpA && regexpB)
|
|
1440
|
-
return a.toString()
|
|
1294
|
+
return a.toString() === b.toString();
|
|
1441
1295
|
const keys = Object.keys(a);
|
|
1442
1296
|
length = keys.length;
|
|
1443
1297
|
if (length !== Object.keys(b).length)
|
|
1444
1298
|
return false;
|
|
1445
|
-
for (i = length; i-- !== 0; )
|
|
1299
|
+
for (i = length; i-- !== 0; ) {
|
|
1446
1300
|
if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
|
|
1447
1301
|
return false;
|
|
1302
|
+
}
|
|
1448
1303
|
for (i = length; i-- !== 0; ) {
|
|
1449
1304
|
key = keys[i];
|
|
1450
1305
|
if (!deepEquals(a[key], b[key]))
|
|
@@ -1452,11 +1307,11 @@ function deepEquals(a, b) {
|
|
|
1452
1307
|
}
|
|
1453
1308
|
return true;
|
|
1454
1309
|
}
|
|
1455
|
-
return a
|
|
1310
|
+
return Number.isNaN(a) && Number.isNaN(b);
|
|
1456
1311
|
}
|
|
1457
1312
|
function resolveFieldData(data, field) {
|
|
1458
1313
|
if (data && Object.keys(data).length && field) {
|
|
1459
|
-
if (field.
|
|
1314
|
+
if (!field.includes(".")) {
|
|
1460
1315
|
return data[field];
|
|
1461
1316
|
} else {
|
|
1462
1317
|
const fields = field.split(".");
|
|
@@ -1885,28 +1740,28 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1885
1740
|
"vv-select",
|
|
1886
1741
|
modifiers,
|
|
1887
1742
|
computed(() => ({
|
|
1888
|
-
valid: valid.value,
|
|
1889
|
-
invalid: invalid.value,
|
|
1890
|
-
loading: loading.value,
|
|
1891
|
-
disabled: disabled.value,
|
|
1892
|
-
readonly: readonly.value,
|
|
1743
|
+
"valid": valid.value,
|
|
1744
|
+
"invalid": invalid.value,
|
|
1745
|
+
"loading": loading.value,
|
|
1746
|
+
"disabled": disabled.value,
|
|
1747
|
+
"readonly": readonly.value,
|
|
1893
1748
|
"icon-before": hasIconBefore.value !== void 0,
|
|
1894
1749
|
"icon-after": hasIconAfter.value !== void 0,
|
|
1895
|
-
dirty: isDirty.value,
|
|
1896
|
-
focus: focused.value,
|
|
1897
|
-
floating: floating.value,
|
|
1898
|
-
multiple: multiple.value
|
|
1750
|
+
"dirty": isDirty.value,
|
|
1751
|
+
"focus": focused.value,
|
|
1752
|
+
"floating": floating.value,
|
|
1753
|
+
"multiple": multiple.value
|
|
1899
1754
|
}))
|
|
1900
1755
|
);
|
|
1901
1756
|
const hasAttrs = computed(() => {
|
|
1902
1757
|
return {
|
|
1903
|
-
name: props.name,
|
|
1904
|
-
tabindex: hasTabindex.value,
|
|
1905
|
-
disabled: isDisabled.value,
|
|
1906
|
-
required: props.required,
|
|
1907
|
-
size: props.size,
|
|
1908
|
-
autocomplete: props.autocomplete,
|
|
1909
|
-
multiple: props.multiple,
|
|
1758
|
+
"name": props.name,
|
|
1759
|
+
"tabindex": hasTabindex.value,
|
|
1760
|
+
"disabled": isDisabled.value,
|
|
1761
|
+
"required": props.required,
|
|
1762
|
+
"size": props.size,
|
|
1763
|
+
"autocomplete": props.autocomplete,
|
|
1764
|
+
"multiple": props.multiple,
|
|
1910
1765
|
"aria-invalid": isInvalid.value,
|
|
1911
1766
|
"aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
|
|
1912
1767
|
"aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
|
|
@@ -1934,11 +1789,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1934
1789
|
emit("update:modelValue", newValue);
|
|
1935
1790
|
}
|
|
1936
1791
|
});
|
|
1937
|
-
|
|
1792
|
+
function isGroup(option) {
|
|
1938
1793
|
if (typeof option === "string")
|
|
1939
1794
|
return false;
|
|
1940
1795
|
return option && option.options && option.options.length > 0;
|
|
1941
|
-
}
|
|
1796
|
+
}
|
|
1942
1797
|
return (_ctx, _cache) => {
|
|
1943
1798
|
return openBlock(), createElementBlock(
|
|
1944
1799
|
"div",
|
|
@@ -2184,7 +2039,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
2184
2039
|
return toReturn;
|
|
2185
2040
|
}
|
|
2186
2041
|
});
|
|
2187
|
-
|
|
2042
|
+
function onClick(e) {
|
|
2188
2043
|
var _a;
|
|
2189
2044
|
if (props.disabled) {
|
|
2190
2045
|
e.preventDefault();
|
|
@@ -2195,23 +2050,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
2195
2050
|
return;
|
|
2196
2051
|
}
|
|
2197
2052
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
|
|
2198
|
-
}
|
|
2199
|
-
|
|
2053
|
+
}
|
|
2054
|
+
function onMouseover(e) {
|
|
2200
2055
|
var _a;
|
|
2201
2056
|
if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
|
|
2202
2057
|
emit("mouseover", e);
|
|
2203
2058
|
return;
|
|
2204
2059
|
}
|
|
2205
2060
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
|
|
2206
|
-
}
|
|
2207
|
-
|
|
2061
|
+
}
|
|
2062
|
+
function onMouseleave(e) {
|
|
2208
2063
|
var _a;
|
|
2209
2064
|
if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
|
|
2210
2065
|
emit("mouseleave", e);
|
|
2211
2066
|
return;
|
|
2212
2067
|
}
|
|
2213
2068
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
|
|
2214
|
-
}
|
|
2069
|
+
}
|
|
2215
2070
|
return (_ctx, _cache) => {
|
|
2216
2071
|
return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
|
|
2217
2072
|
ref_key: "element",
|
|
@@ -2387,9 +2242,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2387
2242
|
emits: VvButtonEvents,
|
|
2388
2243
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
2389
2244
|
const props = __props;
|
|
2245
|
+
const emit = __emit;
|
|
2390
2246
|
const attrs = useAttrs();
|
|
2391
2247
|
const slots = useSlots();
|
|
2392
|
-
const emit = __emit;
|
|
2393
2248
|
const {
|
|
2394
2249
|
id,
|
|
2395
2250
|
modifiers,
|
|
@@ -2422,10 +2277,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2422
2277
|
"vv-button",
|
|
2423
2278
|
modifiers,
|
|
2424
2279
|
computed(() => ({
|
|
2425
|
-
reverse: [Side.right, Side.bottom].includes(
|
|
2280
|
+
"reverse": [Side.right, Side.bottom].includes(
|
|
2426
2281
|
iconPosition.value
|
|
2427
2282
|
),
|
|
2428
|
-
column: [Side.top, Side.bottom].includes(
|
|
2283
|
+
"column": [Side.top, Side.bottom].includes(
|
|
2429
2284
|
iconPosition.value
|
|
2430
2285
|
),
|
|
2431
2286
|
"icon-only": Boolean(
|
|
@@ -2445,7 +2300,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2445
2300
|
onClick
|
|
2446
2301
|
};
|
|
2447
2302
|
});
|
|
2448
|
-
|
|
2303
|
+
function onClick() {
|
|
2449
2304
|
if (toggle.value) {
|
|
2450
2305
|
if (Array.isArray(modelValue.value)) {
|
|
2451
2306
|
if (contains(toggleValue.value, modelValue.value)) {
|
|
@@ -2465,7 +2320,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2465
2320
|
}
|
|
2466
2321
|
modelValue.value = toggleValue.value;
|
|
2467
2322
|
}
|
|
2468
|
-
}
|
|
2323
|
+
}
|
|
2469
2324
|
return (_ctx, _cache) => {
|
|
2470
2325
|
return openBlock(), createBlock(_sfc_main$2, mergeProps({
|
|
2471
2326
|
...unref(attrs),
|
|
@@ -2534,6 +2389,159 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2534
2389
|
};
|
|
2535
2390
|
}
|
|
2536
2391
|
});
|
|
2392
|
+
const VvComboboxEvents = [
|
|
2393
|
+
"update:modelValue",
|
|
2394
|
+
"update:search",
|
|
2395
|
+
/**
|
|
2396
|
+
* @deprecated change:search should not be used, use update:search instead
|
|
2397
|
+
*/
|
|
2398
|
+
"change:search",
|
|
2399
|
+
"focus",
|
|
2400
|
+
"blur"
|
|
2401
|
+
];
|
|
2402
|
+
const VvComboboxProps = {
|
|
2403
|
+
...IdNameProps,
|
|
2404
|
+
...TabindexProps,
|
|
2405
|
+
...ValidProps,
|
|
2406
|
+
...InvalidProps,
|
|
2407
|
+
...HintProps,
|
|
2408
|
+
...LoadingProps,
|
|
2409
|
+
...DisabledProps,
|
|
2410
|
+
...ReadonlyProps,
|
|
2411
|
+
...ModifiersProps,
|
|
2412
|
+
...OptionsProps,
|
|
2413
|
+
...IconProps,
|
|
2414
|
+
...FloatingLabelProps,
|
|
2415
|
+
...UnselectableProps,
|
|
2416
|
+
...DropdownProps,
|
|
2417
|
+
...LabelProps,
|
|
2418
|
+
/**
|
|
2419
|
+
* Dropdown show / hide transition name
|
|
2420
|
+
*/
|
|
2421
|
+
transitionName: {
|
|
2422
|
+
type: String,
|
|
2423
|
+
default: "vv-dropdown--mobile-fade-block"
|
|
2424
|
+
},
|
|
2425
|
+
/**
|
|
2426
|
+
* modelValue can be a string, number, boolean, object or array of string, number, boolean, object
|
|
2427
|
+
*/
|
|
2428
|
+
modelValue: {
|
|
2429
|
+
type: [String, Number, Boolean, Object, Array],
|
|
2430
|
+
default: void 0
|
|
2431
|
+
},
|
|
2432
|
+
/**
|
|
2433
|
+
* Label for no search results
|
|
2434
|
+
*/
|
|
2435
|
+
noResultsLabel: { type: String, default: "No results" },
|
|
2436
|
+
/**
|
|
2437
|
+
* Label for no options available
|
|
2438
|
+
*/
|
|
2439
|
+
noOptionsLabel: { type: String, default: "No options available" },
|
|
2440
|
+
/**
|
|
2441
|
+
* Label for selected option hint
|
|
2442
|
+
*/
|
|
2443
|
+
selectedHintLabel: { type: String, default: "Selected" },
|
|
2444
|
+
/**
|
|
2445
|
+
* Label for deselect action button
|
|
2446
|
+
*/
|
|
2447
|
+
deselectActionLabel: { type: String, default: "Deselect" },
|
|
2448
|
+
/**
|
|
2449
|
+
* Label for select option hint
|
|
2450
|
+
*/
|
|
2451
|
+
selectHintLabel: { type: String, default: "Press enter to select" },
|
|
2452
|
+
/**
|
|
2453
|
+
* Label for deselected option hint
|
|
2454
|
+
*/
|
|
2455
|
+
deselectHintLabel: { type: String, default: "Press enter to remove" },
|
|
2456
|
+
/**
|
|
2457
|
+
* Label close button
|
|
2458
|
+
*/
|
|
2459
|
+
closeLabel: { type: String, default: "Close" },
|
|
2460
|
+
/**
|
|
2461
|
+
* Select input placeholder
|
|
2462
|
+
*/
|
|
2463
|
+
placeholder: String,
|
|
2464
|
+
/**
|
|
2465
|
+
* Use input text to search on options
|
|
2466
|
+
*/
|
|
2467
|
+
searchable: Boolean,
|
|
2468
|
+
/**
|
|
2469
|
+
* Search function to filter options
|
|
2470
|
+
*/
|
|
2471
|
+
searchFunction: {
|
|
2472
|
+
type: Function,
|
|
2473
|
+
default: void 0
|
|
2474
|
+
},
|
|
2475
|
+
/**
|
|
2476
|
+
* On searchable select is the input search placeholder
|
|
2477
|
+
*/
|
|
2478
|
+
searchPlaceholder: {
|
|
2479
|
+
type: String,
|
|
2480
|
+
default: "Search..."
|
|
2481
|
+
},
|
|
2482
|
+
/**
|
|
2483
|
+
* The input search debounce time in ms
|
|
2484
|
+
*/
|
|
2485
|
+
debounceSearch: {
|
|
2486
|
+
type: [Number, String],
|
|
2487
|
+
default: 0
|
|
2488
|
+
},
|
|
2489
|
+
/**
|
|
2490
|
+
* Manage modelValue as string[] or object[]
|
|
2491
|
+
*/
|
|
2492
|
+
multiple: Boolean,
|
|
2493
|
+
/**
|
|
2494
|
+
* The max number of selected values
|
|
2495
|
+
*/
|
|
2496
|
+
maxValues: [Number, String],
|
|
2497
|
+
/**
|
|
2498
|
+
* The select label separator visible to the user
|
|
2499
|
+
*/
|
|
2500
|
+
separator: { type: String, default: ", " },
|
|
2501
|
+
/**
|
|
2502
|
+
* Show native select
|
|
2503
|
+
*/
|
|
2504
|
+
native: Boolean,
|
|
2505
|
+
/**
|
|
2506
|
+
* Show badges
|
|
2507
|
+
*/
|
|
2508
|
+
badges: Boolean,
|
|
2509
|
+
/**
|
|
2510
|
+
* Badge modifiers
|
|
2511
|
+
*/
|
|
2512
|
+
badgeModifiers: {
|
|
2513
|
+
type: [String, Array],
|
|
2514
|
+
default: "action sm"
|
|
2515
|
+
},
|
|
2516
|
+
/**
|
|
2517
|
+
* Set dropdown width to the same as the trigger
|
|
2518
|
+
*/
|
|
2519
|
+
triggerWidth: {
|
|
2520
|
+
...DropdownProps.triggerWidth,
|
|
2521
|
+
default: true
|
|
2522
|
+
},
|
|
2523
|
+
/**
|
|
2524
|
+
* Dropdown modifiers
|
|
2525
|
+
*/
|
|
2526
|
+
dropdownModifiers: {
|
|
2527
|
+
type: [String, Array],
|
|
2528
|
+
default: "mobile"
|
|
2529
|
+
},
|
|
2530
|
+
/**
|
|
2531
|
+
* Open dropdown on focus
|
|
2532
|
+
*/
|
|
2533
|
+
autoOpen: {
|
|
2534
|
+
type: Boolean,
|
|
2535
|
+
default: false
|
|
2536
|
+
},
|
|
2537
|
+
/**
|
|
2538
|
+
* Keep open dropdown on single select
|
|
2539
|
+
*/
|
|
2540
|
+
keepOpen: {
|
|
2541
|
+
type: Boolean,
|
|
2542
|
+
default: false
|
|
2543
|
+
}
|
|
2544
|
+
};
|
|
2537
2545
|
const _hoisted_1 = ["id"];
|
|
2538
2546
|
const _hoisted_2 = ["id", "for"];
|
|
2539
2547
|
const _hoisted_3 = ["id", "aria-controls", "placeholder"];
|
|
@@ -2574,12 +2582,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2574
2582
|
VvComboboxProps,
|
|
2575
2583
|
props
|
|
2576
2584
|
);
|
|
2577
|
-
|
|
2585
|
+
function isGroup(option) {
|
|
2578
2586
|
if (typeof option === "string") {
|
|
2579
2587
|
return false;
|
|
2580
2588
|
}
|
|
2581
2589
|
return option.options && option.options.length > 0;
|
|
2582
|
-
}
|
|
2590
|
+
}
|
|
2583
2591
|
const {
|
|
2584
2592
|
HintSlot,
|
|
2585
2593
|
hasHintLabelOrSlot,
|
|
@@ -2618,22 +2626,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2618
2626
|
emit("change:search", debouncedSearchText.value);
|
|
2619
2627
|
});
|
|
2620
2628
|
const expanded = ref(false);
|
|
2621
|
-
|
|
2629
|
+
function toggleExpanded() {
|
|
2622
2630
|
if (props.disabled || props.readonly)
|
|
2623
2631
|
return;
|
|
2624
2632
|
expanded.value = !expanded.value;
|
|
2625
|
-
}
|
|
2626
|
-
|
|
2633
|
+
}
|
|
2634
|
+
function expand() {
|
|
2627
2635
|
if (props.disabled || props.readonly || expanded.value)
|
|
2628
2636
|
return;
|
|
2629
2637
|
expanded.value = true;
|
|
2630
|
-
}
|
|
2631
|
-
|
|
2638
|
+
}
|
|
2639
|
+
function collapse() {
|
|
2632
2640
|
if (props.disabled || props.readonly || !expanded.value)
|
|
2633
2641
|
return;
|
|
2634
2642
|
expanded.value = false;
|
|
2635
|
-
}
|
|
2636
|
-
|
|
2643
|
+
}
|
|
2644
|
+
function onAfterExpand() {
|
|
2637
2645
|
if (propsDefaults.value.searchable) {
|
|
2638
2646
|
if (inputSearchEl.value) {
|
|
2639
2647
|
inputSearchEl.value.focus({
|
|
@@ -2641,12 +2649,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2641
2649
|
});
|
|
2642
2650
|
}
|
|
2643
2651
|
}
|
|
2644
|
-
}
|
|
2645
|
-
|
|
2652
|
+
}
|
|
2653
|
+
function onAfterCollapse() {
|
|
2646
2654
|
if (propsDefaults.value.searchable) {
|
|
2647
2655
|
searchText.value = "";
|
|
2648
2656
|
}
|
|
2649
|
-
}
|
|
2657
|
+
}
|
|
2650
2658
|
const {
|
|
2651
2659
|
id,
|
|
2652
2660
|
icon,
|
|
@@ -2676,17 +2684,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2676
2684
|
"vv-select",
|
|
2677
2685
|
modifiers,
|
|
2678
2686
|
computed(() => ({
|
|
2679
|
-
disabled: disabled.value,
|
|
2680
|
-
loading: isLoading.value,
|
|
2681
|
-
readonly: readonly.value,
|
|
2687
|
+
"disabled": disabled.value,
|
|
2688
|
+
"loading": isLoading.value,
|
|
2689
|
+
"readonly": readonly.value,
|
|
2682
2690
|
"icon-before": hasIconBefore.value !== void 0,
|
|
2683
2691
|
"icon-after": hasIconAfter.value !== void 0,
|
|
2684
|
-
valid: valid.value,
|
|
2685
|
-
invalid: invalid.value,
|
|
2686
|
-
dirty: isDirty.value,
|
|
2687
|
-
focus: focused.value || focusedWithin.value || expanded.value,
|
|
2688
|
-
floating: floating.value,
|
|
2689
|
-
badges: props.badges
|
|
2692
|
+
"valid": valid.value,
|
|
2693
|
+
"invalid": invalid.value,
|
|
2694
|
+
"dirty": isDirty.value,
|
|
2695
|
+
"focus": focused.value || focusedWithin.value || expanded.value,
|
|
2696
|
+
"floating": floating.value,
|
|
2697
|
+
"badges": props.badges
|
|
2690
2698
|
}))
|
|
2691
2699
|
);
|
|
2692
2700
|
const {
|
|
@@ -2735,10 +2743,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2735
2743
|
const hasValue = computed(() => {
|
|
2736
2744
|
return selectedOptions.value.map((option) => getOptionLabel(option)).join(props.separator);
|
|
2737
2745
|
});
|
|
2738
|
-
|
|
2746
|
+
function onClickInput() {
|
|
2739
2747
|
props.autoOpen ? expand() : toggleExpanded();
|
|
2740
|
-
}
|
|
2741
|
-
|
|
2748
|
+
}
|
|
2749
|
+
function onInput(option) {
|
|
2742
2750
|
var _a;
|
|
2743
2751
|
if (props.disabled || props.readonly) {
|
|
2744
2752
|
return;
|
|
@@ -2772,7 +2780,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2772
2780
|
}
|
|
2773
2781
|
}
|
|
2774
2782
|
emit("update:modelValue", toReturn);
|
|
2775
|
-
}
|
|
2783
|
+
}
|
|
2776
2784
|
const selectProps = computed(() => ({
|
|
2777
2785
|
id: hasId.value,
|
|
2778
2786
|
name: props.name,
|