@dimailn/vuetify 2.7.2-alpha22 → 2.7.2-alpha24

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.
Files changed (58) hide show
  1. package/dist/vuetify.js +92 -59
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VBadge/VBadge.js +17 -14
  6. package/es5/components/VBadge/VBadge.js.map +1 -1
  7. package/es5/components/VForm/VForm.js +44 -30
  8. package/es5/components/VForm/VForm.js.map +1 -1
  9. package/es5/components/VInput/VInput.js +4 -0
  10. package/es5/components/VInput/VInput.js.map +1 -1
  11. package/es5/components/VSelect/VSelectList.js +1 -1
  12. package/es5/components/VSelect/VSelectList.js.map +1 -1
  13. package/es5/framework.js +1 -1
  14. package/es5/mixins/activatable/index.js +2 -1
  15. package/es5/mixins/activatable/index.js.map +1 -1
  16. package/es5/mixins/bootable/index.js +1 -2
  17. package/es5/mixins/bootable/index.js.map +1 -1
  18. package/es5/mixins/mouse/index.js +10 -5
  19. package/es5/mixins/mouse/index.js.map +1 -1
  20. package/es5/mixins/selectable/index.js +3 -0
  21. package/es5/mixins/selectable/index.js.map +1 -1
  22. package/es5/mixins/validatable/index.js +8 -5
  23. package/es5/mixins/validatable/index.js.map +1 -1
  24. package/lib/components/VBadge/VBadge.js +14 -13
  25. package/lib/components/VBadge/VBadge.js.map +1 -1
  26. package/lib/components/VForm/VForm.js +40 -26
  27. package/lib/components/VForm/VForm.js.map +1 -1
  28. package/lib/components/VInput/VInput.js +4 -0
  29. package/lib/components/VInput/VInput.js.map +1 -1
  30. package/lib/components/VSelect/VSelectList.js +2 -1
  31. package/lib/components/VSelect/VSelectList.js.map +1 -1
  32. package/lib/framework.js +1 -1
  33. package/lib/mixins/activatable/index.js +2 -1
  34. package/lib/mixins/activatable/index.js.map +1 -1
  35. package/lib/mixins/bootable/index.js +2 -4
  36. package/lib/mixins/bootable/index.js.map +1 -1
  37. package/lib/mixins/mouse/index.js +9 -5
  38. package/lib/mixins/mouse/index.js.map +1 -1
  39. package/lib/mixins/selectable/index.js +4 -0
  40. package/lib/mixins/selectable/index.js.map +1 -1
  41. package/lib/mixins/validatable/index.js +8 -4
  42. package/lib/mixins/validatable/index.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/components/VBadge/VBadge.ts +24 -25
  45. package/src/components/VBadge/__tests__/VBadge.spec.ts +47 -30
  46. package/src/components/VBadge/__tests__/__snapshots__/VBadge.spec.ts.snap +5 -5
  47. package/src/components/VForm/VForm.ts +61 -35
  48. package/src/components/VForm/__tests__/VForm.spec.ts +100 -80
  49. package/src/components/VInput/VInput.ts +4 -0
  50. package/src/components/VSelect/VSelectList.ts +1 -0
  51. package/src/mixins/activatable/index.ts +2 -1
  52. package/src/mixins/bootable/__tests__/bootable.spec.ts +17 -11
  53. package/src/mixins/bootable/index.ts +4 -3
  54. package/src/mixins/mouse/__tests__/mouse.spec.ts +54 -40
  55. package/src/mixins/mouse/index.ts +10 -6
  56. package/src/mixins/selectable/index.ts +4 -0
  57. package/src/mixins/validatable/__tests__/validatable.spec.ts +194 -158
  58. package/src/mixins/validatable/index.ts +16 -18
@@ -15,7 +15,7 @@ var _colorable = _interopRequireDefault(require("../../mixins/colorable"));
15
15
 
16
16
  var _themeable = _interopRequireDefault(require("../../mixins/themeable"));
