@dimailn/vuetify 2.7.2-alpha32 → 2.7.2-alpha33
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/vuetify.js +531 -366
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VCalendar/VCalendarWeekly.js +10 -5
- package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/es5/components/VCheckbox/VCheckbox.js +7 -9
- package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
- package/es5/components/VContent/VContent.js +24 -5
- package/es5/components/VContent/VContent.js.map +1 -1
- package/es5/components/VCounter/VCounter.js.map +1 -1
- package/es5/components/VDatePicker/VDatePicker.js +15 -7
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
- package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
- package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/es5/components/VGrid/VCol.js +3 -1
- package/es5/components/VGrid/VCol.js.map +1 -1
- package/es5/components/VGrid/VContainer.js +23 -10
- package/es5/components/VGrid/VContainer.js.map +1 -1
- package/es5/components/VGrid/grid.js +33 -15
- package/es5/components/VGrid/grid.js.map +1 -1
- package/es5/components/VHover/VHover.js +23 -17
- package/es5/components/VHover/VHover.js.map +1 -1
- package/es5/components/VIcon/VIcon.js +77 -53
- package/es5/components/VIcon/VIcon.js.map +1 -1
- package/es5/components/VLabel/VLabel.js +3 -1
- package/es5/components/VLabel/VLabel.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +54 -33
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
- package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
- package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
- package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
- package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +4 -1
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VStepper/VStepper.js +1 -1
- package/es5/components/VStepper/VStepper.js.map +1 -1
- package/es5/components/VStepper/VStepperContent.js +2 -5
- package/es5/components/VStepper/VStepperContent.js.map +1 -1
- package/es5/components/VSwitch/VSwitch.js +1 -1
- package/es5/components/VSwitch/VSwitch.js.map +1 -1
- package/es5/components/VTextField/VTextField.js +2 -1
- package/es5/components/VTextField/VTextField.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +0 -7
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/directives/color/index.js +6 -3
- package/es5/directives/color/index.js.map +1 -1
- package/es5/directives/ripple/index.js +5 -2
- package/es5/directives/ripple/index.js.map +1 -1
- package/es5/directives/scroll/index.js +1 -2
- package/es5/directives/scroll/index.js.map +1 -1
- package/es5/directives/touch/index.js +7 -4
- package/es5/directives/touch/index.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/activatable/index.js +0 -8
- package/es5/mixins/activatable/index.js.map +1 -1
- package/es5/mixins/groupable/index.js.map +1 -1
- package/es5/mixins/positionable/index.js.map +1 -1
- package/es5/mixins/proxyable/index.js.map +1 -1
- package/es5/mixins/registrable/index.js.map +1 -1
- package/es5/mixins/selectable/index.js +4 -2
- package/es5/mixins/selectable/index.js.map +1 -1
- package/es5/mixins/toggleable/index.js.map +1 -1
- package/es5/services/goto/util.js +42 -3
- package/es5/services/goto/util.js.map +1 -1
- package/es5/services/theme/index.js +20 -71
- package/es5/services/theme/index.js.map +1 -1
- package/es5/util/mergeData.js +6 -5
- package/es5/util/mergeData.js.map +1 -1
- package/es5/util/mixins.js +4 -3
- package/es5/util/mixins.js.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
- package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.js +5 -8
- package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
- package/lib/components/VContent/VContent.js +18 -3
- package/lib/components/VContent/VContent.js.map +1 -1
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +17 -7
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
- package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
- package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/lib/components/VGrid/VCol.js +3 -1
- package/lib/components/VGrid/VCol.js.map +1 -1
- package/lib/components/VGrid/VContainer.js +11 -10
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VGrid/grid.js +15 -14
- package/lib/components/VGrid/grid.js.map +1 -1
- package/lib/components/VHover/VHover.js +23 -18
- package/lib/components/VHover/VHover.js.map +1 -1
- package/lib/components/VIcon/VIcon.js +79 -57
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VLabel/VLabel.js +3 -1
- package/lib/components/VLabel/VLabel.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +58 -34
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
- package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +4 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VStepper/VStepper.js +1 -1
- package/lib/components/VStepper/VStepper.js.map +1 -1
- package/lib/components/VStepper/VStepperContent.js +3 -6
- package/lib/components/VStepper/VStepperContent.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +1 -1
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +2 -1
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +1 -8
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/directives/color/index.js +6 -3
- package/lib/directives/color/index.js.map +1 -1
- package/lib/directives/ripple/index.js +5 -3
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/directives/scroll/index.js +1 -2
- package/lib/directives/scroll/index.js.map +1 -1
- package/lib/directives/touch/index.js +7 -4
- package/lib/directives/touch/index.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/activatable/index.js +1 -8
- package/lib/mixins/activatable/index.js.map +1 -1
- package/lib/mixins/groupable/index.js.map +1 -1
- package/lib/mixins/positionable/index.js.map +1 -1
- package/lib/mixins/proxyable/index.js.map +1 -1
- package/lib/mixins/registrable/index.js.map +1 -1
- package/lib/mixins/selectable/index.js +9 -7
- package/lib/mixins/selectable/index.js.map +1 -1
- package/lib/mixins/toggleable/index.js.map +1 -1
- package/lib/services/goto/util.js +42 -3
- package/lib/services/goto/util.js.map +1 -1
- package/lib/services/theme/index.js +18 -64
- package/lib/services/theme/index.js.map +1 -1
- package/lib/util/mergeData.js +6 -5
- package/lib/util/mergeData.js.map +1 -1
- package/lib/util/mixins.js +3 -2
- package/lib/util/mixins.js.map +1 -1
- package/package.json +2 -2
- package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
- package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
- package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
- package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
- package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
- package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
- package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
- package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
- package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
- package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
- package/src/components/VCheckbox/VCheckbox.ts +4 -9
- package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
- package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
- package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
- package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
- package/src/components/VContent/VContent.ts +10 -2
- package/src/components/VCounter/VCounter.ts +1 -1
- package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
- package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
- package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
- package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
- package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
- package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
- package/src/components/VDatePicker/VDatePicker.ts +23 -7
- package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
- package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
- package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
- package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
- package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
- package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
- package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
- package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
- package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
- package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
- package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
- package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
- package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
- package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
- package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
- package/src/components/VGrid/VCol.ts +1 -1
- package/src/components/VGrid/VContainer.ts +12 -10
- package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
- package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
- package/src/components/VGrid/grid.ts +14 -17
- package/src/components/VHover/VHover.ts +21 -17
- package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
- package/src/components/VIcon/VIcon.ts +72 -53
- package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
- package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
- package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
- package/src/components/VLabel/VLabel.ts +1 -1
- package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
- package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
- package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
- package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
- package/src/components/VOtpInput/VOtpInput.ts +57 -32
- package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
- package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
- package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
- package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
- package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
- package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
- package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
- package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
- package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
- package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
- package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
- package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
- package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
- package/src/components/VSelect/VSelect.ts +5 -1
- package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
- package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
- package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
- package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
- package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
- package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
- package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
- package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
- package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
- package/src/components/VStepper/VStepper.ts +2 -2
- package/src/components/VStepper/VStepperContent.ts +7 -12
- package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
- package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
- package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
- package/src/components/VSwitch/VSwitch.ts +1 -1
- package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
- package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
- package/src/components/VTextField/VTextField.ts +2 -1
- package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
- package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
- package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
- package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
- package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
- package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
- package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
- package/src/components/VTooltip/VTooltip.ts +0 -6
- package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
- package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
- package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
- package/src/directives/color/__tests__/color.spec.ts +54 -34
- package/src/directives/color/index.ts +7 -3
- package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
- package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
- package/src/directives/resize/__tests__/resize.spec.ts +5 -5
- package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
- package/src/directives/ripple/index.ts +3 -6
- package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
- package/src/directives/scroll/index.ts +0 -1
- package/src/directives/touch/__tests__/touch.spec.ts +23 -16
- package/src/directives/touch/index.ts +6 -4
- package/src/globals.d.ts +6 -6
- package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
- package/src/mixins/activatable/index.ts +0 -6
- package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
- package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
- package/src/mixins/groupable/index.ts +6 -6
- package/src/mixins/positionable/index.ts +2 -2
- package/src/mixins/proxyable/index.ts +2 -2
- package/src/mixins/registrable/index.ts +4 -4
- package/src/mixins/selectable/index.ts +10 -7
- package/src/mixins/toggleable/index.ts +2 -2
- package/src/services/goto/__tests__/goto.spec.ts +146 -1
- package/src/services/goto/util.ts +44 -5
- package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
- package/src/services/theme/__tests__/theme.spec.ts +81 -83
- package/src/services/theme/index.ts +22 -60
- package/src/util/__tests__/dom.spec.ts +8 -5
- package/src/util/__tests__/helpers.spec.ts +1 -1
- package/src/util/__tests__/mergeData.spec.ts +8 -8
- package/src/util/mergeData.ts +10 -5
- package/src/util/mixins.ts +24 -7
- package/types/alacarte.d.ts +14 -14
- package/types/index.d.ts +8 -8
- package/types/lib.d.ts +173 -173
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/directives/touch/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/directives/touch/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DirectiveBinding, VNode, ObjectDirective } from 'vue'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\nimport makeDirectiveActivatable from '../../util/make-directive-activatable'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left &&\n touchendX < touchstartX - minDistance &&\n wrapper.left(wrapper)\n wrapper.right &&\n touchendX > touchstartX + minDistance &&\n wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper)\n wrapper.down &&\n touchendY > touchstartY + minDistance &&\n wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start && wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end && wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const value = binding.value\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.ctx!.uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(\n eventName,\n handlers[eventName] as EventListener,\n options\n )\n })\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: DirectiveBinding<TouchValue>,\n vnode: VNode\n) {\n const target = binding.value.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.ctx!.uid]\n if (handlers) {\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.ctx!.uid]\n }\n}\n\nexport const Touch: ObjectDirective<HTMLElement, TouchValue> = {\n mounted,\n unmounted,\n}\n\nexport default makeDirectiveActivatable(Touch)\n"],"sourceRoot":"","file":"index.js"}
|
package/lib/framework.js
CHANGED
|
@@ -3,8 +3,7 @@ import Delayable from '../delayable';
|
|
|
3
3
|
import Toggleable from '../toggleable'; // Utilities
|
|
4
4
|
|
|
5
5
|
import mixins from '../../util/mixins';
|
|
6
|
-
import { getSlot
|
|
7
|
-
import { consoleError } from '../../util/console';
|
|
6
|
+
import { getSlot } from '../../util/helpers';
|
|
8
7
|
const baseMixins = mixins(Delayable, Toggleable);
|
|
9
8
|
/* @vue/component */
|
|
10
9
|
|
|
@@ -40,12 +39,6 @@ export default baseMixins.extend({
|
|
|
40
39
|
},
|
|
41
40
|
|
|
42
41
|
mounted() {
|
|
43
|
-
const slotType = getSlotType(this, 'activator', true);
|
|
44
|
-
|
|
45
|
-
if (slotType && ['v-slot', 'normal'].includes(slotType)) {
|
|
46
|
-
consoleError(`The activator slot must be bound, try '<template v-slot:activator="{ on }"><v-btn v-on="on">'`, this);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
42
|
this.addActivatorEvents();
|
|
50
43
|
},
|
|
51
44
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n },\n on: this.genActivatorListeners()\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n },\n on: this.genActivatorListeners()\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":"AAAA;AACA,SAAsB,MAAM,IAAI,iBAAhC,QAAyD,gBAAzD;AAeA,OAAM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,iBAAiB,CAAO,SAAP,EAAkB,KAAlB,EAAyB,MAAzB,CAHrB;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;;AAWL,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YAAY,GAAA;AACV,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":"AAAA;AACA,SAAsB,MAAM,IAAI,iBAAhC,QAAyD,gBAAzD;AAeA,OAAM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,iBAAiB,CAAO,SAAP,EAAkB,KAAlB,EAAyB,MAAzB,CAHrB;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;;AAWL,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YAAY,GAAA;AACV,YAAI,KAAK,WAAT,EAAsB,OAAO,KAAK,WAAZ;AAEtB,YAAI,CAAC,KAAK,SAAL,CAAL,EAAsB,OAAO,SAAP;AAEtB,eAAO,KAAK,SAAL,EAAgB,WAAvB;AACD,OAPO;;AAQR,MAAA,YAAY,GAAA;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,eAAO;AACL,WAAC,KAAK,YAAN,GAAqB,KAAK;AADrB,SAAP;AAGD;;AAdO,KAjBL;;AAkCL,IAAA,OAAO,GAAA;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;;AAsCL,IAAA,aAAa,GAAA;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MAAM,CAAE,CAAF,EAAW;AACf,YAAI,KAAK,QAAL,IAAiB,CAArB,EAAwB;AACtB;AACA;AACA;AACA,UAAA,CAAC,CAAC,cAAF;AACA;AACD;;AACD,aAAK,KAAL,CAAW,QAAX;AACA,aAAK,WAAL,CAAiB,QAAjB;AACD;;AAXM;AA1CJ,GAAP;AAwDD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;AAEA,eAAe,SAAf","sourcesContent":["// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\n// import { ExtractVue } from '../../util/mixins'\nimport { Component } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends Component | null = null> = Component<Registrable<T, C> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (e?: Event): void\n}>\n\nexport function factory<T extends string, C extends Component | null = null> (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable<T, C> {\n return {\n name: 'groupable',\n\n extends: RegistrableInject<T, C>(namespace, child, parent),\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n $activeClass () {\n if (this.activeClass) return this.activeClass\n\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n groupClasses (): object {\n if (!this.$activeClass) return {}\n\n return {\n [this.$activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeUnmount () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle (e?: Event) {\n if (this.disabled && e) {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n e.preventDefault()\n return\n }\n this.$emit('change')\n this.$emitLegacy('change')\n },\n },\n }\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/positionable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AACA,SAAS,kBAAT,QAAmC,oBAAnC;AAGA,MAAM,cAAc,GAAG;AACrB,EAAA,QAAQ,EAAE,OADW;AAErB,EAAA,MAAM,EAAE,OAFa;AAGrB,EAAA,KAAK,EAAE,OAHc;AAIrB,EAAA,IAAI,EAAE,OAJe;AAKrB,EAAA,KAAK,EAAE,OALc;AAMrB,EAAA,GAAG,EAAE;AANgB,CAAvB;AAcA,OAAM,SAAU,OAAV,CAAmB,QAAA,GAAkB,EAArC,EAAuC;AAC3C,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,cADe;AAErB,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAT,GAAkB,kBAAkB,CAAC,cAAD,EAAiB,QAAjB,CAApC,GAAiE;AAFnD,GAAD,CAAtB;AAID;AAED,eAAe,OAAO,EAAtB,C,CAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBI","sourcesContent":["import {defineComponent} from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/positionable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AACA,SAAS,kBAAT,QAAmC,oBAAnC;AAGA,MAAM,cAAc,GAAG;AACrB,EAAA,QAAQ,EAAE,OADW;AAErB,EAAA,MAAM,EAAE,OAFa;AAGrB,EAAA,KAAK,EAAE,OAHc;AAIrB,EAAA,IAAI,EAAE,OAJe;AAKrB,EAAA,KAAK,EAAE,OALc;AAMrB,EAAA,GAAG,EAAE;AANgB,CAAvB;AAcA,OAAM,SAAU,OAAV,CAAmB,QAAA,GAAkB,EAArC,EAAuC;AAC3C,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,cADe;AAErB,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAT,GAAkB,kBAAkB,CAAC,cAAD,EAAiB,QAAjB,CAApC,GAAiE;AAFnD,GAAD,CAAtB;AAID;AAED,eAAe,OAAO,EAAtB,C,CAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBI","sourcesContent":["import {defineComponent} from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, Component } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record<keyof typeof availableProps, boolean>\n\nexport type Positionable<S extends keyof props> = Component<Vue & { [P in S]: boolean }, { [P in S]: BooleanConstructor }>\n\nexport function factory <S extends keyof props> (selected?: S[]): Positionable<S>\nexport function factory (selected: undefined): OptionsVue<Vue, {}, {}, {}, props, typeof availableProps>\nexport function factory (selected: any[] = []): any {\n return defineComponent({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgD,KAAhD;AAQA,OAAM,SAAU,OAAV,CACJ,IAAI,GAAG,YADH,EAEJ,KAAK,GAAG,mBAFJ,EAEuB;AAE3B,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AACN,QAAA,QAAQ,EAAE;AADJ;AADH,KAHc;;AASrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GAAG,GAAA;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;;AAIb,QAAA,GAAG,CAAE,GAAF,EAAU;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB;AAEA,eAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;;AAVY;AADP,KAfW;AA8BrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,iBAAL,GAAyB,GAAzB;AACD;;AAHI;AA9Bc,GAAD,CAAtB;AAoCD;AAED;;AACA,MAAM,SAAS,GAAG,OAAO,EAAzB;AAEA,eAAe,SAAf","sourcesContent":["import { defineComponent, Component, App } from 'vue'\n\nexport type Proxyable<T extends string = 'value'> = Component<App & {\n internalLazyValue: unknown\n internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n prop = 'modelValue',\n event = 'update:modelValue'\n) {\n return defineComponent({\n name: 'proxyable',\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/registrable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,SAAS,WAAT,QAA4B,oBAA5B;;AAEA,SAAS,eAAT,CAA0B,KAA1B,EAAyC,MAAzC,EAAuD;AACrD,SAAO,MAAM,WAAW,CAAC,OAAO,KAAK,oCAAoC,MAAM,EAAvD,CAAxB;AACD;;AASD,OAAM,SAAU,MAAV,CAEH,SAFG,EAEW,KAFX,EAE2B,MAF3B,EAE0C;AAC9C,QAAM,WAAW,GAAG,KAAK,IAAI,MAAT,GAAkB;AACpC,IAAA,QAAQ,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR,CADW;AAEpC,IAAA,UAAU,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR;AAFS,GAAlB,GAGhB,IAHJ;AAKA,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,oBADe;AAGrB,IAAA,MAAM,EAAE;AACN,OAAC,SAAD,GAAa;AACX,QAAA,OAAO,EAAE;AADE;AADP;AAHa,GAAD,CAAtB;AASD;AAED,OAAM,SAAU,OAAV,CAAmB,SAAnB,EAAsC,IAAI,GAAG,KAA7C,EAAkD;AACtD,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,qBADe;;AAGrB,IAAA,OAAO,GAAA;AACL,aAAO;AACL,SAAC,SAAD,GAAa,IAAI,GAAG,IAAH,GAAU;AACzB,UAAA,QAAQ,EAAG,KAAa,QADC;AAEzB,UAAA,UAAU,EAAG,KAAa;AAFD;AADtB,OAAP;AAMD;;AAVoB,GAAD,CAAtB;AAYD","sourcesContent":["import {defineComponent} from 'vue'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/registrable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,SAAS,WAAT,QAA4B,oBAA5B;;AAEA,SAAS,eAAT,CAA0B,KAA1B,EAAyC,MAAzC,EAAuD;AACrD,SAAO,MAAM,WAAW,CAAC,OAAO,KAAK,oCAAoC,MAAM,EAAvD,CAAxB;AACD;;AASD,OAAM,SAAU,MAAV,CAEH,SAFG,EAEW,KAFX,EAE2B,MAF3B,EAE0C;AAC9C,QAAM,WAAW,GAAG,KAAK,IAAI,MAAT,GAAkB;AACpC,IAAA,QAAQ,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR,CADW;AAEpC,IAAA,UAAU,EAAE,eAAe,CAAC,KAAD,EAAQ,MAAR;AAFS,GAAlB,GAGhB,IAHJ;AAKA,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,oBADe;AAGrB,IAAA,MAAM,EAAE;AACN,OAAC,SAAD,GAAa;AACX,QAAA,OAAO,EAAE;AADE;AADP;AAHa,GAAD,CAAtB;AASD;AAED,OAAM,SAAU,OAAV,CAAmB,SAAnB,EAAsC,IAAI,GAAG,KAA7C,EAAkD;AACtD,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,qBADe;;AAGrB,IAAA,OAAO,GAAA;AACL,aAAO;AACL,SAAC,SAAD,GAAa,IAAI,GAAG,IAAH,GAAU;AACzB,UAAA,QAAQ,EAAG,KAAa,QADC;AAEzB,UAAA,UAAU,EAAG,KAAa;AAFD;AADtB,OAAP;AAMD;;AAVoB,GAAD,CAAtB;AAYD","sourcesContent":["import {defineComponent} from 'vue'\nimport { Component } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable<T extends string, C extends Component | null = null> = Component<Vue & {\n [K in T]: C extends Component ? InstanceType<C> : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends Component | null = null\n> (namespace: T, child?: string, parent?: string): Registrable<T, C> {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return defineComponent({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return defineComponent({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -90,13 +90,15 @@ export default mixins(VInput, Rippleable, Comparable).extend({
|
|
|
90
90
|
},
|
|
91
91
|
|
|
92
92
|
genInput(type, attrs) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
// Allow components to override aria-checked by providing it in attrs
|
|
94
|
+
const defaultAttrs = {
|
|
95
|
+
'aria-checked': this.isActive.toString(),
|
|
96
|
+
disabled: this.isDisabled,
|
|
97
|
+
id: this.computedId,
|
|
98
|
+
role: type,
|
|
99
|
+
type
|
|
100
|
+
};
|
|
101
|
+
return h('input', { ...Object.assign(defaultAttrs, attrs),
|
|
100
102
|
value: this.value,
|
|
101
103
|
checked: this.isActive,
|
|
102
104
|
onBlur: this.onBlur,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { h } from 'vue'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n props: {\n id: String,\n value: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.modelValue,\n lazyValue: this.modelValue,\n }\n },\n\n created() {\n this.$_emitChangeEvent = true\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.methods.genLabel.call(this)\n\n if (!label) return label\n\n // Label shouldn't cause the input to focus\n label!.onClick = this.onClick\n\n return label\n },\n genInput (type: string, attrs: object) {\n // Allow components to override aria-checked by providing it in attrs\n const defaultAttrs = {\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }\n\n return h('input', {\n ...Object.assign(defaultAttrs, attrs),\n value: this.value,\n checked: this.isActive,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown,\n onClick: prevent,\n ref: 'input'\n })\n },\n onClick (e: Event) {\n e.preventDefault()\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAA2C,KAA3C;AAKA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,YAA1B,EAAwC,KAAK,GAAG,mBAAhD,EAAmE;AACvE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,YADe;AAErB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KAFc;;AAMrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAVoB;;AAYrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAZc,GAAD,CAAtB;AAqBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import { defineComponent, Component } from 'vue'\n\nexport type Toggleable<T extends string = 'value'> = Component<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'modelValue', event = 'update:modelValue') {\n return defineComponent({\n name: 'toggleable',\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -26,18 +26,57 @@ export function getContainer(container) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
function type(el) {
|
|
29
|
-
|
|
29
|
+
var _a;
|
|
30
|
+
|
|
31
|
+
if (el == null) return el; // Vue 3 component detection
|
|
32
|
+
|
|
33
|
+
if (isVue3Component(el)) return 'VueComponent';
|
|
34
|
+
return ((_a = el.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown';
|
|
35
|
+
} // Helper function to detect Vue 3 component instances
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
function isVue3Component(el) {
|
|
39
|
+
// Check for Vue 3 component instance properties
|
|
40
|
+
return !!(el && ( // Direct component instance with $el
|
|
41
|
+
el.$el || // Component instance with appContext (Vue 3 runtime)
|
|
42
|
+
el.appContext || // Component proxy with type property (from Vue Test Utils)
|
|
43
|
+
el.type && (el.type.name || el.type.__name) || // Component with setupState (Composition API)
|
|
44
|
+
el.setupState || // Component with ctx property (internal Vue 3)
|
|
45
|
+
el.ctx && el.ctx.type));
|
|
30
46
|
}
|
|
31
47
|
|
|
32
48
|
function $(el) {
|
|
33
49
|
if (typeof el === 'string') {
|
|
34
50
|
return document.querySelector(el);
|
|
35
|
-
} else if (el && el._isVue) {
|
|
36
|
-
return el.$el;
|
|
37
51
|
} else if (el instanceof HTMLElement) {
|
|
38
52
|
return el;
|
|
53
|
+
} else if (isVue3Component(el)) {
|
|
54
|
+
return extractElementFromVue3Component(el);
|
|
39
55
|
} else {
|
|
40
56
|
return null;
|
|
41
57
|
}
|
|
58
|
+
} // Helper function to extract HTMLElement from Vue 3 component
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
function extractElementFromVue3Component(component) {
|
|
62
|
+
var _a, _b, _c;
|
|
63
|
+
|
|
64
|
+
if (component.$el instanceof HTMLElement) {
|
|
65
|
+
return component.$el;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (component.element instanceof HTMLElement) {
|
|
69
|
+
return component.element;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (((_b = (_a = component.ctx) === null || _a === void 0 ? void 0 : _a.vnode) === null || _b === void 0 ? void 0 : _b.el) instanceof HTMLElement) {
|
|
73
|
+
return component.ctx.vnode.el;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (((_c = component.vnode) === null || _c === void 0 ? void 0 : _c.el) instanceof HTMLElement) {
|
|
77
|
+
return component.vnode.el;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return null;
|
|
42
81
|
}
|
|
43
82
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n if (el == null) return el\n // Vue 3 component detection\n if (isVue3Component(el)) return 'VueComponent'\n return el.constructor?.name || 'Unknown'\n}\n\n// Helper function to detect Vue 3 component instances\nfunction isVue3Component (el: any): boolean {\n // Check for Vue 3 component instance properties\n return !!(el && (\n // Direct component instance with $el\n el.$el ||\n // Component instance with appContext (Vue 3 runtime)\n el.appContext ||\n // Component proxy with type property (from Vue Test Utils)\n (el.type && (el.type.name || el.type.__name)) ||\n // Component with setupState (Composition API)\n el.setupState ||\n // Component with ctx property (internal Vue 3)\n (el.ctx && el.ctx.type)\n ))\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el instanceof HTMLElement) {\n return el\n } else if (isVue3Component(el)) {\n return extractElementFromVue3Component(el)\n } else {\n return null\n }\n}\n\n// Helper function to extract HTMLElement from Vue 3 component\nfunction extractElementFromVue3Component (component: any): HTMLElement | null {\n if (component.$el instanceof HTMLElement) {\n return component.$el\n }\n\n if (component.element instanceof HTMLElement) {\n return component.element\n }\n\n if (component.ctx?.vnode?.el instanceof HTMLElement) {\n return component.ctx.vnode.el\n }\n\n if (component.vnode?.el instanceof HTMLElement) {\n return component.vnode.el\n }\n\n return null\n}\n"],"sourceRoot":"","file":"util.js"}
|
|
@@ -10,7 +10,7 @@ export class Theme extends Service {
|
|
|
10
10
|
this.disabled = false;
|
|
11
11
|
this.isDark = null;
|
|
12
12
|
this.unwatch = null;
|
|
13
|
-
this.
|
|
13
|
+
this.metaManager = null;
|
|
14
14
|
const {
|
|
15
15
|
dark,
|
|
16
16
|
disable,
|
|
@@ -36,11 +36,8 @@ export class Theme extends Service {
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
set css(val) {
|
|
39
|
-
if (this.
|
|
40
|
-
|
|
41
|
-
this.applyVueMeta23();
|
|
42
|
-
}
|
|
43
|
-
|
|
39
|
+
if (this.metaManager) {
|
|
40
|
+
this.applyVueMeta3(val);
|
|
44
41
|
return;
|
|
45
42
|
}
|
|
46
43
|
|
|
@@ -74,21 +71,19 @@ export class Theme extends Service {
|
|
|
74
71
|
|
|
75
72
|
|
|
76
73
|
init(root, ssrContext) {
|
|
77
|
-
if (this.disabled) return;
|
|
78
|
-
|
|
74
|
+
if (this.disabled) return; // Инициализируем vue-meta 3
|
|
75
|
+
|
|
76
|
+
this.initVueMeta3(root);
|
|
79
77
|
|
|
80
|
-
if (
|
|
81
|
-
this.initVueMeta(root);
|
|
82
|
-
} else if (ssrContext) {
|
|
78
|
+
if (ssrContext) {
|
|
83
79
|
this.initSSR(ssrContext);
|
|
80
|
+
} else {
|
|
81
|
+
this.initTheme(root);
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
this.initTheme(root);
|
|
87
83
|
} // Allows for you to set target theme
|
|
88
84
|
|
|
89
85
|
|
|
90
86
|
setTheme(theme, value) {
|
|
91
|
-
console.log('setTheme');
|
|
92
87
|
this.themes[theme] = Object.assign(this.themes[theme], value);
|
|
93
88
|
this.applyTheme();
|
|
94
89
|
} // Reset theme defaults
|
|
@@ -134,52 +129,17 @@ export class Theme extends Service {
|
|
|
134
129
|
document.head.appendChild(this.styleEl);
|
|
135
130
|
}
|
|
136
131
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
// vue-meta needs to apply after mounted()
|
|
143
|
-
root.$nextTick(() => {
|
|
144
|
-
this.applyVueMeta23();
|
|
145
|
-
});
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo';
|
|
150
|
-
const metaInfo = root.$options[metaKeyName] || {};
|
|
151
|
-
|
|
152
|
-
root.$options[metaKeyName] = () => {
|
|
153
|
-
metaInfo.style = metaInfo.style || [];
|
|
154
|
-
const vuetifyStylesheet = metaInfo.style.find(s => s.id === 'vuetify-theme-stylesheet');
|
|
155
|
-
|
|
156
|
-
if (!vuetifyStylesheet) {
|
|
157
|
-
metaInfo.style.push({
|
|
158
|
-
cssText: this.generatedStyles,
|
|
159
|
-
type: 'text/css',
|
|
160
|
-
id: 'vuetify-theme-stylesheet',
|
|
161
|
-
nonce: (this.options || {}).cspNonce
|
|
162
|
-
});
|
|
163
|
-
} else {
|
|
164
|
-
vuetifyStylesheet.cssText = this.generatedStyles;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return metaInfo;
|
|
168
|
-
};
|
|
132
|
+
initVueMeta3(root) {
|
|
133
|
+
// Vue Meta 3 теперь работает через плагин, а не через отдельный manager
|
|
134
|
+
// Стили будут добавляться напрямую через useMeta API в компонентах
|
|
135
|
+
// или через обычный DOM API
|
|
136
|
+
this.metaManager = null;
|
|
169
137
|
}
|
|
170
138
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
set({
|
|
176
|
-
style: [{
|
|
177
|
-
cssText: this.generatedStyles,
|
|
178
|
-
type: 'text/css',
|
|
179
|
-
id: 'vuetify-theme-stylesheet',
|
|
180
|
-
nonce: this.options.cspNonce
|
|
181
|
-
}]
|
|
182
|
-
});
|
|
139
|
+
applyVueMeta3(css) {
|
|
140
|
+
// Vue Meta 3 больше не использует manager.addMeta API
|
|
141
|
+
// Используем обычный DOM API для обновления стилей
|
|
142
|
+
this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = css);
|
|
183
143
|
}
|
|
184
144
|
|
|
185
145
|
initSSR(ssrContext) {
|
|
@@ -242,12 +202,6 @@ export class Theme extends Service {
|
|
|
242
202
|
|
|
243
203
|
get parsedTheme() {
|
|
244
204
|
return ThemeUtils.parse(this.currentTheme || {}, undefined, getNestedValue(this.options, ['variations'], true));
|
|
245
|
-
} // Is using v2.3 of vue-meta
|
|
246
|
-
// https://github.com/nuxt/vue-meta/releases/tag/v2.3.0
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
get isVueMeta23() {
|
|
250
|
-
return typeof this.vueMeta.addApp === 'function';
|
|
251
205
|
}
|
|
252
206
|
|
|
253
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private vueMeta = null as any | null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23()\n }\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n /* istanbul ignore else */\n if ((root as any).$meta) {\n this.initVueMeta(root)\n } else if (ssrContext) {\n this.initSSR(ssrContext)\n }\n\n this.initTheme(root)\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n console.log('setTheme')\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta (root: any) {\n console.log('init vue meta')\n this.vueMeta = root.$meta()\n if (this.isVueMeta23) {\n // vue-meta needs to apply after mounted()\n root.$nextTick(() => {\n this.applyVueMeta23()\n })\n return\n }\n\n const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'\n const metaInfo = root.$options[metaKeyName] || {}\n\n root.$options[metaKeyName] = () => {\n metaInfo.style = metaInfo.style || []\n\n const vuetifyStylesheet = metaInfo.style.find((s: any) => s.id === 'vuetify-theme-stylesheet')\n\n if (!vuetifyStylesheet) {\n metaInfo.style.push({\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: (this.options || {}).cspNonce,\n })\n } else {\n vuetifyStylesheet.cssText = this.generatedStyles\n }\n\n return metaInfo\n }\n }\n\n private applyVueMeta23 () {\n const { set } = this.vueMeta.addApp('vuetify')\n\n set({\n style: [{\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: this.options.cspNonce,\n }],\n })\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n private get isVueMeta23 (): boolean {\n return typeof this.vueMeta.addApp === 'function'\n }\n}\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\n// Vue Meta 3\nimport { createMetaManager, useMeta } from 'vue-meta'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private metaManager: any = null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.metaManager) {\n this.applyVueMeta3(val)\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n // Инициализируем vue-meta 3\n this.initVueMeta3(root)\n\n if (ssrContext) {\n this.initSSR(ssrContext)\n } else {\n this.initTheme(root)\n }\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta3 (root: App) {\n // Vue Meta 3 теперь работает через плагин, а не через отдельный manager\n // Стили будут добавляться напрямую через useMeta API в компонентах\n // или через обычный DOM API\n this.metaManager = null\n }\n\n private applyVueMeta3 (css: string) {\n // Vue Meta 3 больше не использует manager.addMeta API\n // Используем обычный DOM API для обновления стилей\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = css)\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Vue Meta 3 больше не нужен isVueMeta23 метод\n}\n"],"sourceRoot":"","file":"index.js"}
|
package/lib/util/mergeData.js
CHANGED
|
@@ -129,23 +129,24 @@ export function mergeClasses(target, source) {
|
|
|
129
129
|
return target ? wrapInArray(target).concat(source) : source;
|
|
130
130
|
}
|
|
131
131
|
export function mergeListeners(...args) {
|
|
132
|
-
if (!args[0]
|
|
133
|
-
if (!args[1]) return args[0];
|
|
132
|
+
if (!args[0] && !args[1]) return undefined;
|
|
134
133
|
const dest = {};
|
|
135
134
|
|
|
136
135
|
for (let i = 2; i--;) {
|
|
137
136
|
const arg = args[i];
|
|
137
|
+
if (!arg) continue;
|
|
138
138
|
|
|
139
139
|
for (const event in arg) {
|
|
140
140
|
if (!arg[event]) continue;
|
|
141
|
+
const vueEventName = event.startsWith('on') && event.length > 2 && event.charAt(2) === event.charAt(2).toUpperCase() ? event : `on${event.charAt(0).toUpperCase() + event.slice(1)}`;
|
|
141
142
|
|
|
142
|
-
if (dest[
|
|
143
|
+
if (dest[vueEventName]) {
|
|
143
144
|
// Merge current listeners before (because we are iterating backwards).
|
|
144
145
|
// Note that neither "target" or "source" must be altered.
|
|
145
|
-
dest[
|
|
146
|
+
dest[vueEventName] = [].concat(arg[event], dest[vueEventName]);
|
|
146
147
|
} else {
|
|
147
148
|
// Straight assign.
|
|
148
|
-
dest[
|
|
149
|
+
dest[vueEventName] = arg[event];
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
}
|