vuetify 2.6.0-beta.0 → 2.6.0
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/json/attributes.json +64 -60
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +128 -92
- package/dist/vuetify.css +37 -33
- package/dist/vuetify.css.map +1 -1
- package/dist/vuetify.js +244 -146
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAutocomplete/VAutocomplete.js +20 -2
- package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/es5/components/VCalendar/VCalendarDaily.js +13 -15
- package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
- package/es5/components/VCalendar/mixins/calendar-with-events.js +4 -2
- package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/es5/components/VCalendar/mixins/mouse.js +1 -1
- package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
- package/es5/components/VCombobox/VCombobox.js +0 -5
- package/es5/components/VCombobox/VCombobox.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +4 -2
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VList/VListItem.js +8 -1
- package/es5/components/VList/VListItem.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +1 -1
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +14 -25
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
- package/es5/components/VOverlay/VOverlay.js +1 -0
- package/es5/components/VOverlay/VOverlay.js.map +1 -1
- package/es5/components/VRadioGroup/VRadioGroup.js +7 -0
- package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/es5/components/VRangeSlider/VRangeSlider.js +4 -1
- package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +1 -1
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VTabs/VTab.js +15 -4
- package/es5/components/VTabs/VTab.js.map +1 -1
- package/es5/components/VTextField/VTextField.js +6 -1
- package/es5/components/VTextField/VTextField.js.map +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js +3 -1
- package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/es5/components/transitions/createTransition.js +0 -20
- package/es5/components/transitions/createTransition.js.map +1 -1
- package/es5/directives/click-outside/index.js +21 -10
- package/es5/directives/click-outside/index.js.map +1 -1
- package/es5/directives/intersect/index.js +16 -12
- package/es5/directives/intersect/index.js.map +1 -1
- package/es5/directives/mutate/index.js +10 -8
- package/es5/directives/mutate/index.js.map +1 -1
- package/es5/directives/resize/index.js +11 -8
- package/es5/directives/resize/index.js.map +1 -1
- package/es5/directives/scroll/index.js +13 -10
- package/es5/directives/scroll/index.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/locale/fr.js +1 -1
- package/es5/locale/fr.js.map +1 -1
- package/es5/mixins/detachable/index.js +32 -14
- package/es5/mixins/detachable/index.js.map +1 -1
- package/es5/mixins/intersectable/index.js +11 -2
- package/es5/mixins/intersectable/index.js.map +1 -1
- package/es5/mixins/overlayable/index.js +21 -11
- package/es5/mixins/overlayable/index.js.map +1 -1
- package/es5/mixins/routable/index.js +9 -3
- package/es5/mixins/routable/index.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +18 -2
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCalendar/VCalendarDaily.js +9 -9
- package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.js +4 -2
- package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.js +1 -1
- package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +0 -5
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +5 -2
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VList/VListItem.js +9 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +14 -25
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +1 -0
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +9 -0
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +4 -1
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +1 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VTabs/VTab.js +16 -6
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +8 -1
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js +3 -1
- package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/lib/components/transitions/createTransition.js +0 -6
- package/lib/components/transitions/createTransition.js.map +1 -1
- package/lib/directives/click-outside/index.js +22 -10
- package/lib/directives/click-outside/index.js.map +1 -1
- package/lib/directives/intersect/index.js +16 -12
- package/lib/directives/intersect/index.js.map +1 -1
- package/lib/directives/mutate/index.js +10 -8
- package/lib/directives/mutate/index.js.map +1 -1
- package/lib/directives/resize/index.js +9 -6
- package/lib/directives/resize/index.js.map +1 -1
- package/lib/directives/scroll/index.js +9 -6
- package/lib/directives/scroll/index.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/locale/fr.js +1 -1
- package/lib/locale/fr.js.map +1 -1
- package/lib/mixins/detachable/index.js +28 -13
- package/lib/mixins/detachable/index.js.map +1 -1
- package/lib/mixins/intersectable/index.js +9 -2
- package/lib/mixins/intersectable/index.js.map +1 -1
- package/lib/mixins/overlayable/index.js +21 -11
- package/lib/mixins/overlayable/index.js.map +1 -1
- package/lib/mixins/routable/index.js +12 -3
- package/lib/mixins/routable/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/VAutocomplete/VAutocomplete.ts +15 -2
- package/src/components/VCalendar/VCalendarDaily.ts +7 -7
- package/src/components/VCalendar/mixins/calendar-with-events.sass +7 -1
- package/src/components/VCalendar/mixins/calendar-with-events.ts +3 -3
- package/src/components/VCalendar/mixins/mouse.ts +1 -1
- package/src/components/VCombobox/VCombobox.ts +0 -5
- package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +113 -0
- package/src/components/VCombobox/__tests__/VCombobox.spec.ts +30 -0
- package/src/components/VDialog/VDialog.ts +4 -2
- package/src/components/VImg/__tests__/VImg.spec.ts +1 -1
- package/src/components/VList/VListItem.sass +2 -1
- package/src/components/VList/VListItem.ts +7 -1
- package/src/components/VList/__tests__/VListItem.spec.ts +16 -0
- package/src/components/VMenu/VMenu.ts +1 -1
- package/src/components/VOtpInput/VOtpInput.sass +13 -16
- package/src/components/VOtpInput/VOtpInput.ts +12 -28
- package/src/components/VOtpInput/_variables.scss +2 -4
- package/src/components/VOverlay/VOverlay.ts +1 -0
- package/src/components/VRadioGroup/VRadioGroup.ts +8 -0
- package/src/components/VRangeSlider/VRangeSlider.ts +3 -1
- package/src/components/VSelect/VSelect.ts +1 -1
- package/src/components/VTabs/VTab.ts +14 -4
- package/src/components/VTabs/VTabs.sass +5 -2
- package/src/components/VTextField/VTextField.ts +8 -3
- package/src/components/VTreeview/VTreeviewNode.ts +3 -1
- package/src/components/transitions/createTransition.ts +0 -8
- package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +9 -6
- package/src/directives/click-outside/__tests__/click-outside.spec.ts +7 -4
- package/src/directives/click-outside/index.ts +19 -10
- package/src/directives/intersect/__tests__/intersect.spec.ts +13 -10
- package/src/directives/intersect/index.ts +15 -13
- package/src/directives/mutate/__tests__/mutate.spec.ts +36 -17
- package/src/directives/mutate/index.ts +9 -9
- package/src/directives/resize/__tests__/resize.spec.ts +4 -4
- package/src/directives/resize/index.ts +11 -6
- package/src/directives/scroll/__tests__/scroll.spec.ts +9 -9
- package/src/directives/scroll/index.ts +8 -7
- package/src/globals.d.ts +10 -12
- package/src/locale/fr.ts +1 -1
- package/src/mixins/detachable/index.ts +32 -15
- package/src/mixins/intersectable/index.ts +11 -2
- package/src/mixins/overlayable/index.ts +22 -11
- package/src/mixins/routable/__tests__/routable.spec.ts +82 -5
- package/src/mixins/routable/index.ts +10 -3
- package/src/styles/generic/_transitions.scss +219 -215
- package/src/styles/settings/_variables.scss +10 -9
|
@@ -25,6 +25,12 @@ function validateAttachTarget(val) {
|
|
|
25
25
|
if (type === 'boolean' || type === 'string') return true;
|
|
26
26
|
return val.nodeType === Node.ELEMENT_NODE;
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
function removeActivator(activator) {
|
|
30
|
+
activator.forEach(function (node) {
|
|
31
|
+
node.elm && node.elm.parentNode && node.elm.parentNode.removeChild(node.elm);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
28
34
|
/* @vue/component */
|
|
29
35
|
|
|
30
36
|
|
|
@@ -78,23 +84,35 @@ var _default = (0, _mixins.default)(_bootable.default).extend({
|
|
|
78
84
|
this.isActive = false;
|
|
79
85
|
},
|
|
80
86
|
beforeDestroy: function beforeDestroy() {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
if (this.$refs.content && this.$refs.content.parentNode) {
|
|
88
|
+
this.$refs.content.parentNode.removeChild(this.$refs.content);
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
destroyed: function destroyed() {
|
|
92
|
+
var _this2 = this;
|
|
93
|
+
|
|
94
|
+
if (this.activatorNode) {
|
|
95
|
+
var activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode];
|
|
96
|
+
|
|
97
|
+
if (this.$el.isConnected) {
|
|
98
|
+
// Component has been destroyed but the element still exists, we must be in a transition
|
|
99
|
+
// Wait for the transition to finish before cleaning up the detached activator
|
|
100
|
+
var observer = new MutationObserver(function (list) {
|
|
101
|
+
if (list.some(function (record) {
|
|
102
|
+
return Array.from(record.removedNodes).includes(_this2.$el);
|
|
103
|
+
})) {
|
|
104
|
+
observer.disconnect();
|
|
105
|
+
removeActivator(activator);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
observer.observe(this.$el.parentNode, {
|
|
109
|
+
subtree: false,
|
|
110
|
+
childList: true
|
|
91
111
|
});
|
|
112
|
+
} else {
|
|
113
|
+
removeActivator(activator);
|
|
92
114
|
}
|
|
93
|
-
} catch (e) {
|
|
94
|
-
console.log(e);
|
|
95
115
|
}
|
|
96
|
-
/* eslint-disable-line no-console */
|
|
97
|
-
|
|
98
116
|
},
|
|
99
117
|
methods: {
|
|
100
118
|
getScopeIdAttrs: function getScopeIdAttrs() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AACA;;AACA;;;;;;;;AAaA,SAAS,oBAAT,CAA+B,GAA/B,EAAuC;AACrC,MAAM,IAAI,WAAU,GAAV,CAAV;;AAEA,MAAI,IAAI,KAAK,SAAT,IAAsB,IAAI,KAAK,QAAnC,EAA6C,OAAO,IAAP;AAE7C,SAAO,GAAG,CAAC,QAAJ,KAAiB,IAAI,CAAC,YAA7B;AACD;AAED;;;eACe,qBAIb,iBAJa,EAIH,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;AAAA,WAAO;AACX,MAAA,aAAa,EAAE,IADJ;AAEX,MAAA,WAAW,EAAE;AAFF,KAAP;AAAA,GAdW;AAmBjB,EAAA,KAAK,EAAE;AACL,IAAA,MADK,oBACC;AACJ,WAAK,WAAL,GAAmB,KAAnB;AACA,WAAK,UAAL;AACD,KAJI;AAKL,IAAA,UALK,wBAKK;AACR,WAAK,SAAL,CAAe,KAAK,UAApB;AACD;AAPI,GAnBU;AA6BjB,EAAA,WA7BiB,yBA6BN;AAAA;;AACT,SAAK,SAAL,CAAe,YAAK;AAClB,UAAI,KAAI,CAAC,aAAT,EAAwB;AACtB,YAAM,SAAS,GAAG,KAAK,CAAC,OAAN,CAAc,KAAI,CAAC,aAAnB,IAAoC,KAAI,CAAC,aAAzC,GAAyD,CAAC,KAAI,CAAC,aAAN,CAA3E;AAEA,QAAA,SAAS,CAAC,OAAV,CAAkB,UAAA,IAAI,EAAG;AACvB,cAAI,CAAC,IAAI,CAAC,GAAV,EAAe;AACf,cAAI,CAAC,KAAI,CAAC,GAAL,CAAS,UAAd,EAA0B;AAE1B,cAAM,MAAM,GAAG,KAAI,CAAC,GAAL,KAAa,KAAI,CAAC,GAAL,CAAS,UAAT,CAAoB,UAAjC,GACX,KAAI,CAAC,GADM,GAEX,KAAI,CAAC,GAAL,CAAS,WAFb;;AAIA,UAAA,KAAI,CAAC,GAAL,CAAS,UAAT,CAAoB,YAApB,CAAiC,IAAI,CAAC,GAAtC,EAA2C,MAA3C;AACD,SATD;AAUD;AACF,KAfD;AAgBD,GA9CgB;AAgDjB,EAAA,OAhDiB,qBAgDV;AACL,SAAK,UAAL,IAAmB,KAAK,UAAL,EAAnB;AACD,GAlDgB;AAoDjB,EAAA,WApDiB,yBAoDN;AACT,SAAK,QAAL,GAAgB,KAAhB;AACD,GAtDgB;AAwDjB,EAAA,aAxDiB,2BAwDJ;AACX
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":"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","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 Vue, { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options extends Vue {\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.elm &&\n node.elm.parentNode &&\n node.elm.parentNode.removeChild(node.elm)\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.elm) 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.elm, target)\n })\n }\n })\n },\n\n mounted () {\n this.hasContent && this.initDetach()\n },\n\n deactivated () {\n this.isActive = false\n },\n\n beforeDestroy () {\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 destroyed () {\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"}
|
|
@@ -19,17 +19,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
function intersectable(options) {
|
|
20
20
|
return _vue.default.extend({
|
|
21
21
|
name: 'intersectable',
|
|
22
|
+
data: function data() {
|
|
23
|
+
return {
|
|
24
|
+
isIntersecting: false
|
|
25
|
+
};
|
|
26
|
+
},
|
|
22
27
|
mounted: function mounted() {
|
|
23
28
|
_intersect.default.inserted(this.$el, {
|
|
24
29
|
name: 'intersect',
|
|
25
30
|
value: this.onObserve
|
|
26
|
-
});
|
|
31
|
+
}, this.$vnode);
|
|
27
32
|
},
|
|
28
33
|
destroyed: function destroyed() {
|
|
29
|
-
_intersect.default.unbind(this.$el
|
|
34
|
+
_intersect.default.unbind(this.$el, {
|
|
35
|
+
name: 'intersect',
|
|
36
|
+
value: this.onObserve
|
|
37
|
+
}, this.$vnode);
|
|
30
38
|
},
|
|
31
39
|
methods: {
|
|
32
40
|
onObserve: function onObserve(entries, observer, isIntersecting) {
|
|
41
|
+
this.isIntersecting = isIntersecting;
|
|
33
42
|
if (!isIntersecting) return;
|
|
34
43
|
|
|
35
44
|
for (var i = 0, length = options.onVisible.length; i < length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;;;AAPA;AAGA;AAGA;AAGc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,aAAI,MAAJ,CAAW;AAChB,IAAA,IAAI,EAAE,eADU;AAGhB,IAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/intersectable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;;;AAPA;AAGA;AAGA;AAGc,SAAU,aAAV,CAAyB,OAAzB,EAAyD;AACrE,SAAO,aAAI,MAAJ,CAAW;AAChB,IAAA,IAAI,EAAE,eADU;AAGhB,IAAA,IAAI,EAAE;AAAA,aAAO;AACX,QAAA,cAAc,EAAE;AADL,OAAP;AAAA,KAHU;AAOhB,IAAA,OAPgB,qBAOT;AACL,yBAAU,QAAV,CAAmB,KAAK,GAAxB,EAA4C;AAC1C,QAAA,IAAI,EAAE,WADoC;AAE1C,QAAA,KAAK,EAAE,KAAK;AAF8B,OAA5C,EAGG,KAAK,MAHR;AAID,KAZe;AAchB,IAAA,SAdgB,uBAcP;AACP,yBAAU,MAAV,CAAiB,KAAK,GAAtB,EAA0C;AACxC,QAAA,IAAI,EAAE,WADkC;AAExC,QAAA,KAAK,EAAE,KAAK;AAF4B,OAA1C,EAGG,KAAK,MAHR;AAID,KAnBe;AAqBhB,IAAA,OAAO,EAAE;AACP,MAAA,SADO,qBACI,OADJ,EAC0C,QAD1C,EAC0E,cAD1E,EACiG;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,cAAM,QAAQ,GAAI,KAAa,OAAO,CAAC,SAAR,CAAkB,CAAlB,CAAb,CAAlB;;AAEA,cAAI,OAAO,QAAP,KAAoB,UAAxB,EAAoC;AAClC,YAAA,QAAQ;AACR;AACD;;AAED,oCAAY,OAAO,CAAC,SAAR,CAAkB,CAAlB,IAAuB,wFAAnC;AACD;AACF;AAhBM;AArBO,GAAX,CAAP;AAwCD","sourcesContent":["// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$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"}
|
|
@@ -121,19 +121,30 @@ var _default = _vue.default.extend().extend({
|
|
|
121
121
|
hasScrollbar: function hasScrollbar(el) {
|
|
122
122
|
if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;
|
|
123
123
|
var style = window.getComputedStyle(el);
|
|
124
|
-
return ['auto', 'scroll'].includes(style.overflowY) && el.scrollHeight > el.clientHeight;
|
|
124
|
+
return (['auto', 'scroll'].includes(style.overflowY) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight || ['auto', 'scroll'].includes(style.overflowX) && el.scrollWidth > el.clientWidth;
|
|
125
125
|
},
|
|
126
|
-
shouldScroll: function shouldScroll(el,
|
|
126
|
+
shouldScroll: function shouldScroll(el, e) {
|
|
127
127
|
if (el.hasAttribute('data-app')) return false;
|
|
128
|
-
var
|
|
129
|
-
var
|
|
128
|
+
var dir = e.shiftKey || e.deltaX ? 'x' : 'y';
|
|
129
|
+
var delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY;
|
|
130
|
+
var alreadyAtStart;
|
|
131
|
+
var alreadyAtEnd;
|
|
132
|
+
|
|
133
|
+
if (dir === 'y') {
|
|
134
|
+
alreadyAtStart = el.scrollTop === 0;
|
|
135
|
+
alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight;
|
|
136
|
+
} else {
|
|
137
|
+
alreadyAtStart = el.scrollLeft === 0;
|
|
138
|
+
alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth;
|
|
139
|
+
}
|
|
140
|
+
|
|
130
141
|
var scrollingUp = delta < 0;
|
|
131
142
|
var scrollingDown = delta > 0;
|
|
132
|
-
if (!
|
|
133
|
-
if (!
|
|
143
|
+
if (!alreadyAtStart && scrollingUp) return true;
|
|
144
|
+
if (!alreadyAtEnd && scrollingDown) return true;
|
|
134
145
|
|
|
135
|
-
if (
|
|
136
|
-
return this.shouldScroll(el.parentNode,
|
|
146
|
+
if (alreadyAtStart || alreadyAtEnd) {
|
|
147
|
+
return this.shouldScroll(el.parentNode, e);
|
|
137
148
|
}
|
|
138
149
|
|
|
139
150
|
return false;
|
|
@@ -149,7 +160,6 @@ var _default = _vue.default.extend().extend({
|
|
|
149
160
|
},
|
|
150
161
|
checkPath: function checkPath(e) {
|
|
151
162
|
var path = (0, _helpers.composedPath)(e);
|
|
152
|
-
var delta = e.deltaY;
|
|
153
163
|
|
|
154
164
|
if (e.type === 'keydown' && path[0] === document.body) {
|
|
155
165
|
var dialog = this.$refs.dialog; // getSelection returns null in firefox in some edge cases, can be ignored
|
|
@@ -157,7 +167,7 @@ var _default = _vue.default.extend().extend({
|
|
|
157
167
|
var selected = window.getSelection().anchorNode;
|
|
158
168
|
|
|
159
169
|
if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {
|
|
160
|
-
return !this.shouldScroll(dialog,
|
|
170
|
+
return !this.shouldScroll(dialog, e);
|
|
161
171
|
}
|
|
162
172
|
|
|
163
173
|
return true;
|
|
@@ -168,7 +178,7 @@ var _default = _vue.default.extend().extend({
|
|
|
168
178
|
if (el === document) return true;
|
|
169
179
|
if (el === document.documentElement) return true;
|
|
170
180
|
if (el === this.$refs.content) return true;
|
|
171
|
-
if (this.hasScrollbar(el)) return !this.shouldScroll(el,
|
|
181
|
+
if (this.hasScrollbar(el)) return !this.shouldScroll(el, e);
|
|
172
182
|
}
|
|
173
183
|
|
|
174
184
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend<Vue & Toggleable & Stackable & options>().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['auto', 'scroll'].includes(style.overflowY!) && el.scrollHeight > el.clientHeight\n },\n shouldScroll (el: Element, delta: number): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const alreadyAtTop = el.scrollTop === 0\n const alreadyAtBottom = el.scrollTop + el.clientHeight === el.scrollHeight\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtTop && scrollingUp) return true\n if (!alreadyAtBottom && scrollingDown) return true\n if ((alreadyAtTop || alreadyAtBottom)) {\n return this.shouldScroll(el.parentNode as Element, delta)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n const delta = e.deltaY\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, delta)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, delta)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/overlayable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend<Vue & Toggleable & Stackable & options>().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType<typeof VOverlay> | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value ||\n this.isActive\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ((['auto', 'scroll'].includes(style.overflowY!) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight) ||\n ((['auto', 'scroll'].includes(style.overflowX!)) && el.scrollWidth > el.clientWidth)\n },\n shouldScroll (el: Element, e: WheelEvent): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y'\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY\n\n let alreadyAtStart: boolean\n let alreadyAtEnd: boolean\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight\n } else {\n alreadyAtStart = el.scrollLeft === 0\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth\n }\n\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtStart && scrollingUp) return true\n if (!alreadyAtEnd && scrollingDown) return true\n if ((alreadyAtStart || alreadyAtEnd)) {\n return this.shouldScroll(el.parentNode as Element, e)\n }\n\n return false\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = composedPath(e)\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return !this.shouldScroll(el as Element, e)\n }\n\n return true\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -79,6 +79,9 @@ var _default = _vue.default.extend({
|
|
|
79
79
|
watch: {
|
|
80
80
|
$route: 'onRouteChange'
|
|
81
81
|
},
|
|
82
|
+
mounted: function mounted() {
|
|
83
|
+
this.onRouteChange();
|
|
84
|
+
},
|
|
82
85
|
methods: {
|
|
83
86
|
click: function click(e) {
|
|
84
87
|
this.$emit('click', e);
|
|
@@ -144,15 +147,18 @@ var _default = _vue.default.extend({
|
|
|
144
147
|
|
|
145
148
|
if (!this.to || !this.$refs.link || !this.$route) return;
|
|
146
149
|
var activeClass = "".concat(this.activeClass, " ").concat(this.proxyClass || '').trim();
|
|
147
|
-
var
|
|
150
|
+
var exactActiveClass = "".concat(this.exactActiveClass, " ").concat(this.proxyClass || '').trim() || activeClass;
|
|
151
|
+
var path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass);
|
|
148
152
|
this.$nextTick(function () {
|
|
149
153
|
/* istanbul ignore else */
|
|
150
|
-
if ((0, _helpers.getObjectValueByPath)(_this.$refs.link, path)) {
|
|
154
|
+
if (!(0, _helpers.getObjectValueByPath)(_this.$refs.link, path) === _this.isActive) {
|
|
151
155
|
_this.toggle();
|
|
152
156
|
}
|
|
153
157
|
});
|
|
154
158
|
},
|
|
155
|
-
toggle: function toggle() {
|
|
159
|
+
toggle: function toggle() {
|
|
160
|
+
this.isActive = !this.isActive;
|
|
161
|
+
}
|
|
156
162
|
}
|
|
157
163
|
});
|
|
158
164
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/routable/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/routable/index.ts"],"names":[],"mappings":"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","sourcesContent":["import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType<boolean | undefined>,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record<string, boolean> = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n const exactActiveClass = `${this.exactActiveClass} ${this.proxyClass || ''}`.trim() || activeClass\n\n const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (!getObjectValueByPath(this.$refs.link, path) === this.isActive) {\n this.toggle()\n }\n })\n },\n toggle () {\n this.isActive = !this.isActive\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
@@ -194,11 +194,27 @@ export default VSelect.extend({
|
|
|
194
194
|
// TODO: How is the watcher triggered
|
|
195
195
|
// for duplicate items? no idea
|
|
196
196
|
if (val === oldVal) return;
|
|
197
|
-
|
|
197
|
+
|
|
198
|
+
if (!this.autoSelectFirst) {
|
|
199
|
+
const preSelectedItem = oldVal[this.$refs.menu.listIndex];
|
|
200
|
+
|
|
201
|
+
if (preSelectedItem) {
|
|
202
|
+
this.setMenuIndex(val.findIndex(i => i === preSelectedItem));
|
|
203
|
+
} else {
|
|
204
|
+
this.setMenuIndex(-1);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
this.$emit('update:list-index', this.$refs.menu.listIndex);
|
|
208
|
+
}
|
|
209
|
+
|
|
198
210
|
this.$nextTick(() => {
|
|
199
211
|
if (!this.internalSearch || val.length !== 1 && !this.autoSelectFirst) return;
|
|
200
212
|
this.$refs.menu.getTiles();
|
|
201
|
-
|
|
213
|
+
|
|
214
|
+
if (this.autoSelectFirst && val.length) {
|
|
215
|
+
this.setMenuIndex(0);
|
|
216
|
+
this.$emit('update:list-index', this.$refs.menu.listIndex);
|
|
217
|
+
}
|
|
202
218
|
});
|
|
203
219
|
},
|
|
204
220
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType<string | null>,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n this.setMenuIndex(-1)\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n this.setMenuIndex(0)\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n"],"sourceRoot":"","file":"VAutocomplete.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType<string | null>,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n"],"sourceRoot":"","file":"VAutocomplete.js"}
|
|
@@ -164,19 +164,22 @@ export default CalendarWithIntervals.extend({
|
|
|
164
164
|
return this.$createElement('div', {
|
|
165
165
|
key: day.date,
|
|
166
166
|
staticClass: 'v-calendar-daily__day',
|
|
167
|
-
class: this.getRelativeClasses(day)
|
|
168
|
-
|
|
167
|
+
class: this.getRelativeClasses(day),
|
|
168
|
+
on: this.getDefaultMouseEventHandlers(':time', e => {
|
|
169
|
+
return this.getSlotScope(this.getTimestampAtEvent(e, day));
|
|
170
|
+
})
|
|
171
|
+
}, [...this.genDayIntervals(index), ...this.genDayBody(day)]);
|
|
169
172
|
},
|
|
170
173
|
|
|
171
174
|
genDayBody(day) {
|
|
172
175
|
return getSlot(this, 'day-body', () => this.getSlotScope(day)) || [];
|
|
173
176
|
},
|
|
174
177
|
|
|
175
|
-
genDayIntervals(index
|
|
176
|
-
return this.intervals[index].map(
|
|
178
|
+
genDayIntervals(index) {
|
|
179
|
+
return this.intervals[index].map(this.genDayInterval);
|
|
177
180
|
},
|
|
178
181
|
|
|
179
|
-
genDayInterval(interval
|
|
182
|
+
genDayInterval(interval) {
|
|
180
183
|
const height = convertToUnit(this.intervalHeight);
|
|
181
184
|
const styler = this.intervalStyle || this.intervalStyleDefault;
|
|
182
185
|
const data = {
|
|
@@ -185,10 +188,7 @@ export default CalendarWithIntervals.extend({
|
|
|
185
188
|
style: {
|
|
186
189
|
height,
|
|
187
190
|
...styler(interval)
|
|
188
|
-
}
|
|
189
|
-
on: this.getDefaultMouseEventHandlers(':time', e => {
|
|
190
|
-
return this.getSlotScope(this.getTimestampAtEvent(e, day));
|
|
191
|
-
})
|
|
191
|
+
}
|
|
192
192
|
};
|
|
193
193
|
const children = getSlot(this, 'interval', () => this.getSlotScope(interval));
|
|
194
194
|
return this.$createElement('div', data, children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VCalendar/VCalendarDaily.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCalendarDaily.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarWithIntervals from './mixins/calendar-with-intervals'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarWithIntervals.extend({\n name: 'v-calendar-daily',\n\n directives: { Resize },\n\n data: () => ({\n scrollPush: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n ...this.themeClasses,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.$nextTick(this.onResize)\n },\n onResize () {\n this.scrollPush = this.getScrollPush()\n },\n getScrollPush (): number {\n const area = this.$refs.scrollArea as HTMLElement\n const pane = this.$refs.pane as HTMLElement\n\n return area && pane ? (area.offsetWidth - pane.offsetWidth) : 0\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__head',\n style: {\n marginRight: this.scrollPush + 'px',\n },\n }, [\n this.genHeadIntervals(),\n ...this.genHeadDays(),\n ])\n },\n genHeadIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__intervals-head',\n style: {\n width,\n },\n }, getSlot(this, 'interval-header'))\n },\n genHeadDays (): VNode[] {\n return this.days.map(this.genHeadDay)\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily_head-day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':day', _e => {\n return this.getSlotScope(day)\n }),\n }, [\n this.genHeadWeekday(day),\n this.genHeadDayLabel(day),\n ...this.genDayHeader(day, index),\n ])\n },\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n return getSlot(this, 'day-header', () => ({\n week: this.days, ...day, index,\n })) || []\n },\n genHeadWeekday (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-daily_head-weekday',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genHeadDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily_head-day-label',\n }, getSlot(this, 'day-label-header', day) || [this.genHeadDayButton(day)])\n },\n genHeadDayButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, _e => {\n return day\n }),\n }, this.dayFormatter(day, false))\n },\n genBody (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__body',\n }, [\n this.genScrollArea(),\n ])\n },\n genScrollArea (): VNode {\n return this.$createElement('div', {\n ref: 'scrollArea',\n staticClass: 'v-calendar-daily__scroll-area',\n }, [\n this.genPane(),\n ])\n },\n genPane (): VNode {\n return this.$createElement('div', {\n ref: 'pane',\n staticClass: 'v-calendar-daily__pane',\n style: {\n height: convertToUnit(this.bodyHeight),\n },\n }, [\n this.genDayContainer(),\n ])\n },\n genDayContainer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__day-container',\n }, [\n this.genBodyIntervals(),\n ...this.genDays(),\n ])\n },\n genDays (): VNode[] {\n return this.days.map(this.genDay)\n },\n genDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n }, [\n ...this.genDayIntervals(index, day),\n ...this.genDayBody(day),\n ])\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n return getSlot(this, 'day-body', () => this.getSlotScope(day)) || []\n },\n genDayIntervals (index: number, day: CalendarTimestamp): VNode[] {\n return this.intervals[index].map(i => this.genDayInterval(i, day))\n },\n genDayInterval (interval: CalendarTimestamp, day: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler(interval),\n },\n on: this.getDefaultMouseEventHandlers(':time', e => {\n return this.getSlotScope(this.getTimestampAtEvent(e, day))\n }),\n }\n\n const children = getSlot(this, 'interval', () => this.getSlotScope(interval))\n\n return this.$createElement('div', data, children)\n },\n genBodyIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n const data = {\n staticClass: 'v-calendar-daily__intervals-body',\n style: {\n width,\n },\n on: this.getDefaultMouseEventHandlers(':interval', e => {\n return this.getTimestampAtEvent(e, this.parsedStart)\n }),\n }\n\n return this.$createElement('div', data, this.genIntervalLabels())\n },\n genIntervalLabels (): VNode[] | null {\n if (!this.intervals.length) return null\n\n return this.intervals[0].map(this.genIntervalLabel)\n },\n genIntervalLabel (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const short: boolean = this.shortIntervals\n const shower = this.showIntervalLabel || this.showIntervalLabelDefault\n const show = shower(interval)\n const label = show ? this.intervalFormatter(interval, short) : undefined\n\n return this.$createElement('div', {\n key: interval.time,\n staticClass: 'v-calendar-daily__interval',\n style: {\n height,\n },\n }, [\n this.$createElement('div', {\n staticClass: 'v-calendar-daily__interval-text',\n }, label),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n }, [\n !this.hideHeader ? this.genHead() : '',\n this.genBody(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VCalendarDaily.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VCalendar/VCalendarDaily.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCalendarDaily.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarWithIntervals from './mixins/calendar-with-intervals'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarWithIntervals.extend({\n name: 'v-calendar-daily',\n\n directives: { Resize },\n\n data: () => ({\n scrollPush: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n ...this.themeClasses,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.$nextTick(this.onResize)\n },\n onResize () {\n this.scrollPush = this.getScrollPush()\n },\n getScrollPush (): number {\n const area = this.$refs.scrollArea as HTMLElement\n const pane = this.$refs.pane as HTMLElement\n\n return area && pane ? (area.offsetWidth - pane.offsetWidth) : 0\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__head',\n style: {\n marginRight: this.scrollPush + 'px',\n },\n }, [\n this.genHeadIntervals(),\n ...this.genHeadDays(),\n ])\n },\n genHeadIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__intervals-head',\n style: {\n width,\n },\n }, getSlot(this, 'interval-header'))\n },\n genHeadDays (): VNode[] {\n return this.days.map(this.genHeadDay)\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily_head-day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':day', _e => {\n return this.getSlotScope(day)\n }),\n }, [\n this.genHeadWeekday(day),\n this.genHeadDayLabel(day),\n ...this.genDayHeader(day, index),\n ])\n },\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n return getSlot(this, 'day-header', () => ({\n week: this.days, ...day, index,\n })) || []\n },\n genHeadWeekday (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-daily_head-weekday',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genHeadDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily_head-day-label',\n }, getSlot(this, 'day-label-header', day) || [this.genHeadDayButton(day)])\n },\n genHeadDayButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, _e => {\n return day\n }),\n }, this.dayFormatter(day, false))\n },\n genBody (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__body',\n }, [\n this.genScrollArea(),\n ])\n },\n genScrollArea (): VNode {\n return this.$createElement('div', {\n ref: 'scrollArea',\n staticClass: 'v-calendar-daily__scroll-area',\n }, [\n this.genPane(),\n ])\n },\n genPane (): VNode {\n return this.$createElement('div', {\n ref: 'pane',\n staticClass: 'v-calendar-daily__pane',\n style: {\n height: convertToUnit(this.bodyHeight),\n },\n }, [\n this.genDayContainer(),\n ])\n },\n genDayContainer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__day-container',\n }, [\n this.genBodyIntervals(),\n ...this.genDays(),\n ])\n },\n genDays (): VNode[] {\n return this.days.map(this.genDay)\n },\n genDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', e => {\n return this.getSlotScope(this.getTimestampAtEvent(e, day))\n }),\n }, [\n ...this.genDayIntervals(index),\n ...this.genDayBody(day),\n ])\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n return getSlot(this, 'day-body', () => this.getSlotScope(day)) || []\n },\n genDayIntervals (index: number): VNode[] {\n return this.intervals[index].map(this.genDayInterval)\n },\n genDayInterval (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler(interval),\n },\n }\n\n const children = getSlot(this, 'interval', () => this.getSlotScope(interval))\n\n return this.$createElement('div', data, children)\n },\n genBodyIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n const data = {\n staticClass: 'v-calendar-daily__intervals-body',\n style: {\n width,\n },\n on: this.getDefaultMouseEventHandlers(':interval', e => {\n return this.getTimestampAtEvent(e, this.parsedStart)\n }),\n }\n\n return this.$createElement('div', data, this.genIntervalLabels())\n },\n genIntervalLabels (): VNode[] | null {\n if (!this.intervals.length) return null\n\n return this.intervals[0].map(this.genIntervalLabel)\n },\n genIntervalLabel (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const short: boolean = this.shortIntervals\n const shower = this.showIntervalLabel || this.showIntervalLabelDefault\n const show = shower(interval)\n const label = show ? this.intervalFormatter(interval, short) : undefined\n\n return this.$createElement('div', {\n key: interval.time,\n staticClass: 'v-calendar-daily__interval',\n style: {\n height,\n },\n }, [\n this.$createElement('div', {\n staticClass: 'v-calendar-daily__interval-text',\n }, label),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n }, [\n !this.hideHeader ? this.genHead() : '',\n this.genBody(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VCalendarDaily.js"}
|