@dimailn/vuetify 2.7.2-alpha2 → 2.7.2-alpha20
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.css +45 -45
- package/dist/vuetify.css.map +1 -1
- package/dist/vuetify.js +365 -305
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAppBar/VAppBar.js +7 -12
- package/es5/components/VAppBar/VAppBar.js.map +1 -1
- package/es5/components/VAutocomplete/VAutocomplete.js +10 -7
- package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/es5/components/VCheckbox/VSimpleCheckbox.js +66 -35
- package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/es5/components/VColorPicker/VColorPicker.js +6 -6
- package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
- package/es5/components/VData/VData.js +14 -2
- package/es5/components/VData/VData.js.map +1 -1
- package/es5/components/VDataIterator/VDataIterator.js +4 -3
- package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
- package/es5/components/VDataTable/VDataTable.js +2 -2
- package/es5/components/VDataTable/VDataTable.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeader.js +4 -3
- package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js +4 -2
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/es5/components/VDataTable/VVirtualTable.js +1 -1
- package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
- package/es5/components/VDataTable/mixins/header.js +1 -1
- package/es5/components/VDataTable/mixins/header.js.map +1 -1
- package/es5/components/VDatePicker/VDatePicker.js +6 -6
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +1 -1
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/es5/components/VForm/VForm.js +8 -8
- package/es5/components/VForm/VForm.js.map +1 -1
- package/es5/components/VGrid/VCol.js +3 -3
- package/es5/components/VGrid/VCol.js.map +1 -1
- package/es5/components/VGrid/VContainer.js +3 -1
- package/es5/components/VGrid/VContainer.js.map +1 -1
- package/es5/components/VImg/VImg.js +1 -1
- package/es5/components/VImg/VImg.js.map +1 -1
- package/es5/components/VInput/VInput.js +1 -1
- package/es5/components/VInput/VInput.js.map +1 -1
- package/es5/components/VItemGroup/VItem.js +17 -18
- package/es5/components/VItemGroup/VItem.js.map +1 -1
- package/es5/components/VItemGroup/VItemGroup.js +1 -1
- package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
- package/es5/components/VList/VList.js +1 -1
- package/es5/components/VList/VList.js.map +1 -1
- package/es5/components/VList/VListGroup.js +12 -15
- package/es5/components/VList/VListGroup.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +1 -1
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VOverlay/VOverlay.js +1 -1
- package/es5/components/VOverlay/VOverlay.js.map +1 -1
- package/es5/components/VRadioGroup/VRadioGroup.js +5 -5
- package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/es5/components/VRangeSlider/VRangeSlider.js +1 -1
- package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +3 -5
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VSelect/VSelectList.js +7 -5
- package/es5/components/VSelect/VSelectList.js.map +1 -1
- package/es5/components/VSparkline/VSparkline.js +6 -6
- package/es5/components/VSparkline/VSparkline.js.map +1 -1
- package/es5/components/VStepper/VStepperContent.js +1 -1
- package/es5/components/VStepper/VStepperContent.js.map +1 -1
- package/es5/components/VStepper/VStepperStep.js +1 -1
- package/es5/components/VStepper/VStepperStep.js.map +1 -1
- package/es5/components/VSubheader/VSubheader.js +3 -3
- package/es5/components/VSubheader/VSubheader.js.map +1 -1
- package/es5/components/VTabs/VTab.js.map +1 -1
- package/es5/components/VTabs/VTabs.js +0 -1
- package/es5/components/VTabs/VTabs.js.map +1 -1
- package/es5/components/VTextField/VTextField.js +5 -2
- package/es5/components/VTextField/VTextField.js.map +1 -1
- package/es5/components/VToolbar/VToolbar.js +2 -3
- package/es5/components/VToolbar/VToolbar.js.map +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/es5/components/transitions/createTransition.js +9 -4
- package/es5/components/transitions/createTransition.js.map +1 -1
- package/es5/components/transitions/expand-transition.js +8 -7
- package/es5/components/transitions/expand-transition.js.map +1 -1
- package/es5/directives/intersect/index.js +20 -7
- package/es5/directives/intersect/index.js.map +1 -1
- package/es5/directives/mutate/index.js +13 -13
- package/es5/directives/mutate/index.js.map +1 -1
- package/es5/directives/resize/index.js +8 -8
- package/es5/directives/resize/index.js.map +1 -1
- package/es5/directives/scroll/index.js +10 -9
- package/es5/directives/scroll/index.js.map +1 -1
- package/es5/directives/touch/index.js +4 -4
- package/es5/directives/touch/index.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/activatable/index.js +9 -4
- package/es5/mixins/activatable/index.js.map +1 -1
- package/es5/mixins/applicationable/index.js +4 -4
- package/es5/mixins/applicationable/index.js.map +1 -1
- package/es5/mixins/binds-attrs/index.js +1 -1
- package/es5/mixins/binds-attrs/index.js.map +1 -1
- package/es5/mixins/detachable/index.js +3 -3
- package/es5/mixins/detachable/index.js.map +1 -1
- package/es5/mixins/groupable/index.js +1 -1
- package/es5/mixins/groupable/index.js.map +1 -1
- package/es5/mixins/intersectable/index.js +2 -2
- package/es5/mixins/intersectable/index.js.map +1 -1
- package/es5/mixins/menuable/index.js +1 -1
- package/es5/mixins/menuable/index.js.map +1 -1
- package/es5/mixins/overlayable/index.js +5 -4
- package/es5/mixins/overlayable/index.js.map +1 -1
- package/es5/mixins/proxyable/index.js +0 -4
- package/es5/mixins/proxyable/index.js.map +1 -1
- package/es5/mixins/selectable/index.js +2 -5
- package/es5/mixins/selectable/index.js.map +1 -1
- package/es5/mixins/translatable/index.js +1 -1
- package/es5/mixins/translatable/index.js.map +1 -1
- package/es5/mixins/validatable/index.js +2 -2
- package/es5/mixins/validatable/index.js.map +1 -1
- package/es5/services/breakpoint/index.js +3 -1
- package/es5/services/breakpoint/index.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.js +7 -11
- package/lib/components/VAppBar/VAppBar.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +11 -8
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCheckbox/VSimpleCheckbox.js +72 -36
- package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +6 -6
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VData/VData.js +15 -2
- package/lib/components/VData/VData.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +4 -3
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +2 -2
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.js +4 -3
- package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.js +1 -1
- package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
- package/lib/components/VDataTable/mixins/header.js +1 -1
- package/lib/components/VDataTable/mixins/header.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +6 -6
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +1 -1
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelContent.js +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.js +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/lib/components/VForm/VForm.js +8 -8
- package/lib/components/VForm/VForm.js.map +1 -1
- package/lib/components/VGrid/VCol.js +3 -3
- package/lib/components/VGrid/VCol.js.map +1 -1
- package/lib/components/VGrid/VContainer.js +3 -1
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VImg/VImg.js +1 -1
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInput/VInput.js +1 -1
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VItemGroup/VItem.js +20 -18
- package/lib/components/VItemGroup/VItem.js.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.js +1 -1
- package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
- package/lib/components/VList/VList.js +1 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.js +11 -15
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +1 -1
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +5 -7
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +1 -3
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelect/VSelectList.js +7 -5
- package/lib/components/VSelect/VSelectList.js.map +1 -1
- package/lib/components/VSparkline/VSparkline.js +6 -6
- package/lib/components/VSparkline/VSparkline.js.map +1 -1
- package/lib/components/VStepper/VStepperContent.js +1 -1
- package/lib/components/VStepper/VStepperContent.js.map +1 -1
- package/lib/components/VStepper/VStepperStep.js +1 -1
- package/lib/components/VStepper/VStepperStep.js.map +1 -1
- package/lib/components/VSubheader/VSubheader.js +2 -3
- package/lib/components/VSubheader/VSubheader.js.map +1 -1
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +0 -1
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +5 -2
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +4 -3
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/lib/components/transitions/createTransition.js +1 -1
- package/lib/components/transitions/createTransition.js.map +1 -1
- package/lib/components/transitions/expand-transition.js +8 -7
- package/lib/components/transitions/expand-transition.js.map +1 -1
- package/lib/directives/intersect/index.js +20 -7
- package/lib/directives/intersect/index.js.map +1 -1
- package/lib/directives/mutate/index.js +13 -13
- package/lib/directives/mutate/index.js.map +1 -1
- package/lib/directives/resize/index.js +8 -8
- package/lib/directives/resize/index.js.map +1 -1
- package/lib/directives/scroll/index.js +10 -9
- package/lib/directives/scroll/index.js.map +1 -1
- package/lib/directives/touch/index.js +4 -4
- package/lib/directives/touch/index.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/activatable/index.js +10 -5
- package/lib/mixins/activatable/index.js.map +1 -1
- package/lib/mixins/applicationable/index.js +4 -4
- package/lib/mixins/applicationable/index.js.map +1 -1
- package/lib/mixins/binds-attrs/index.js +1 -1
- package/lib/mixins/binds-attrs/index.js.map +1 -1
- package/lib/mixins/detachable/index.js +3 -3
- package/lib/mixins/detachable/index.js.map +1 -1
- package/lib/mixins/groupable/index.js +1 -1
- package/lib/mixins/groupable/index.js.map +1 -1
- package/lib/mixins/intersectable/index.js +2 -2
- package/lib/mixins/intersectable/index.js.map +1 -1
- package/lib/mixins/menuable/index.js +1 -1
- package/lib/mixins/menuable/index.js.map +1 -1
- package/lib/mixins/overlayable/index.js +5 -4
- package/lib/mixins/overlayable/index.js.map +1 -1
- package/lib/mixins/proxyable/index.js +0 -4
- package/lib/mixins/proxyable/index.js.map +1 -1
- package/lib/mixins/selectable/index.js +2 -5
- package/lib/mixins/selectable/index.js.map +1 -1
- package/lib/mixins/translatable/index.js +1 -1
- package/lib/mixins/translatable/index.js.map +1 -1
- package/lib/mixins/validatable/index.js +2 -2
- package/lib/mixins/validatable/index.js.map +1 -1
- package/lib/services/breakpoint/index.js +3 -1
- package/lib/services/breakpoint/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VAppBar/VAppBar.ts +11 -13
- package/src/components/VAutocomplete/VAutocomplete.ts +13 -6
- package/src/components/VBottomSheet/VBottomSheet.sass +1 -1
- package/src/components/VCheckbox/VSimpleCheckbox.ts +84 -42
- package/src/components/VCheckbox/__tests__/VSimpleCheckbox.spec.ts +46 -13
- package/src/components/VColorPicker/VColorPicker.ts +6 -6
- package/src/components/VData/VData.ts +12 -1
- package/src/components/VDataIterator/VDataIterator.ts +5 -3
- package/src/components/VDataTable/VDataTable.ts +2 -2
- package/src/components/VDataTable/VDataTableHeader.ts +5 -4
- package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
- package/src/components/VDataTable/VVirtualTable.ts +1 -1
- package/src/components/VDataTable/mixins/header.ts +6 -6
- package/src/components/VDatePicker/VDatePicker.ts +6 -6
- package/src/components/VDialog/VDialog.ts +1 -1
- package/src/components/VExpansionPanel/VExpansionPanelContent.ts +1 -1
- package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +1 -1
- package/src/components/VForm/VForm.ts +8 -8
- package/src/components/VGrid/VCol.ts +2 -2
- package/src/components/VGrid/VContainer.ts +1 -1
- package/src/components/VImg/VImg.ts +1 -1
- package/src/components/VInput/VInput.ts +1 -1
- package/src/components/VItemGroup/VItem.ts +25 -23
- package/src/components/VItemGroup/VItemGroup.ts +3 -3
- package/src/components/VList/VList.ts +1 -1
- package/src/components/VList/VListGroup.ts +14 -14
- package/src/components/VMenu/VMenu.sass +2 -2
- package/src/components/VMenu/VMenu.ts +1 -0
- package/src/components/VOverlay/VOverlay.ts +1 -1
- package/src/components/VRadioGroup/VRadioGroup.ts +8 -9
- package/src/components/VRangeSlider/VRangeSlider.ts +1 -1
- package/src/components/VSelect/VSelect.ts +6 -5
- package/src/components/VSelect/VSelectList.ts +5 -5
- package/src/components/VSnackbar/VSnackbar.sass +2 -2
- package/src/components/VSparkline/VSparkline.ts +6 -6
- package/src/components/VStepper/VStepperContent.ts +1 -1
- package/src/components/VStepper/VStepperStep.ts +1 -1
- package/src/components/VSubheader/VSubheader.ts +2 -2
- package/src/components/VTabs/VTab.ts +1 -1
- package/src/components/VTabs/VTabs.ts +0 -1
- package/src/components/VTextField/VTextField.ts +4 -3
- package/src/components/VToolbar/VToolbar.ts +4 -5
- package/src/components/VTreeview/VTreeviewNode.ts +1 -1
- package/src/components/transitions/createTransition.ts +1 -2
- package/src/components/transitions/expand-transition.ts +9 -7
- package/src/directives/intersect/index.ts +81 -42
- package/src/directives/mutate/index.ts +58 -49
- package/src/directives/resize/index.ts +33 -14
- package/src/directives/scroll/index.ts +36 -20
- package/src/directives/touch/index.ts +37 -27
- package/src/mixins/activatable/index.ts +8 -4
- package/src/mixins/applicationable/index.ts +4 -4
- package/src/mixins/binds-attrs/index.ts +1 -1
- package/src/mixins/detachable/index.ts +5 -5
- package/src/mixins/groupable/index.ts +1 -1
- package/src/mixins/intersectable/index.ts +2 -2
- package/src/mixins/menuable/index.ts +1 -1
- package/src/mixins/overlayable/index.ts +4 -5
- package/src/mixins/proxyable/index.ts +0 -5
- package/src/mixins/selectable/index.ts +3 -7
- package/src/mixins/translatable/index.ts +1 -1
- package/src/mixins/validatable/index.ts +2 -2
- package/src/services/breakpoint/index.ts +5 -0
- package/src/styles/generic/_transitions.scss +38 -38
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
function
|
|
1
|
+
function mounted(el, binding, vnode) {
|
|
2
2
|
const callback = binding.value;
|
|
3
3
|
const options = binding.options || {
|
|
4
4
|
passive: true
|
|
5
5
|
};
|
|
6
6
|
window.addEventListener('resize', callback, options);
|
|
7
7
|
el._onResize = Object(el._onResize);
|
|
8
|
-
el._onResize[vnode.
|
|
8
|
+
el._onResize[vnode.ctx.uid] = {
|
|
9
9
|
callback,
|
|
10
10
|
options
|
|
11
11
|
};
|
|
@@ -15,21 +15,21 @@ function inserted(el, binding, vnode) {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function unmounted(el, binding, vnode) {
|
|
19
19
|
var _a;
|
|
20
20
|
|
|
21
|
-
if (!((_a = el._onResize) === null || _a === void 0 ? void 0 : _a[vnode.
|
|
21
|
+
if (!((_a = el._onResize) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid])) return;
|
|
22
22
|
const {
|
|
23
23
|
callback,
|
|
24
24
|
options
|
|
25
|
-
} = el._onResize[vnode.
|
|
25
|
+
} = el._onResize[vnode.ctx.uid];
|
|
26
26
|
window.removeEventListener('resize', callback, options);
|
|
27
|
-
delete el._onResize[vnode.
|
|
27
|
+
delete el._onResize[vnode.ctx.uid];
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export const Resize = {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
mounted,
|
|
32
|
+
unmounted
|
|
33
33
|
};
|
|
34
34
|
export default Resize;
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":"AAmBA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,QAAM,QAAQ,GAAG,OAAO,CAAC,KAAzB;AACA,QAAM,OAAO,GAAG,OAAO,CAAC,OAAR,IAAmB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAnC;AAEA,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,QAAlC,EAA4C,OAA5C;AAEA,EAAA,EAAE,CAAC,SAAH,GAAe,MAAM,CAAC,EAAE,CAAC,SAAJ,CAArB;AACA,EAAA,EAAE,CAAC,SAAH,CAAc,KAAK,CAAC,GAAN,CAAW,GAAzB,IAAgC;AAC9B,IAAA,QAD8B;AAE9B,IAAA;AAF8B,GAAhC;;AAKA,MAAI,CAAC,OAAO,CAAC,SAAT,IAAsB,CAAC,OAAO,CAAC,SAAR,CAAkB,KAA7C,EAAoD;AAClD,IAAA,QAAQ;AACT;AACF;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;;;AAEZ,MAAI,EAAC,CAAA,EAAA,GAAA,EAAE,CAAC,SAAH,MAAY,IAAZ,IAAY,EAAA,KAAA,KAAA,CAAZ,GAAY,KAAA,CAAZ,GAAY,EAAA,CAAG,KAAK,CAAC,GAAN,CAAW,GAAd,CAAb,CAAJ,EAAqC;AAErC,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA;AAAZ,MAAwB,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAA9B;AAEA,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,QAArC,EAA+C,OAA/C;AAEA,SAAO,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAoB;AACrC,EAAA,OADqC;AAErC,EAAA;AAFqC,CAAhC;AAKP,eAAe,MAAf","sourcesContent":["import { DirectiveBinding, ObjectDirective, VNode } from 'vue'\n\ninterface ResizeDirectiveBinding extends DirectiveBinding {\n value: () => void\n options?: boolean | AddEventListenerOptions\n}\n\ndeclare global {\n interface HTMLElement {\n _onResize?: Record<\n number,\n {\n callback: () => void\n options: boolean | AddEventListenerOptions\n }\n >\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n const callback = binding.value\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.ctx!.uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n if (!el._onResize?.[vnode.ctx!.uid]) return\n\n const { callback, options } = el._onResize[vnode.ctx!.uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.ctx!.uid]\n}\n\nexport const Resize: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function
|
|
1
|
+
function mounted(el, binding, vnode) {
|
|
2
2
|
const {
|
|
3
3
|
self = false
|
|
4
4
|
} = binding.modifiers || {};
|
|
@@ -10,8 +10,9 @@ function inserted(el, binding, vnode) {
|
|
|
10
10
|
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
|
11
11
|
if (!target) return;
|
|
12
12
|
target.addEventListener('scroll', handler, options);
|
|
13
|
-
el._onScroll = Object(el._onScroll);
|
|
14
|
-
|
|
13
|
+
el._onScroll = Object(el._onScroll); // В Vue 3 используем vnode.ctx.uid вместо vnode.context._uid
|
|
14
|
+
|
|
15
|
+
el._onScroll[vnode.ctx.uid] = {
|
|
15
16
|
handler,
|
|
16
17
|
options,
|
|
17
18
|
// Don't reference self
|
|
@@ -19,22 +20,22 @@ function inserted(el, binding, vnode) {
|
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
function
|
|
23
|
+
function unmounted(el, binding, vnode) {
|
|
23
24
|
var _a;
|
|
24
25
|
|
|
25
|
-
if (!((_a = el._onScroll) === null || _a === void 0 ? void 0 : _a[vnode.
|
|
26
|
+
if (!((_a = el._onScroll) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid])) return;
|
|
26
27
|
const {
|
|
27
28
|
handler,
|
|
28
29
|
options,
|
|
29
30
|
target = el
|
|
30
|
-
} = el._onScroll[vnode.
|
|
31
|
+
} = el._onScroll[vnode.ctx.uid];
|
|
31
32
|
target.removeEventListener('scroll', handler, options);
|
|
32
|
-
delete el._onScroll[vnode.
|
|
33
|
+
delete el._onScroll[vnode.ctx.uid];
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export const Scroll = {
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
mounted,
|
|
38
|
+
unmounted
|
|
38
39
|
};
|
|
39
40
|
export default Scroll;
|
|
40
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/directives/scroll/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/directives/scroll/index.ts"],"names":[],"mappings":"AAeA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,QAAM;AAAE,IAAA,IAAI,GAAG;AAAT,MAAmB,OAAO,CAAC,SAAR,IAAqB,EAA9C;AACA,QAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,QAAM,OAAO,GAAI,OAAO,KAAP,KAAiB,QAAjB,IAA6B,KAAK,CAAC,OAApC,IAAgD;AAC9D,IAAA,OAAO,EAAE;AADqD,GAAhE;AAGA,QAAM,OAAO,GACX,OAAO,KAAP,KAAiB,UAAjB,IAA+B,iBAAiB,KAAhD,GACI,KADJ,GAEI,KAAK,CAAC,OAHZ;AAKA,QAAM,MAAM,GAAG,IAAI,GACf,EADe,GAEf,OAAO,CAAC,GAAR,GACE,QAAQ,CAAC,aAAT,CAAuB,OAAO,CAAC,GAA/B,CADF,GAEE,MAJN;AAMA,MAAI,CAAC,MAAL,EAAa;AAEb,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,OAAlC,EAA2C,OAA3C;AAEA,EAAA,EAAE,CAAC,SAAH,GAAe,MAAM,CAAC,EAAE,CAAC,SAAJ,CAArB,CAtBY,CAuBZ;;AACA,EAAA,EAAE,CAAC,SAAH,CAAc,KAAK,CAAC,GAAN,CAAW,GAAzB,IAAgC;AAC9B,IAAA,OAD8B;AAE9B,IAAA,OAF8B;AAG9B;AACA,IAAA,MAAM,EAAE,IAAI,GAAG,SAAH,GAAe;AAJG,GAAhC;AAMD;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;;;AAEZ,MAAI,EAAC,CAAA,EAAA,GAAA,EAAE,CAAC,SAAH,MAAY,IAAZ,IAAY,EAAA,KAAA,KAAA,CAAZ,GAAY,KAAA,CAAZ,GAAY,EAAA,CAAG,KAAK,CAAC,GAAN,CAAW,GAAd,CAAb,CAAJ,EAAqC;AAErC,QAAM;AAAE,IAAA,OAAF;AAAW,IAAA,OAAX;AAAoB,IAAA,MAAM,GAAG;AAA7B,MAAoC,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAA1C;AAEA,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,OAArC,EAA8C,OAA9C;AACA,SAAO,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAAP;AACD;;AAED,OAAO,MAAM,MAAM,GAAoB;AACrC,EAAA,OADqC;AAErC,EAAA;AAFqC,CAAhC;AAKP,eAAe,MAAf","sourcesContent":["import { DirectiveBinding, VNode, ObjectDirective } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value:\n | EventListener\n | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n }\n | (EventListenerObject & { options?: boolean | AddEventListenerOptions })\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: ScrollDirectiveBinding,\n vnode: VNode\n) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || {\n passive: true,\n }\n const handler =\n typeof value === 'function' || 'handleEvent' in value\n ? value\n : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n // В Vue 3 используем vnode.ctx.uid вместо vnode.context._uid\n el._onScroll![vnode.ctx!.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ScrollDirectiveBinding,\n vnode: VNode\n) {\n if (!el._onScroll?.[vnode.ctx!.uid]) return\n\n const { handler, options, target = el } = el._onScroll[vnode.ctx!.uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[vnode.ctx!.uid]\n}\n\nexport const Scroll: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Scroll\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -71,7 +71,7 @@ function createHandlers(value) {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
function
|
|
74
|
+
function mounted(el, binding, vnode) {
|
|
75
75
|
const value = binding.value;
|
|
76
76
|
const target = value.parent ? el.parentElement : el;
|
|
77
77
|
const options = value.options || {
|
|
@@ -87,7 +87,7 @@ function inserted(el, binding, vnode) {
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
function
|
|
90
|
+
function unmounted(el, binding, vnode) {
|
|
91
91
|
const target = binding.value.parent ? el.parentElement : el;
|
|
92
92
|
if (!target || !target._touchHandlers) return;
|
|
93
93
|
const handlers = target._touchHandlers[vnode.ctx.uid];
|
|
@@ -98,8 +98,8 @@ function unbind(el, binding, vnode) {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
export const Touch = {
|
|
101
|
-
mounted
|
|
102
|
-
unmounted
|
|
101
|
+
mounted,
|
|
102
|
+
unmounted
|
|
103
103
|
};
|
|
104
104
|
export default makeDirectiveActivatable(Touch);
|
|
105
105
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/directives/touch/index.ts"],"names":[],"mappings":"AACA,SAAS,IAAT,QAAqB,oBAArB;AAEA,OAAO,wBAAP,MAAqC,uCAArC;;
|
|
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 keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.ctx!.uid]\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
|
@@ -49,7 +49,7 @@ export default baseMixins.extend({
|
|
|
49
49
|
this.addActivatorEvents();
|
|
50
50
|
},
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
beforeUnmount() {
|
|
53
53
|
this.removeActivatorEvents();
|
|
54
54
|
},
|
|
55
55
|
|
|
@@ -71,12 +71,15 @@ export default baseMixins.extend({
|
|
|
71
71
|
},
|
|
72
72
|
|
|
73
73
|
genActivator() {
|
|
74
|
-
|
|
74
|
+
let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {
|
|
75
75
|
attrs: { ...this.genActivatorListeners(),
|
|
76
76
|
...this.genActivatorAttributes()
|
|
77
77
|
}
|
|
78
78
|
})) || [];
|
|
79
|
-
|
|
79
|
+
node = Array.isArray(node) ? node : [node];
|
|
80
|
+
this.activatorNode = node.flatMap(node => {
|
|
81
|
+
return node.type === Symbol.for('v-fgt') ? node.children : node;
|
|
82
|
+
});
|
|
80
83
|
return node;
|
|
81
84
|
},
|
|
82
85
|
|
|
@@ -123,7 +126,9 @@ export default baseMixins.extend({
|
|
|
123
126
|
},
|
|
124
127
|
|
|
125
128
|
getActivator(e) {
|
|
126
|
-
// If we've already fetched the activator, re-use
|
|
129
|
+
var _a; // If we've already fetched the activator, re-use
|
|
130
|
+
|
|
131
|
+
|
|
127
132
|
if (this.activatorElement) return this.activatorElement;
|
|
128
133
|
let activator = null;
|
|
129
134
|
|
|
@@ -144,7 +149,7 @@ export default baseMixins.extend({
|
|
|
144
149
|
// Use the contents of the activator slot
|
|
145
150
|
// There's either only one element in it or we
|
|
146
151
|
// don't have a click event to use as a last resort
|
|
147
|
-
const vm = this.activatorNode[0].component.ctx;
|
|
152
|
+
const vm = (_a = this.activatorNode[0].component) === null || _a === void 0 ? void 0 : _a.ctx;
|
|
148
153
|
|
|
149
154
|
if (vm && (vm.isActivatable !== undefined || vm.isMenuable !== undefined)) {
|
|
150
155
|
// Activator is actually another activatible component, use its activator (#8846)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,cAAtB;AACA,OAAO,UAAP,MAAuB,eAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,SAAS,OAAT,EAAkB,WAAlB,QAAqC,oBAArC;AACA,SAAS,YAAT,QAA6B,oBAA7B;AAOA,MAAM,UAAU,GAAG,MAAM,CACvB,SADuB,EAEvB,UAFuB,CAAzB;AAKA;;AACA,eAAe,UAAU,CAAC,MAAX,CAAkB;AAC/B,EAAA,IAAI,EAAE,aADyB;AAG/B,EAAA,KAAK,EAAE;AACL,IAAA,SAAS,EAAE;AACT,MAAA,OAAO,EAAE,IADA;AAET,MAAA,SAAS,EAAG,GAAD,IAAyB;AAClC,eAAO,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,CAA8B,OAAO,GAArC,CAAP;AACD;AAJQ,KADN;AAOL,IAAA,QAAQ,EAAE,OAPL;AAQL,IAAA,iBAAiB,EAAE,OARd;AASL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,OADK;AAEX,MAAA,OAAO,EAAE;AAFE,KATR;AAaL,IAAA,WAAW,EAAE,OAbR;AAcL,IAAA,WAAW,EAAE;AAdR,GAHwB;AAoB/B,EAAA,IAAI,EAAE,OAAO;AACX;AACA,IAAA,gBAAgB,EAAE,IAFP;AAGX,IAAA,aAAa,EAAE,EAHJ;AAIX,IAAA,MAAM,EAAE,CAAC,OAAD,EAAU,YAAV,EAAwB,YAAxB,EAAsC,OAAtC,CAJG;AAKX,IAAA,SAAS,EAAE;AALA,GAAP,CApByB;AA4B/B,EAAA,KAAK,EAAE;AACL,IAAA,SAAS,EAAE,gBADN;AAEL,IAAA,WAAW,EAAE,gBAFR;AAGL,IAAA,WAAW,EAAE;AAHR,GA5BwB;;AAkC/B,EAAA,OAAO,GAAA;AACL,UAAM,QAAQ,GAAG,WAAW,CAAC,IAAD,EAAO,WAAP,EAAoB,IAApB,CAA5B;;AAEA,QAAI,QAAQ,IAAI,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,CAA8B,QAA9B,CAAhB,EAAyD;AACvD,MAAA,YAAY,CAAC,+FAAD,EAAkG,IAAlG,CAAZ;AACD;;AAED,SAAK,kBAAL;AACD,GA1C8B;;AA4C/B,EAAA,aAAa,GAAA;AACX,SAAK,qBAAL;AACD,GA9C8B;;AAgD/B,EAAA,QAAQ,EAAE;AACR,IAAA,aAAa,GAAA;AACX,aAAO,IAAP;AACD;;AAHO,GAhDqB;AAsD/B,EAAA,OAAO,EAAE;AACP,IAAA,kBAAkB,GAAA;AAChB,UACE,CAAC,KAAK,SAAN,IACA,KAAK,QADL,IAEA,CAAC,KAAK,YAAL,EAHH,EAIE;AAEF,WAAK,SAAL,GAAiB,KAAK,qBAAL,EAAjB;AACA,YAAM,IAAI,GAAG,MAAM,CAAC,IAAP,CAAY,KAAK,SAAjB,CAAb;;AAEA,WAAK,MAAM,GAAX,IAAkB,IAAlB,EAAwB;AACtB,aAAK,YAAL,GAAqB,gBAArB,CAAsC,GAAtC,EAA2C,KAAK,SAAL,CAAe,GAAf,CAA3C;AACD;AACF,KAdM;;AAeP,IAAA,YAAY,GAAA;AACV,YAAM,IAAI,GAAG,OAAO,CAAC,IAAD,EAAO,WAAP,EAAoB,MAAM,CAAC,MAAP,CAAc,KAAK,aAAL,EAAd,EAAoC;AAC1E,QAAA,KAAK,EAAE,EACL,GAAG,KAAK,qBAAL,EADE;AAEL,aAAG,KAAK,sBAAL;AAFE;AADmE,OAApC,CAApB,CAAP,IAKN,EALP;AAOA,WAAK,aAAL,GAAqB,IAArB;AAEA,aAAO,IAAP;AACD,KA1BM;;AA2BP,IAAA,sBAAsB,GAAA;AACpB,aAAO;AACL,QAAA,IAAI,EAAG,KAAK,WAAL,IAAoB,CAAC,KAAK,WAA3B,GAA0C,QAA1C,GAAqD,SADtD;AAEL,yBAAiB,IAFZ;AAGL,yBAAiB,MAAM,CAAC,KAAK,QAAN;AAHlB,OAAP;AAKD,KAjCM;;AAkCP,IAAA,qBAAqB,GAAA;AACnB,UAAI,KAAK,QAAT,EAAmB,OAAO,EAAP;AAEnB,YAAM,SAAS,GAAc,EAA7B;;AAEA,UAAI,KAAK,WAAT,EAAsB;AACpB,QAAA,SAAS,CAAC,YAAV,GAA0B,CAAD,IAAkB;AACzC,eAAK,YAAL,CAAkB,CAAlB;AACA,eAAK,QAAL,CAAc,MAAd;AACD,SAHD;;AAIA,QAAA,SAAS,CAAC,YAAV,GAA0B,CAAD,IAAkB;AACzC,eAAK,YAAL,CAAkB,CAAlB;AACA,eAAK,QAAL,CAAc,OAAd;AACD,SAHD;AAID,OATD,MASO,IAAI,KAAK,WAAT,EAAsB;AAC3B,QAAA,SAAS,CAAC,OAAV,GAAqB,CAAD,IAAkB;AACpC,gBAAM,SAAS,GAAG,KAAK,YAAL,CAAkB,CAAlB,CAAlB;AACA,cAAI,SAAJ,EAAe,SAAS,CAAC,KAAV;AAEf,UAAA,CAAC,CAAC,eAAF;AAEA,eAAK,QAAL,GAAgB,CAAC,KAAK,QAAtB;AACD,SAPD;AAQD;;AAED,UAAI,KAAK,WAAT,EAAsB;AACpB,QAAA,SAAS,CAAC,OAAV,GAAqB,CAAD,IAAkB;AACpC,eAAK,YAAL,CAAkB,CAAlB;AAEA,UAAA,CAAC,CAAC,eAAF;AAEA,eAAK,QAAL,GAAgB,CAAC,KAAK,QAAtB;AACD,SAND;AAOD;;AAED,aAAO,SAAP;AACD,KAtEM;;AAuEP,IAAA,YAAY,CAAE,CAAF,EAAW;AACrB;AACA,UAAI,KAAK,gBAAT,EAA2B,OAAO,KAAK,gBAAZ;AAE3B,UAAI,SAAS,GAAG,IAAhB;;AAEA,UAAI,KAAK,SAAT,EAAoB;AAClB,cAAM,MAAM,GAAG,KAAK,iBAAL,GAAyB,KAAK,GAA9B,GAAoC,QAAnD;;AAEA,YAAI,OAAO,KAAK,SAAZ,KAA0B,QAA9B,EAAwC;AACtC;AACA,UAAA,SAAS,GAAG,MAAM,CAAC,aAAP,CAAqB,KAAK,SAA1B,CAAZ;AACD,SAHD,MAGO,IAAK,KAAK,SAAL,CAAuB,GAA5B,EAAiC;AACtC;AACA,UAAA,SAAS,GAAI,KAAK,SAAL,CAAuB,GAApC;AACD,SAHM,MAGA;AACL;AACA,UAAA,SAAS,GAAG,KAAK,SAAjB;AACD;AACF,OAbD,MAaO,IAAI,KAAK,aAAL,CAAmB,MAAnB,KAA8B,CAA9B,IAAoC,KAAK,aAAL,CAAmB,MAAnB,IAA6B,CAAC,CAAtE,EAA0E;AAE/E;AACA;AACA;AACA,cAAM,EAAE,GAAG,KAAK,aAAL,CAAmB,CAAnB,EAAsB,SAAtB,CAAgC,GAA3C;;AACA,YACE,EAAE,KACD,EAAE,CAAC,aAAH,KAAqB,SAArB,IAAkC,EAAE,CAAC,UAAH,KAAkB,SADnD,CADJ,EAGE;AACA;AACA,UAAA,SAAS,GAAI,EAAU,CAAC,YAAX,EAAb;AACD,SAND,MAMO;AACL,UAAA,SAAS,GAAG,KAAK,aAAL,CAAmB,CAAnB,EAAsB,EAAlC;AACD;AACF,OAfM,MAeA,IAAI,CAAJ,EAAO;AACZ;AACA,QAAA,SAAS,GAAI,CAAC,CAAC,aAAF,IAAmB,CAAC,CAAC,MAAlC;AACD,OArCoB,CAuCrB;;;AACA,WAAK,gBAAL,GAAwB,CAAA,SAAS,KAAA,IAAT,IAAA,SAAS,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAA,SAAS,CAAE,QAAX,MAAwB,IAAI,CAAC,YAA7B,GAA4C,SAA5C,GAAwD,IAAhF;AAEA,aAAO,KAAK,gBAAZ;AACD,KAlHM;;AAmHP,IAAA,cAAc,GAAA;AACZ,aAAO,OAAO,CAAC,IAAD,EAAO,SAAP,EAAkB,KAAK,aAAL,EAAlB,EAAwC,IAAxC,CAAd;AACD,KArHM;;AAsHP,IAAA,aAAa,GAAA;AACX,YAAM,IAAI,GAAG,IAAb;AACA,aAAO;AACL,YAAI,KAAJ,GAAS;AACP,iBAAO,IAAI,CAAC,QAAZ;AACD,SAHI;;AAIL,YAAI,KAAJ,CAAW,QAAX,EAA4B;AAC1B,UAAA,IAAI,CAAC,QAAL,GAAgB,QAAhB;AACD;;AANI,OAAP;AAQD,KAhIM;;AAiIP,IAAA,qBAAqB,GAAA;AACnB,UACE,CAAC,KAAK,SAAN,IACA,CAAC,KAAK,gBAFR,EAGE;AAEF,YAAM,IAAI,GAAG,MAAM,CAAC,IAAP,CAAY,KAAK,SAAjB,CAAb;;AAEA,WAAK,MAAM,GAAX,IAAkB,IAAlB,EAAwB;AACrB,aAAK,gBAAL,CAA8B,mBAA9B,CAAkD,GAAlD,EAAuD,KAAK,SAAL,CAAe,GAAf,CAAvD;AACF;;AAED,WAAK,SAAL,GAAiB,EAAjB;AACD,KA9IM;;AA+IP,IAAA,cAAc,GAAA;AACZ,WAAK,qBAAL;AACA,WAAK,gBAAL,GAAwB,IAAxB;AACA,WAAK,YAAL;AACA,WAAK,kBAAL;AACD;;AApJM;AAtDsB,CAAlB,CAAf","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 beforeDestroy () {\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 const node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n }\n })) || []\n\n this.activatorNode = node\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 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 })) || []\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"}
|
|
@@ -22,7 +22,7 @@ export default function applicationable(value, events = []) {
|
|
|
22
22
|
},
|
|
23
23
|
|
|
24
24
|
applicationProperty(newVal, oldVal) {
|
|
25
|
-
this.$vuetify.application.unregister(this
|
|
25
|
+
this.$vuetify.application.unregister(this.$.uid, oldVal);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
},
|
|
@@ -47,19 +47,19 @@ export default function applicationable(value, events = []) {
|
|
|
47
47
|
this.removeApplication();
|
|
48
48
|
},
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
unmounted() {
|
|
51
51
|
this.removeApplication();
|
|
52
52
|
},
|
|
53
53
|
|
|
54
54
|
methods: {
|
|
55
55
|
callUpdate() {
|
|
56
56
|
if (!this.app) return;
|
|
57
|
-
this.$vuetify.application.register(this
|
|
57
|
+
this.$vuetify.application.register(this.$.uid, this.applicationProperty, this.updateApplication());
|
|
58
58
|
},
|
|
59
59
|
|
|
60
60
|
removeApplication(force = false) {
|
|
61
61
|
if (!force && !this.app) return;
|
|
62
|
-
this.$vuetify.application.unregister(this
|
|
62
|
+
this.$vuetify.application.unregister(this.$.uid, this.applicationProperty);
|
|
63
63
|
},
|
|
64
64
|
|
|
65
65
|
updateApplication: () => 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/applicationable/index.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO,IAAI,mBAApB,QAA+C,iBAA/C,C,CAGA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AAEA,eAAc,SAAU,eAAV,CAA2B,KAA3B,EAA8C,MAAA,GAAmB,EAAjE,EAAmE;AAC/E;AACA,SAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,UAAD,EAAa,OAAb,CAAD,CAApB,CAAN,CAAmD,MAAnD,CAA0D;AAC/D,IAAA,IAAI,EAAE,iBADyD;AAG/D,IAAA,KAAK,EAAE;AACL,MAAA,GAAG,EAAE;AADA,KAHwD;AAO/D,IAAA,QAAQ,EAAE;AACR,MAAA,mBAAmB,GAAA;AACjB,eAAO,KAAP;AACD;;AAHO,KAPqD;AAa/D,IAAA,KAAK,EAAE;AACL;AACA;AACA,MAAA,GAAG,CAAE,CAAF,EAAc,IAAd,EAA2B;AAC5B,QAAA,IAAI,GACA,KAAK,iBAAL,CAAuB,IAAvB,CADA,GAEA,KAAK,UAAL,EAFJ;AAGD,OAPI;;AAQL,MAAA,mBAAmB,CAAE,MAAF,EAAU,MAAV,EAAgB;AACjC,aAAK,QAAL,CAAc,WAAd,CAA0B,UAA1B,CAAqC,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/applicationable/index.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO,IAAI,mBAApB,QAA+C,iBAA/C,C,CAGA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AAEA,eAAc,SAAU,eAAV,CAA2B,KAA3B,EAA8C,MAAA,GAAmB,EAAjE,EAAmE;AAC/E;AACA,SAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,UAAD,EAAa,OAAb,CAAD,CAApB,CAAN,CAAmD,MAAnD,CAA0D;AAC/D,IAAA,IAAI,EAAE,iBADyD;AAG/D,IAAA,KAAK,EAAE;AACL,MAAA,GAAG,EAAE;AADA,KAHwD;AAO/D,IAAA,QAAQ,EAAE;AACR,MAAA,mBAAmB,GAAA;AACjB,eAAO,KAAP;AACD;;AAHO,KAPqD;AAa/D,IAAA,KAAK,EAAE;AACL;AACA;AACA,MAAA,GAAG,CAAE,CAAF,EAAc,IAAd,EAA2B;AAC5B,QAAA,IAAI,GACA,KAAK,iBAAL,CAAuB,IAAvB,CADA,GAEA,KAAK,UAAL,EAFJ;AAGD,OAPI;;AAQL,MAAA,mBAAmB,CAAE,MAAF,EAAU,MAAV,EAAgB;AACjC,aAAK,QAAL,CAAc,WAAd,CAA0B,UAA1B,CAAqC,KAAK,CAAL,CAAO,GAA5C,EAAiD,MAAjD;AACD;;AAVI,KAbwD;;AA0B/D,IAAA,SAAS,GAAA;AACP,WAAK,UAAL;AACD,KA5B8D;;AA8B/D,IAAA,OAAO,GAAA;AACL,WAAK,IAAI,CAAC,GAAG,CAAR,EAAW,MAAM,GAAG,MAAM,CAAC,MAAhC,EAAwC,CAAC,GAAG,MAA5C,EAAoD,CAAC,EAArD,EAAyD;AACvD,aAAK,MAAL,CAAY,MAAM,CAAC,CAAD,CAAlB,EAAuB,KAAK,UAA5B;AACD;;AACD,WAAK,UAAL;AACD,KAnC8D;;AAqC/D,IAAA,OAAO,GAAA;AACL,WAAK,UAAL;AACD,KAvC8D;;AAyC/D,IAAA,WAAW,GAAA;AACT,WAAK,iBAAL;AACD,KA3C8D;;AA6C/D,IAAA,SAAS,GAAA;AACP,WAAK,iBAAL;AACD,KA/C8D;;AAiD/D,IAAA,OAAO,EAAE;AACP,MAAA,UAAU,GAAA;AACR,YAAI,CAAC,KAAK,GAAV,EAAe;AAEf,aAAK,QAAL,CAAc,WAAd,CAA0B,QAA1B,CACE,KAAK,CAAL,CAAO,GADT,EAEE,KAAK,mBAFP,EAGE,KAAK,iBAAL,EAHF;AAKD,OATM;;AAUP,MAAA,iBAAiB,CAAE,KAAK,GAAG,KAAV,EAAe;AAC9B,YAAI,CAAC,KAAD,IAAU,CAAC,KAAK,GAApB,EAAyB;AAEzB,aAAK,QAAL,CAAc,WAAd,CAA0B,UAA1B,CACE,KAAK,CAAL,CAAO,GADT,EAEE,KAAK,mBAFP;AAID,OAjBM;;AAkBP,MAAA,iBAAiB,EAAE,MAAM;AAlBlB;AAjDsD,GAA1D,CAAP;AAsED","sourcesContent":["import { factory as PositionableFactory } from '../positionable'\nimport { TargetProp } from 'vuetify/types/services/application'\n\n// Util\nimport mixins from '../../util/mixins'\n\nexport default function applicationable (value: TargetProp, events: string[] = []) {\n /* @vue/component */\n return mixins(PositionableFactory(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n\n props: {\n app: Boolean,\n },\n\n computed: {\n applicationProperty (): TargetProp {\n return value\n },\n },\n\n watch: {\n // If previous value was app\n // reset the provided prop\n app (x: boolean, prev: boolean) {\n prev\n ? this.removeApplication(true)\n : this.callUpdate()\n },\n applicationProperty (newVal, oldVal) {\n this.$vuetify.application.unregister(this.$.uid, oldVal)\n },\n },\n\n activated () {\n this.callUpdate()\n },\n\n created () {\n for (let i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate)\n }\n this.callUpdate()\n },\n\n mounted () {\n this.callUpdate()\n },\n\n deactivated () {\n this.removeApplication()\n },\n\n unmounted () {\n this.removeApplication()\n },\n\n methods: {\n callUpdate () {\n if (!this.app) return\n\n this.$vuetify.application.register(\n this.$.uid,\n this.applicationProperty,\n this.updateApplication()\n )\n },\n removeApplication (force = false) {\n if (!force && !this.app) return\n\n this.$vuetify.application.unregister(\n this.$.uid,\n this.applicationProperty\n )\n },\n updateApplication: () => 0,\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/binds-attrs/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA;;;AAGG;;AAEH,SAAS,WAAT,CAAsB,QAAtB,EAAsC;AACpC,SAAO,UAAqB,GAArB,EAA0B,MAA1B,EAAgC;AACrC,SAAK,MAAM,IAAX,IAAmB,MAAnB,EAA2B;AACzB,UAAI,CAAC,MAAM,CAAC,SAAP,CAAiB,cAAjB,CAAgC,IAAhC,CAAqC,GAArC,EAA0C,IAA1C,CAAL,EAAsD;AACpD,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/binds-attrs/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA;;;AAGG;;AAEH,SAAS,WAAT,CAAsB,QAAtB,EAAsC;AACpC,SAAO,UAAqB,GAArB,EAA0B,MAA1B,EAAgC;AACrC,SAAK,MAAM,IAAX,IAAmB,MAAnB,EAA2B;AACzB,UAAI,CAAC,MAAM,CAAC,SAAP,CAAiB,cAAjB,CAAgC,IAAhC,CAAqC,GAArC,EAA0C,IAA1C,CAAL,EAAsD;AACpD,eAAO,KAAK,KAAL,CAAW,QAAX,EAAqB,IAArB,CAAP;AACD;AACF;;AACD,SAAK,MAAM,IAAX,IAAmB,GAAnB,EAAwB;AACtB,WAAK,KAAL,CAAW,QAAX,EAAqB,IAArB,IAA6B,GAAG,CAAC,IAAD,CAAhC;AACD;AACF,GATD;AAUD;;AAED,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,MAAM,EAAE,EADG;AAEX,IAAA,UAAU,EAAE;AAFD,GAAP,CADuB;;AAM7B,EAAA,OAAO,GAAA;AACL;AACA;AACA,SAAK,MAAL,CAAY,QAAZ,EAAsB,WAAW,CAAC,QAAD,CAAjC,EAA6C;AAAE,MAAA,SAAS,EAAE;AAAb,KAA7C;AACA,SAAK,MAAL,CAAY,YAAZ,EAA0B,WAAW,CAAC,YAAD,CAArC,EAAqD;AAAE,MAAA,SAAS,EAAE;AAAb,KAArD;AACD;;AAX4B,CAAD,CAA9B","sourcesContent":["import {defineComponent} from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType<Vue> & ((val: any, oldVal: any) => void) {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n delete this.$data[property][attr]\n }\n }\n for (const attr in val) {\n this.$data[property][attr] = val[attr]\n }\n }\n}\n\nexport default defineComponent({\n data: () => ({\n attrs$: {} as Dictionary<string>,\n listeners$: {} as Dictionary<Function | Function[]>,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -13,7 +13,7 @@ function validateAttachTarget(val) {
|
|
|
13
13
|
|
|
14
14
|
function removeActivator(activator) {
|
|
15
15
|
activator.forEach(node => {
|
|
16
|
-
node.
|
|
16
|
+
node.el && node.el.parentNode && node.el.parentNode.removeChild(node.el);
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
/* @vue/component */
|
|
@@ -69,13 +69,13 @@ export default mixins(Bootable).extend({
|
|
|
69
69
|
this.isActive = false;
|
|
70
70
|
},
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
beforeUnmount() {
|
|
73
73
|
if (this.$refs.content && this.$refs.content.parentNode) {
|
|
74
74
|
this.$refs.content.parentNode.removeChild(this.$refs.content);
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
unmounted() {
|
|
79
79
|
if (this.activatorNode) {
|
|
80
80
|
const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode];
|
|
81
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,QAAP,MAAqB,aAArB,C,CAEA;;AACA,SAAS,oBAAT,QAAqC,oBAArC;AACA,OAAO,MAAP,MAAmC,mBAAnC;AACA,SAAS,WAAT,QAA4B,oBAA5B;;AAaA,SAAS,oBAAT,CAA+B,GAA/B,EAAuC;AACrC,QAAM,IAAI,GAAG,OAAO,GAApB;AAEA,MAAI,IAAI,KAAK,SAAT,IAAsB,IAAI,KAAK,QAAnC,EAA6C,OAAO,IAAP;AAE7C,SAAO,GAAG,CAAC,QAAJ,KAAiB,IAAI,CAAC,YAA7B;AACD;;AAED,SAAS,eAAT,CAA0B,SAA1B,EAA4C;AAC1C,EAAA,SAAS,CAAC,OAAV,CAAkB,IAAI,IAAG;AACvB,IAAA,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,QAAP,MAAqB,aAArB,C,CAEA;;AACA,SAAS,oBAAT,QAAqC,oBAArC;AACA,OAAO,MAAP,MAAmC,mBAAnC;AACA,SAAS,WAAT,QAA4B,oBAA5B;;AAaA,SAAS,oBAAT,CAA+B,GAA/B,EAAuC;AACrC,QAAM,IAAI,GAAG,OAAO,GAApB;AAEA,MAAI,IAAI,KAAK,SAAT,IAAsB,IAAI,KAAK,QAAnC,EAA6C,OAAO,IAAP;AAE7C,SAAO,GAAG,CAAC,QAAJ,KAAiB,IAAI,CAAC,YAA7B;AACD;;AAED,SAAS,eAAT,CAA0B,SAA1B,EAA4C;AAC1C,EAAA,SAAS,CAAC,OAAV,CAAkB,IAAI,IAAG;AACvB,IAAA,IAAI,CAAC,EAAL,IACA,IAAI,CAAC,EAAL,CAAQ,UADR,IAEA,IAAI,CAAC,EAAL,CAAQ,UAAR,CAAmB,WAAnB,CAA+B,IAAI,CAAC,EAApC,CAFA;AAGD,GAJD;AAKD;AAED;;;AACA,eAAe,MAAM,CAInB,QAJmB,CAAN,CAIH,MAJG,CAII;AACjB,EAAA,IAAI,EAAE,YADW;AAGjB,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AACN,MAAA,OAAO,EAAE,KADH;AAEN,MAAA,SAAS,EAAE;AAFL,KADH;AAKL,IAAA,YAAY,EAAE;AACZ,MAAA,IAAI,EAAE,MADM;AAEZ,MAAA,OAAO,EAAE;AAFG;AALT,GAHU;AAcjB,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,aAAa,EAAE,IADJ;AAEX,IAAA,WAAW,EAAE;AAFF,GAAP,CAdW;AAmBjB,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,GAAA;AACJ,WAAK,WAAL,GAAmB,KAAnB;AACA,WAAK,UAAL;AACD,KAJI;;AAKL,IAAA,UAAU,GAAA;AACR,WAAK,SAAL,CAAe,KAAK,UAApB;AACD;;AAPI,GAnBU;;AA6BjB,EAAA,WAAW,GAAA;AACT,SAAK,SAAL,CAAe,MAAK;AAClB,UAAI,KAAK,aAAT,EAAwB;AACtB,cAAM,SAAS,GAAG,KAAK,CAAC,OAAN,CAAc,KAAK,aAAnB,IAAoC,KAAK,aAAzC,GAAyD,CAAC,KAAK,aAAN,CAA3E;AAEA,QAAA,SAAS,CAAC,OAAV,CAAkB,IAAI,IAAG;AACvB,cAAI,CAAC,IAAI,CAAC,EAAV,EAAc;AACd,cAAI,CAAC,KAAK,GAAL,CAAS,UAAd,EAA0B;AAE1B,gBAAM,MAAM,GAAG,KAAK,GAAL,KAAa,KAAK,GAAL,CAAS,UAAT,CAAoB,UAAjC,GACX,KAAK,GADM,GAEX,KAAK,GAAL,CAAS,WAFb;AAIA,eAAK,GAAL,CAAS,UAAT,CAAoB,YAApB,CAAiC,IAAI,CAAC,EAAtC,EAA0C,MAA1C;AACD,SATD;AAUD;AACF,KAfD;AAgBD,GA9CgB;;AAgDjB,EAAA,OAAO,GAAA;AACL,SAAK,UAAL,IAAmB,KAAK,UAAL,EAAnB;AACD,GAlDgB;;AAoDjB,EAAA,WAAW,GAAA;AACT,SAAK,QAAL,GAAgB,KAAhB;AACD,GAtDgB;;AAwDjB,EAAA,aAAa,GAAA;AACX,QACE,KAAK,KAAL,CAAW,OAAX,IACA,KAAK,KAAL,CAAW,OAAX,CAAmB,UAFrB,EAGE;AACA,WAAK,KAAL,CAAW,OAAX,CAAmB,UAAnB,CAA8B,WAA9B,CAA0C,KAAK,KAAL,CAAW,OAArD;AACD;AACF,GA/DgB;;AAiEjB,EAAA,SAAS,GAAA;AACP,QAAI,KAAK,aAAT,EAAwB;AACtB,YAAM,SAAS,GAAG,KAAK,CAAC,OAAN,CAAc,KAAK,aAAnB,IAAoC,KAAK,aAAzC,GAAyD,CAAC,KAAK,aAAN,CAA3E;;AACA,UAAI,KAAK,GAAL,CAAS,WAAb,EAA0B;AACxB;AACA;AACA,cAAM,QAAQ,GAAG,IAAI,gBAAJ,CAAqB,IAAI,IAAG;AAC3C,cACE,IAAI,CAAC,IAAL,CAAU,MAAM,IAAI,KAAK,CAAC,IAAN,CAAW,MAAM,CAAC,YAAlB,EAAgC,QAAhC,CAAyC,KAAK,GAA9C,CAApB,CADF,EAEE;AACA,YAAA,QAAQ,CAAC,UAAT;AACA,YAAA,eAAe,CAAC,SAAD,CAAf;AACD;AACF,SAPgB,CAAjB;AAQA,QAAA,QAAQ,CAAC,OAAT,CAAiB,KAAK,GAAL,CAAS,UAA1B,EAAuC;AAAE,UAAA,OAAO,EAAE,KAAX;AAAkB,UAAA,SAAS,EAAE;AAA7B,SAAvC;AACD,OAZD,MAYO;AACL,QAAA,eAAe,CAAC,SAAD,CAAf;AACD;AACF;AACF,GApFgB;;AAsFjB,EAAA,OAAO,EAAE;AACP,IAAA,eAAe,GAAA;AACb,YAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,MAAN,EAAc,2BAAd,CAApC;AAEA,aAAO,OAAO,IAAI;AAChB,SAAC,OAAD,GAAW;AADK,OAAlB;AAGD,KAPM;;AAQP,IAAA,UAAU,GAAA;AACR,UAAI,KAAK,YAAL,IACF,CAAC,KAAK,KAAL,CAAW,OADV,IAEF,KAAK,WAFH,IAGF;AACA;AACA,WAAK,MAAL,KAAgB,EALd,IAKoB;AACtB,WAAK,MAAL,KAAgB,IANd,IAMsB;AACxB,WAAK,MAAL,KAAgB,QAPlB,CAO2B;AAP3B,QAQE;AAEF,UAAI,MAAJ;;AACA,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB;AACA,QAAA,MAAM,GAAG,QAAQ,CAAC,aAAT,CAAuB,YAAvB,CAAT;AACD,OAHD,MAGO,IAAI,OAAO,KAAK,MAAZ,KAAuB,QAA3B,EAAqC;AAC1C;AACA,QAAA,MAAM,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAK,MAA5B,CAAT;AACD,OAHM,MAGA;AACL;AACA,QAAA,MAAM,GAAG,KAAK,MAAd;AACD;;AAED,UAAI,CAAC,MAAL,EAAa;AACX,QAAA,WAAW,CAAC,2BAA2B,KAAK,MAAL,IAAe,YAAY,EAAvD,EAA2D,IAA3D,CAAX;AACA;AACD;;AAED,MAAA,MAAM,CAAC,WAAP,CAAmB,KAAK,KAAL,CAAW,OAA9B;AAEA,WAAK,WAAL,GAAmB,IAAnB;AACD;;AAvCM;AAtFQ,CAJJ,CAAf","sourcesContent":["// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options {\n $el: HTMLElement\n $refs: {\n content?: HTMLElement\n }\n}\n\nfunction validateAttachTarget (val: any) {\n const type = typeof val\n\n if (type === 'boolean' || type === 'string') return true\n\n return val.nodeType === Node.ELEMENT_NODE\n}\n\nfunction removeActivator (activator: VNode[]) {\n activator.forEach(node => {\n node.el &&\n node.el.parentNode &&\n node.el.parentNode.removeChild(node.el)\n })\n}\n\n/* @vue/component */\nexport default mixins<options &\n /* eslint-disable indent */\n ExtractVue<typeof Bootable>\n /* eslint-enable indent */\n>(Bootable).extend({\n name: 'detachable',\n\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget,\n } as PropOptions<boolean | string | Element>,\n contentClass: {\n type: String,\n default: '',\n },\n },\n\n data: () => ({\n activatorNode: null as null | VNode | VNode[],\n hasDetached: false,\n }),\n\n watch: {\n attach () {\n this.hasDetached = false\n this.initDetach()\n },\n hasContent () {\n this.$nextTick(this.initDetach)\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n activator.forEach(node => {\n if (!node.el) return\n if (!this.$el.parentNode) return\n\n const target = this.$el === this.$el.parentNode.firstChild\n ? this.$el\n : this.$el.nextSibling\n\n this.$el.parentNode.insertBefore(node.el, target)\n })\n }\n })\n },\n\n mounted () {\n this.hasContent && this.initDetach()\n },\n\n deactivated () {\n this.isActive = false\n },\n\n beforeUnmount () {\n if (\n this.$refs.content &&\n this.$refs.content.parentNode\n ) {\n this.$refs.content.parentNode.removeChild(this.$refs.content)\n }\n },\n\n unmounted () {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n if (this.$el.isConnected) {\n // Component has been destroyed but the element still exists, we must be in a transition\n // Wait for the transition to finish before cleaning up the detached activator\n const observer = new MutationObserver(list => {\n if (\n list.some(record => Array.from(record.removedNodes).includes(this.$el))\n ) {\n observer.disconnect()\n removeActivator(activator)\n }\n })\n observer.observe(this.$el.parentNode!, { subtree: false, childList: true })\n } else {\n removeActivator(activator)\n }\n }\n },\n\n methods: {\n getScopeIdAttrs () {\n const scopeId = getObjectValueByPath(this.$vnode, 'context.$options._scopeId')\n\n return scopeId && {\n [scopeId]: '',\n }\n },\n initDetach () {\n if (this._isDestroyed ||\n !this.$refs.content ||\n this.hasDetached ||\n // Leave menu in place if attached\n // and dev has not changed target\n this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) return\n\n let target\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]')\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach)\n } else {\n // DOM Element\n target = this.attach\n }\n\n if (!target) {\n consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n return\n }\n\n target.appendChild(this.$refs.content)\n\n this.hasDetached = true\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,YAAG,KAAK,WAAR,EAAqB,OAAO,KAAK,WAAZ;AAErB,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\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends VueConstructor | null = null> = VueConstructor<ExtractVue<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 VueConstructor | 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
|
|
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,YAAG,KAAK,WAAR,EAAqB,OAAO,KAAK,WAAZ;AAErB,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\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends VueConstructor | null = null> = VueConstructor<ExtractVue<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 VueConstructor | 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"}
|
|
@@ -21,11 +21,11 @@ export default function intersectable(options) {
|
|
|
21
21
|
}, vnode);
|
|
22
22
|
},
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
unmounted() {
|
|
25
25
|
const {
|
|
26
26
|
vnode
|
|
27
27
|
} = getCurrentInstance();
|
|
28
|
-
Intersect.
|
|
28
|
+
Intersect.unmounted(this.$el, {
|
|
29
29
|
name: 'intersect',
|
|
30
30
|
value: this.onObserve
|
|
31
31
|
}, vnode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,4BAAtB,C,CAEA;;AACA,SAAS,WAAT,QAA4B,oBAA5B,C,CAEA;;AACA,SAAQ,eAAR,EAAyB,kBAAzB,QAAkD,KAAlD;AAEA,eAAc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,eADe;AAGrB,IAAA,IAAI,EAAE,OAAO;AACX,MAAA,cAAc,EAAE;AADL,KAAP,CAHe;;AAOrB,IAAA,OAAO,GAAA;AACL,YAAM;AAAC,QAAA;AAAD,UAAU,kBAAkB,EAAlC;AACA,MAAA,SAAS,CAAC,OAAV,CAAkB,KAAK,GAAvB,EAA2C;AACzC,QAAA,IAAI,EAAE,WADmC;AAEzC,QAAA,KAAK,EAAE,KAAK;AAF6B,OAA3C,EAGG,KAHH;AAID,KAboB;;AAerB,IAAA,SAAS,GAAA;AACP,YAAM;AAAC,QAAA;AAAD,UAAU,kBAAkB,EAAlC;AAEA,MAAA,SAAS,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,4BAAtB,C,CAEA;;AACA,SAAS,WAAT,QAA4B,oBAA5B,C,CAEA;;AACA,SAAQ,eAAR,EAAyB,kBAAzB,QAAkD,KAAlD;AAEA,eAAc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,eADe;AAGrB,IAAA,IAAI,EAAE,OAAO;AACX,MAAA,cAAc,EAAE;AADL,KAAP,CAHe;;AAOrB,IAAA,OAAO,GAAA;AACL,YAAM;AAAC,QAAA;AAAD,UAAU,kBAAkB,EAAlC;AACA,MAAA,SAAS,CAAC,OAAV,CAAkB,KAAK,GAAvB,EAA2C;AACzC,QAAA,IAAI,EAAE,WADmC;AAEzC,QAAA,KAAK,EAAE,KAAK;AAF6B,OAA3C,EAGG,KAHH;AAID,KAboB;;AAerB,IAAA,SAAS,GAAA;AACP,YAAM;AAAC,QAAA;AAAD,UAAU,kBAAkB,EAAlC;AAEA,MAAA,SAAS,CAAC,SAAV,CAAoB,KAAK,GAAzB,EAA6C;AAC3C,QAAA,IAAI,EAAE,WADqC;AAE3C,QAAA,KAAK,EAAE,KAAK;AAF+B,OAA7C,EAGG,KAHH;AAID,KAtBoB;;AAwBrB,IAAA,OAAO,EAAE;AACP,MAAA,SAAS,CAAE,OAAF,EAAwC,QAAxC,EAAwE,cAAxE,EAA+F;AACtG,aAAK,cAAL,GAAsB,cAAtB;AAEA,YAAI,CAAC,cAAL,EAAqB;;AAErB,aAAK,IAAI,CAAC,GAAG,CAAR,EAAW,MAAM,GAAG,OAAO,CAAC,SAAR,CAAkB,MAA3C,EAAmD,CAAC,GAAG,MAAvD,EAA+D,CAAC,EAAhE,EAAoE;AAClE,gBAAM,QAAQ,GAAI,KAAa,OAAO,CAAC,SAAR,CAAkB,CAAlB,CAAb,CAAlB;;AAEA,cAAI,OAAO,QAAP,KAAoB,UAAxB,EAAoC;AAClC,YAAA,QAAQ;AACR;AACD;;AAED,UAAA,WAAW,CAAC,OAAO,CAAC,SAAR,CAAkB,CAAlB,IAAuB,wFAAxB,CAAX;AACD;AACF;;AAhBM;AAxBY,GAAD,CAAtB;AA2CD","sourcesContent":["// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport {defineComponent, getCurrentInstance} from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return defineComponent({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n const {vnode} = getCurrentInstance()\n Intersect.mounted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n unmounted () {\n const {vnode} = getCurrentInstance()\n\n Intersect.unmounted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n"],"sourceRoot":"","file":"index.js"}
|