17
17
 
18
- var _toggleable = _interopRequireDefault(require("../../mixins/toggleable"));
18
+ var _toggleable = require("../../mixins/toggleable");
19
19
 
20
20
  var _transitionable = _interopRequireDefault(require("../../mixins/transitionable"));
21
21
 
@@ -23,8 +23,6 @@ var _positionable = require("../../mixins/positionable");
23
23
 
24
24
  var _mergeData = _interopRequireDefault(require("../../util/mergeData"));
25
25
 
26
- var _mixins = _interopRequireDefault(require("../../util/mixins"));
27
-
28
26
  var _helpers = require("../../util/helpers");
29
27
 
30
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -39,8 +37,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
39
37
 
40
38
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
39
 
42
- var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factory)(['left', 'bottom']), _themeable.default, _toggleable.default, _transitionable.default).extend({
40
+ var Toggleable = (0, _toggleable.factory)('modelValue', 'update:modelValue');
41
+
42
+ var _default2 = (0, _vue.defineComponent)({
43
43
  name: 'v-badge',
44
+ mixins: [_colorable.default, (0, _positionable.factory)(['left', 'bottom']), _themeable.default, Toggleable, _transitionable.default],
44
45
  props: {
45
46
  avatar: Boolean,
46
47
  bordered: Boolean,
@@ -66,7 +67,7 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
66
67
  type: String,
67
68
  default: 'scale-rotate-transition'
68
69
  },
69
- value: {
70
+ modelValue: {
70
71
  default: true
71
72
  }
72
73
  },
@@ -143,19 +144,19 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
143
144
  'aria-label': label,
144
145
  'aria-live': this.$attrs['aria-live'] || 'polite',
145
146
  title: this.$attrs.title,
146
- role: this.$attrs.role || 'status',
147
- directives: [{
148
- name: 'show',
149
- value: this.isActive
150
- }]
147
+ role: this.$attrs.role || 'status'
151
148
  });
152
- var badge = (0, _vue.h)('span', data, [this.genBadgeContent()]);
149
+ var badge = (0, _vue.withDirectives)((0, _vue.h)('span', data, [this.genBadgeContent()]), [[_vue.vShow, this.isActive]]);
153
150
  if (!this.transition) return badge;
154
151
  return (0, _vue.h)(_vue.Transition, {
155
152
  name: this.transition,
156
153
  origin: this.origin,
157
154
  mode: this.mode
158
- }, [badge]);
155
+ }, {
156
+ default: function _default() {
157
+ return [badge];
158
+ }
159
+ });
159
160
  },
160
161
  genBadgeContent: function genBadgeContent() {
161
162
  // Dot prop shows no content
@@ -163,7 +164,9 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
163
164
  var slot = (0, _helpers.getSlot)(this, 'badge');
164
165
  if (slot) return slot;
165
166
  if (this.content) return String(this.content);
166
- if (this.icon) return (0, _vue.h)(_VIcon.default, this.icon);
167
+ if (this.icon) return (0, _vue.h)(_VIcon.default, {
168
+ icon: this.icon
169
+ });
167
170
  return undefined;
168
171
  },
169
172
  genBadgeWrapper: function genBadgeWrapper() {
@@ -191,5 +194,5 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
191
194
  }
192
195
  });
193
196
 
194
- exports.default = _default;
197
+ exports.default = _default2;
195
198
  //# sourceMappingURL=VBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VBadge/VBadge.ts"],"names":[],"mappings":"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","sourcesContent":["import {Transition, h} from 'vue'\n// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport mergeData from '../../util/mergeData'\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n class: 'v-badge__badge',\n style: this.styles,\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = h('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return h(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return h('span', {\n class: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', mergeData({\n class: ['v-badge', this.classes]\n }, attrs)\n , children)\n },\n})\n"],"sourceRoot":"","file":"VBadge.js"}
