@volverjs/ui-vue 0.0.10-beta.5 → 0.0.10-beta.51
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/LICENSE +1 -1
- package/README.md +148 -51
- package/auto-imports.d.ts +25 -12
- package/bin/icons.cjs +1 -1
- package/bin/icons.js +28 -20
- package/dist/Volver.d.ts +11 -11
- package/dist/components/VvAccordion/VvAccordion.es.js +192 -104
- package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
- package/dist/components/VvAccordion/VvAccordion.vue.d.ts +29 -10
- package/dist/components/VvAccordion/index.d.ts +8 -9
- package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +485 -206
- package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
- package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +61 -18
- package/dist/components/VvAccordionGroup/index.d.ts +16 -8
- package/dist/components/VvAction/VvAction.es.js +84 -33
- package/dist/components/VvAction/VvAction.umd.js +1 -1
- package/dist/components/VvAction/VvAction.vue.d.ts +61 -28
- package/dist/components/VvAction/index.d.ts +26 -10
- package/dist/components/VvAlert/VvAlert.es.js +350 -318
- package/dist/components/VvAlert/VvAlert.umd.js +1 -1
- package/dist/components/VvAlert/VvAlert.vue.d.ts +25 -17
- package/dist/components/VvAlert/index.d.ts +20 -11
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +388 -327
- package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
- package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +22 -17
- package/dist/components/VvAlertGroup/index.d.ts +10 -18
- package/dist/components/VvAvatar/VvAvatar.es.js +66 -28
- package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
- package/dist/components/VvAvatar/VvAvatar.vue.d.ts +13 -5
- package/dist/components/VvAvatar/index.d.ts +4 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +147 -74
- package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
- package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +17 -10
- package/dist/components/VvAvatarGroup/index.d.ts +6 -3
- package/dist/components/VvBadge/VvBadge.es.js +78 -34
- package/dist/components/VvBadge/VvBadge.umd.js +1 -1
- package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -5
- package/dist/components/VvBadge/index.d.ts +4 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +294 -83
- package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +28 -8
- package/dist/components/VvBreadcrumb/index.d.ts +6 -10
- package/dist/components/VvButton/VvButton.es.js +510 -488
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvButton/VvButton.vue.d.ts +97 -45
- package/dist/components/VvButton/index.d.ts +52 -30
- package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -45
- package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
- package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +35 -17
- package/dist/components/VvButtonGroup/index.d.ts +13 -4
- package/dist/components/VvCard/VvCard.es.js +87 -42
- package/dist/components/VvCard/VvCard.umd.js +1 -1
- package/dist/components/VvCard/VvCard.vue.d.ts +13 -5
- package/dist/components/VvCard/index.d.ts +4 -1
- package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -136
- package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
- package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -35
- package/dist/components/VvCheckbox/index.d.ts +52 -19
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +408 -322
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +103 -34
- package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
- package/dist/components/VvCombobox/VvCombobox.es.js +1963 -1639
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +260 -672
- package/dist/components/VvCombobox/index.d.ts +385 -135
- package/dist/components/VvDialog/VvDialog.es.js +177 -297
- package/dist/components/VvDialog/VvDialog.umd.js +1 -1
- package/dist/components/VvDialog/VvDialog.vue.d.ts +23 -7
- package/dist/components/VvDialog/index.d.ts +12 -0
- package/dist/components/VvDropdown/VvDropdown.es.js +172 -102
- package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +110 -315
- package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +77 -28
- package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
- package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +13 -5
- package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +38 -10
- package/dist/components/VvDropdown/index.d.ts +52 -118
- package/dist/components/VvDropdownAction/VvDropdownAction.es.js +165 -60
- package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
- package/dist/components/VvDropdownItem/VvDropdownItem.es.js +337 -10
- package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
- package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
- package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.es.js +24 -102
- package/dist/components/VvIcon/VvIcon.umd.js +1 -1
- package/dist/components/VvIcon/VvIcon.vue.d.ts +4 -68
- package/dist/components/VvIcon/index.d.ts +33 -48
- package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
- package/dist/components/VvInputFile/VvInputFile.vue.d.ts +317 -0
- package/dist/components/VvInputFile/index.d.ts +193 -0
- package/dist/components/VvInputText/VvInputClearAction.d.ts +16 -10
- package/dist/components/VvInputText/VvInputPasswordAction.d.ts +20 -14
- package/dist/components/VvInputText/VvInputStepAction.d.ts +11 -7
- package/dist/components/VvInputText/VvInputText.es.js +1495 -548
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +216 -68
- package/dist/components/VvInputText/index.d.ts +101 -31
- package/dist/components/VvNav/VvNav.es.js +155 -75
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNav/VvNav.vue.d.ts +32 -11
- package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
- package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
- package/dist/components/VvNav/index.d.ts +5 -2
- package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
- package/dist/components/VvProgress/VvProgress.es.js +73 -27
- package/dist/components/VvProgress/VvProgress.umd.js +1 -1
- package/dist/components/VvProgress/VvProgress.vue.d.ts +13 -6
- package/dist/components/VvProgress/index.d.ts +4 -1
- package/dist/components/VvRadio/VvRadio.es.js +175 -135
- package/dist/components/VvRadio/VvRadio.umd.js +1 -1
- package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -33
- package/dist/components/VvRadio/index.d.ts +50 -17
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +406 -321
- package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +103 -34
- package/dist/components/VvRadioGroup/index.d.ts +45 -12
- package/dist/components/VvSelect/VvSelect.es.js +677 -611
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.vue.d.ts +107 -199
- package/dist/components/VvSelect/index.d.ts +196 -16
- package/dist/components/VvTab/VvTab.es.js +230 -110
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTab/VvTab.vue.d.ts +34 -12
- package/dist/components/VvTab/index.d.ts +6 -3
- package/dist/components/VvTextarea/VvTextarea.es.js +278 -255
- package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.vue.d.ts +159 -54
- package/dist/components/VvTextarea/index.d.ts +69 -20
- package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
- package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
- package/dist/components/VvTooltip/VvTooltip.vue.d.ts +16 -9
- package/dist/components/VvTooltip/index.d.ts +5 -2
- package/dist/components/common/HintSlot.d.ts +8 -9
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.es.js +4303 -2228
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/alert/useAlerInject.d.ts +4 -0
- package/dist/composables/alert/useAlert.d.ts +71 -6
- package/dist/composables/alert/{useProvideAlert.d.ts → useAlertProvide.d.ts} +1 -1
- package/dist/composables/dropdown/useDropdownContextmenu.d.ts +18 -0
- package/dist/composables/dropdown/useDropdownInject.d.ts +12 -0
- package/dist/composables/dropdown/{useProvideDropdown.d.ts → useDropdownProvide.d.ts} +6 -7
- package/dist/composables/dropdown/useDropdownVirtualElement.d.ts +17 -0
- package/dist/composables/group/useGroupStateInject.d.ts +9 -0
- package/dist/composables/group/useGroupStateProvide.d.ts +6 -0
- package/dist/composables/index.d.ts +3 -0
- package/dist/composables/index.es.js +178 -6
- package/dist/composables/index.umd.js +1 -1
- package/dist/composables/useBlurhash.d.ts +7 -0
- package/dist/composables/useComponentFocus.d.ts +2 -2
- package/dist/composables/useComponentIcon.d.ts +9 -8
- package/dist/composables/useOptions.d.ts +5 -5
- package/dist/composables/usePersistence.d.ts +3 -0
- package/dist/composables/useUniqueId.d.ts +2 -2
- package/dist/composables/useVolver.d.ts +1 -1
- package/dist/constants.d.ts +35 -33
- package/dist/directives/index.d.ts +3 -5
- package/dist/directives/index.es.js +247 -82
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-contextmenu.es.js +137 -31
- package/dist/directives/v-contextmenu.umd.js +1 -1
- package/dist/directives/v-tooltip.es.js +101 -39
- package/dist/directives/v-tooltip.umd.js +1 -1
- package/dist/icons.d.ts +17 -17
- package/dist/icons.es.js +516 -516
- package/dist/icons.umd.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.es.js +74 -6
- package/dist/index.umd.js +1 -1
- package/dist/props/index.d.ts +288 -198
- package/dist/resolvers/unplugin.d.ts +6 -1
- package/dist/resolvers/unplugin.es.js +87 -10
- package/dist/resolvers/unplugin.umd.js +1 -1
- package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
- package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
- package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
- package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1304 -538
- package/dist/stories/Alert/Alert.settings.d.ts +2 -109
- package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
- package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
- package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
- package/dist/stories/Badge/Badge.settings.d.ts +2 -26
- package/dist/stories/Badge/Badge.test.d.ts +1 -1
- package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
- package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
- package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
- package/dist/stories/Button/Button.settings.d.ts +2 -194
- package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
- package/dist/stories/Card/Card.settings.d.ts +2 -63
- package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
- package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
- package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
- package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
- package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +1 -0
- package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
- package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
- package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
- package/dist/stories/Icon/Icon.settings.d.ts +3 -68
- package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
- package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
- package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
- package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
- package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
- package/dist/stories/InputText/InputText.settings.d.ts +2 -438
- package/dist/stories/Nav/Nav.settings.d.ts +2 -10
- package/dist/stories/Progress/Progress.settings.d.ts +2 -27
- package/dist/stories/Radio/Radio.settings.d.ts +1 -110
- package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
- package/dist/stories/Select/Select.settings.d.ts +2 -246
- package/dist/stories/Select/Select.stories.d.ts +1 -0
- package/dist/stories/Tab/Tab.settings.d.ts +2 -15
- package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
- package/dist/stories/argTypes.d.ts +27 -866
- package/dist/test/expect.d.ts +1 -2
- package/dist/test/options.d.ts +1 -1
- package/dist/test/sleep.d.ts +1 -1
- package/dist/types/alert.d.ts +9 -7
- package/dist/types/blurhash.d.ts +12 -0
- package/dist/types/floating-ui.d.ts +1 -1
- package/dist/types/generic.d.ts +1 -2
- package/dist/types/group.d.ts +37 -15
- package/dist/types/index.d.ts +7 -0
- package/dist/types/input-file.d.ts +9 -0
- package/dist/types/nav.d.ts +2 -2
- package/dist/utils/DomUtilities.d.ts +1 -0
- package/dist/utils/ObjectUtilities.d.ts +8 -9
- package/dist/workers/blurhash.d.ts +1 -0
- package/package.json +238 -246
- package/src/Volver.ts +251 -246
- 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 +163 -100
- package/src/components/VvAccordion/index.ts +65 -80
- package/src/components/VvAccordionGroup/VvAccordionGroup.vue +224 -106
- package/src/components/VvAccordionGroup/index.ts +42 -42
- package/src/components/VvAction/VvAction.vue +144 -130
- package/src/components/VvAlert/VvAlert.vue +72 -70
- package/src/components/VvAlert/index.ts +149 -147
- package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
- package/src/components/VvAlertGroup/index.ts +102 -118
- 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 +50 -48
- package/src/components/VvBreadcrumb/index.ts +3 -9
- package/src/components/VvButton/VvButton.vue +163 -152
- package/src/components/VvButton/index.ts +104 -111
- package/src/components/VvButtonGroup/VvButtonGroup.vue +73 -65
- package/src/components/VvButtonGroup/index.ts +23 -22
- package/src/components/VvCard/VvCard.vue +30 -30
- package/src/components/VvCard/index.ts +2 -2
- package/src/components/VvCheckbox/VvCheckbox.vue +186 -184
- package/src/components/VvCheckbox/index.ts +45 -45
- package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
- package/src/components/VvCombobox/VvCombobox.vue +657 -619
- package/src/components/VvCombobox/index.ts +212 -168
- package/src/components/VvDialog/VvDialog.vue +139 -129
- package/src/components/VvDialog/index.ts +42 -36
- package/src/components/VvDropdown/VvDropdown.vue +466 -445
- package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
- package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
- package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
- package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
- package/src/components/VvDropdown/index.ts +61 -27
- package/src/components/VvIcon/README.md +1 -1
- package/src/components/VvIcon/VvIcon.vue +133 -133
- package/src/components/VvIcon/index.ts +84 -97
- package/src/components/VvInputFile/VvInputFile.vue +413 -0
- package/src/components/VvInputFile/index.ts +143 -0
- package/src/components/VvInputText/VvInputClearAction.ts +51 -47
- package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
- package/src/components/VvInputText/VvInputStepAction.ts +43 -43
- package/src/components/VvInputText/VvInputText.vue +653 -516
- package/src/components/VvInputText/VvInputTextActions.ts +87 -87
- package/src/components/VvInputText/index.ts +201 -186
- package/src/components/VvNav/VvNav.vue +40 -36
- 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 -27
- package/src/components/VvProgress/index.ts +28 -28
- package/src/components/VvRadio/VvRadio.vue +115 -112
- package/src/components/VvRadio/index.ts +29 -29
- package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
- package/src/components/VvSelect/VvSelect.vue +262 -241
- package/src/components/VvSelect/index.ts +88 -63
- package/src/components/VvTab/VvTab.vue +79 -69
- package/src/components/VvTab/index.ts +13 -13
- package/src/components/VvTextarea/VvTextarea.vue +218 -219
- 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 +151 -152
- package/src/components/index.ts +10 -0
- package/src/composables/alert/{useInjectAlert.ts → useAlerInject.ts} +1 -1
- package/src/composables/alert/useAlert.ts +76 -73
- package/src/composables/alert/{useProvideAlert.ts → useAlertProvide.ts} +12 -12
- package/src/composables/dropdown/useDropdownContextmenu.ts +22 -0
- package/src/composables/dropdown/{useInjectDropdown.ts → useDropdownInject.ts} +6 -6
- package/src/composables/dropdown/useDropdownProvide.ts +94 -0
- package/src/composables/dropdown/useDropdownVirtualElement.ts +53 -0
- package/src/composables/group/useGroupStateInject.ts +55 -0
- package/src/composables/group/useGroupStateProvide.ts +14 -0
- package/src/composables/index.ts +3 -0
- package/src/composables/useBlurhash.ts +68 -0
- package/src/composables/useComponentFocus.ts +9 -9
- package/src/composables/useComponentIcon.ts +36 -35
- package/src/composables/useDebouncedInput.ts +25 -25
- package/src/composables/useDefaults.ts +81 -80
- package/src/composables/useModifiers.ts +29 -29
- package/src/composables/useOptions.ts +51 -42
- package/src/composables/usePersistence.ts +74 -0
- package/src/composables/useTextCount.ts +46 -46
- package/src/composables/useUniqueId.ts +4 -4
- package/src/composables/useVolver.ts +1 -1
- package/src/constants.ts +98 -83
- package/src/directives/index.ts +3 -6
- package/src/directives/v-contextmenu.ts +26 -34
- package/src/directives/v-tooltip.ts +20 -11
- package/src/icons.ts +2 -2
- package/src/index.ts +6 -4
- package/src/props/index.ts +467 -383
- package/src/resolvers/unplugin.ts +154 -144
- package/src/shims.d.ts +4 -5
- package/src/stories/Accordion/Accordion.settings.ts +51 -50
- 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 +70 -67
- package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
- package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
- package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +36 -36
- package/src/stories/Alert/Alert.settings.ts +117 -116
- package/src/stories/Alert/Alert.stories.ts +30 -30
- package/src/stories/Alert/Alert.test.ts +78 -80
- 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 +107 -105
- package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
- package/src/stories/AlertGroup/AlertGroup.test.ts +69 -71
- 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 +58 -58
- package/src/stories/Avatar/Avatar.settings.ts +29 -29
- package/src/stories/Avatar/Avatar.stories.ts +22 -22
- package/src/stories/Avatar/Avatar.test.ts +22 -24
- package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
- package/src/stories/Avatar/AvatarModifiers.stories.ts +60 -60
- package/src/stories/Avatar/AvatarSlots.stories.ts +17 -17
- package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
- package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
- package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
- 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 +21 -20
- package/src/stories/Badge/Badge.stories.ts +24 -24
- 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 +116 -0
- package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
- package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
- package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
- package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +19 -19
- package/src/stories/Button/Button.settings.ts +147 -151
- package/src/stories/Button/Button.stories.ts +19 -19
- package/src/stories/Button/Button.test.ts +41 -42
- 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 +33 -24
- package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
- package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
- package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
- package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +17 -17
- package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
- package/src/stories/Card/Card.settings.ts +49 -48
- package/src/stories/Card/Card.stories.ts +22 -22
- package/src/stories/Card/Card.test.ts +14 -16
- package/src/stories/Card/CardSlots.stories.ts +42 -42
- package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
- package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
- package/src/stories/Checkbox/Checkbox.test.ts +63 -66
- package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
- 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 +64 -68
- 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 +408 -385
- package/src/stories/Combobox/Combobox.stories.ts +116 -107
- package/src/stories/Combobox/Combobox.test.ts +92 -92
- package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
- package/src/stories/Combobox/ComboboxMultiple.stories.ts +32 -22
- package/src/stories/Combobox/ComboboxOptions.stories.ts +81 -84
- package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -54
- package/src/stories/Dialog/Dialog.settings.ts +49 -40
- package/src/stories/Dialog/Dialog.stories.ts +28 -28
- package/src/stories/Dialog/Dialog.test.ts +49 -54
- package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
- package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
- package/src/stories/Dropdown/Dropdown.settings.ts +62 -61
- package/src/stories/Dropdown/Dropdown.stories.ts +60 -60
- package/src/stories/Dropdown/Dropdown.test.ts +9 -13
- package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +18 -19
- package/src/stories/Dropdown/DropdownMultilevel.stories.ts +19 -19
- package/src/stories/Dropdown/DropdownSlots.stories.ts +51 -51
- package/src/stories/Icon/Icon.settings.ts +66 -65
- package/src/stories/Icon/Icon.stories.ts +29 -30
- package/src/stories/Icon/IconsCollection.stories.ts +24 -24
- package/src/stories/InputFile/InputFile.settings.ts +37 -0
- package/src/stories/InputFile/InputFile.stories.ts +97 -0
- package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
- package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
- package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
- package/src/stories/InputText/InputText.settings.ts +248 -246
- package/src/stories/InputText/InputText.stories.ts +68 -68
- package/src/stories/InputText/InputText.test.ts +119 -122
- 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 +30 -30
- 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 +27 -27
- package/src/stories/Nav/Nav.stories.ts +18 -18
- package/src/stories/Nav/Nav.test.ts +10 -12
- package/src/stories/Nav/NavModifiers.stories.ts +25 -25
- package/src/stories/Progress/Progress.settings.ts +24 -23
- package/src/stories/Progress/Progress.stories.ts +23 -23
- package/src/stories/Progress/Progress.test.ts +5 -5
- 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 -57
- 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 +51 -52
- package/src/stories/RadioGroup/RadioGroup.test.ts +64 -68
- package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
- package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
- package/src/stories/Select/Select.settings.ts +72 -71
- package/src/stories/Select/Select.stories.ts +75 -66
- package/src/stories/Select/Select.test.ts +67 -70
- package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
- package/src/stories/Select/SelectOptions.stories.ts +55 -55
- package/src/stories/Select/SelectSlots.stories.ts +21 -20
- package/src/stories/Tab/Tab.settings.ts +34 -34
- package/src/stories/Tab/Tab.stories.ts +16 -16
- package/src/stories/Tab/Tab.test.ts +17 -19
- package/src/stories/Textarea/Textarea.settings.ts +80 -78
- package/src/stories/Textarea/Textarea.stories.ts +63 -63
- package/src/stories/Textarea/Textarea.test.ts +70 -73
- 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 -17
- package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
- package/src/stories/Tooltip/Tooltip.test.ts +53 -54
- package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
- package/src/stories/argTypes.ts +506 -505
- package/src/test/expect.ts +74 -79
- package/src/test/options.ts +17 -16
- package/src/test/sleep.ts +3 -2
- package/src/test/types.d.ts +12 -12
- package/src/types/alert.ts +21 -17
- package/src/types/blurhash.ts +21 -0
- package/src/types/floating-ui.ts +1 -1
- package/src/types/generic.ts +2 -3
- package/src/types/group.ts +35 -27
- package/src/types/index.ts +7 -0
- package/src/types/input-file.ts +10 -0
- package/src/types/nav.ts +13 -14
- package/src/utils/DomUtilities.ts +15 -0
- package/src/utils/ObjectUtilities.ts +192 -188
- package/src/workers/blurhash.ts +9 -0
- package/dist/composables/alert/useInjectAlert.d.ts +0 -9
- package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
- package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
- package/dist/composables/group/useProvideGroupState.d.ts +0 -6
- package/src/composables/dropdown/useProvideDropdown.ts +0 -94
- package/src/composables/group/useInjectedGroupState.ts +0 -51
- package/src/composables/group/useProvideGroupState.ts +0 -20
- /package/src/assets/icons/normal/{dulicate.svg → duplicate.svg} +0 -0
|
@@ -1,100 +1,10 @@
|
|
|
1
|
-
import { inject, computed,
|
|
1
|
+
import { inject, computed, toRef, toRefs, defineComponent, getCurrentInstance, ref, watch, openBlock, createBlock, resolveDynamicComponent, unref, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, mergeDefaults, createCommentVNode, useId, useAttrs, useSlots, createElementBlock, Fragment } from "vue";
|
|
2
2
|
import { iconExists, Icon, addIcon } from "@iconify/vue";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
color: String,
|
|
9
|
-
/**
|
|
10
|
-
* Width
|
|
11
|
-
*/
|
|
12
|
-
width: {
|
|
13
|
-
type: [String, Number]
|
|
14
|
-
},
|
|
15
|
-
/**
|
|
16
|
-
* Height
|
|
17
|
-
*/
|
|
18
|
-
height: {
|
|
19
|
-
type: [String, Number]
|
|
20
|
-
},
|
|
21
|
-
/**
|
|
22
|
-
* Icon name
|
|
23
|
-
* Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
|
|
24
|
-
* https://docs.iconify.design/api/providers.html#provider-in-icon-name
|
|
25
|
-
*/
|
|
26
|
-
name: {
|
|
27
|
-
type: String,
|
|
28
|
-
required: true
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* By default 'vv'
|
|
32
|
-
* If custom collection is not added with "addCollection" DS class method, this prop could not be used
|
|
33
|
-
* Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
|
|
34
|
-
*/
|
|
35
|
-
provider: {
|
|
36
|
-
type: String
|
|
37
|
-
},
|
|
38
|
-
/**
|
|
39
|
-
* The name of icon set.
|
|
40
|
-
* Icon default options prefix: simple | normal | detailed
|
|
41
|
-
*/
|
|
42
|
-
prefix: {
|
|
43
|
-
type: String,
|
|
44
|
-
default: "normal"
|
|
45
|
-
},
|
|
46
|
-
/**
|
|
47
|
-
* Url remote SVG icon
|
|
48
|
-
*/
|
|
49
|
-
src: String,
|
|
50
|
-
/**
|
|
51
|
-
* Horizontal flip
|
|
52
|
-
*/
|
|
53
|
-
horizontalFlip: Boolean,
|
|
54
|
-
/**
|
|
55
|
-
* Vertical flip
|
|
56
|
-
*/
|
|
57
|
-
verticalFlip: Boolean,
|
|
58
|
-
/**
|
|
59
|
-
* String alternative to "horizontalFlip" and "verticalFlip".
|
|
60
|
-
* Example: https://docs.iconify.design/icon-components/vue/transform.html
|
|
61
|
-
*/
|
|
62
|
-
flip: String,
|
|
63
|
-
/**
|
|
64
|
-
* Icon render mode
|
|
65
|
-
* 'style' = 'bg' or 'mask', depending on icon content
|
|
66
|
-
* 'bg' = span with style using `background`
|
|
67
|
-
* 'mask' = span with style using `mask`
|
|
68
|
-
* 'svg' = svg
|
|
69
|
-
* Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
|
|
70
|
-
*/
|
|
71
|
-
mode: String,
|
|
72
|
-
/**
|
|
73
|
-
* Toggles inline or block mode
|
|
74
|
-
* Example https://docs.iconify.design/icon-components/vue/inline.html
|
|
75
|
-
*/
|
|
76
|
-
inline: Boolean,
|
|
77
|
-
/**
|
|
78
|
-
* rotates icon
|
|
79
|
-
* Example https://docs.iconify.design/icon-components/vue/transform.html
|
|
80
|
-
*/
|
|
81
|
-
rotate: [Number, String],
|
|
82
|
-
/**
|
|
83
|
-
* A callback that is called when icon data has been loaded
|
|
84
|
-
*/
|
|
85
|
-
onLoad: Function,
|
|
86
|
-
/**
|
|
87
|
-
* SVG icon string
|
|
88
|
-
*/
|
|
89
|
-
svg: String,
|
|
90
|
-
/**
|
|
91
|
-
* Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
|
|
92
|
-
* @values string | string[]
|
|
93
|
-
*/
|
|
94
|
-
modifiers: {
|
|
95
|
-
type: [String, Array]
|
|
96
|
-
}
|
|
97
|
-
};
|
|
3
|
+
var StorageType = /* @__PURE__ */ ((StorageType2) => {
|
|
4
|
+
StorageType2["local"] = "local";
|
|
5
|
+
StorageType2["session"] = "session";
|
|
6
|
+
return StorageType2;
|
|
7
|
+
})(StorageType || {});
|
|
98
8
|
var Strategy = /* @__PURE__ */ ((Strategy2) => {
|
|
99
9
|
Strategy2["absolute"] = "absolute";
|
|
100
10
|
Strategy2["fixed"] = "fixed";
|
|
@@ -136,143 +46,16 @@ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
|
|
|
136
46
|
ActionTag2["button"] = "button";
|
|
137
47
|
return ActionTag2;
|
|
138
48
|
})(ActionTag || {});
|
|
139
|
-
var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
|
|
140
|
-
AnchorTarget2["_blank"] = "_blank";
|
|
141
|
-
AnchorTarget2["_self"] = "_self";
|
|
142
|
-
AnchorTarget2["_parent"] = "_parent";
|
|
143
|
-
AnchorTarget2["_top"] = "_top";
|
|
144
|
-
return AnchorTarget2;
|
|
145
|
-
})(AnchorTarget || {});
|
|
146
49
|
const INJECTION_KEY_VOLVER = Symbol.for("volver");
|
|
147
|
-
const INJECTION_KEY_BUTTON_GROUP = Symbol.for(
|
|
50
|
+
const INJECTION_KEY_BUTTON_GROUP = Symbol.for(
|
|
51
|
+
"buttonGroup"
|
|
52
|
+
);
|
|
148
53
|
const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
|
|
149
54
|
"dropdownTrigger"
|
|
150
55
|
);
|
|
151
56
|
const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
|
|
152
57
|
"dropdownAction"
|
|
153
58
|
);
|
|
154
|
-
function useVolver() {
|
|
155
|
-
return inject(INJECTION_KEY_VOLVER);
|
|
156
|
-
}
|
|
157
|
-
function useModifiers(prefix, modifiers, others) {
|
|
158
|
-
return computed(() => {
|
|
159
|
-
const toReturn = {
|
|
160
|
-
[prefix]: true
|
|
161
|
-
};
|
|
162
|
-
const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
|
|
163
|
-
if (modifiersArray) {
|
|
164
|
-
if (Array.isArray(modifiersArray)) {
|
|
165
|
-
modifiersArray.forEach((modifier) => {
|
|
166
|
-
if (modifier) {
|
|
167
|
-
toReturn[`${prefix}--${modifier}`] = true;
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
if (others) {
|
|
173
|
-
Object.keys(others.value).forEach((key) => {
|
|
174
|
-
toReturn[`${prefix}--${key}`] = unref(others.value[key]);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
return toReturn;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
const __default__$2 = {
|
|
181
|
-
name: "VvIcon"
|
|
182
|
-
};
|
|
183
|
-
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
184
|
-
...__default__$2,
|
|
185
|
-
props: VvIconProps,
|
|
186
|
-
setup(__props) {
|
|
187
|
-
const props = __props;
|
|
188
|
-
const hasRotate = computed(() => {
|
|
189
|
-
if (typeof props.rotate === "string") {
|
|
190
|
-
return parseFloat(props.rotate);
|
|
191
|
-
}
|
|
192
|
-
return props.rotate;
|
|
193
|
-
});
|
|
194
|
-
const show = ref(true);
|
|
195
|
-
const volver = useVolver();
|
|
196
|
-
const { modifiers } = toRefs(props);
|
|
197
|
-
const bemCssClasses = useModifiers("vv-icon", modifiers);
|
|
198
|
-
const provider = computed(() => {
|
|
199
|
-
return props.provider || (volver == null ? void 0 : volver.iconsProvider);
|
|
200
|
-
});
|
|
201
|
-
const icon = computed(() => {
|
|
202
|
-
const name = props.name ?? "";
|
|
203
|
-
const iconName = `@${provider.value}:${props.prefix}:${name}`;
|
|
204
|
-
if (iconExists(iconName)) {
|
|
205
|
-
return iconName;
|
|
206
|
-
}
|
|
207
|
-
const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
|
|
208
|
-
(iconsCollection2) => {
|
|
209
|
-
const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
|
|
210
|
-
return iconExists(icon2);
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
if (iconsCollection) {
|
|
214
|
-
return `@${provider.value}:${iconsCollection.prefix}:${name}`;
|
|
215
|
-
}
|
|
216
|
-
return name;
|
|
217
|
-
});
|
|
218
|
-
function getSvgContent(svg) {
|
|
219
|
-
let dom;
|
|
220
|
-
if (typeof window === "undefined") {
|
|
221
|
-
const { JSDOM } = require("jsdom");
|
|
222
|
-
dom = new JSDOM().window;
|
|
223
|
-
}
|
|
224
|
-
const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
|
|
225
|
-
const svgDomString = domParser.parseFromString(svg, "text/html");
|
|
226
|
-
const svgEl = svgDomString.querySelector("svg");
|
|
227
|
-
return svgEl;
|
|
228
|
-
}
|
|
229
|
-
function addIconFromSvg(svg) {
|
|
230
|
-
const svgContentEl = getSvgContent(svg);
|
|
231
|
-
const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
|
|
232
|
-
if (svgContentEl && svgContent) {
|
|
233
|
-
addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
|
|
234
|
-
body: svgContent,
|
|
235
|
-
// Set height and width from svg content
|
|
236
|
-
height: svgContentEl.viewBox.baseVal.height,
|
|
237
|
-
width: svgContentEl.viewBox.baseVal.width
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
if (volver) {
|
|
242
|
-
if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
|
|
243
|
-
show.value = false;
|
|
244
|
-
volver.fetchIcon(props.src).then((svg) => {
|
|
245
|
-
if (svg) {
|
|
246
|
-
addIconFromSvg(svg);
|
|
247
|
-
show.value = true;
|
|
248
|
-
}
|
|
249
|
-
}).catch((e) => {
|
|
250
|
-
throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (props.svg) {
|
|
255
|
-
addIconFromSvg(props.svg);
|
|
256
|
-
}
|
|
257
|
-
return (_ctx, _cache) => {
|
|
258
|
-
return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
|
|
259
|
-
key: 0,
|
|
260
|
-
class: unref(bemCssClasses)
|
|
261
|
-
}, {
|
|
262
|
-
inline: _ctx.inline,
|
|
263
|
-
width: _ctx.width,
|
|
264
|
-
height: _ctx.height,
|
|
265
|
-
horizontalFlip: _ctx.horizontalFlip,
|
|
266
|
-
verticalFlip: _ctx.verticalFlip,
|
|
267
|
-
flip: _ctx.flip,
|
|
268
|
-
rotate: unref(hasRotate),
|
|
269
|
-
color: _ctx.color,
|
|
270
|
-
onLoad: _ctx.onLoad,
|
|
271
|
-
icon: unref(icon)
|
|
272
|
-
}), null, 16, ["class"])) : createCommentVNode("", true);
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
59
|
const LinkProps = {
|
|
277
60
|
/**
|
|
278
61
|
* The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
|
|
@@ -288,10 +71,7 @@ const LinkProps = {
|
|
|
288
71
|
/**
|
|
289
72
|
* Anchor target
|
|
290
73
|
*/
|
|
291
|
-
target:
|
|
292
|
-
type: String,
|
|
293
|
-
validator: (value) => Object.values(AnchorTarget).includes(value)
|
|
294
|
-
},
|
|
74
|
+
target: String,
|
|
295
75
|
/**
|
|
296
76
|
* Anchor rel
|
|
297
77
|
*/
|
|
@@ -304,7 +84,10 @@ const LoadingProps = {
|
|
|
304
84
|
/**
|
|
305
85
|
* Loading status
|
|
306
86
|
*/
|
|
307
|
-
loading:
|
|
87
|
+
loading: {
|
|
88
|
+
type: Boolean,
|
|
89
|
+
default: false
|
|
90
|
+
},
|
|
308
91
|
/**
|
|
309
92
|
* Loading label
|
|
310
93
|
*/
|
|
@@ -317,44 +100,65 @@ const DisabledProps = {
|
|
|
317
100
|
/**
|
|
318
101
|
* Whether the form control is disabled
|
|
319
102
|
*/
|
|
320
|
-
disabled:
|
|
103
|
+
disabled: {
|
|
104
|
+
type: Boolean,
|
|
105
|
+
default: false
|
|
106
|
+
}
|
|
321
107
|
};
|
|
322
108
|
const ActiveProps = {
|
|
323
109
|
/**
|
|
324
110
|
* Whether the item is active
|
|
325
111
|
*/
|
|
326
|
-
active:
|
|
112
|
+
active: {
|
|
113
|
+
type: Boolean,
|
|
114
|
+
default: false
|
|
115
|
+
}
|
|
327
116
|
};
|
|
328
117
|
const CurrentProps = {
|
|
329
118
|
/**
|
|
330
119
|
* Whether the item is current
|
|
331
120
|
*/
|
|
332
|
-
current:
|
|
121
|
+
current: {
|
|
122
|
+
type: Boolean,
|
|
123
|
+
default: false
|
|
124
|
+
}
|
|
333
125
|
};
|
|
334
126
|
const PressedProps = {
|
|
335
127
|
/**
|
|
336
128
|
* Whether the item is pressed
|
|
337
129
|
*/
|
|
338
|
-
pressed:
|
|
130
|
+
pressed: {
|
|
131
|
+
type: Boolean,
|
|
132
|
+
default: false
|
|
133
|
+
}
|
|
339
134
|
};
|
|
340
135
|
const LabelProps = {
|
|
341
136
|
/**
|
|
342
137
|
* The item label
|
|
343
138
|
*/
|
|
344
|
-
label:
|
|
139
|
+
label: {
|
|
140
|
+
type: [String, Number],
|
|
141
|
+
default: void 0
|
|
142
|
+
}
|
|
345
143
|
};
|
|
346
144
|
const ModifiersProps = {
|
|
347
145
|
/**
|
|
348
146
|
* Component BEM modifiers
|
|
349
147
|
*/
|
|
350
|
-
modifiers:
|
|
148
|
+
modifiers: {
|
|
149
|
+
type: [String, Array],
|
|
150
|
+
default: void 0
|
|
151
|
+
}
|
|
351
152
|
};
|
|
352
|
-
|
|
153
|
+
const IconProps = {
|
|
353
154
|
/**
|
|
354
155
|
* VvIcon name or props
|
|
355
156
|
* @see VVIcon
|
|
356
157
|
*/
|
|
357
|
-
icon: {
|
|
158
|
+
icon: {
|
|
159
|
+
type: [String, Object],
|
|
160
|
+
default: void 0
|
|
161
|
+
},
|
|
358
162
|
/**
|
|
359
163
|
* VvIcon position
|
|
360
164
|
*/
|
|
@@ -363,7 +167,7 @@ const ModifiersProps = {
|
|
|
363
167
|
default: Position.before,
|
|
364
168
|
validation: (value) => Object.values(Position).includes(value)
|
|
365
169
|
}
|
|
366
|
-
}
|
|
170
|
+
};
|
|
367
171
|
const UnselectableProps = {
|
|
368
172
|
/**
|
|
369
173
|
* If true the input will be unselectable
|
|
@@ -398,7 +202,8 @@ const IdProps = {
|
|
|
398
202
|
* Dropdown show / hide transition name
|
|
399
203
|
*/
|
|
400
204
|
transitionName: {
|
|
401
|
-
type: String
|
|
205
|
+
type: String,
|
|
206
|
+
default: void 0
|
|
402
207
|
},
|
|
403
208
|
/**
|
|
404
209
|
* Offset of the dropdown from the trigger
|
|
@@ -466,7 +271,8 @@ const IdProps = {
|
|
|
466
271
|
* Set dropdown width to the same as the trigger
|
|
467
272
|
*/
|
|
468
273
|
triggerWidth: {
|
|
469
|
-
type: Boolean
|
|
274
|
+
type: Boolean,
|
|
275
|
+
default: false
|
|
470
276
|
}
|
|
471
277
|
});
|
|
472
278
|
const ActionProps = {
|
|
@@ -490,56 +296,204 @@ const ActionProps = {
|
|
|
490
296
|
ariaLabel: {
|
|
491
297
|
type: String,
|
|
492
298
|
default: void 0
|
|
299
|
+
},
|
|
300
|
+
/**
|
|
301
|
+
* Default tag for the action
|
|
302
|
+
*/
|
|
303
|
+
defaultTag: {
|
|
304
|
+
type: String,
|
|
305
|
+
default: ActionTag.button
|
|
493
306
|
}
|
|
494
307
|
};
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
(
|
|
524
|
-
if (
|
|
525
|
-
|
|
308
|
+
({
|
|
309
|
+
storageType: {
|
|
310
|
+
type: String,
|
|
311
|
+
default: StorageType.local,
|
|
312
|
+
validator: (value) => Object.values(StorageType).includes(value)
|
|
313
|
+
},
|
|
314
|
+
storageKey: String
|
|
315
|
+
});
|
|
316
|
+
function useGroupStateInject(groupKey) {
|
|
317
|
+
const group = inject(groupKey, void 0);
|
|
318
|
+
const isInGroup = computed(() => group !== void 0);
|
|
319
|
+
function getGroupOrLocalRef(propName, props, emit) {
|
|
320
|
+
const groupPropValue = group == null ? void 0 : group[propName];
|
|
321
|
+
if (groupPropValue) {
|
|
322
|
+
return computed({
|
|
323
|
+
get() {
|
|
324
|
+
return groupPropValue.value;
|
|
325
|
+
},
|
|
326
|
+
set(value) {
|
|
327
|
+
groupPropValue.value = value;
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
const propRef = toRef(props, propName);
|
|
332
|
+
return computed({
|
|
333
|
+
get() {
|
|
334
|
+
return propRef.value;
|
|
335
|
+
},
|
|
336
|
+
set(value) {
|
|
337
|
+
if (emit) {
|
|
338
|
+
emit(`update:${propName}`, value);
|
|
526
339
|
}
|
|
527
340
|
}
|
|
528
|
-
);
|
|
529
|
-
const pressed = computed(() => {
|
|
530
|
-
return props.pressed || (dropdownExpanded == null ? void 0 : dropdownExpanded.value);
|
|
531
341
|
});
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
342
|
+
}
|
|
343
|
+
return {
|
|
344
|
+
group,
|
|
345
|
+
isInGroup,
|
|
346
|
+
getGroupOrLocalRef
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
const VvButtonEvents = ["update:modelValue"];
|
|
350
|
+
const VvButtonProps = {
|
|
351
|
+
...ActionProps,
|
|
352
|
+
...IdProps,
|
|
353
|
+
...ModifiersProps,
|
|
354
|
+
...UnselectableProps,
|
|
355
|
+
...LoadingProps,
|
|
356
|
+
...IconProps,
|
|
357
|
+
/**
|
|
358
|
+
* Button icon position
|
|
359
|
+
*/
|
|
360
|
+
iconPosition: {
|
|
361
|
+
type: String,
|
|
362
|
+
default: Side.left,
|
|
363
|
+
validator: (value) => Object.values(Side).includes(value)
|
|
364
|
+
},
|
|
365
|
+
/**
|
|
366
|
+
* Loading icon
|
|
367
|
+
*/
|
|
368
|
+
loadingIcon: { type: String, default: "eos-icons:bubble-loading" },
|
|
369
|
+
/**
|
|
370
|
+
* Enable button toggle
|
|
371
|
+
*/
|
|
372
|
+
toggle: {
|
|
373
|
+
type: Boolean,
|
|
374
|
+
default: false
|
|
375
|
+
},
|
|
376
|
+
/**
|
|
377
|
+
* Button toggle value
|
|
378
|
+
*/
|
|
379
|
+
value: {
|
|
380
|
+
type: [String, Number, Boolean],
|
|
381
|
+
default: void 0
|
|
382
|
+
},
|
|
383
|
+
/**
|
|
384
|
+
* Value associated with the unchecked state
|
|
385
|
+
*/
|
|
386
|
+
uncheckedValue: {
|
|
387
|
+
type: [String, Number, Boolean],
|
|
388
|
+
default: void 0
|
|
389
|
+
},
|
|
390
|
+
/**
|
|
391
|
+
* Button toggle model value
|
|
392
|
+
*/
|
|
393
|
+
modelValue: {
|
|
394
|
+
type: [String, Number, Boolean],
|
|
395
|
+
default: void 0
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
function useGroupProps(props, emit) {
|
|
399
|
+
const { group, isInGroup, getGroupOrLocalRef } = useGroupStateInject(INJECTION_KEY_BUTTON_GROUP);
|
|
400
|
+
const { id, iconPosition, icon, label, pressed } = toRefs(props);
|
|
401
|
+
const modelValue = getGroupOrLocalRef("modelValue", props, emit);
|
|
402
|
+
const toggle = getGroupOrLocalRef("toggle", props);
|
|
403
|
+
const unselectable = getGroupOrLocalRef("unselectable", props);
|
|
404
|
+
const multiple = computed(() => (group == null ? void 0 : group.multiple.value) ?? false);
|
|
405
|
+
const modifiers = computed(() => {
|
|
406
|
+
let localModifiers = props.modifiers;
|
|
407
|
+
let groupModifiers = group == null ? void 0 : group.modifiers.value;
|
|
408
|
+
const toReturn = /* @__PURE__ */ new Set();
|
|
409
|
+
if (localModifiers) {
|
|
410
|
+
if (!Array.isArray(localModifiers)) {
|
|
411
|
+
localModifiers = localModifiers.split(" ");
|
|
412
|
+
}
|
|
413
|
+
localModifiers.forEach((modifier) => toReturn.add(modifier));
|
|
414
|
+
}
|
|
415
|
+
if (groupModifiers) {
|
|
416
|
+
if (!Array.isArray(groupModifiers)) {
|
|
417
|
+
groupModifiers = groupModifiers.split(" ");
|
|
418
|
+
}
|
|
419
|
+
groupModifiers.forEach((modifier) => toReturn.add(modifier));
|
|
420
|
+
}
|
|
421
|
+
return Array.from(toReturn);
|
|
422
|
+
});
|
|
423
|
+
const disabled = computed(
|
|
424
|
+
() => Boolean(props.disabled || (group == null ? void 0 : group.disabled.value))
|
|
425
|
+
);
|
|
426
|
+
return {
|
|
427
|
+
// group props
|
|
428
|
+
group,
|
|
429
|
+
isInGroup,
|
|
430
|
+
modelValue,
|
|
431
|
+
toggle,
|
|
432
|
+
unselectable,
|
|
433
|
+
multiple,
|
|
434
|
+
modifiers,
|
|
435
|
+
disabled,
|
|
436
|
+
// local props
|
|
437
|
+
id,
|
|
438
|
+
pressed,
|
|
439
|
+
iconPosition,
|
|
440
|
+
icon,
|
|
441
|
+
label
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
const VvActionEvents = ["click", "mouseover", "mouseleave"];
|
|
445
|
+
const VvActionProps = ActionProps;
|
|
446
|
+
function useVolver() {
|
|
447
|
+
return inject(INJECTION_KEY_VOLVER);
|
|
448
|
+
}
|
|
449
|
+
function useInjectedDropdownTrigger() {
|
|
450
|
+
return inject(INJECTION_KEY_DROPDOWN_TRIGGER, {});
|
|
451
|
+
}
|
|
452
|
+
function useInjectedDropdownAction() {
|
|
453
|
+
return inject(INJECTION_KEY_DROPDOWN_ACTION, {});
|
|
454
|
+
}
|
|
455
|
+
const __default__$2 = {
|
|
456
|
+
name: "VvAction"
|
|
457
|
+
};
|
|
458
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
459
|
+
...__default__$2,
|
|
460
|
+
props: VvActionProps,
|
|
461
|
+
emits: VvActionEvents,
|
|
462
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
463
|
+
const props = __props;
|
|
464
|
+
const emit = __emit;
|
|
465
|
+
const instance = getCurrentInstance();
|
|
466
|
+
const volver = useVolver();
|
|
467
|
+
const element = ref(null);
|
|
468
|
+
__expose({ $el: element });
|
|
469
|
+
const {
|
|
470
|
+
reference: dropdownTriggerReference,
|
|
471
|
+
bus: dropdownEventBus,
|
|
472
|
+
aria: dropdownAria,
|
|
473
|
+
expanded: dropdownExpanded
|
|
474
|
+
} = useInjectedDropdownTrigger();
|
|
475
|
+
watch(
|
|
476
|
+
() => element.value,
|
|
477
|
+
(newValue) => {
|
|
478
|
+
if (dropdownTriggerReference) {
|
|
479
|
+
dropdownTriggerReference.value = newValue;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
);
|
|
483
|
+
const pressed = computed(() => {
|
|
484
|
+
return props.pressed || (dropdownExpanded == null ? void 0 : dropdownExpanded.value);
|
|
485
|
+
});
|
|
486
|
+
const { role } = useInjectedDropdownAction();
|
|
487
|
+
const hasTag = computed(() => {
|
|
488
|
+
switch (true) {
|
|
489
|
+
case props.disabled:
|
|
490
|
+
return ActionTag.button;
|
|
537
491
|
case props.to !== void 0:
|
|
538
492
|
return (volver == null ? void 0 : volver.nuxt) ? ActionTag.nuxtLink : ActionTag.routerLink;
|
|
539
493
|
case props.href !== void 0:
|
|
540
494
|
return ActionTag.a;
|
|
541
495
|
default:
|
|
542
|
-
return
|
|
496
|
+
return props.defaultTag;
|
|
543
497
|
}
|
|
544
498
|
});
|
|
545
499
|
const hasProps = computed(() => {
|
|
@@ -564,30 +518,44 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
564
518
|
to: props.to,
|
|
565
519
|
target: props.target
|
|
566
520
|
};
|
|
567
|
-
|
|
521
|
+
case ActionTag.button:
|
|
568
522
|
return {
|
|
569
523
|
...toReturn,
|
|
570
524
|
type: props.type,
|
|
571
525
|
disabled: props.disabled
|
|
572
526
|
};
|
|
527
|
+
default:
|
|
528
|
+
return toReturn;
|
|
573
529
|
}
|
|
574
530
|
});
|
|
575
|
-
|
|
531
|
+
function onClick(e) {
|
|
532
|
+
var _a;
|
|
576
533
|
if (props.disabled) {
|
|
577
534
|
e.preventDefault();
|
|
578
535
|
return;
|
|
579
536
|
}
|
|
537
|
+
if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onClick) {
|
|
538
|
+
emit("click", e);
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
580
541
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
542
|
+
}
|
|
543
|
+
function onMouseover(e) {
|
|
544
|
+
var _a;
|
|
545
|
+
if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
|
|
546
|
+
emit("mouseover", e);
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
584
549
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
550
|
+
}
|
|
551
|
+
function onMouseleave(e) {
|
|
552
|
+
var _a;
|
|
553
|
+
if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
|
|
554
|
+
emit("mouseleave", e);
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
588
557
|
dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
|
|
589
|
-
|
|
590
|
-
};
|
|
558
|
+
}
|
|
591
559
|
return (_ctx, _cache) => {
|
|
592
560
|
return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
|
|
593
561
|
ref_key: "element",
|
|
@@ -604,18 +572,163 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
604
572
|
}), {
|
|
605
573
|
default: withCtx(() => [
|
|
606
574
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
607
|
-
createTextVNode(
|
|
575
|
+
createTextVNode(
|
|
576
|
+
toDisplayString(_ctx.label),
|
|
577
|
+
1
|
|
578
|
+
/* TEXT */
|
|
579
|
+
)
|
|
608
580
|
])
|
|
609
581
|
]),
|
|
610
582
|
_: 3
|
|
583
|
+
/* FORWARDED */
|
|
611
584
|
}, 16, ["class"]);
|
|
612
585
|
};
|
|
613
586
|
}
|
|
614
587
|
});
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
588
|
+
const VvIconPropsDefaults = {
|
|
589
|
+
prefix: "normal"
|
|
590
|
+
/* normal */
|
|
591
|
+
};
|
|
592
|
+
function useModifiers(prefix, modifiers, others) {
|
|
593
|
+
return computed(() => {
|
|
594
|
+
const toReturn = {
|
|
595
|
+
[prefix]: true
|
|
596
|
+
};
|
|
597
|
+
const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
|
|
598
|
+
if (modifiersArray) {
|
|
599
|
+
if (Array.isArray(modifiersArray)) {
|
|
600
|
+
modifiersArray.forEach((modifier) => {
|
|
601
|
+
if (modifier) {
|
|
602
|
+
toReturn[`${prefix}--${modifier}`] = true;
|
|
603
|
+
}
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
if (others) {
|
|
608
|
+
Object.keys(others.value).forEach((key) => {
|
|
609
|
+
toReturn[`${prefix}--${key}`] = unref(others.value[key]);
|
|
610
|
+
});
|
|
611
|
+
}
|
|
612
|
+
return toReturn;
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
const __default__$1 = {
|
|
616
|
+
name: "VvIcon"
|
|
617
|
+
};
|
|
618
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
619
|
+
...__default__$1,
|
|
620
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
621
|
+
name: {},
|
|
622
|
+
color: {},
|
|
623
|
+
width: {},
|
|
624
|
+
height: {},
|
|
625
|
+
provider: {},
|
|
626
|
+
prefix: {},
|
|
627
|
+
src: {},
|
|
628
|
+
horizontalFlip: { type: Boolean },
|
|
629
|
+
verticalFlip: { type: Boolean },
|
|
630
|
+
flip: {},
|
|
631
|
+
mode: {},
|
|
632
|
+
inline: { type: Boolean },
|
|
633
|
+
rotate: {},
|
|
634
|
+
onLoad: { type: Function },
|
|
635
|
+
svg: {},
|
|
636
|
+
modifiers: {}
|
|
637
|
+
}, VvIconPropsDefaults),
|
|
638
|
+
setup(__props) {
|
|
639
|
+
const props = __props;
|
|
640
|
+
const hasRotate = computed(() => {
|
|
641
|
+
if (typeof props.rotate === "string") {
|
|
642
|
+
return Number.parseFloat(props.rotate);
|
|
643
|
+
}
|
|
644
|
+
return props.rotate;
|
|
645
|
+
});
|
|
646
|
+
const show = ref(true);
|
|
647
|
+
const volver = useVolver();
|
|
648
|
+
const { modifiers } = toRefs(props);
|
|
649
|
+
const bemCssClasses = useModifiers("vv-icon", modifiers);
|
|
650
|
+
const provider = computed(() => {
|
|
651
|
+
return props.provider || (volver == null ? void 0 : volver.iconsProvider);
|
|
652
|
+
});
|
|
653
|
+
const icon = computed(() => {
|
|
654
|
+
const name = props.name ?? "";
|
|
655
|
+
const iconName = `@${provider.value}:${props.prefix}:${name}`;
|
|
656
|
+
if (iconExists(iconName)) {
|
|
657
|
+
return iconName;
|
|
658
|
+
}
|
|
659
|
+
const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
|
|
660
|
+
(iconsCollection2) => {
|
|
661
|
+
const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
|
|
662
|
+
return iconExists(icon2);
|
|
663
|
+
}
|
|
664
|
+
);
|
|
665
|
+
if (iconsCollection) {
|
|
666
|
+
return `@${provider.value}:${iconsCollection.prefix}:${name}`;
|
|
667
|
+
}
|
|
668
|
+
return name;
|
|
669
|
+
});
|
|
670
|
+
function getSvgContent(svg) {
|
|
671
|
+
let dom;
|
|
672
|
+
if (typeof window === "undefined") {
|
|
673
|
+
const { JSDOM } = require("jsdom");
|
|
674
|
+
dom = new JSDOM().window;
|
|
675
|
+
}
|
|
676
|
+
const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
|
|
677
|
+
const svgDomString = domParser.parseFromString(svg, "text/html");
|
|
678
|
+
const svgEl = svgDomString.querySelector("svg");
|
|
679
|
+
return svgEl;
|
|
680
|
+
}
|
|
681
|
+
function addIconFromSvg(svg) {
|
|
682
|
+
const svgContentEl = getSvgContent(svg);
|
|
683
|
+
const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
|
|
684
|
+
if (svgContentEl && svgContent) {
|
|
685
|
+
addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
|
|
686
|
+
body: svgContent,
|
|
687
|
+
// Set height and width from svg content
|
|
688
|
+
height: svgContentEl.viewBox.baseVal.height,
|
|
689
|
+
width: svgContentEl.viewBox.baseVal.width
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
if (volver) {
|
|
694
|
+
if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
|
|
695
|
+
show.value = false;
|
|
696
|
+
volver.fetchIcon(props.src).then((svg) => {
|
|
697
|
+
if (svg) {
|
|
698
|
+
addIconFromSvg(svg);
|
|
699
|
+
show.value = true;
|
|
700
|
+
}
|
|
701
|
+
}).catch((e) => {
|
|
702
|
+
throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
if (props.svg) {
|
|
707
|
+
addIconFromSvg(props.svg);
|
|
708
|
+
}
|
|
709
|
+
return (_ctx, _cache) => {
|
|
710
|
+
return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
|
|
711
|
+
key: 0,
|
|
712
|
+
class: unref(bemCssClasses)
|
|
713
|
+
}, {
|
|
714
|
+
inline: _ctx.inline,
|
|
715
|
+
width: _ctx.width,
|
|
716
|
+
height: _ctx.height,
|
|
717
|
+
horizontalFlip: _ctx.horizontalFlip,
|
|
718
|
+
verticalFlip: _ctx.verticalFlip,
|
|
719
|
+
flip: _ctx.flip,
|
|
720
|
+
rotate: unref(hasRotate),
|
|
721
|
+
color: _ctx.color,
|
|
722
|
+
onLoad: _ctx.onLoad,
|
|
723
|
+
icon: unref(icon)
|
|
724
|
+
}), null, 16, ["class"])) : createCommentVNode("v-if", true);
|
|
725
|
+
};
|
|
618
726
|
}
|
|
727
|
+
});
|
|
728
|
+
function useUniqueId(id) {
|
|
729
|
+
return computed(() => String((id == null ? void 0 : id.value) || useId()));
|
|
730
|
+
}
|
|
731
|
+
function equals(obj1, obj2, field) {
|
|
619
732
|
return deepEquals(obj1, obj2);
|
|
620
733
|
}
|
|
621
734
|
function deepEquals(a, b) {
|
|
@@ -627,32 +740,36 @@ function deepEquals(a, b) {
|
|
|
627
740
|
let i, length, key;
|
|
628
741
|
if (arrA && arrB) {
|
|
629
742
|
length = a.length;
|
|
630
|
-
if (length
|
|
743
|
+
if (length !== b.length)
|
|
631
744
|
return false;
|
|
632
|
-
for (i = length; i-- !== 0; )
|
|
745
|
+
for (i = length; i-- !== 0; ) {
|
|
633
746
|
if (!deepEquals(a[i], b[i]))
|
|
634
747
|
return false;
|
|
748
|
+
}
|
|
635
749
|
return true;
|
|
636
750
|
}
|
|
637
|
-
if (arrA
|
|
751
|
+
if (arrA !== arrB)
|
|
638
752
|
return false;
|
|
639
|
-
const dateA = a instanceof Date
|
|
640
|
-
|
|
753
|
+
const dateA = a instanceof Date;
|
|
754
|
+
const dateB = b instanceof Date;
|
|
755
|
+
if (dateA !== dateB)
|
|
641
756
|
return false;
|
|
642
757
|
if (dateA && dateB)
|
|
643
|
-
return a.getTime()
|
|
644
|
-
const regexpA = a instanceof RegExp
|
|
645
|
-
|
|
758
|
+
return a.getTime() === b.getTime();
|
|
759
|
+
const regexpA = a instanceof RegExp;
|
|
760
|
+
const regexpB = b instanceof RegExp;
|
|
761
|
+
if (regexpA !== regexpB)
|
|
646
762
|
return false;
|
|
647
763
|
if (regexpA && regexpB)
|
|
648
|
-
return a.toString()
|
|
764
|
+
return a.toString() === b.toString();
|
|
649
765
|
const keys = Object.keys(a);
|
|
650
766
|
length = keys.length;
|
|
651
767
|
if (length !== Object.keys(b).length)
|
|
652
768
|
return false;
|
|
653
|
-
for (i = length; i-- !== 0; )
|
|
769
|
+
for (i = length; i-- !== 0; ) {
|
|
654
770
|
if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
|
|
655
771
|
return false;
|
|
772
|
+
}
|
|
656
773
|
for (i = length; i-- !== 0; ) {
|
|
657
774
|
key = keys[i];
|
|
658
775
|
if (!deepEquals(a[key], b[key]))
|
|
@@ -660,26 +777,7 @@ function deepEquals(a, b) {
|
|
|
660
777
|
}
|
|
661
778
|
return true;
|
|
662
779
|
}
|
|
663
|
-
return a
|
|
664
|
-
}
|
|
665
|
-
function resolveFieldData(data, field) {
|
|
666
|
-
if (data && Object.keys(data).length && field) {
|
|
667
|
-
if (field.indexOf(".") === -1) {
|
|
668
|
-
return data[field];
|
|
669
|
-
} else {
|
|
670
|
-
const fields = field.split(".");
|
|
671
|
-
let value = data;
|
|
672
|
-
for (let i = 0, len = fields.length; i < len; ++i) {
|
|
673
|
-
if (data == null) {
|
|
674
|
-
return null;
|
|
675
|
-
}
|
|
676
|
-
value = value[fields[i]];
|
|
677
|
-
}
|
|
678
|
-
return value;
|
|
679
|
-
}
|
|
680
|
-
} else {
|
|
681
|
-
return null;
|
|
682
|
-
}
|
|
780
|
+
return Number.isNaN(a) && Number.isNaN(b);
|
|
683
781
|
}
|
|
684
782
|
function contains(value, list) {
|
|
685
783
|
if (value != null && list && list.length) {
|
|
@@ -691,146 +789,41 @@ function contains(value, list) {
|
|
|
691
789
|
}
|
|
692
790
|
return false;
|
|
693
791
|
}
|
|
694
|
-
function
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
const group = inject(groupKey, void 0);
|
|
699
|
-
const isInGroup = computed(() => !isEmpty(group));
|
|
700
|
-
function getGroupOrLocalRef(propName, props, emit) {
|
|
701
|
-
if (group == null ? void 0 : group.value) {
|
|
702
|
-
const groupPropValue = unref(group.value)[propName];
|
|
703
|
-
return computed({
|
|
704
|
-
get() {
|
|
705
|
-
return groupPropValue == null ? void 0 : groupPropValue.value;
|
|
706
|
-
},
|
|
707
|
-
set(value) {
|
|
708
|
-
groupPropValue.value = value;
|
|
709
|
-
}
|
|
710
|
-
});
|
|
711
|
-
}
|
|
712
|
-
const propRef = toRef(props, propName);
|
|
713
|
-
return computed({
|
|
714
|
-
get() {
|
|
715
|
-
return propRef.value;
|
|
716
|
-
},
|
|
717
|
-
set(value) {
|
|
718
|
-
if (emit)
|
|
719
|
-
emit(`update:${propName}`, value);
|
|
720
|
-
}
|
|
721
|
-
});
|
|
722
|
-
}
|
|
723
|
-
return {
|
|
724
|
-
group,
|
|
725
|
-
isInGroup,
|
|
726
|
-
getGroupOrLocalRef
|
|
727
|
-
};
|
|
728
|
-
}
|
|
729
|
-
const VvButtonEvents = ["update:modelValue"];
|
|
730
|
-
const VvButtonProps = {
|
|
731
|
-
...ActionProps,
|
|
732
|
-
...IdProps,
|
|
733
|
-
...ModifiersProps,
|
|
734
|
-
...UnselectableProps,
|
|
735
|
-
...LoadingProps,
|
|
736
|
-
/**
|
|
737
|
-
* Button icon
|
|
738
|
-
*/
|
|
739
|
-
icon: [String, Object],
|
|
740
|
-
/**
|
|
741
|
-
* Button icon position
|
|
742
|
-
*/
|
|
743
|
-
iconPosition: {
|
|
744
|
-
type: String,
|
|
745
|
-
default: Side.left,
|
|
746
|
-
validator: (value) => Object.values(Side).includes(value)
|
|
747
|
-
},
|
|
748
|
-
/**
|
|
749
|
-
* Loading icon
|
|
750
|
-
*/
|
|
751
|
-
loadingIcon: { type: String, default: "eos-icons:bubble-loading" },
|
|
752
|
-
/**
|
|
753
|
-
* Enable button toggle
|
|
754
|
-
*/
|
|
755
|
-
toggle: {
|
|
756
|
-
type: Boolean,
|
|
757
|
-
default: false
|
|
758
|
-
},
|
|
759
|
-
/**
|
|
760
|
-
* Button toggle value
|
|
761
|
-
*/
|
|
762
|
-
value: {
|
|
763
|
-
type: [String, Number, Boolean],
|
|
764
|
-
default: void 0
|
|
765
|
-
},
|
|
766
|
-
/**
|
|
767
|
-
* Value associated with the unchecked state
|
|
768
|
-
*/
|
|
769
|
-
uncheckedValue: {
|
|
770
|
-
type: [String, Number, Boolean],
|
|
771
|
-
default: void 0
|
|
772
|
-
},
|
|
773
|
-
/**
|
|
774
|
-
* Button toggle model value
|
|
775
|
-
*/
|
|
776
|
-
modelValue: {
|
|
777
|
-
type: [String, Number, Boolean],
|
|
778
|
-
default: void 0
|
|
779
|
-
}
|
|
780
|
-
};
|
|
781
|
-
function useGroupProps(props, emit) {
|
|
782
|
-
const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(INJECTION_KEY_BUTTON_GROUP);
|
|
783
|
-
const { id, iconPosition, icon, label, pressed } = toRefs(props);
|
|
784
|
-
const modelValue = getGroupOrLocalRef("modelValue", props, emit);
|
|
785
|
-
const toggle = getGroupOrLocalRef("toggle", props);
|
|
786
|
-
const unselectable = getGroupOrLocalRef(
|
|
787
|
-
"unselectable",
|
|
788
|
-
props
|
|
789
|
-
);
|
|
790
|
-
const multiple = computed(() => (group == null ? void 0 : group.value.multiple.value) ?? false);
|
|
791
|
-
const modifiers = computed(() => {
|
|
792
|
-
let localModifiers = props.modifiers;
|
|
793
|
-
let groupModifiers = group == null ? void 0 : group.value.modifiers.value;
|
|
794
|
-
const toReturn = /* @__PURE__ */ new Set();
|
|
795
|
-
if (localModifiers) {
|
|
796
|
-
if (!Array.isArray(localModifiers)) {
|
|
797
|
-
localModifiers = localModifiers.split(" ");
|
|
798
|
-
}
|
|
799
|
-
localModifiers.forEach((modifier) => toReturn.add(modifier));
|
|
800
|
-
}
|
|
801
|
-
if (groupModifiers) {
|
|
802
|
-
if (!Array.isArray(groupModifiers)) {
|
|
803
|
-
groupModifiers = groupModifiers.split(" ");
|
|
804
|
-
}
|
|
805
|
-
groupModifiers.forEach((modifier) => toReturn.add(modifier));
|
|
792
|
+
function useComponentIcon(icon, iconPosition) {
|
|
793
|
+
const hasIcon = computed(() => {
|
|
794
|
+
if (typeof (icon == null ? void 0 : icon.value) === "string") {
|
|
795
|
+
return { name: icon == null ? void 0 : icon.value };
|
|
806
796
|
}
|
|
807
|
-
return
|
|
797
|
+
return icon == null ? void 0 : icon.value;
|
|
808
798
|
});
|
|
809
|
-
const
|
|
810
|
-
() =>
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
799
|
+
const hasIconBefore = computed(
|
|
800
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
|
|
801
|
+
);
|
|
802
|
+
const hasIconAfter = computed(
|
|
803
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
|
|
804
|
+
);
|
|
805
|
+
const hasIconLeft = computed(
|
|
806
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
|
|
807
|
+
);
|
|
808
|
+
const hasIconRight = computed(
|
|
809
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
|
|
810
|
+
);
|
|
811
|
+
const hasIconTop = computed(
|
|
812
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
|
|
813
|
+
);
|
|
814
|
+
const hasIconBottom = computed(
|
|
815
|
+
() => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
|
|
814
816
|
);
|
|
815
817
|
return {
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
modifiers,
|
|
824
|
-
disabled,
|
|
825
|
-
// local props
|
|
826
|
-
id,
|
|
827
|
-
pressed,
|
|
828
|
-
iconPosition,
|
|
829
|
-
icon,
|
|
830
|
-
label
|
|
818
|
+
hasIcon,
|
|
819
|
+
hasIconLeft,
|
|
820
|
+
hasIconRight,
|
|
821
|
+
hasIconTop,
|
|
822
|
+
hasIconBottom,
|
|
823
|
+
hasIconBefore,
|
|
824
|
+
hasIconAfter
|
|
831
825
|
};
|
|
832
826
|
}
|
|
833
|
-
const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
|
|
834
827
|
const _hoisted_1 = {
|
|
835
828
|
key: 1,
|
|
836
829
|
class: "vv-button__label"
|
|
@@ -840,14 +833,16 @@ const _hoisted_2 = {
|
|
|
840
833
|
class: "vv-button__label"
|
|
841
834
|
};
|
|
842
835
|
const __default__ = {
|
|
843
|
-
name: "VvButton"
|
|
836
|
+
name: "VvButton",
|
|
837
|
+
inheritAttrs: false
|
|
844
838
|
};
|
|
845
839
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
846
840
|
...__default__,
|
|
847
841
|
props: VvButtonProps,
|
|
848
842
|
emits: VvButtonEvents,
|
|
849
|
-
setup(__props, { expose: __expose, emit }) {
|
|
843
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
850
844
|
const props = __props;
|
|
845
|
+
const emit = __emit;
|
|
851
846
|
const attrs = useAttrs();
|
|
852
847
|
const slots = useSlots();
|
|
853
848
|
const {
|
|
@@ -882,10 +877,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
882
877
|
"vv-button",
|
|
883
878
|
modifiers,
|
|
884
879
|
computed(() => ({
|
|
885
|
-
reverse: [Side.right, Side.bottom].includes(
|
|
880
|
+
"reverse": [Side.right, Side.bottom].includes(
|
|
886
881
|
iconPosition.value
|
|
887
882
|
),
|
|
888
|
-
column: [Side.top, Side.bottom].includes(
|
|
883
|
+
"column": [Side.top, Side.bottom].includes(
|
|
889
884
|
iconPosition.value
|
|
890
885
|
),
|
|
891
886
|
"icon-only": Boolean(
|
|
@@ -893,13 +888,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
893
888
|
)
|
|
894
889
|
}))
|
|
895
890
|
);
|
|
896
|
-
const
|
|
897
|
-
() => typeof (icon == null ? void 0 : icon.value) === "string" ? { name: icon == null ? void 0 : icon.value } : icon == null ? void 0 : icon.value
|
|
898
|
-
);
|
|
891
|
+
const { hasIcon } = useComponentIcon(icon);
|
|
899
892
|
const toggleValue = computed(() => {
|
|
900
893
|
return props.value !== void 0 ? props.value : name.value;
|
|
901
894
|
});
|
|
902
|
-
const
|
|
895
|
+
const hasListeners = computed(() => {
|
|
896
|
+
if (!toggle.value) {
|
|
897
|
+
return void 0;
|
|
898
|
+
}
|
|
899
|
+
return {
|
|
900
|
+
onClick
|
|
901
|
+
};
|
|
902
|
+
});
|
|
903
|
+
function onClick() {
|
|
903
904
|
if (toggle.value) {
|
|
904
905
|
if (Array.isArray(modelValue.value)) {
|
|
905
906
|
if (contains(toggleValue.value, modelValue.value)) {
|
|
@@ -919,9 +920,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
919
920
|
}
|
|
920
921
|
modelValue.value = toggleValue.value;
|
|
921
922
|
}
|
|
922
|
-
}
|
|
923
|
+
}
|
|
923
924
|
return (_ctx, _cache) => {
|
|
924
|
-
return openBlock(), createBlock(_sfc_main$
|
|
925
|
+
return openBlock(), createBlock(_sfc_main$2, mergeProps({
|
|
926
|
+
...unref(attrs),
|
|
927
|
+
...unref(hasListeners),
|
|
925
928
|
disabled: unref(disabled),
|
|
926
929
|
pressed: unref(pressed),
|
|
927
930
|
active: _ctx.active,
|
|
@@ -935,34 +938,53 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
935
938
|
id: unref(hasId),
|
|
936
939
|
ref_key: "element",
|
|
937
940
|
ref: element,
|
|
938
|
-
class: unref(bemCssClasses)
|
|
939
|
-
onClick
|
|
941
|
+
class: unref(bemCssClasses)
|
|
940
942
|
}), {
|
|
941
943
|
default: withCtx(() => [
|
|
942
944
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
943
945
|
_ctx.loading ? renderSlot(_ctx.$slots, "loading", { key: 0 }, () => [
|
|
944
|
-
_ctx.loadingIcon ? (openBlock(), createBlock(_sfc_main$
|
|
946
|
+
_ctx.loadingIcon ? (openBlock(), createBlock(_sfc_main$1, {
|
|
945
947
|
key: 0,
|
|
946
948
|
class: "vv-button__loading-icon",
|
|
947
949
|
name: _ctx.loadingIcon
|
|
948
|
-
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
949
|
-
_ctx.loadingLabel ? (openBlock(), createElementBlock(
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
950
|
+
}, null, 8, ["name"])) : createCommentVNode("v-if", true),
|
|
951
|
+
_ctx.loadingLabel ? (openBlock(), createElementBlock(
|
|
952
|
+
"span",
|
|
953
|
+
_hoisted_1,
|
|
954
|
+
toDisplayString(_ctx.loadingLabel),
|
|
955
|
+
1
|
|
956
|
+
/* TEXT */
|
|
957
|
+
)) : createCommentVNode("v-if", true)
|
|
958
|
+
]) : (openBlock(), createElementBlock(
|
|
959
|
+
Fragment,
|
|
960
|
+
{ key: 1 },
|
|
961
|
+
[
|
|
962
|
+
renderSlot(_ctx.$slots, "before"),
|
|
963
|
+
unref(hasIcon) ? (openBlock(), createBlock(
|
|
964
|
+
_sfc_main$1,
|
|
965
|
+
mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-button__icon" }),
|
|
966
|
+
null,
|
|
967
|
+
16
|
|
968
|
+
/* FULL_PROPS */
|
|
969
|
+
)) : createCommentVNode("v-if", true),
|
|
970
|
+
unref(label) ? (openBlock(), createElementBlock("span", _hoisted_2, [
|
|
971
|
+
renderSlot(_ctx.$slots, "label", {}, () => [
|
|
972
|
+
createTextVNode(
|
|
973
|
+
toDisplayString(unref(label)),
|
|
974
|
+
1
|
|
975
|
+
/* TEXT */
|
|
976
|
+
)
|
|
977
|
+
])
|
|
978
|
+
])) : createCommentVNode("v-if", true),
|
|
979
|
+
renderSlot(_ctx.$slots, "after")
|
|
980
|
+
],
|
|
981
|
+
64
|
|
982
|
+
/* STABLE_FRAGMENT */
|
|
983
|
+
))
|
|
963
984
|
])
|
|
964
985
|
]),
|
|
965
986
|
_: 3
|
|
987
|
+
/* FORWARDED */
|
|
966
988
|
}, 16, ["id", "class"]);
|
|
967
989
|
};
|
|
968
990
|
}
|