yuyeon 0.3.3 → 0.3.4-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/style.css +1 -1
- package/dist/yuyeon.js +3107 -3080
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/abstract/items.js.map +1 -1
- package/lib/components/alert/YAlert.js +3 -4
- package/lib/components/alert/YAlert.js.map +1 -1
- package/lib/components/alert/index.js.map +1 -1
- package/lib/components/app/YApp.js +2 -2
- package/lib/components/app/YApp.js.map +1 -1
- package/lib/components/app/index.js.map +1 -1
- package/lib/components/badge/YBadge.js +3 -3
- package/lib/components/badge/YBadge.js.map +1 -1
- package/lib/components/badge/YBadge.scss +3 -2
- package/lib/components/badge/index.js.map +1 -1
- package/lib/components/bench/YBench.js +3 -4
- package/lib/components/bench/YBench.js.map +1 -1
- package/lib/components/bench/index.js.map +1 -1
- package/lib/components/button/YButton.js +1 -2
- package/lib/components/button/YButton.js.map +1 -1
- package/lib/components/button/index.js.map +1 -1
- package/lib/components/card/YCard.js.map +1 -1
- package/lib/components/card/YCard.scss +2 -2
- package/lib/components/card/YCardBody.js.map +1 -1
- package/lib/components/card/YCardFooter.js.map +1 -1
- package/lib/components/card/YCardHeader.js.map +1 -1
- package/lib/components/card/index.js.map +1 -1
- package/lib/components/checkbox/YCheckbox.js +1 -2
- package/lib/components/checkbox/YCheckbox.js.map +1 -1
- package/lib/components/checkbox/YInputCheckbox.js +1 -2
- package/lib/components/checkbox/YInputCheckbox.js.map +1 -1
- package/lib/components/checkbox/index.js.map +1 -1
- package/lib/components/chip/YChip.js +1 -2
- package/lib/components/chip/YChip.js.map +1 -1
- package/lib/components/chip/index.js.map +1 -1
- package/lib/components/date-picker/YDateCalendar.js +55 -53
- package/lib/components/date-picker/YDateCalendar.js.map +1 -1
- package/lib/components/date-picker/YDatePicker.js +24 -25
- package/lib/components/date-picker/YDatePicker.js.map +1 -1
- package/lib/components/date-picker/YDatePickerControl.js +19 -20
- package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
- package/lib/components/date-picker/YMonthPicker.js +10 -11
- package/lib/components/date-picker/YMonthPicker.js.map +1 -1
- package/lib/components/date-picker/YYearPicker.js +11 -13
- package/lib/components/date-picker/YYearPicker.js.map +1 -1
- package/lib/components/date-picker/index.js.map +1 -1
- package/lib/components/default-provider/YDefaultProvider.js.map +1 -1
- package/lib/components/default-provider/index.js.map +1 -1
- package/lib/components/dialog/YDialog.js +32 -32
- package/lib/components/dialog/YDialog.js.map +1 -1
- package/lib/components/dialog/index.js.map +1 -1
- package/lib/components/divider/YDivider.js +5 -5
- package/lib/components/divider/YDivider.js.map +1 -1
- package/lib/components/divider/index.js.map +1 -1
- package/lib/components/draggable/YDraggable.js +10 -11
- package/lib/components/draggable/YDraggable.js.map +1 -1
- package/lib/components/draggable/index.js +2 -0
- package/lib/components/draggable/index.js.map +1 -0
- package/lib/components/dropdown/YDropdown.js +16 -17
- package/lib/components/dropdown/YDropdown.js.map +1 -1
- package/lib/components/dropdown/index.js.map +1 -1
- package/lib/components/field-input/YFieldInput.js +42 -40
- package/lib/components/field-input/YFieldInput.js.map +1 -1
- package/lib/components/field-input/index.js.map +1 -1
- package/lib/components/form/YForm.js +12 -14
- package/lib/components/form/YForm.js.map +1 -1
- package/lib/components/form/index.js.map +1 -1
- package/lib/components/hover/YHover.js +9 -8
- package/lib/components/hover/YHover.js.map +1 -1
- package/lib/components/hover/index.js.map +1 -1
- package/lib/components/icon/YIcon.js +2 -4
- package/lib/components/icon/YIcon.js.map +1 -1
- package/lib/components/icon/index.js.map +1 -1
- package/lib/components/icons/YIconCheckbox.js +7 -6
- package/lib/components/icons/YIconCheckbox.js.map +1 -1
- package/lib/components/icons/YIconClear.js +2 -1
- package/lib/components/icons/YIconClear.js.map +1 -1
- package/lib/components/icons/YIconDropdown.js +2 -1
- package/lib/components/icons/YIconDropdown.js.map +1 -1
- package/lib/components/icons/YIconExpand.js +1 -0
- package/lib/components/icons/YIconExpand.js.map +1 -1
- package/lib/components/icons/YIconPageControl.js +7 -6
- package/lib/components/icons/YIconPageControl.js.map +1 -1
- package/lib/components/icons/YIconSort.js +6 -5
- package/lib/components/icons/YIconSort.js.map +1 -1
- package/lib/components/icons/YIconSort.scss +2 -0
- package/lib/components/icons/index.js.map +1 -1
- package/lib/components/img/YImg.js +30 -31
- package/lib/components/img/YImg.js.map +1 -1
- package/lib/components/img/index.js.map +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/YInput.js +1 -2
- package/lib/components/input/YInput.js.map +1 -1
- package/lib/components/input/YInput.scss +10 -9
- package/lib/components/input/index.js.map +1 -1
- package/lib/components/ip-field/YIpv4Field.js +1 -2
- package/lib/components/ip-field/YIpv4Field.js.map +1 -1
- package/lib/components/ip-field/index.js.map +1 -1
- package/lib/components/layer/YLayer.js +4 -3
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/components/layer/active-delay.js.map +1 -1
- package/lib/components/layer/active-stack.js.map +1 -1
- package/lib/components/layer/base.js.map +1 -1
- package/lib/components/layer/content.js.map +1 -1
- package/lib/components/layer/index.js.map +1 -1
- package/lib/components/layer/scroll-strategies.js.map +1 -1
- package/lib/components/list/YList.js +1 -2
- package/lib/components/list/YList.js.map +1 -1
- package/lib/components/list/YListItem.js +1 -2
- package/lib/components/list/YListItem.js.map +1 -1
- package/lib/components/list/index.js.map +1 -1
- package/lib/components/loading/YSpinnerRing.js.map +1 -1
- package/lib/components/loading/index.js.map +1 -1
- package/lib/components/menu/YMenu.js +5 -8
- package/lib/components/menu/YMenu.js.map +1 -1
- package/lib/components/menu/YMenu.scss +3 -4
- package/lib/components/menu/index.js.map +1 -1
- package/lib/components/navigation/YNavigation.js +1 -2
- package/lib/components/navigation/YNavigation.js.map +1 -1
- package/lib/components/navigation/index.js.map +1 -1
- package/lib/components/pagination/YPagination.js +1 -2
- package/lib/components/pagination/YPagination.js.map +1 -1
- package/lib/components/pagination/index.js.map +1 -1
- package/lib/components/panel/YDividePanel.js +1 -2
- package/lib/components/panel/YDividePanel.js.map +1 -1
- package/lib/components/panel/YDividePanel.scss +1 -0
- package/lib/components/panel/index.js.map +1 -1
- package/lib/components/plate/YPlate.js +3 -4
- package/lib/components/plate/YPlate.js.map +1 -1
- package/lib/components/plate/index.js.map +1 -1
- package/lib/components/progress-bar/YProgressBar.js +1 -2
- package/lib/components/progress-bar/YProgressBar.js.map +1 -1
- package/lib/components/progress-bar/index.js.map +1 -1
- package/lib/components/progress-ring/YProgressRing.js +3 -4
- package/lib/components/progress-ring/YProgressRing.js.map +1 -1
- package/lib/components/progress-ring/index.js.map +1 -1
- package/lib/components/radio/YRadio.js +58 -0
- package/lib/components/radio/YRadio.js.map +1 -0
- package/lib/components/radio/YRadio.scss +38 -0
- package/lib/components/radio/YRadioIcon.js +33 -0
- package/lib/components/radio/YRadioIcon.js.map +1 -0
- package/lib/components/radio/YRadioIcon.scss +43 -0
- package/lib/components/radio/index.js +3 -0
- package/lib/components/radio/index.js.map +1 -0
- package/lib/components/select/YSelect.js +41 -43
- package/lib/components/select/YSelect.js.map +1 -1
- package/lib/components/select/index.js.map +1 -1
- package/lib/components/slider/YSlider.js.map +1 -1
- package/lib/components/slider/index.js.map +1 -1
- package/lib/components/slider/slider.js.map +1 -1
- package/lib/components/snackbar/YSnackbar.js +6 -6
- package/lib/components/snackbar/YSnackbar.js.map +1 -1
- package/lib/components/snackbar/index.js.map +1 -1
- package/lib/components/switch/YSwitch.js +1 -2
- package/lib/components/switch/YSwitch.js.map +1 -1
- package/lib/components/switch/index.js.map +1 -1
- package/lib/components/tab/YTab.js +2 -3
- package/lib/components/tab/YTab.js.map +1 -1
- package/lib/components/tab/YTab.scss +1 -1
- package/lib/components/tab/YTabs.js +1 -2
- package/lib/components/tab/YTabs.js.map +1 -1
- package/lib/components/tab/index.js.map +1 -1
- package/lib/components/tab/shared.js.map +1 -1
- package/lib/components/tab/types.js.map +1 -1
- package/lib/components/table/YDataTable.js +8 -6
- package/lib/components/table/YDataTable.js.map +1 -1
- package/lib/components/table/YDataTableBody.js +1 -2
- package/lib/components/table/YDataTableBody.js.map +1 -1
- package/lib/components/table/YDataTableCell.js +1 -2
- package/lib/components/table/YDataTableCell.js.map +1 -1
- package/lib/components/table/YDataTableControl.js +8 -6
- package/lib/components/table/YDataTableControl.js.map +1 -1
- package/lib/components/table/YDataTableControl.scss +10 -0
- package/lib/components/table/YDataTableHead.js +1 -1
- package/lib/components/table/YDataTableHead.js.map +1 -1
- package/lib/components/table/YDataTableLayer.js +1 -2
- package/lib/components/table/YDataTableLayer.js.map +1 -1
- package/lib/components/table/YDataTableLayerRow.js +1 -2
- package/lib/components/table/YDataTableLayerRow.js.map +1 -1
- package/lib/components/table/YDataTableLayerRows.js +1 -2
- package/lib/components/table/YDataTableLayerRows.js.map +1 -1
- package/lib/components/table/YDataTableRow.js +1 -2
- package/lib/components/table/YDataTableRow.js.map +1 -1
- package/lib/components/table/YDataTableServer.js +8 -6
- package/lib/components/table/YDataTableServer.js.map +1 -1
- package/lib/components/table/YTable.js +1 -2
- package/lib/components/table/YTable.js.map +1 -1
- package/lib/components/table/composables/expand.js.map +1 -1
- package/lib/components/table/composables/header.js.map +1 -1
- package/lib/components/table/composables/items.js.map +1 -1
- package/lib/components/table/composables/measure.js +1 -1
- package/lib/components/table/composables/measure.js.map +1 -1
- package/lib/components/table/composables/options.js.map +1 -1
- package/lib/components/table/composables/pagination.js.map +1 -1
- package/lib/components/table/composables/provides.js.map +1 -1
- package/lib/components/table/composables/selection.js.map +1 -1
- package/lib/components/table/composables/sorted-items.js.map +1 -1
- package/lib/components/table/composables/sorting.js.map +1 -1
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/table/types/common.js.map +1 -1
- package/lib/components/table/types/header.js.map +1 -1
- package/lib/components/table/types/index.js.map +1 -1
- package/lib/components/table/types/item.js.map +1 -1
- package/lib/components/table/types/row.js.map +1 -1
- package/lib/components/text-ellipsis/YTextEllipsis.js +1 -2
- package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
- package/lib/components/text-ellipsis/index.js.map +1 -1
- package/lib/components/text-highlighter/YTextHighlighter.js +2 -1
- package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
- package/lib/components/text-highlighter/index.js.map +1 -1
- package/lib/components/text-interpolation/YTi.js +2 -2
- package/lib/components/text-interpolation/YTi.js.map +1 -1
- package/lib/components/text-interpolation/index.js.map +1 -1
- package/lib/components/textarea/YTextarea.js +1 -2
- package/lib/components/textarea/YTextarea.js.map +1 -1
- package/lib/components/textarea/index.js.map +1 -1
- package/lib/components/toggle-button/YToggleButton.js.map +1 -1
- package/lib/components/toggle-button/index.js.map +1 -1
- package/lib/components/tooltip/YTooltip.js +1 -2
- package/lib/components/tooltip/YTooltip.js.map +1 -1
- package/lib/components/tooltip/index.js.map +1 -1
- package/lib/components/transitions/expand-transition.js.map +1 -1
- package/lib/components/transitions/index.js.map +1 -1
- package/lib/components/tree-view/YTreeView.js +1 -2
- package/lib/components/tree-view/YTreeView.js.map +1 -1
- package/lib/components/tree-view/YTreeViewNode.js +7 -4
- package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
- package/lib/components/tree-view/index.js.map +1 -1
- package/lib/components/tree-view/tree-view.js.map +1 -1
- package/lib/components/tree-view/types.js.map +1 -1
- package/lib/components/tree-view/util.js.map +1 -1
- package/lib/composables/choice-link.js.map +1 -1
- package/lib/composables/choice.js.map +1 -1
- package/lib/composables/communication.js.map +1 -1
- package/lib/composables/component.js.map +1 -1
- package/lib/composables/coordinate/arrangement.js.map +1 -1
- package/lib/composables/coordinate/index.js.map +1 -1
- package/lib/composables/coordinate/levitation.js +2 -2
- package/lib/composables/coordinate/levitation.js.map +1 -1
- package/lib/composables/coordinate/types.js.map +1 -1
- package/lib/composables/coordinate/utils/point.js.map +1 -1
- package/lib/composables/date/factory.js.map +1 -1
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/date/setting.js.map +1 -1
- package/lib/composables/date/types.js.map +1 -1
- package/lib/composables/defaults/index.js.map +1 -1
- package/lib/composables/defaults/share.js.map +1 -1
- package/lib/composables/defaults/types.js.map +1 -1
- package/lib/composables/dimension.js.map +1 -1
- package/lib/composables/focus.js.map +1 -1
- package/lib/composables/form.js +5 -5
- package/lib/composables/form.js.map +1 -1
- package/lib/composables/i18n/index.js.map +1 -1
- package/lib/composables/i18n/locale.js.map +1 -1
- package/lib/composables/i18n/rtl.js.map +1 -1
- package/lib/composables/i18n/share.js.map +1 -1
- package/lib/composables/icon.js +1 -2
- package/lib/composables/icon.js.map +1 -1
- package/lib/composables/index.js.map +1 -1
- package/lib/composables/layer-group.js.map +1 -1
- package/lib/composables/layout.js.map +1 -1
- package/lib/composables/list-items.js.map +1 -1
- package/lib/composables/progress.js.map +1 -1
- package/lib/composables/ref.js.map +1 -1
- package/lib/composables/resize-observer.js.map +1 -1
- package/lib/composables/scope.js.map +1 -1
- package/lib/composables/style-color.js +1 -2
- package/lib/composables/style-color.js.map +1 -1
- package/lib/composables/theme/factory.js.map +1 -1
- package/lib/composables/theme/helper.js.map +1 -1
- package/lib/composables/theme/index.js +8 -1
- package/lib/composables/theme/index.js.map +1 -1
- package/lib/composables/theme/setting.js.map +1 -1
- package/lib/composables/theme/types.js.map +1 -1
- package/lib/composables/timing.js.map +1 -1
- package/lib/composables/transition.js.map +1 -1
- package/lib/composables/validation.js +7 -4
- package/lib/composables/validation.js.map +1 -1
- package/lib/composables/vue-router.js.map +1 -1
- package/lib/directives/complement-click/index.js.map +1 -1
- package/lib/directives/index.js +3 -0
- package/lib/directives/index.js.map +1 -0
- package/lib/directives/plate-wave/index.js +2 -2
- package/lib/directives/plate-wave/index.js.map +1 -1
- package/lib/directives/theme-class/index.js +24 -0
- package/lib/directives/theme-class/index.js.map +1 -0
- package/lib/etc/index.js.map +1 -1
- package/lib/i18n/built-in.js.map +1 -1
- package/lib/i18n/config.js.map +1 -1
- package/lib/i18n/types.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/locales/en.js.map +1 -1
- package/lib/locales/index.js.map +1 -1
- package/lib/locales/ko.js.map +1 -1
- package/lib/mixins/di.js.map +1 -1
- package/lib/mixins/rebind-attrs.js +0 -2
- package/lib/mixins/rebind-attrs.js.map +1 -1
- package/lib/styles/_elevation.scss +0 -1
- package/lib/styles/base.scss +3 -1
- package/lib/styles/settings/_elevation.scss +12 -12
- package/lib/styles/settings/_provided.scss +23 -23
- package/lib/styles/theme/dark.scss +3 -3
- package/lib/styles/theme/index.scss +0 -1
- package/lib/styles/theme/light.scss +3 -3
- package/lib/styles/util/_mixin.scss +16 -16
- package/lib/types/index.js.map +1 -1
- package/lib/util/anchor.js.map +1 -1
- package/lib/util/array.js.map +1 -1
- package/lib/util/collection.js.map +1 -1
- package/lib/util/color/apca.js +1 -0
- package/lib/util/color/apca.js.map +1 -1
- package/lib/util/color/const.js.map +1 -1
- package/lib/util/color/contrast/contrast.js.map +1 -1
- package/lib/util/color/conversion.js.map +1 -1
- package/lib/util/color/hct/cam16.js.map +1 -1
- package/lib/util/color/hct/hct-solver.js +6 -6
- package/lib/util/color/hct/hct-solver.js.map +1 -1
- package/lib/util/color/hct/hct.js.map +1 -1
- package/lib/util/color/hct/viewing-conditions.js +6 -4
- package/lib/util/color/hct/viewing-conditions.js.map +1 -1
- package/lib/util/color/index.js +13 -13
- package/lib/util/color/index.js.map +1 -1
- package/lib/util/color/palettes/core-palette.js.map +1 -1
- package/lib/util/color/palettes/tonal-palette.js +3 -3
- package/lib/util/color/palettes/tonal-palette.js.map +1 -1
- package/lib/util/color/types.js.map +1 -1
- package/lib/util/color/utils/math-utils.js +62 -62
- package/lib/util/color/utils/math-utils.js.map +1 -1
- package/lib/util/common.js +28 -13
- package/lib/util/common.js.map +1 -1
- package/lib/util/component/component.js.map +1 -1
- package/lib/util/component/index.js.map +1 -1
- package/lib/util/component/inject-self.js.map +1 -1
- package/lib/util/component/props.js.map +1 -1
- package/lib/util/component/types.js.map +1 -1
- package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -3
- package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
- package/lib/util/date/built-in.js +2 -0
- package/lib/util/date/built-in.js.map +1 -1
- package/lib/util/date/index.js +1 -1
- package/lib/util/date/index.js.map +1 -1
- package/lib/util/date/types.js.map +1 -1
- package/lib/util/debounce.js +1 -1
- package/lib/util/debounce.js.map +1 -1
- package/lib/util/dom.js +10 -1
- package/lib/util/dom.js.map +1 -1
- package/lib/util/environments.js.map +1 -1
- package/lib/util/frame-scheduler.js +3 -3
- package/lib/util/frame-scheduler.js.map +1 -1
- package/lib/util/index.js +11 -11
- package/lib/util/index.js.map +1 -1
- package/lib/util/reactivity.js +3 -3
- package/lib/util/reactivity.js.map +1 -1
- package/lib/util/rect.js.map +1 -1
- package/lib/util/scroll.js.map +1 -1
- package/lib/util/string.js +6 -1
- package/lib/util/string.js.map +1 -1
- package/lib/util/ui.js.map +1 -1
- package/lib/util/validation.js.map +1 -1
- package/package.json +132 -123
- package/types/abstract/items.d.ts +4 -4
- package/types/components/alert/YAlert.d.ts +2 -2
- package/types/components/badge/YBadge.d.ts +0 -3
- package/types/components/button/YButton.d.ts +3 -3
- package/types/components/checkbox/YCheckbox.d.ts +4 -4
- package/types/components/chip/YChip.d.ts +0 -3
- package/types/components/date-picker/YDateCalendar.d.ts +3 -3
- package/types/components/date-picker/YDatePickerControl.d.ts +7 -7
- package/types/components/dialog/YDialog.d.ts +108 -6480
- package/types/components/draggable/YDraggable.d.ts +6 -6
- package/types/components/draggable/index.d.ts +1 -0
- package/types/components/dropdown/YDropdown.d.ts +87 -87
- package/types/components/field-input/YFieldInput.d.ts +20 -14
- package/types/components/form/YForm.d.ts +3 -3
- package/types/components/icon/YIcon.d.ts +4 -4
- package/types/components/icons/YIconPageControl.d.ts +1 -1
- package/types/components/icons/YIconSort.d.ts +1 -1
- package/types/components/icons/index.d.ts +4 -4
- package/types/components/img/YImg.d.ts +26 -26
- package/types/components/input/YInput.d.ts +13 -13
- package/types/components/ip-field/YIpv4Field.d.ts +5 -5
- package/types/components/layer/YLayer.d.ts +55 -3240
- package/types/components/layer/scroll-strategies.d.ts +4 -4
- package/types/components/menu/YMenu.d.ts +74 -6446
- package/types/components/pagination/YPagination.d.ts +3 -3
- package/types/components/radio/YRadio.d.ts +25 -0
- package/types/components/radio/YRadioIcon.d.ts +6 -0
- package/types/components/radio/index.d.ts +2 -0
- package/types/components/select/YSelect.d.ts +178 -496
- package/types/components/slider/YSlider.d.ts +1 -1
- package/types/components/snackbar/YSnackbar.d.ts +55 -55
- package/types/components/tab/YTab.d.ts +3 -3
- package/types/components/tab/YTabs.d.ts +1 -1
- package/types/components/table/YDataTable.d.ts +33 -87
- package/types/components/table/YDataTableBody.d.ts +3 -3
- package/types/components/table/YDataTableCell.d.ts +2 -2
- package/types/components/table/YDataTableControl.d.ts +18 -6
- package/types/components/table/YDataTableLayer.d.ts +2 -2
- package/types/components/table/YDataTableRow.d.ts +1 -1
- package/types/components/table/YDataTableServer.d.ts +54 -99
- package/types/components/table/YTable.d.ts +3 -3
- package/types/components/table/composables/expand.d.ts +4 -4
- package/types/components/table/composables/header.d.ts +16 -48
- package/types/components/table/composables/items.d.ts +2 -2
- package/types/components/table/composables/pagination.d.ts +10 -10
- package/types/components/table/composables/selection.d.ts +6 -6
- package/types/components/table/composables/sorting.d.ts +8 -14
- package/types/components/table/types/item.d.ts +1 -1
- package/types/components/textarea/YTextarea.d.ts +30 -30
- package/types/components/tooltip/YTooltip.d.ts +67 -67
- package/types/components/tree-view/YTreeView.d.ts +7 -7
- package/types/components/tree-view/YTreeViewNode.d.ts +5 -5
- package/types/components/tree-view/tree-view.d.ts +2 -2
- package/types/composables/choice.d.ts +2 -2
- package/types/composables/coordinate/index.d.ts +27 -3205
- package/types/composables/dimension.d.ts +6 -6
- package/types/composables/form.d.ts +17 -27
- package/types/composables/list-items.d.ts +3 -3
- package/types/composables/style-color.d.ts +0 -1
- package/types/composables/theme/index.d.ts +1 -0
- package/types/composables/transition.d.ts +10 -10
- package/types/composables/validation.d.ts +6 -6
- package/types/composables/vue-router.d.ts +3 -3
- package/types/declares.d.ts +1 -0
- package/types/directives/index.d.ts +2 -0
- package/types/directives/plate-wave/index.d.ts +7 -1
- package/types/globals.d.ts +19 -20
- package/types/shims.d.ts +58 -52
- package/types/types/index.d.ts +3 -0
- package/types/util/anchor.d.ts +1 -1
- package/types/util/common.d.ts +3 -0
- package/types/util/component/component.d.ts +1 -2
- package/types/util/component/props.d.ts +1 -1
- package/types/util/component/types.d.ts +1 -1
- package/types/util/date/index.d.ts +1 -1
- package/types/util/dom.d.ts +2 -0
- package/types/util/index.d.ts +11 -11
- package/types/util/string.d.ts +1 -0
- /package/types/directives/{theme-class.d.ts → theme-class/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-view.js","names":["inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","getDescendants","key","descendants","childKeys","value","push","remains","slice","length","childKey","splice","item","isExcluded","search","has","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","children","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","onlyEventActiveStrategy","activeStrategy","descendant","setActive","grand","parentKey","parent","all","isChildrenAll","updateSelected","selectStrategy","stateKey","every","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import { InjectionKey, Ref, inject, provide, ref, shallowRef } from 'vue';\n\n\n\nimport { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (!props.onlyEventActiveStrategy ||\n (props.onlyEventActiveStrategy && event)) &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to ? activeSet.value.add(key) : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-view.js","names":["inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","getDescendants","key","descendants","childKeys","value","push","remains","slice","length","childKey","splice","item","isExcluded","search","has","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","children","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","onlyEventActiveStrategy","activeStrategy","descendant","setActive","grand","parentKey","parent","all","isChildrenAll","updateSelected","selectStrategy","stateKey","every","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import { InjectionKey, Ref, inject, provide, ref, shallowRef } from 'vue';\n\nimport { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (!props.onlyEventActiveStrategy ||\n (props.onlyEventActiveStrategy && event)) &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to ? activeSet.value.add(key) : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { type ComponentPublicInstance } from 'vue';\n\nimport type { CandidateKey } from '@/types';\n\nexport interface ItemState {\n selected: boolean;\n indeterminate: boolean;\n active: boolean;\n expanded: boolean;\n}\n\nexport interface NodeState extends ItemState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { type ComponentPublicInstance } from 'vue';\n\nimport type { CandidateKey } from '@/types';\n\nexport interface ItemState {\n selected: boolean;\n indeterminate: boolean;\n active: boolean;\n expanded: boolean;\n}\n\nexport interface NodeState extends ItemState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | (ComponentPublicInstance & ItemState);\n level: number;\n}\n\nexport type TreeviewFilterFn = (\n item: any,\n search: string,\n itemText: string,\n) => boolean;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","remains","slice","length","item","splice","key","push","children","Array","isArray","filterTreeItem","search","textKey","text","toLocaleLowerCase","indexOf","filterTreeItems","filter","idKey","excluded","match","i","add"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { CandidateKey } from '../../types';\
|
|
1
|
+
{"version":3,"file":"util.js","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","remains","slice","length","item","splice","key","push","children","Array","isArray","filterTreeItem","search","textKey","text","toLocaleLowerCase","indexOf","filterTreeItems","filter","idKey","excluded","match","i","add"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { CandidateKey } from '../../types';\nimport { getObjectValueByPath } from '../../util/common';\nimport { TreeviewFilterFn } from './types';\n\nexport function getKeys(items: any[], itemKey: string, childrenKey: string) {\n const keys: CandidateKey[] = [];\n const remains: any[] = items.slice();\n\n while (remains.length > 0) {\n const item = remains.splice(0, 1);\n const key = getObjectValueByPath(item, itemKey);\n keys.push(key);\n const children = getObjectValueByPath(item, childrenKey);\n if (Array.isArray(children)) {\n remains.push(...children);\n }\n }\n\n return keys;\n}\n\nexport function filterTreeItem(\n item: object,\n search: string,\n textKey: string,\n): boolean {\n const text = getObjectValueByPath(item, textKey);\n\n return text?.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n}\n\nexport function filterTreeItems(\n filter: TreeviewFilterFn,\n item: any,\n search: string,\n idKey: string,\n textKey: string,\n childrenKey: string,\n excluded: Set<CandidateKey>,\n): boolean {\n const children = getObjectValueByPath(item, childrenKey);\n\n if (children) {\n let match = false;\n for (let i = 0; i < children.length; i++) {\n if (\n filterTreeItems(\n filter,\n children[i],\n search,\n idKey,\n textKey,\n childrenKey,\n excluded,\n )\n ) {\n match = true;\n }\n }\n\n if (match) {\n return true;\n } else if (filter(item, search, textKey)) {\n return true;\n }\n } else if (filter(item, search, textKey)) {\n return true;\n }\n\n excluded.add(getObjectValueByPath(item, idKey));\n\n return false;\n}\n"],"mappings":"SACSA,oBAAoB;AAG7B,OAAO,SAASC,OAAOA,CAACC,KAAY,EAAEC,OAAe,EAAEC,WAAmB,EAAE;EAC1E,MAAMC,IAAoB,GAAG,EAAE;EAC/B,MAAMC,OAAc,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC;EAEpC,OAAOD,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;IACzB,MAAMC,IAAI,GAAGH,OAAO,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,MAAMC,GAAG,GAAGX,oBAAoB,CAACS,IAAI,EAAEN,OAAO,CAAC;IAC/CE,IAAI,CAACO,IAAI,CAACD,GAAG,CAAC;IACd,MAAME,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;IACxD,IAAIU,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;MAC3BP,OAAO,CAACM,IAAI,CAAC,GAAGC,QAAQ,CAAC;IAC3B;EACF;EAEA,OAAOR,IAAI;AACb;AAEA,OAAO,SAASW,cAAcA,CAC5BP,IAAY,EACZQ,MAAc,EACdC,OAAe,EACN;EACT,MAAMC,IAAI,GAAGnB,oBAAoB,CAACS,IAAI,EAAES,OAAO,CAAC;EAEhD,OAAOC,IAAI,EAAEC,iBAAiB,CAAC,CAAC,CAACC,OAAO,CAACJ,MAAM,CAACG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E;AAEA,OAAO,SAASE,eAAeA,CAC7BC,MAAwB,EACxBd,IAAS,EACTQ,MAAc,EACdO,KAAa,EACbN,OAAe,EACfd,WAAmB,EACnBqB,QAA2B,EAClB;EACT,MAAMZ,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;EAExD,IAAIS,QAAQ,EAAE;IACZ,IAAIa,KAAK,GAAG,KAAK;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,QAAQ,CAACL,MAAM,EAAEmB,CAAC,EAAE,EAAE;MACxC,IACEL,eAAe,CACbC,MAAM,EACNV,QAAQ,CAACc,CAAC,CAAC,EACXV,MAAM,EACNO,KAAK,EACLN,OAAO,EACPd,WAAW,EACXqB,QACF,CAAC,EACD;QACAC,KAAK,GAAG,IAAI;MACd;IACF;IAEA,IAAIA,KAAK,EAAE;MACT,OAAO,IAAI;IACb,CAAC,MAAM,IAAIH,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,MAAM,IAAIK,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;IACxC,OAAO,IAAI;EACb;EAEAO,QAAQ,CAACG,GAAG,CAAC5B,oBAAoB,CAACS,IAAI,EAAEe,KAAK,CAAC,CAAC;EAE/C,OAAO,KAAK;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-link.js","names":["nextTick","watch","useChoiceByLink","link","select","isActive","value","neo","isLink","immediate"],"sources":["../../src/composables/choice-link.ts"],"sourcesContent":["import { nextTick, watch } from 'vue';\n\nimport type { UseLink } from './vue-router';\n\nexport function useChoiceByLink(\n link: UseLink,\n select?: (value: boolean, event?: Event) => void,\n) {\n watch(\n () => link.isActive?.value,\n (neo) => {\n if (link.isLink.value && neo && select) {\n nextTick(() => {\n select(true);\n });\n }\n },\n { immediate: true },\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,eAAeA,CAC7BC,IAAa,EACbC,MAAgD,EAChD;EACAH,KAAK,CACH,MAAME,IAAI,CAACE,QAAQ,EAAEC,KAAK,EACzBC,GAAG,IAAK;IACP,IAAIJ,IAAI,CAACK,MAAM,CAACF,KAAK,IAAIC,GAAG,IAAIH,MAAM,EAAE;MACtCJ,QAAQ,CAAC,MAAM;QACbI,MAAM,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;IACJ;EACF,CAAC,EACD;IAAEK,SAAS,EAAE;EAAK,CACpB,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"choice-link.js","names":["nextTick","watch","useChoiceByLink","link","select","isActive","value","neo","isLink","immediate"],"sources":["../../src/composables/choice-link.ts"],"sourcesContent":["import { nextTick, watch } from 'vue';\n\nimport type { UseLink } from './vue-router';\n\nexport function useChoiceByLink(\n link: UseLink,\n select?: (value: boolean, event?: Event) => void,\n) {\n watch(\n () => link.isActive?.value,\n (neo) => {\n if (link.isLink.value && neo && select) {\n nextTick(() => {\n select(true);\n });\n }\n },\n { immediate: true },\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,eAAeA,CAC7BC,IAAa,EACbC,MAAgD,EAChD;EACAH,KAAK,CACH,MAAME,IAAI,CAACE,QAAQ,EAAEC,KAAK,EACzBC,GAAG,IAAK;IACP,IAAIJ,IAAI,CAACK,MAAM,CAACF,KAAK,IAAIC,GAAG,IAAIH,MAAM,EAAE;MACtCJ,QAAQ,CAAC,MAAM;QACbI,MAAM,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;IACJ;EACF,CAAC,EACD;IAAEK,SAAS,EAAE;EAAK,CACpB,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","returnItem","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/choice.ts"],"sourcesContent":["import type {\r\n ComponentInternalInstance,\r\n ComputedRef,\r\n ExtractPropTypes,\r\n InjectionKey,\r\n PropType,\r\n Ref,\r\n UnwrapRef,\r\n} from 'vue';\r\nimport {\r\n computed,\r\n getCurrentInstance,\r\n inject,\r\n onBeforeUnmount,\r\n onMounted,\r\n provide,\r\n reactive,\r\n toRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { wrapInArray } from '@/util/array';\r\nimport { deepEqual } from '@/util/common';\r\nimport {\r\n findChildrenWithProvide,\r\n getUid,\r\n propsFactory,\r\n} from '@/util/component';\r\n\r\nimport { useModelDuplex } from './communication';\r\n\r\nexport interface ChoiceItem {\r\n id: number;\r\n value: Ref<unknown>;\r\n disabled: Ref<boolean | undefined>;\r\n}\r\n\r\nexport interface ChoiceProps {\r\n disabled: boolean;\r\n modelValue: unknown;\r\n multiple?: boolean;\r\n mandatory?: boolean | 'force' | undefined;\r\n max?: number | undefined;\r\n selectedClass?: string | undefined;\r\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\r\n}\r\n\r\nexport interface ChoiceProvide {\r\n register: (item: ChoiceItem, instance: ComponentInternalInstance) => void;\r\n unregister: (id: number) => void;\r\n select: (id: number, value: boolean) => void;\r\n selected: Ref<Readonly<number[]>>;\r\n selectedClass: Ref<string | undefined>;\r\n isSelected: (id: number) => boolean;\r\n disabled: Ref<boolean | undefined>;\r\n getItemIndex: (value: unknown) => number;\r\n prev: () => void;\r\n next: () => void;\r\n items: ComputedRef<\r\n { id: number; value: unknown; disabled: boolean | undefined }[]\r\n >;\r\n}\r\n\r\nexport interface ChoiceItemProvide {\r\n id: number;\r\n isSelected: Ref<boolean>;\r\n toggle: () => void;\r\n select: (value: boolean) => void;\r\n selectedClass: Ref<(string | undefined)[] | false>;\r\n value: Ref<unknown>;\r\n disabled: Ref<boolean | undefined>;\r\n provider: ChoiceProvide;\r\n}\r\n\r\nexport const pressChoicePropsOptions = propsFactory(\r\n {\r\n modelValue: {\r\n type: null,\r\n default: undefined,\r\n },\r\n multiple: Boolean,\r\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\r\n max: Number,\r\n selectedClass: String as PropType<string>,\r\n disabled: Boolean,\r\n returnItem: Boolean as PropType<boolean>,\r\n },\r\n 'choice',\r\n);\r\n\r\nexport const pressChoiceItemPropsOptions = propsFactory(\r\n {\r\n value: null,\r\n disabled: Boolean,\r\n selectedClass: String,\r\n },\r\n 'choice-item',\r\n);\r\n\r\nexport interface ChoiceItemProps\r\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\r\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\r\n}\r\n\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required?: true,\r\n): ChoiceItemProvide;\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required: false,\r\n): ChoiceItemProvide | null;\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required = true,\r\n): ChoiceItemProvide | null {\r\n const vm = getCurrentInstance();\r\n\r\n if (!vm) {\r\n throw new Error(\r\n '\"useChoiceItem\" must be used inside a component setup function',\r\n );\r\n }\r\n\r\n const id = getUid() as number;\r\n\r\n provide(Symbol.for(`${injectKey.description}:id`), id);\r\n\r\n const choiceProvider = inject(injectKey, null);\r\n\r\n if (!choiceProvider) {\r\n if (!required) return choiceProvider as null;\r\n\r\n throw new Error(`Not found provider`);\r\n }\r\n\r\n const value = toRef(props, 'value');\r\n const disabled = computed(\r\n () => !!(choiceProvider.disabled.value || props.disabled),\r\n );\r\n\r\n choiceProvider.register(\r\n {\r\n id,\r\n value,\r\n disabled,\r\n },\r\n vm,\r\n );\r\n\r\n onBeforeUnmount(() => {\r\n choiceProvider.unregister(id);\r\n });\r\n\r\n const isSelected = computed(() => {\r\n return choiceProvider.isSelected(id);\r\n });\r\n\r\n const selectedClass = computed(\r\n () =>\r\n isSelected.value && [\r\n choiceProvider.selectedClass.value,\r\n props.selectedClass,\r\n ],\r\n );\r\n\r\n watch(isSelected, (value) => {\r\n vm.emit('choice:selected', { value });\r\n });\r\n\r\n return {\r\n id,\r\n isSelected,\r\n toggle: () => choiceProvider.select(id, !isSelected.value),\r\n select: (value: boolean) => choiceProvider.select(id, value),\r\n selectedClass,\r\n value,\r\n disabled,\r\n provider: choiceProvider,\r\n };\r\n}\r\n\r\nexport function useChoice(\r\n props: ChoiceProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n) {\r\n let isUnmounted = false;\r\n const items = reactive<ChoiceItem[]>([]);\r\n const selected = useModelDuplex(\r\n props,\r\n 'modelValue',\r\n [],\r\n (v) => {\r\n if (v == null) return [];\r\n\r\n return getIds(items, wrapInArray(v));\r\n },\r\n (v) => {\r\n const arr = getValues(items, v);\r\n\r\n return props.multiple ? arr : arr[0];\r\n },\r\n );\r\n\r\n const groupVm = getCurrentInstance();\r\n\r\n function register(item: ChoiceItem, vm: ComponentInternalInstance) {\r\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\r\n\r\n const key = Symbol.for(`${injectKey.description}:id`);\r\n const children = findChildrenWithProvide(key, groupVm?.vnode);\r\n const index = children.indexOf(vm);\r\n\r\n if (index > -1) {\r\n items.splice(index, 0, unwrapped);\r\n } else {\r\n items.push(unwrapped);\r\n }\r\n }\r\n\r\n function unregister(id: number) {\r\n if (isUnmounted) return;\r\n forceMandatoryValue();\r\n const index = items.findIndex((item) => item.id === id);\r\n items.splice(index, 1);\r\n }\r\n\r\n function forceMandatoryValue() {\r\n const item = items.find((item) => !item.disabled);\r\n if (item && props.mandatory === 'force' && !selected.value.length) {\r\n selected.value = [item.id];\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n forceMandatoryValue();\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n isUnmounted = true;\r\n });\r\n\r\n function select(id: number, value?: boolean) {\r\n const item = items.find((item) => item.id === id);\r\n if (value && item?.disabled) return;\r\n\r\n if (props.multiple) {\r\n const internalValue = selected.value.slice();\r\n const index = internalValue.findIndex((v: any) => v === id);\r\n const isSelected = ~index;\r\n value = value ?? !isSelected;\r\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\r\n if (\r\n !isSelected &&\r\n props.max != null &&\r\n internalValue.length + 1 > props.max\r\n )\r\n return;\r\n\r\n if (index < 0 && value) internalValue.push(id);\r\n else if (index >= 0 && !value) internalValue.splice(index, 1);\r\n\r\n selected.value = internalValue;\r\n } else {\r\n const isSelected = selected.value.includes(id);\r\n if (props.mandatory && isSelected) return;\r\n selected.value = value ?? !isSelected ? [id] : [];\r\n }\r\n }\r\n\r\n function step(offset: number) {\r\n if (props.multiple) {\r\n }\r\n\r\n if (!selected.value.length) {\r\n const item = items.find((item) => !item.disabled);\r\n item && (selected.value = [item.id]);\r\n } else {\r\n const currentId = selected.value[0];\r\n const currentIndex = items.findIndex((i) => i.id === currentId);\r\n\r\n let newIndex = (currentIndex + offset) % items.length;\r\n let newItem = items[newIndex];\r\n\r\n while (newItem.disabled && newIndex !== currentIndex) {\r\n newIndex = (newIndex + offset) % items.length;\r\n newItem = items[newIndex];\r\n }\r\n\r\n if (newItem.disabled) return;\r\n\r\n selected.value = [items[newIndex].id];\r\n }\r\n }\r\n\r\n const state: ChoiceProvide = {\r\n register,\r\n unregister,\r\n selected,\r\n select,\r\n disabled: toRef(props, 'disabled'),\r\n prev: () => step(items.length - 1),\r\n next: () => step(1),\r\n isSelected: (id: number) => selected.value.includes(id),\r\n selectedClass: computed(() => props.selectedClass),\r\n items: computed(() => items),\r\n getItemIndex: (value: unknown) => getItemIndex(items, value),\r\n };\r\n\r\n provide(injectKey, state);\r\n\r\n return state;\r\n}\r\n\r\nfunction getItemIndex(items: UnwrapRef<ChoiceItem[]>, value: unknown) {\r\n const ids = getIds(items, [value]);\r\n\r\n if (!ids.length) return -1;\r\n\r\n return items.findIndex((item) => item.id === ids[0]);\r\n}\r\n\r\nfunction getIds(items: UnwrapRef<ChoiceItem[]>, modelValue: any[]) {\r\n const ids: number[] = [];\r\n\r\n modelValue.forEach((value) => {\r\n const item = items.find((item) => deepEqual(value, item.value));\r\n const itemByIndex = items[value];\r\n\r\n if (item?.value != null) {\r\n ids.push(item.id);\r\n } else if (itemByIndex != null) {\r\n ids.push(itemByIndex.id);\r\n }\r\n });\r\n\r\n return ids;\r\n}\r\n\r\nfunction getValues(items: UnwrapRef<ChoiceItem[]>, ids: any[]) {\r\n const values: unknown[] = [];\r\n ids.forEach((id) => {\r\n const itemIndex = items.findIndex((item) => item.id === id);\r\n if (~itemIndex) {\r\n const item = items[itemIndex];\r\n values.push(item.value != null ? item.value : itemIndex);\r\n }\r\n });\r\n\r\n return values;\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"choice.js","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","returnItem","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/choice.ts"],"sourcesContent":["import type {\n ComponentInternalInstance,\n ComputedRef,\n ExtractPropTypes,\n InjectionKey,\n PropType,\n Ref,\n UnwrapRef,\n} from 'vue';\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n toRef,\n watch,\n} from 'vue';\n\nimport { wrapInArray } from '@/util/array';\nimport { deepEqual } from '@/util/common';\nimport {\n findChildrenWithProvide,\n getUid,\n propsFactory,\n} from '@/util/component';\n\nimport { useModelDuplex } from './communication';\n\nexport interface ChoiceItem {\n id: number;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n}\n\nexport interface ChoiceProps {\n disabled: boolean;\n modelValue: unknown;\n multiple?: boolean;\n mandatory?: boolean | 'force' | undefined;\n max?: number | undefined;\n selectedClass?: string | undefined;\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\n}\n\nexport interface ChoiceProvide {\n register: (item: ChoiceItem, instance: ComponentInternalInstance) => void;\n unregister: (id: number) => void;\n select: (id: number, value: boolean) => void;\n selected: Ref<Readonly<number[]>>;\n selectedClass: Ref<string | undefined>;\n isSelected: (id: number) => boolean;\n disabled: Ref<boolean | undefined>;\n getItemIndex: (value: unknown) => number;\n prev: () => void;\n next: () => void;\n items: ComputedRef<\n { id: number; value: unknown; disabled: boolean | undefined }[]\n >;\n}\n\nexport interface ChoiceItemProvide {\n id: number;\n isSelected: Ref<boolean>;\n toggle: () => void;\n select: (value: boolean) => void;\n selectedClass: Ref<(string | undefined)[] | false>;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n provider: ChoiceProvide;\n}\n\nexport const pressChoicePropsOptions = propsFactory(\n {\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String as PropType<string>,\n disabled: Boolean,\n returnItem: Boolean as PropType<boolean>,\n },\n 'choice',\n);\n\nexport const pressChoiceItemPropsOptions = propsFactory(\n {\n value: null,\n disabled: Boolean,\n selectedClass: String,\n },\n 'choice-item',\n);\n\nexport interface ChoiceItemProps\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\n}\n\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required?: true,\n): ChoiceItemProvide;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required: false,\n): ChoiceItemProvide | null;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required = true,\n): ChoiceItemProvide | null {\n const vm = getCurrentInstance();\n\n if (!vm) {\n throw new Error(\n '\"useChoiceItem\" must be used inside a component setup function',\n );\n }\n\n const id = getUid() as number;\n\n provide(Symbol.for(`${injectKey.description}:id`), id);\n\n const choiceProvider = inject(injectKey, null);\n\n if (!choiceProvider) {\n if (!required) return choiceProvider as null;\n\n throw new Error(`Not found provider`);\n }\n\n const value = toRef(props, 'value');\n const disabled = computed(\n () => !!(choiceProvider.disabled.value || props.disabled),\n );\n\n choiceProvider.register(\n {\n id,\n value,\n disabled,\n },\n vm,\n );\n\n onBeforeUnmount(() => {\n choiceProvider.unregister(id);\n });\n\n const isSelected = computed(() => {\n return choiceProvider.isSelected(id);\n });\n\n const selectedClass = computed(\n () =>\n isSelected.value && [\n choiceProvider.selectedClass.value,\n props.selectedClass,\n ],\n );\n\n watch(isSelected, (value) => {\n vm.emit('choice:selected', { value });\n });\n\n return {\n id,\n isSelected,\n toggle: () => choiceProvider.select(id, !isSelected.value),\n select: (value: boolean) => choiceProvider.select(id, value),\n selectedClass,\n value,\n disabled,\n provider: choiceProvider,\n };\n}\n\nexport function useChoice(\n props: ChoiceProps,\n injectKey: InjectionKey<ChoiceProvide>,\n) {\n let isUnmounted = false;\n const items = reactive<ChoiceItem[]>([]);\n const selected = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => {\n if (v == null) return [];\n\n return getIds(items, wrapInArray(v));\n },\n (v) => {\n const arr = getValues(items, v);\n\n return props.multiple ? arr : arr[0];\n },\n );\n\n const groupVm = getCurrentInstance();\n\n function register(item: ChoiceItem, vm: ComponentInternalInstance) {\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\n\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n\n function unregister(id: number) {\n if (isUnmounted) return;\n forceMandatoryValue();\n const index = items.findIndex((item) => item.id === id);\n items.splice(index, 1);\n }\n\n function forceMandatoryValue() {\n const item = items.find((item) => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n\n onMounted(() => {\n forceMandatoryValue();\n });\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n function select(id: number, value?: boolean) {\n const item = items.find((item) => item.id === id);\n if (value && item?.disabled) return;\n\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex((v: any) => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n )\n return;\n\n if (index < 0 && value) internalValue.push(id);\n else if (index >= 0 && !value) internalValue.splice(index, 1);\n\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = (value ?? !isSelected) ? [id] : [];\n }\n }\n\n function step(offset: number) {\n if (props.multiple) {\n }\n\n if (!selected.value.length) {\n const item = items.find((item) => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex((i) => i.id === currentId);\n\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n\n if (newItem.disabled) return;\n\n selected.value = [items[newIndex].id];\n }\n }\n\n const state: ChoiceProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n };\n\n provide(injectKey, state);\n\n return state;\n}\n\nfunction getItemIndex(items: UnwrapRef<ChoiceItem[]>, value: unknown) {\n const ids = getIds(items, [value]);\n\n if (!ids.length) return -1;\n\n return items.findIndex((item) => item.id === ids[0]);\n}\n\nfunction getIds(items: UnwrapRef<ChoiceItem[]>, modelValue: any[]) {\n const ids: number[] = [];\n\n modelValue.forEach((value) => {\n const item = items.find((item) => deepEqual(value, item.value));\n const itemByIndex = items[value];\n\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n\n return ids;\n}\n\nfunction getValues(items: UnwrapRef<ChoiceItem[]>, ids: any[]) {\n const values: unknown[] = [];\n ids.forEach((id) => {\n const itemIndex = items.findIndex((item) => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n\n return values;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication.js","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty","useProvided","provided","internal"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { type Ref, computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\
|
|
1
|
+
{"version":3,"file":"communication.js","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty","useProvided","provided","internal"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { type Ref, computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\n\nimport { hasOwnProperty } from '@/util/common';\nimport { kebabToCamel, toKebabCase } from '@/util/string';\n\nimport { useToggleScope } from './scope';\n\nexport function useModelDuplex(\n props: any,\n prop: string = 'modelValue',\n defaultValue?: any,\n getIn: (value?: any) => any = (v: any) => v,\n setOut: (value: any) => any = (v: any) => v,\n) {\n const vm = getCurrentInstance()!;\n const kebabProp = toKebabCase(prop);\n const property = kebabProp === prop ? kebabToCamel(prop) : prop;\n const txValue = ref(\n props[property] !== undefined ? props[property] : defaultValue,\n );\n\n function getProp() {\n return props[property];\n }\n\n const isDefinedProp = computed(() => {\n getProp();\n const registeredProps = vm.vnode.props;\n return (\n (hasOwnProperty(registeredProps, kebabProp) ||\n hasOwnProperty(registeredProps, property)) &&\n (hasOwnProperty(registeredProps, `onUpdate:${kebabProp}`) ||\n hasOwnProperty(registeredProps, `onUpdate:${property}`))\n );\n });\n\n useToggleScope(\n () => !isDefinedProp.value,\n () => {\n watch(\n () => getProp(),\n (value) => {\n txValue.value = value;\n },\n );\n },\n );\n\n const model = computed({\n get(): any {\n return getIn(isDefinedProp.value ? getProp() : txValue.value);\n },\n set(value) {\n const neo = setOut(value);\n const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);\n if (current === neo || getIn(current) === value) {\n return;\n }\n txValue.value = neo;\n vm?.emit(`update:${property}`, neo);\n },\n }) as any as Ref<any> & { readonly rxValue: any };\n\n Object.defineProperty(model, 'rxValue', {\n get: () => (isDefinedProp.value ? getProp() : txValue.value),\n });\n\n return model;\n}\n\nexport function useProvided<T>(props: any, prop: string, provided: Ref<T>) {\n const internal = useModelDuplex(props, prop, props[prop] ?? provided.value);\n\n watch(provided, (value) => {\n if (props[prop] == null) {\n internal.value = value;\n }\n });\n return internal;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["getCurrentInstance","useRender","render","vm"],"sources":["../../src/composables/component.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"component.js","names":["getCurrentInstance","useRender","render","vm"],"sources":["../../src/composables/component.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n type VNode,\n getCurrentInstance,\n} from 'vue';\n\ninterface RedefinedComponentInternalInstance extends ComponentInternalInstance {\n render: () => VNode;\n}\n\nexport function useRender(render: () => VNode) {\n const vm = getCurrentInstance() as RedefinedComponentInternalInstance | null;\n if (vm) {\n vm.render = render;\n }\n}\n"],"mappings":"AAAA,SAGEA,kBAAkB,QACb,KAAK;AAMZ,OAAO,SAASC,SAASA,CAACC,MAAmB,EAAE;EAC7C,MAAMC,EAAE,GAAGH,kBAAkB,CAAC,CAA8C;EAC5E,IAAIG,EAAE,EAAE;IACNA,EAAE,CAACD,MAAM,GAAGA,MAAM;EACpB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrangement.js","names":["applyArrangement","props","state","coordinate","coordinateStyles","contentEl","base","active","updateCoordinate"],"sources":["../../../src/composables/coordinate/arrangement.ts"],"sourcesContent":["import { type CSSProperties, type Ref } from 'vue';\
|
|
1
|
+
{"version":3,"file":"arrangement.js","names":["applyArrangement","props","state","coordinate","coordinateStyles","contentEl","base","active","updateCoordinate"],"sources":["../../../src/composables/coordinate/arrangement.ts"],"sourcesContent":["import { type CSSProperties, type Ref } from 'vue';\n\nimport { type Rect } from '@/util/rect';\n\nimport type { CoordinateState } from './types';\n\nexport function applyArrangement(\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n function updateCoordinate(): any {\n //\n }\n\n return {\n updateCoordinate,\n };\n}\n"],"mappings":"AAMA,OAAO,SAASA,gBAAgBA,CAC9BC,KAAU,EACVC,KAAsB,EACtBC,UAAiC,EACjCC,gBAAoC,EACpC;EACA,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGL,KAAK;EAEzC,SAASM,gBAAgBA,CAAA,EAAQ;IAC/B;EAAA;EAGF,OAAO;IACLA;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["onScopeDispose","ref","watch","propsFactory","useToggleScope","applyArrangement","applyLevitation","coordinateStrategies","levitation","arrangement","pressCoordinateProps","coordinateStrategy","type","String","Function","default","position","align","origin","offset","Number","Array","viewportMargin","useCoordinate","props","state","updateCoordinate","coordinate","coordinateStyles","active","value","reset","undefined","strategy","window","addEventListener","onResize","passive","removeEventListener","e"],"sources":["../../../src/composables/coordinate/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"index.js","names":["onScopeDispose","ref","watch","propsFactory","useToggleScope","applyArrangement","applyLevitation","coordinateStrategies","levitation","arrangement","pressCoordinateProps","coordinateStrategy","type","String","Function","default","position","align","origin","offset","Number","Array","viewportMargin","useCoordinate","props","state","updateCoordinate","coordinate","coordinateStyles","active","value","reset","undefined","strategy","window","addEventListener","onResize","passive","removeEventListener","e"],"sources":["../../../src/composables/coordinate/index.ts"],"sourcesContent":["import type { PropType, Ref } from 'vue';\nimport { onScopeDispose, ref, watch } from 'vue';\n\nimport { CssProperties } from '@/types';\n\nimport { propsFactory } from '../../util/component';\nimport { Rect } from '../../util/rect';\nimport { useToggleScope } from '../scope';\nimport { applyArrangement } from './arrangement';\nimport { applyLevitation } from './levitation';\nimport { CoordinateState } from './types';\n\nconst coordinateStrategies = {\n levitation: applyLevitation,\n arrangement: applyArrangement,\n};\n\nexport type CoordinateStrategyFn = (\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CssProperties>,\n) => undefined | { updateCoordinate: (e: Event) => void };\n\nexport const pressCoordinateProps = propsFactory(\n {\n coordinateStrategy: {\n type: [String, Function] as PropType<\n keyof typeof coordinateStrategies | CoordinateStrategyFn\n >,\n default: 'arrangement',\n },\n position: {\n type: String as PropType<\n 'default' | 'top' | 'end' | 'right' | 'bottom' | 'left' | 'start'\n >,\n default: 'default',\n },\n align: {\n type: String as PropType<'start' | 'center' | 'end' | 'top' | 'bottom'>,\n default: 'start',\n },\n origin: {\n type: String,\n default: 'auto',\n },\n offset: {\n type: [Number, String, Array] as PropType<number | string | number[]>,\n },\n viewportMargin: {\n type: [Number, String, Array],\n default: 16,\n },\n },\n 'Coordinate',\n);\n\nexport function useCoordinate(props: any, state: CoordinateState) {\n const updateCoordinate = ref<(e: Event) => void>();\n const coordinate = ref<Rect | undefined>();\n const coordinateStyles = ref<CssProperties>({});\n\n useToggleScope(\n () => !!(state.active.value && props.coordinateStrategy),\n (reset) => {\n watch(() => props.coordinateStrategy, reset);\n onScopeDispose(() => {\n updateCoordinate.value = undefined;\n });\n\n if (typeof props.coordinateStrategy === 'function') {\n updateCoordinate.value = props.coordinateStrategy(\n props,\n state,\n coordinate,\n coordinateStyles,\n )?.updateCoordinate;\n } else {\n const strategy =\n coordinateStrategies[\n props.coordinateStrategy as keyof typeof coordinateStrategies\n ];\n updateCoordinate.value = strategy?.(\n props,\n state,\n coordinate,\n coordinateStyles,\n )?.updateCoordinate;\n }\n },\n );\n\n window.addEventListener('resize', onResize, { passive: true });\n\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n updateCoordinate.value = undefined;\n });\n\n function onResize(e: Event) {\n updateCoordinate.value?.(e);\n }\n\n return {\n coordinate,\n coordinateStyles,\n updateCoordinate,\n };\n}\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAIxCC,YAAY;AAAA,SAEZC,cAAc;AAAA,SACdC,gBAAgB;AAAA,SAChBC,eAAe;AAGxB,MAAMC,oBAAoB,GAAG;EAC3BC,UAAU,EAAEF,eAAe;EAC3BG,WAAW,EAAEJ;AACf,CAAC;AASD,OAAO,MAAMK,oBAAoB,GAAGP,YAAY,CAC9C;EACEQ,kBAAkB,EAAE;IAClBC,IAAI,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAEtB;IACDC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRJ,IAAI,EAAEC,MAEL;IACDE,OAAO,EAAE;EACX,CAAC;EACDE,KAAK,EAAE;IACLL,IAAI,EAAEC,MAAiE;IACvEE,OAAO,EAAE;EACX,CAAC;EACDG,MAAM,EAAE;IACNN,IAAI,EAAEC,MAAM;IACZE,OAAO,EAAE;EACX,CAAC;EACDI,MAAM,EAAE;IACNP,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK;EAC9B,CAAC;EACDC,cAAc,EAAE;IACdV,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK,CAAC;IAC7BN,OAAO,EAAE;EACX;AACF,CAAC,EACD,YACF,CAAC;AAED,OAAO,SAASQ,aAAaA,CAACC,KAAU,EAAEC,KAAsB,EAAE;EAChE,MAAMC,gBAAgB,GAAGzB,GAAG,CAAqB,CAAC;EAClD,MAAM0B,UAAU,GAAG1B,GAAG,CAAmB,CAAC;EAC1C,MAAM2B,gBAAgB,GAAG3B,GAAG,CAAgB,CAAC,CAAC,CAAC;EAE/CG,cAAc,CACZ,MAAM,CAAC,EAAEqB,KAAK,CAACI,MAAM,CAACC,KAAK,IAAIN,KAAK,CAACb,kBAAkB,CAAC,EACvDoB,KAAK,IAAK;IACT7B,KAAK,CAAC,MAAMsB,KAAK,CAACb,kBAAkB,EAAEoB,KAAK,CAAC;IAC5C/B,cAAc,CAAC,MAAM;MACnB0B,gBAAgB,CAACI,KAAK,GAAGE,SAAS;IACpC,CAAC,CAAC;IAEF,IAAI,OAAOR,KAAK,CAACb,kBAAkB,KAAK,UAAU,EAAE;MAClDe,gBAAgB,CAACI,KAAK,GAAGN,KAAK,CAACb,kBAAkB,CAC/Ca,KAAK,EACLC,KAAK,EACLE,UAAU,EACVC,gBACF,CAAC,EAAEF,gBAAgB;IACrB,CAAC,MAAM;MACL,MAAMO,QAAQ,GACZ1B,oBAAoB,CAClBiB,KAAK,CAACb,kBAAkB,CACzB;MACHe,gBAAgB,CAACI,KAAK,GAAGG,QAAQ,GAC/BT,KAAK,EACLC,KAAK,EACLE,UAAU,EACVC,gBACF,CAAC,EAAEF,gBAAgB;IACrB;EACF,CACF,CAAC;EAEDQ,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC;EAE9DrC,cAAc,CAAC,MAAM;IACnBkC,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAC9CV,gBAAgB,CAACI,KAAK,GAAGE,SAAS;EACpC,CAAC,CAAC;EAEF,SAASI,QAAQA,CAACG,CAAQ,EAAE;IAC1Bb,gBAAgB,CAACI,KAAK,GAAGS,CAAC,CAAC;EAC7B;EAEA,OAAO;IACLZ,UAAU;IACVC,gBAAgB;IAChBF;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -92,8 +92,8 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
|
|
|
92
92
|
scrollParents.push(document.documentElement);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
/**
|
|
96
|
-
* Viewport area
|
|
95
|
+
/**
|
|
96
|
+
* Viewport area
|
|
97
97
|
*/
|
|
98
98
|
const viewport = scrollParents.reduce((box, el) => {
|
|
99
99
|
const rect = el.getBoundingClientRect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","MutableRect","getOverflow","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordinate","coordinateStyles","contentEl","base","active","isRtl","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue';\r\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\r\n\r\nimport {\r\n type Anchor,\r\n flipAlign,\r\n flipCorner,\r\n flipSide,\r\n getAxis,\r\n parseAnchor,\r\n} from '@/util/anchor';\r\nimport { clamp } from '@/util/common';\r\nimport { $computed } from '@/util/reactivity';\r\nimport { MutableRect, Rect, getOverflow } from '@/util/rect';\r\nimport { getScrollParents } from '@/util/scroll';\r\nimport {\r\n getBoundingPureRect,\r\n pixelCeil,\r\n pixelRound,\r\n toStyleSizeValue,\r\n} from '@/util/ui';\r\n\r\nimport { CoordinateState } from './types';\r\nimport { anchorToPoint, getOffset } from './utils/point';\r\n\r\nexport function applyLevitation(\r\n props: any,\r\n state: CoordinateState,\r\n coordinate: Ref<Rect | undefined>,\r\n coordinateStyles: Ref<CSSProperties>,\r\n) {\r\n const { contentEl, base, active } = state;\r\n\r\n const isRtl = ref(false);\r\n\r\n /* Content Limitations */\r\n const [minWidth, minHeight, maxWidth, maxHeight] = (\r\n ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const\r\n ).map((key) => {\r\n return computed(() => {\r\n const val = parseFloat(props[key]!);\r\n return isNaN(val) ? Infinity : val;\r\n });\r\n });\r\n\r\n /* Offset */\r\n const offset = computed(() => {\r\n if (Array.isArray(props.offset)) {\r\n return props.offset;\r\n }\r\n if (typeof props.offset === 'string') {\r\n const offset = props.offset.split(' ').map(parseFloat);\r\n if (offset.length < 2) offset.push(0);\r\n return offset;\r\n }\r\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\r\n });\r\n\r\n /* Viewport Margin */\r\n const viewportMargin = computed(() => {\r\n if (Array.isArray(props.viewportMargin)) {\r\n return props.viewportMargin;\r\n }\r\n if (typeof props.viewportMargin === 'string') {\r\n const offset = props.viewportMargin.split(' ').map(parseFloat);\r\n if (offset.length < 2) offset.push(0);\r\n return offset;\r\n }\r\n return typeof props.viewportMargin === 'number'\r\n ? [props.viewportMargin, 0]\r\n : [0, 0];\r\n });\r\n\r\n /* Observing Update */\r\n let observe = false;\r\n const resizeObserver = new ResizeObserver(() => {\r\n if (observe) updateCoordinate();\r\n });\r\n\r\n watch(\r\n [state.base, state.contentEl],\r\n ([neoBaseEl, neoContentEl], [oldBaseEl, oldContentEl]) => {\r\n if (oldBaseEl && !Array.isArray(oldBaseEl) && oldBaseEl.nodeType === 1)\r\n resizeObserver.unobserve(oldBaseEl);\r\n if (neoBaseEl && !Array.isArray(neoBaseEl) && neoBaseEl.nodeType === 1)\r\n resizeObserver.observe(neoBaseEl);\r\n\r\n if (oldContentEl) resizeObserver.unobserve(oldContentEl);\r\n if (neoContentEl) resizeObserver.observe(neoContentEl);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onScopeDispose(() => {\r\n resizeObserver.disconnect();\r\n });\r\n\r\n function getIgnoreInsetRect(el: HTMLElement) {\r\n const rect = getBoundingPureRect(el);\r\n rect.x -= parseFloat(el.style.left || '0');\r\n rect.y -= parseFloat(el.style.top || '0');\r\n return rect;\r\n }\r\n\r\n function updateCoordinate(): any {\r\n observe = false;\r\n const $base = base.value;\r\n const $content = contentEl.value;\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => (observe = true));\r\n });\r\n\r\n if (!$base || !$content) return;\r\n\r\n const baseRect = Array.isArray($base)\r\n ? new MutableRect({\r\n x: $base?.[0] ?? 0,\r\n y: $base?.[1] ?? 0,\r\n width: 0,\r\n height: 0,\r\n })\r\n : $base.getBoundingClientRect();\r\n const contentRect = getIgnoreInsetRect($content);\r\n const scrollParents = getScrollParents($content);\r\n\r\n if (scrollParents.length < 1) {\r\n scrollParents.push(document.documentElement);\r\n }\r\n\r\n /**\r\n * Viewport area\r\n */\r\n const viewport = scrollParents.reduce<MutableRect>(\r\n (box: MutableRect | undefined, el) => {\r\n const rect = el.getBoundingClientRect();\r\n const scrollBox = new MutableRect({\r\n x: el === document.documentElement ? 0 : rect.x,\r\n y: el === document.documentElement ? 0 : rect.y,\r\n width: el.clientWidth,\r\n height: el.clientHeight,\r\n });\r\n\r\n if (box) {\r\n return new MutableRect({\r\n x: Math.max(box.left, scrollBox.left),\r\n y: Math.max(box.top, scrollBox.top),\r\n width:\r\n Math.min(box.right, scrollBox.right) -\r\n Math.max(box.left, scrollBox.left),\r\n height:\r\n Math.min(box.bottom, scrollBox.bottom) -\r\n Math.max(box.top, scrollBox.top),\r\n });\r\n }\r\n return scrollBox;\r\n },\r\n undefined!,\r\n );\r\n viewport.x += viewportMargin.value[0];\r\n viewport.y += viewportMargin.value[1];\r\n viewport.width -= viewportMargin.value[0] * 2;\r\n viewport.height -= viewportMargin.value[1] * 2;\r\n\r\n const { preferredAnchor, preferredOrigin } = $computed(() => {\r\n const location = `${props.position} ${props.align}` as Anchor;\r\n const parsedAnchor = parseAnchor(location, false);\r\n const parsedOrigin =\r\n props.origin === 'overlap'\r\n ? parsedAnchor\r\n : props.origin === 'auto'\r\n ? flipSide(parsedAnchor)\r\n : parseAnchor(props.origin, false);\r\n\r\n // Some combinations of props may produce an invalid origin\r\n if (\r\n parsedAnchor.side === parsedOrigin.side &&\r\n parsedAnchor.align === flipAlign(parsedOrigin).align\r\n ) {\r\n return {\r\n preferredAnchor: flipCorner(parsedAnchor),\r\n preferredOrigin: flipCorner(parsedOrigin),\r\n };\r\n } else {\r\n return {\r\n preferredAnchor: parsedAnchor,\r\n preferredOrigin: parsedOrigin,\r\n };\r\n }\r\n });\r\n\r\n let placement = {\r\n anchor: preferredAnchor.value,\r\n origin: preferredOrigin.value,\r\n };\r\n\r\n function checkOverflow(_placement: typeof placement) {\r\n const box = new MutableRect(contentRect);\r\n const targetPoint = anchorToPoint(_placement.anchor, baseRect);\r\n const contentPoint = anchorToPoint(_placement.origin, box);\r\n\r\n let { x, y } = getOffset(targetPoint, contentPoint);\r\n\r\n switch (_placement.anchor.side) {\r\n case 'top':\r\n y -= offset.value[0];\r\n break;\r\n case 'bottom':\r\n y += offset.value[0];\r\n break;\r\n case 'left':\r\n x -= offset.value[0];\r\n break;\r\n case 'right':\r\n x += offset.value[0];\r\n break;\r\n }\r\n\r\n switch (_placement.anchor.align) {\r\n case 'top':\r\n y -= offset.value[1];\r\n break;\r\n case 'bottom':\r\n y += offset.value[1];\r\n break;\r\n case 'left':\r\n x -= offset.value[1];\r\n break;\r\n case 'right':\r\n x += offset.value[1];\r\n break;\r\n }\r\n\r\n box.x += x;\r\n box.y += y;\r\n\r\n box.width = Math.min(box.width, maxWidth.value);\r\n box.height = Math.min(box.height, maxHeight.value);\r\n\r\n const overflows = getOverflow(box, viewport);\r\n\r\n return { overflows, x, y };\r\n }\r\n\r\n let x = 0;\r\n let y = 0;\r\n const available = { x: 0, y: 0 };\r\n const flipped = { x: false, y: false };\r\n let resets = -1;\r\n while (true) {\r\n if (resets++ > 10) {\r\n break;\r\n }\r\n\r\n const { x: _x, y: _y, overflows } = checkOverflow(placement);\r\n\r\n x += _x;\r\n y += _y;\r\n\r\n contentRect.x += _x;\r\n contentRect.y += _y;\r\n\r\n // flip\r\n {\r\n const axis = getAxis(placement.anchor);\r\n const hasOverflowX = overflows.x.before || overflows.x.after;\r\n const hasOverflowY = overflows.y.before || overflows.y.after;\r\n\r\n let reset = false;\r\n ['x', 'y'].forEach((key) => {\r\n if (\r\n (key === 'x' && hasOverflowX && !flipped.x) ||\r\n (key === 'y' && hasOverflowY && !flipped.y)\r\n ) {\r\n const newPlacement = {\r\n anchor: { ...placement.anchor },\r\n origin: { ...placement.origin },\r\n };\r\n const flip =\r\n key === 'x'\r\n ? axis === 'y'\r\n ? flipAlign\r\n : flipSide\r\n : axis === 'y'\r\n ? flipSide\r\n : flipAlign;\r\n newPlacement.anchor = flip(newPlacement.anchor);\r\n newPlacement.origin = flip(newPlacement.origin);\r\n const { overflows: newOverflows } = checkOverflow(newPlacement);\r\n if (\r\n (newOverflows[key].before <= overflows[key].before &&\r\n newOverflows[key].after <= overflows[key].after) ||\r\n newOverflows[key].before + newOverflows[key].after <\r\n (overflows[key].before + overflows[key].after) / 2\r\n ) {\r\n placement = newPlacement;\r\n reset = flipped[key] = true;\r\n }\r\n }\r\n });\r\n if (reset) continue;\r\n }\r\n\r\n // shift\r\n if (overflows.x.before) {\r\n x += overflows.x.before;\r\n contentRect.x += overflows.x.before;\r\n }\r\n if (overflows.x.after) {\r\n x -= overflows.x.after;\r\n contentRect.x -= overflows.x.after;\r\n }\r\n if (overflows.y.before) {\r\n y += overflows.y.before;\r\n contentRect.y += overflows.y.before;\r\n }\r\n if (overflows.y.after) {\r\n y -= overflows.y.after;\r\n contentRect.y -= overflows.y.after;\r\n }\r\n\r\n // size\r\n {\r\n const overflows = getOverflow(contentRect, viewport);\r\n available.x = viewport.width - overflows.x.before - overflows.x.after;\r\n available.y = viewport.height - overflows.y.before - overflows.y.after;\r\n\r\n x += overflows.x.before;\r\n contentRect.x += overflows.x.before;\r\n y += overflows.y.before;\r\n contentRect.y += overflows.y.before;\r\n }\r\n\r\n break;\r\n }\r\n\r\n const axis = getAxis(placement.anchor);\r\n\r\n Object.assign(coordinateStyles.value, {\r\n '--y-levitation-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\r\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\r\n top: toStyleSizeValue(pixelRound(y)),\r\n left: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),\r\n right: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,\r\n minWidth: toStyleSizeValue(\r\n axis === 'y'\r\n ? Math.min(minWidth.value, baseRect.width)\r\n : minWidth.value,\r\n ),\r\n maxWidth: toStyleSizeValue(\r\n pixelCeil(\r\n clamp(\r\n available.x,\r\n minWidth.value === Infinity ? 0 : minWidth.value,\r\n maxWidth.value,\r\n ),\r\n ),\r\n ),\r\n maxHeight: toStyleSizeValue(\r\n pixelCeil(\r\n clamp(\r\n available.y,\r\n minHeight.value === Infinity ? 0 : minHeight.value,\r\n maxHeight.value,\r\n ),\r\n ),\r\n ),\r\n });\r\n\r\n return {\r\n available,\r\n contentRect,\r\n };\r\n }\r\n\r\n watch(\r\n () => [\r\n props.offset,\r\n props.minWidth,\r\n props.minHeight,\r\n props.maxWidth,\r\n props.maxHeight,\r\n ],\r\n () => updateCoordinate(),\r\n );\r\n\r\n nextTick(() => {\r\n const result = updateCoordinate();\r\n if (!result) return;\r\n const { available, contentRect } = result;\r\n if (contentRect.height > available.y) {\r\n requestAnimationFrame(() => {\r\n updateCoordinate();\r\n requestAnimationFrame(() => {\r\n updateCoordinate();\r\n });\r\n });\r\n }\r\n });\r\n\r\n return {\r\n updateCoordinate,\r\n };\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","MutableRect","getOverflow","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordinate","coordinateStyles","contentEl","base","active","isRtl","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue';\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\n\nimport {\n type Anchor,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n parseAnchor,\n} from '@/util/anchor';\nimport { clamp } from '@/util/common';\nimport { $computed } from '@/util/reactivity';\nimport { MutableRect, Rect, getOverflow } from '@/util/rect';\nimport { getScrollParents } from '@/util/scroll';\nimport {\n getBoundingPureRect,\n pixelCeil,\n pixelRound,\n toStyleSizeValue,\n} from '@/util/ui';\n\nimport { CoordinateState } from './types';\nimport { anchorToPoint, getOffset } from './utils/point';\n\nexport function applyLevitation(\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n const isRtl = ref(false);\n\n /* Content Limitations */\n const [minWidth, minHeight, maxWidth, maxHeight] = (\n ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const\n ).map((key) => {\n return computed(() => {\n const val = parseFloat(props[key]!);\n return isNaN(val) ? Infinity : val;\n });\n });\n\n /* Offset */\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n\n /* Viewport Margin */\n const viewportMargin = computed(() => {\n if (Array.isArray(props.viewportMargin)) {\n return props.viewportMargin;\n }\n if (typeof props.viewportMargin === 'string') {\n const offset = props.viewportMargin.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.viewportMargin === 'number'\n ? [props.viewportMargin, 0]\n : [0, 0];\n });\n\n /* Observing Update */\n let observe = false;\n const resizeObserver = new ResizeObserver(() => {\n if (observe) updateCoordinate();\n });\n\n watch(\n [state.base, state.contentEl],\n ([neoBaseEl, neoContentEl], [oldBaseEl, oldContentEl]) => {\n if (oldBaseEl && !Array.isArray(oldBaseEl) && oldBaseEl.nodeType === 1)\n resizeObserver.unobserve(oldBaseEl);\n if (neoBaseEl && !Array.isArray(neoBaseEl) && neoBaseEl.nodeType === 1)\n resizeObserver.observe(neoBaseEl);\n\n if (oldContentEl) resizeObserver.unobserve(oldContentEl);\n if (neoContentEl) resizeObserver.observe(neoContentEl);\n },\n { immediate: true },\n );\n\n onScopeDispose(() => {\n resizeObserver.disconnect();\n });\n\n function getIgnoreInsetRect(el: HTMLElement) {\n const rect = getBoundingPureRect(el);\n rect.x -= parseFloat(el.style.left || '0');\n rect.y -= parseFloat(el.style.top || '0');\n return rect;\n }\n\n function updateCoordinate(): any {\n observe = false;\n const $base = base.value;\n const $content = contentEl.value;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => (observe = true));\n });\n\n if (!$base || !$content) return;\n\n const baseRect = Array.isArray($base)\n ? new MutableRect({\n x: $base?.[0] ?? 0,\n y: $base?.[1] ?? 0,\n width: 0,\n height: 0,\n })\n : $base.getBoundingClientRect();\n const contentRect = getIgnoreInsetRect($content);\n const scrollParents = getScrollParents($content);\n\n if (scrollParents.length < 1) {\n scrollParents.push(document.documentElement);\n }\n\n /**\n * Viewport area\n */\n const viewport = scrollParents.reduce<MutableRect>(\n (box: MutableRect | undefined, el) => {\n const rect = el.getBoundingClientRect();\n const scrollBox = new MutableRect({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n });\n\n if (box) {\n return new MutableRect({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width:\n Math.min(box.right, scrollBox.right) -\n Math.max(box.left, scrollBox.left),\n height:\n Math.min(box.bottom, scrollBox.bottom) -\n Math.max(box.top, scrollBox.top),\n });\n }\n return scrollBox;\n },\n undefined!,\n );\n viewport.x += viewportMargin.value[0];\n viewport.y += viewportMargin.value[1];\n viewport.width -= viewportMargin.value[0] * 2;\n viewport.height -= viewportMargin.value[1] * 2;\n\n const { preferredAnchor, preferredOrigin } = $computed(() => {\n const location = `${props.position} ${props.align}` as Anchor;\n const parsedAnchor = parseAnchor(location, false);\n const parsedOrigin =\n props.origin === 'overlap'\n ? parsedAnchor\n : props.origin === 'auto'\n ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, false);\n\n // Some combinations of props may produce an invalid origin\n if (\n parsedAnchor.side === parsedOrigin.side &&\n parsedAnchor.align === flipAlign(parsedOrigin).align\n ) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n };\n }\n });\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n };\n\n function checkOverflow(_placement: typeof placement) {\n const box = new MutableRect(contentRect);\n const targetPoint = anchorToPoint(_placement.anchor, baseRect);\n const contentPoint = anchorToPoint(_placement.origin, box);\n\n let { x, y } = getOffset(targetPoint, contentPoint);\n\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n\n box.x += x;\n box.y += y;\n\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n\n const overflows = getOverflow(box, viewport);\n\n return { overflows, x, y };\n }\n\n let x = 0;\n let y = 0;\n const available = { x: 0, y: 0 };\n const flipped = { x: false, y: false };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n break;\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement);\n\n x += _x;\n y += _y;\n\n contentRect.x += _x;\n contentRect.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n\n let reset = false;\n ['x', 'y'].forEach((key) => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = {\n anchor: { ...placement.anchor },\n origin: { ...placement.origin },\n };\n const flip =\n key === 'x'\n ? axis === 'y'\n ? flipAlign\n : flipSide\n : axis === 'y'\n ? flipSide\n : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const { overflows: newOverflows } = checkOverflow(newPlacement);\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2\n ) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentRect.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentRect.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentRect.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentRect.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentRect, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n\n x += overflows.x.before;\n contentRect.x += overflows.x.before;\n y += overflows.y.before;\n contentRect.y += overflows.y.before;\n }\n\n break;\n }\n\n const axis = getAxis(placement.anchor);\n\n Object.assign(coordinateStyles.value, {\n '--y-levitation-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n top: toStyleSizeValue(pixelRound(y)),\n left: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),\n right: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,\n minWidth: toStyleSizeValue(\n axis === 'y'\n ? Math.min(minWidth.value, baseRect.width)\n : minWidth.value,\n ),\n maxWidth: toStyleSizeValue(\n pixelCeil(\n clamp(\n available.x,\n minWidth.value === Infinity ? 0 : minWidth.value,\n maxWidth.value,\n ),\n ),\n ),\n maxHeight: toStyleSizeValue(\n pixelCeil(\n clamp(\n available.y,\n minHeight.value === Infinity ? 0 : minHeight.value,\n maxHeight.value,\n ),\n ),\n ),\n });\n\n return {\n available,\n contentRect,\n };\n }\n\n watch(\n () => [\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateCoordinate(),\n );\n\n nextTick(() => {\n const result = updateCoordinate();\n if (!result) return;\n const { available, contentRect } = result;\n if (contentRect.height > available.y) {\n requestAnimationFrame(() => {\n updateCoordinate();\n requestAnimationFrame(() => {\n updateCoordinate();\n });\n });\n }\n });\n\n return {\n updateCoordinate,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from 'vue';\n\nexport interface CoordinateState {\n contentEl: Ref<HTMLElement | undefined>;\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\n active: Ref<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.js","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/composables/coordinate/utils/point.ts"],"sourcesContent":["import { type ParsedAnchor } from '@/util/anchor';\
|
|
1
|
+
{"version":3,"file":"point.js","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/composables/coordinate/utils/point.ts"],"sourcesContent":["import { type ParsedAnchor } from '@/util/anchor';\nimport { type MutableRect } from '@/util/rect';\n\ntype Point = { x: number; y: number };\ndeclare class As<T extends string> {\n private as: T;\n}\ntype ElementPoint = Point & As<'element'>;\ntype ViewportPoint = Point & As<'viewport'>;\ntype Offset = Point & As<'offset'>;\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(\n point: ElementPoint,\n offset: Offset | MutableRect,\n) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint;\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(\n point: ViewportPoint,\n offset: Offset | MutableRect,\n) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint;\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point>(a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset;\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(\n anchor: ParsedAnchor,\n box: MutableRect,\n): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor;\n\n const x: number =\n align === 'left'\n ? 0\n : align === 'center'\n ? box.width / 2\n : align === 'right'\n ? box.width\n : align;\n const y: number =\n side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n\n return elementToViewport({ x, y } as ElementPoint, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor;\n\n const x: number = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y: number =\n align === 'top'\n ? 0\n : align === 'center'\n ? box.height / 2\n : align === 'bottom'\n ? box.height\n : align;\n\n return elementToViewport({ x, y } as ElementPoint, box);\n }\n\n return elementToViewport(\n {\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint,\n box,\n );\n}\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,KAAmB,EACnBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASC,iBAAiBA,CAC/BJ,KAAoB,EACpBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASE,SAASA,CAAkBC,CAAI,EAAEC,CAAI,EAAE;EACrD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAC,GAAGK,CAAC,CAACL,CAAC;IACZC,CAAC,EAAEG,CAAC,CAACH,CAAC,GAAGI,CAAC,CAACJ;EACb,CAAC;AACH;;AAEA;AACA,OAAO,SAASK,aAAaA,CAC3BC,MAAoB,EACpBC,GAAgB,EACD;EACf,IAAID,MAAM,CAACE,IAAI,KAAK,KAAK,IAAIF,MAAM,CAACE,IAAI,KAAK,QAAQ,EAAE;IACrD,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAM,GACZ,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACG,KAAK,GAAG,CAAC,GACbD,KAAK,KAAK,OAAO,GACfF,GAAG,CAACG,KAAK,GACTD,KAAK;IACf,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAK,GAAG,CAAC,GAAGA,IAAI,KAAK,QAAQ,GAAGD,GAAG,CAACI,MAAM,GAAGH,IAAI;IAE5D,OAAOZ,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD,CAAC,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,IAAIF,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;IAC5D,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GAAGS,IAAI,KAAK,MAAM,GAAG,CAAC,GAAGA,IAAI,KAAK,OAAO,GAAGD,GAAG,CAACG,KAAK,GAAGF,IAAI;IAC3E,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAK,GACX,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GAAG,CAAC,GACdF,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GACVF,KAAK;IAEf,OAAOb,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD;EAEA,OAAOX,iBAAiB,CACtB;IACEG,CAAC,EAAEQ,GAAG,CAACG,KAAK,GAAG,CAAC;IAChBV,CAAC,EAAEO,GAAG,CAACI,MAAM,GAAG;EAClB,CAAC,EACDJ,GACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\
|
|
1
|
+
{"version":3,"file":"factory.js","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nexport function constructAdapter(options: any, locale: LocaleModule) {\n const instance = reactive(\n typeof options.adapter === 'function'\n ? new options.adapter({\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\n formats: options.formats,\n })\n : options.adapter,\n );\n\n watch(locale.locale, (value) => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n\n return instance;\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nimport { useI18n } from '../i18n';\nimport { constructAdapter } from './factory';\nimport { configureOptions } from './setting';\nimport { DateInstance, DateOptions } from './types';\n\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\n\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\n const _options = configureOptions(options);\n return {\n options: _options,\n instance: constructAdapter(_options, locale),\n };\n}\n\nexport function useDate(): DateInstance {\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\n if (!options)\n throw new Error('【yuyeon】 Not found provided \"DateModule\" for options');\n\n const i18n = useI18n();\n\n return constructAdapter(options, i18n);\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,KAAK;AAAC,SAIpBC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EACV,MAAM,IAAIK,KAAK,CAAC,sDAAsD,CAAC;EAEzE,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setting.js","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\
|
|
1
|
+
{"version":3,"file":"setting.js","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\nimport { mergeDeep } from '@/util/common';\nimport { YuyeonDateAdapter } from '@/util/date';\n\nimport type { DateOptions } from './types';\n\nexport function configureOptions(options?: DateOptions) {\n const _options = mergeDeep(\n {\n adapter: YuyeonDateAdapter,\n locale: localeCodesMap,\n },\n options,\n );\n\n return _options;\n}\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAI1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\n\nexport interface DateOptions {\n adapter: any;\n locale: Record<string, any>;\n formats?: Record<string, any>;\n}\n\nexport interface DateInstanceType {\n instanceType: unknown;\n}\n\nexport interface DateInstance<T = DateInstanceType['instanceType']>\n extends DateAdapter<T> {\n locale?: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"index.js","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n inject,\n provide,\n ref,\n shallowRef,\n unref,\n watchEffect,\n} from 'vue';\n\nimport { clamp, mergeDeep } from '@/util/common';\nimport { injectSelf } from '@/util/component/inject-self';\nimport { propIsDefined } from '@/util/component/props';\n\nimport { YUYEON_DEFAULTS_KEY } from './share';\nimport {\n DefaultsModuleInstance,\n DefaultsOptions,\n ProvideDefaultsOptions,\n} from './types';\n\nfunction configureOptions(options?: DefaultsOptions) {\n return ref<DefaultsModuleInstance>(options);\n}\n\nexport function createDefaultsModule(options?: DefaultsModuleInstance) {\n return configureOptions(options);\n}\n\nexport function useDefaultsModule() {\n const defaults = inject(YUYEON_DEFAULTS_KEY);\n if (!defaults)\n throw new Error('【yuyeon】 Not found provided \"DefaultsModule\"');\n\n return defaults;\n}\n\nexport function provideDefaults(\n defaults?: MaybeRef<DefaultsModuleInstance | undefined>,\n options?: ProvideDefaultsOptions,\n) {\n const defaultsModule = useDefaultsModule();\n const provides = ref(defaults);\n\n const computedDefaults = computed<DefaultsModuleInstance>(() => {\n if (unref(options?.disabled)) return defaultsModule.value;\n\n const root = unref(options?.root);\n const reset = unref(options?.reset);\n const scoped = unref(options?.scoped);\n\n if (provides.value == null && !(scoped || reset || root))\n return defaultsModule.value;\n\n let revision = provides.value ?? {};\n if (!Array.isArray(revision?.revisions)) {\n revision.revisions = [];\n }\n revision.revisions.push(defaultsModule.value);\n if (scoped) return revision;\n if (reset || root) {\n const { revisions } = revision;\n const resetNum = isNaN(Number(reset))\n ? 0\n : clamp(Number(reset), 0, revisions.length);\n revision = revisions[revisions.length - resetNum];\n if (revision && typeof root === 'string' && root in revision) {\n revision = mergeDeep(revision, revision[root]);\n }\n\n return revision;\n }\n });\n\n provide(YUYEON_DEFAULTS_KEY, computedDefaults);\n\n return computedDefaults;\n}\n\nexport function useSuperDefaults(\n props: Record<string, any> = {},\n name?: string,\n defaults = useDefaultsModule(),\n) {\n const vm = getCurrentInstance()!;\n name = name || vm?.type?.name || vm?.type?.__name;\n if (!name) throw new Error('Missing component name');\n\n const namedDefaults = computed(() => defaults.value?.[name]);\n const _subcomponentDefaults = shallowRef();\n\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [namedDefaults.value?.[prop], propValue].filter(\n (v) => v != null,\n );\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return namedDefaults.value?.[prop] !== undefined\n ? namedDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined\n ? defaults.value?.global?.[prop]\n : propValue;\n }\n return propValue;\n },\n });\n\n watchEffect(() => {\n if (namedDefaults.value) {\n const subComponents = Object.entries(namedDefaults.value).filter(\n ([key]) => key.startsWith(key[0].toUpperCase()),\n );\n _subcomponentDefaults.value = subComponents.length\n ? Object.fromEntries(subComponents)\n : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n\n function provideSubDefaults() {\n const injected = injectSelf(YUYEON_DEFAULTS_KEY, vm);\n provide(\n YUYEON_DEFAULTS_KEY,\n computed(() => {\n return _subcomponentDefaults.value\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\n : injected?.value;\n }),\n );\n }\n\n return { props: _props, provideSubDefaults };\n}\n\nexport function useDefaults(\n props: undefined,\n name: string,\n): Record<string, any>;\nexport function useDefaults(props: Record<string, any> = {}, name?: string) {\n const { props: _props, provideSubDefaults } = useSuperDefaults(props, name);\n provideSubDefaults();\n\n return _props;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.js","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\
|
|
1
|
+
{"version":3,"file":"share.js","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\n\nimport type { DefaultsModuleInstance } from './types';\n\nexport const YUYEON_DEFAULTS_KEY: InjectionKey<Ref<DefaultsModuleInstance>> =\n Symbol.for('yuyeon.defaults');\n"],"mappings":"AAIA,OAAO,MAAMA,mBAA8D,GACzEC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC","ignoreList":[]}
|