1
+ {"version":3,"sources":["../../../src/components/VBadge/VBadge.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, defineComponent, VNode, withDirectives, vShow } from 'vue'\n// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport mergeData from '../../util/mergeData'\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\nconst Toggleable = ToggleableFactory('modelValue', 'update:modelValue')\n\nexport default defineComponent({\n name: 'v-badge',\n\n mixins: [\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n ],\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n modelValue: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n class: 'v-badge__badge',\n style: this.styles,\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n })\n\n const badge = withDirectives(\n h('span', data, [this.genBadgeContent()]),\n [[vShow, this.isActive]]\n )\n\n if (!this.transition) return badge\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n }, {\n default: () => [badge],\n })\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return h(VIcon, { icon: this.icon })\n\n return undefined\n },\n genBadgeWrapper () {\n return h('span', {\n class: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', mergeData({\n class: ['v-badge', this.classes],\n }, attrs), children)\n },\n})\n"],"sourceRoot":"","file":"VBadge.js"}
@@ -52,39 +52,50 @@ var _default = (0, _mixins.default)(_bindsAttrs.default, (0, _registrable.provid
52
52
  handler: function handler(val) {
53
53
  var errors = Object.values(val).includes(true);
54
54
  this.$emit('input', !errors);
55
+ this.$emit('update:modelValue', !errors);
55
56
  },
56
57
  deep: true,
57
58
  immediate: true
58
59
  }
59
60
  },
60
61
  methods: {
62
+ getInputUid: function getInputUid(input) {
63
+ return input.$.uid;
64
+ },
61
65
  watchInput: function watchInput(input) {
62
66
  var _this = this;
63
67
 
64
- var watcher = function watcher(input) {
65
- return input.$watch('hasError', function (val) {
66
- _this.errorBag[input.$.uid] = val;
67
- }, {
68
- immediate: true
69
- });
68
+ var inputId = this.getInputUid(input);
69
+
70
+ var createErrorWatcher = function createErrorWatcher(inputComponent) {
71
+ if (typeof inputComponent.$watch === 'function') {
72
+ return inputComponent.$watch('hasError', function (hasError) {
73
+ _this.errorBag[inputId] = hasError;
74
+ }, {
75
+ immediate: true
76
+ });
77
+ } else {
78
+ // Fallback для Vue 3
79
+ return function () {};
80
+ }
70
81
  };
71
82
 
72
83
  var watchers = {
73
- _uid: input.$.uid,
84
+ _uid: inputId,
74
85
  valid: function valid() {},
75
86
  shouldValidate: function shouldValidate() {}
76
87
  };
77
88
 
78
89
  if (this.lazyValidation) {
79
- // Only start watching inputs if we need to
80
- watchers.shouldValidate = input.$watch('shouldValidate', function (val) {
81
- if (!val) return; // Only watch if we're not already doing it
82
-
83
- if (_this.errorBag.hasOwnProperty(input.$.uid)) return;
84
- watchers.valid = watcher(input);
85
- });
90
+ if (typeof input.$watch === 'function') {
91
+ watchers.shouldValidate = input.$watch('shouldValidate', function (shouldValidate) {
92
+ if (!shouldValidate) return;
93
+ if (_this.errorBag.hasOwnProperty(inputId)) return;
94
+ watchers.valid = createErrorWatcher(input);
95
+ });
96
+ }
86
97
  } else {
87
- watchers.valid = watcher(input);
98
+ watchers.valid = createErrorWatcher(input);
88
99
  }
89
100
 
90
101
  return watchers;
@@ -127,37 +138,40 @@ var _default = (0, _mixins.default)(_bindsAttrs.default, (0, _registrable.provid
127
138
  this.watchers.push(this.watchInput(input));
128
139
  },
129
140
  unregister: function unregister(input) {
130
- var found = this.inputs.find(function (i) {
131
- return i.$.uid === input.$.uid;
141
+ var _this3 = this;
142
+
143
+ var inputId = this.getInputUid(input);
144
+ var foundInput = this.inputs.find(function (inputComponent) {
145
+ return _this3.getInputUid(inputComponent) === inputId;
132
146
  });
133
- if (!found) return;
134
- var unwatch = this.watchers.find(function (i) {
135
- return i._uid === found.$.uid;
147
+ if (!foundInput) return;
148
+ var inputWatcher = this.watchers.find(function (watcher) {
149
+ return watcher._uid === inputId;
136
150
  });
137
151
 
138
- if (unwatch) {
139
- unwatch.valid();
140
- unwatch.shouldValidate();
152
+ if (inputWatcher) {
153
+ inputWatcher.valid();
154
+ inputWatcher.shouldValidate();
141
155
  }
142
156
 
143
- this.watchers = this.watchers.filter(function (i) {
144
- return i._uid !== found.$.uid;
157
+ this.watchers = this.watchers.filter(function (watcher) {
158
+ return watcher._uid !== inputId;
145
159
  });
146
- this.inputs = this.inputs.filter(function (i) {
147
- return i.$.uid !== found.$.uid;
160
+ this.inputs = this.inputs.filter(function (inputComponent) {
161
+ return _this3.getInputUid(inputComponent) !== inputId;
148
162
  });
149
- delete this.errorBag[found.$.uid];
163
+ delete this.errorBag[inputId];
150
164
  }
151
165
  },
152
166
  render: function render() {
153
- var _this3 = this;
167
+ var _this4 = this;
154
168
 
155
169
  return (0, _vue.h)('form', _objectSpread(_objectSpread({
156
170
  class: 'v-form',
157
171
  novalidate: true
158
172
  }, this.attrs$), {}, {
159
173
  onSubmit: function onSubmit(e) {
160
- return _this3.$emit('submit', e);
174
+ return _this4.$emit('submit', e);
161
175
  }
162
176
  }), (0, _helpers.getSlot)(this));
163
177
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VForm/VForm.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record<number, boolean>\ntype VInputInstance = InstanceType<typeof VInput>\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.errorBag[input.$.uid] = val\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input.$.uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input.$.uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i.$.uid === input.$.uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found.$.uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found.$.uid)\n this.inputs = this.inputs.filter(i => i.$.uid !== found.$.uid)\n delete this.errorBag[found.$.uid]\n },\n },\n\n render (): VNode {\n return h('form', {\n class: 'v-form',\n novalidate: true,\n ...this.attrs$,\n onSubmit: (e: Event) => this.$emit('submit', e),\n }, getSlot(this))\n },\n})\n"],"sourceRoot":"","file":"VForm.js"}
1
+ {"version":3,"sources":["../../../src/components/VForm/VForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, VNode } from 'vue'\n// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record<number, boolean>\ntype VInputInstance = InstanceType<typeof VInput>\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\ninterface VFormContext {\n inputs: VInputInstance[]\n watchers: Watchers[]\n errorBag: ErrorBag\n lazyValidation: boolean\n $emit: (event: string, ...args: any[]) => void\n getInputUid: (input: VInputInstance) => number\n watchInput: (input: VInputInstance) => Watchers\n resetErrorBag: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (this: VFormContext, val: ErrorBag) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n this.$emit('update:modelValue', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n getInputUid (input: VInputInstance): number {\n return input.$.uid\n },\n\n watchInput (this: VFormContext, input: VInputInstance): Watchers {\n const inputId = this.getInputUid(input)\n\n const createErrorWatcher = (inputComponent: VInputInstance): (() => void) => {\n if (typeof inputComponent.$watch === 'function') {\n return inputComponent.$watch('hasError', (hasError: boolean) => {\n this.errorBag[inputId] = hasError\n }, { immediate: true })\n } else {\n // Fallback для Vue 3\n return () => {}\n }\n }\n\n const watchers: Watchers = {\n _uid: inputId,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n if (typeof input.$watch === 'function') {\n watchers.shouldValidate = input.$watch('shouldValidate', (shouldValidate: boolean) => {\n if (!shouldValidate) return\n\n if (this.errorBag.hasOwnProperty(inputId)) return\n\n watchers.valid = createErrorWatcher(input)\n })\n }\n } else {\n watchers.valid = createErrorWatcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (this: VFormContext): boolean {\n return this.inputs.filter((input: VInputInstance) => !input.validate(true)).length === 0\n },\n /** @public */\n reset (this: VFormContext): void {\n this.inputs.forEach((input: VInputInstance) => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag (this: VFormContext) {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation (this: VFormContext) {\n this.inputs.forEach((input: VInputInstance) => input.resetValidation())\n this.resetErrorBag()\n },\n\n register (this: VFormContext, input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n\n unregister (this: VFormContext, input: VInputInstance) {\n const inputId = this.getInputUid(input)\n const foundInput = this.inputs.find((inputComponent: VInputInstance) => this.getInputUid(inputComponent) === inputId)\n\n if (!foundInput) return\n\n const inputWatcher = this.watchers.find((watcher: Watchers) => watcher._uid === inputId)\n if (inputWatcher) {\n inputWatcher.valid()\n inputWatcher.shouldValidate()\n }\n\n this.watchers = this.watchers.filter((watcher: Watchers) => watcher._uid !== inputId)\n this.inputs = this.inputs.filter((inputComponent: VInputInstance) => this.getInputUid(inputComponent) !== inputId)\n\n delete this.errorBag[inputId]\n },\n },\n\n render (): VNode {\n return h('form', {\n class: 'v-form',\n novalidate: true,\n ...this.attrs$,\n onSubmit: (e: Event) => this.$emit('submit', e),\n }, getSlot(this))\n },\n})\n"],"sourceRoot":"","file":"VForm.js"}
@@ -102,6 +102,10 @@ var _default = baseMixins.extend({
102
102
  set: function set(val) {
103
103
  this.lazyValue = val;
104
104
  this.$emit(this.$_modelEvent, val);
105
+
106
+ if ('$_emitChangeEvent' in this) {
107
+ this.$emit('change', val);
108
+ }
105
109
  }
106
110
  },
107
111
  isDirty: function isDirty() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n return h('div', this.setTextColor(this.validationState, {\n class: {'v-input': true, ...this.classes},\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
1
+ {"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType, h, getCurrentInstance } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n modelValue: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.modelValue,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this.$.uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n\n if('$_emitChangeEvent' in this) {\n this.$emit('change', val)\n }\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = /*(this.$options.model && this.$options.model.event) ||*/ 'update:modelValue'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return h('div', {\n class: 'v-input__control',\n title: this.attrs$.title,\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n ...(!hasListener\n ? {}\n : {\n onClick: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n onMouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n }),\n }, extraData)\n\n return h('div', {\n class: {\n 'v-input__icon': true,\n [`v-input__icon--${kebabCase(type)}`]: type\n },\n }, [\n h(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return h('div', this.setBackgroundColor(this.backgroundColor, {\n class: {'v-input__slot': true},\n style: { height: convertToUnit(this.height) },\n onClick: this.onClick,\n onMousedown: this.onMouseDown,\n onMouseup: this.onMouseUp,\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return h(VLabel, {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return h(VMessages, {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n role: this.hasMessages ? 'alert' : null,\n }, {default: getSlot(this, 'message') })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n slot = slot.map(child => child instanceof Function ? child() : child)\n\n return h('div', {\n class: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (): VNode {\n return h('div', this.setTextColor(this.validationState, {\n class: {'v-input': true, ...this.classes},\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
@@ -192,7 +192,7 @@ var _default2 = (0, _mixins.default)(_colorable.default, _themeable.default).ext
192
192
  var scopedSlot = this.$slots.item({
193
193
  parent: parent,
194
194
  item: item,
195
- attrs: _objectSpread(_objectSpread({}, tile.attrs), tile.props),
195
+ attrs: _objectSpread(_objectSpread(_objectSpread({}, tile.attrs), tile.props), tile.on),
196
196
  on: tile.on
197
197
  });
198
198
  return this.needsTile(scopedSlot) ? (0, _vue.h)(_VList.VListItem, tile, scopedSlot) : scopedSlot;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSelect/VSelectList.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType<any>,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n role: undefined,\n onMousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n }\n\n return h(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return h(VListItemAction, [\n h(VSimpleCheckbox, {\n color: this.color,\n modelValue: inputValue,\n ripple: false,\n onInput: () => this.$emit('select', item)\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return h(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return h(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return h('span', { class: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this.$.uid}-${index}`,\n role: 'option',\n onMousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n onClick: () => disabled || this.$emit('select', item),\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n }\n\n if (!this.$slots.item) {\n return h(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$slots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? h(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return h(VListItemContent, [\n h(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data']?.() || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item']())\n\n this.$slots['append-item'] && children.push(this.$slots['append-item']())\n\n return h(VList, {\n class: ['v-select-list', this.themeClasses],\n role: 'listbox',\n tabindex: -1,\n onMousedown: (e: Event) => {\n e.preventDefault()\n },\n dense: this.dense,\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VSelectList.js"}
1
+ {"version":3,"sources":["../../../src/components/VSelect/VSelectList.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { getPropertyFromItem } from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n itemDisabled: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType<any>,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n role: undefined,\n onMousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n }\n\n return h(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return h(VListItemAction, [\n h(VSimpleCheckbox, {\n color: this.color,\n modelValue: inputValue,\n ripple: false,\n onInput: () => this.$emit('select', item)\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return h(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return text\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return [start, this.genHighlight(middle), end]\n },\n genHeader (props: { [key: string]: any }): VNode {\n return h(VSubheader, { props }, props.header)\n },\n genHighlight (text: string) {\n return h('span', { class: 'v-list-item__mask' }, text)\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this.$.uid}-${index}`,\n role: 'option',\n onMousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n onClick: () => disabled || this.$emit('select', item),\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n }\n\n if (!this.$slots.item) {\n return h(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$slots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n ...tile.on\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? h(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n return h(VListItemContent, [\n h(VListItemTitle, [\n this.genFilteredText(this.getText(item)),\n ]),\n ])\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data']?.() || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item']())\n\n this.$slots['append-item'] && children.push(this.$slots['append-item']())\n\n return h(VList, {\n class: ['v-select-list', this.themeClasses],\n role: 'listbox',\n tabindex: -1,\n onMousedown: (e: Event) => {\n e.preventDefault()\n },\n dense: this.dense,\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VSelectList.js"}
package/es5/framework.js CHANGED
@@ -79,7 +79,7 @@ var Vuetify = /*#__PURE__*/function () {
79
79
  exports.default = Vuetify;
80
80
  Vuetify.install = _install.install;
81
81
  Vuetify.installed = false;
82
- Vuetify.version = "2.7.2-alpha21";
82
+ Vuetify.version = "2.7.2-alpha24";
83
83
  Vuetify.config = {
84
84
  silent: false
85
85
  };
@@ -90,7 +90,8 @@ var _default = baseMixins.extend({
90
90
  },
91
91
  genActivator: function genActivator() {
92
92
  var node = (0, _helpers.getSlot)(this, 'activator', Object.assign(this.getValueProxy(), {
93
- attrs: _objectSpread(_objectSpread({}, this.genActivatorListeners()), this.genActivatorAttributes())
93
+ attrs: _objectSpread(_objectSpread({}, this.genActivatorListeners()), this.genActivatorAttributes()),
94
+ on: this.genActivatorListeners()
94
95
  })) || [];
95
96
  node = Array.isArray(node) ? node : [node];
96
97
  this.activatorNode = node.flatMap(function (node) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n }\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeUnmount () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n },\n on: this.genActivatorListeners()\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -10,7 +10,6 @@ var _console = require("../../util/console");
10
10
  var _vue = require("vue");
11
11
 
12
12
  // Utilities
13
- // Types
14
13
 
15
14
  /**
16
15
  * Bootable
@@ -50,7 +49,7 @@ var _default = (0, _vue.defineComponent)({
50
49
  },
51
50
  methods: {
52
51
  showLazyContent: function showLazyContent(content) {
53
- return this.hasContent && content ? content() : [(0, _vue.h)()];
52
+ return this.hasContent && content ? content() : [(0, _vue.h)(_vue.Comment)];
54
53
  }
55
54
  }
56
55
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/bootable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AACA;;AAFA;AAIA;;AAMA;;;;;;;AAOG;;AACH;eACe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,UADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHsB;AAO7B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,QAAQ,EAAE;AADC,KAAP;AAAA,GAPuB;AAW7B,EAAA,QAAQ,EAAE;AACR,IAAA,UADQ,wBACE;AACR,aAAO,KAAK,QAAL,IAAiB,KAAK,KAAtB,IAA+B,KAAK,QAA3C;AACD;AAHO,GAXmB;AAiB7B,EAAA,KAAK,EAAE;AACL,IAAA,QADK,sBACG;AACN,WAAK,QAAL,GAAgB,IAAhB;AACD;AAHI,GAjBsB;AAuB7B,EAAA,OAvB6B,qBAuBtB;AACL;AACA,QAAI,UAAU,KAAK,MAAnB,EAA2B;AACzB,4BAAQ,MAAR,EAAgB,IAAhB;AACD;AACF,GA5B4B;AA8B7B,EAAA,OAAO,EAAE;AACP,IAAA,eADO,2BACU,OADV,EACiC;AACtC,aAAQ,KAAK,UAAL,IAAmB,OAApB,GAA+B,OAAO,EAAtC,GAA2C,CAAC,aAAD,CAAlD;AACD;AAHM;AA9BoB,CAAhB,C","sourcesContent":["// Utilities\nimport { removed } from '../../util/console'\nimport {h} from 'vue'\n\n// Types\nimport { defineComponent, VNode, App } from 'vue'\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default defineComponent({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [h()]\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/bootable/index.ts"],"names":[],"mappings":";;;;;;;AACA;;AAKA;;AANA;;AAWA;;;;;;;AAOG;;AACH;eACe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,UADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AADF,GAHsB;AAO7B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,QAAQ,EAAE;AADC,KAAP;AAAA,GAPuB;AAW7B,EAAA,QAAQ,EAAE;AACR,IAAA,UADQ,wBACE;AACR,aAAO,KAAK,QAAL,IAAiB,KAAK,KAAtB,IAA+B,KAAK,QAA3C;AACD;AAHO,GAXmB;AAiB7B,EAAA,KAAK,EAAE;AACL,IAAA,QADK,sBACG;AACN,WAAK,QAAL,GAAgB,IAAhB;AACD;AAHI,GAjBsB;AAuB7B,EAAA,OAvB6B,qBAuBtB;AACL;AACA,QAAI,UAAU,KAAK,MAAnB,EAA2B;AACzB,4BAAQ,MAAR,EAAgB,IAAhB;AACD;AACF,GA5B4B;AA8B7B,EAAA,OAAO,EAAE;AACP,IAAA,eADO,2BACU,OADV,EACiC;AACtC,aAAQ,KAAK,UAAL,IAAmB,OAApB,GAA+B,OAAO,EAAtC,GAA2C,CAAC,YAAE,YAAF,CAAD,CAAlD;AACD;AAHM;AA9BoB,CAAhB,C","sourcesContent":["// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport type { VNode, App } from 'vue'\n\nimport { defineComponent, h, Comment } from 'vue'\ninterface Toggleable extends App {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default defineComponent({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [h(Comment)]\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}