@dimailn/vuetify 2.7.2-alpha55 → 2.7.2-alpha57

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 (61) hide show
  1. package/dist/json/attributes.json +3945 -417
  2. package/dist/json/tags.json +1120 -133
  3. package/dist/json/web-types.json +12516 -2651
  4. package/dist/vuetify.js +72 -78
  5. package/dist/vuetify.js.map +1 -1
  6. package/dist/vuetify.min.css +1 -1
  7. package/dist/vuetify.min.js +2 -2
  8. package/es5/components/VFileInput/VFileInput.js +3 -1
  9. package/es5/components/VFileInput/VFileInput.js.map +1 -1
  10. package/es5/components/VTextField/VTextField.js +3 -1
  11. package/es5/components/VTextField/VTextField.js.map +1 -1
  12. package/es5/directives/click-outside/index.js +19 -21
  13. package/es5/directives/click-outside/index.js.map +1 -1
  14. package/es5/directives/intersect/index.js +12 -17
  15. package/es5/directives/intersect/index.js.map +1 -1
  16. package/es5/directives/mutate/index.js +9 -11
  17. package/es5/directives/mutate/index.js.map +1 -1
  18. package/es5/directives/resize/index.js +8 -10
  19. package/es5/directives/resize/index.js.map +1 -1
  20. package/es5/directives/scroll/index.js +11 -12
  21. package/es5/directives/scroll/index.js.map +1 -1
  22. package/es5/directives/touch/index.js +6 -5
  23. package/es5/directives/touch/index.js.map +1 -1
  24. package/es5/framework.js +1 -1
  25. package/es5/services/theme/utils.js.map +1 -1
  26. package/lib/components/VFileInput/VFileInput.js +2 -0
  27. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  28. package/lib/components/VTextField/VTextField.js +2 -0
  29. package/lib/components/VTextField/VTextField.js.map +1 -1
  30. package/lib/directives/click-outside/index.js +17 -19
  31. package/lib/directives/click-outside/index.js.map +1 -1
  32. package/lib/directives/intersect/index.js +12 -16
  33. package/lib/directives/intersect/index.js.map +1 -1
  34. package/lib/directives/mutate/index.js +9 -11
  35. package/lib/directives/mutate/index.js.map +1 -1
  36. package/lib/directives/resize/index.js +8 -8
  37. package/lib/directives/resize/index.js.map +1 -1
  38. package/lib/directives/scroll/index.js +8 -8
  39. package/lib/directives/scroll/index.js.map +1 -1
  40. package/lib/directives/touch/index.js +6 -5
  41. package/lib/directives/touch/index.js.map +1 -1
  42. package/lib/framework.js +1 -1
  43. package/lib/services/theme/utils.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/VFileInput/VFileInput.ts +1 -1
  46. package/src/components/VMenu/__tests__/VMenuActivatorTest.spec.ts +25 -0
  47. package/src/components/VMenu/__tests__/test-with-directives.spec.ts +50 -0
  48. package/src/components/VTextField/VTextField.ts +1 -1
  49. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +2 -1
  50. package/src/directives/click-outside/__tests__/click-outside.spec.ts +2 -1
  51. package/src/directives/click-outside/index.ts +25 -18
  52. package/src/directives/intersect/__tests__/intersect.spec.ts +31 -13
  53. package/src/directives/intersect/index.ts +15 -19
  54. package/src/directives/mutate/__tests__/mutate.spec.ts +35 -27
  55. package/src/directives/mutate/index.ts +12 -6
  56. package/src/directives/resize/__tests__/resize.spec.ts +4 -4
  57. package/src/directives/resize/index.ts +11 -18
  58. package/src/directives/scroll/__tests__/scroll.spec.ts +5 -29
  59. package/src/directives/scroll/index.ts +14 -7
  60. package/src/directives/touch/index.ts +6 -5
  61. package/src/services/theme/utils.ts +1 -1
@@ -230,7 +230,9 @@ var _default = (0, _vue.defineComponent)({
230
230
  var _this$attrs$ = this.attrs$,
231
231
  title = _this$attrs$.title,
232
232
  value = _this$attrs$.value,
233
- inputAttrs = _objectWithoutProperties(_this$attrs$, ["title", "value"]);
233
+ _class = _this$attrs$.class,
234
+ _style = _this$attrs$.style,
235
+ inputAttrs = _objectWithoutProperties(_this$attrs$, ["title", "value", "class", "style"]);
234
236
 
235
237
  var input = (0, _vue.h)('input', _objectSpread(_objectSpread(_objectSpread({}, inputAttrs), {}, {
236
238
  autofocus: this.autofocus,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VFileInput/VFileInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropType } from 'vue'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n name: 'v-file-input',\n extends: VTextField,\n\n model: {\n prop: 'value',\n event: 'change'\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize'\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter'\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file'\n },\n readonly: {\n type: Boolean,\n default: false\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n }\n } as unknown as PropType<boolean | 1000 | 1024>,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22\n },\n type: {\n type: String,\n default: 'file'\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n }\n } as unknown as PropType<File | File[]>\n },\n\n emits: ['change', 'keydown', 'click:prepend'],\n\n computed: {\n classes (): object {\n return {\n ...VTextField.computed.classes.call(this),\n 'v-file-input': true\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue).filter((v: any) => v instanceof File)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n }\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n }\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on <v-file-input>', this)\n },\n immediate: true\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n }\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => h(VChip, {\n small: this.smallChips,\n 'onClick:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n }\n }, () => [text]))\n },\n genControl () {\n const render = VTextField.methods.genControl.call(this)\n\n if (this.hideInput) {\n if (render.props) {\n render.props.style = mergeStyles(render.props.style, {\n display: 'none'\n })\n } else {\n render.props = {\n style: { display: 'none' }\n }\n }\n }\n\n return render\n },\n genInput () {\n // Create input without calling VTextField.genInput to avoid value setting\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, value, ...inputAttrs } = this.attrs$\n\n const input = h('input', {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.placeholder,\n readonly: this.isReadonly,\n type: this.type,\n multiple: this.multiple,\n ...listeners,\n onChange: this.onInput,\n onKeyDown: this.onKeyDown,\n ref: 'input'\n })\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$slots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$slots.selection) return\n\n children.push(\n this.$slots.selection({\n text: this.text[index],\n file,\n index\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return h('div', {\n class: ['v-file-input__text', {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$slots.selection\n }]\n }, children)\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot',\n onClick: (e: MouseEvent) => {\n // Clicking the label already delegates to input element, so we shouldn't click it twice\n if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return\n\n this.$refs.input.click()\n }\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null\n ])\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n }\n }\n})\n"],"sourceRoot":"","file":"VFileInput.js"}
1
+ {"version":3,"sources":["../../../src/components/VFileInput/VFileInput.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropType } from 'vue'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n name: 'v-file-input',\n extends: VTextField,\n\n model: {\n prop: 'value',\n event: 'change'\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize'\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter'\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file'\n },\n readonly: {\n type: Boolean,\n default: false\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n }\n } as unknown as PropType<boolean | 1000 | 1024>,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22\n },\n type: {\n type: String,\n default: 'file'\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n }\n } as unknown as PropType<File | File[]>\n },\n\n emits: ['change', 'keydown', 'click:prepend'],\n\n computed: {\n classes (): object {\n return {\n ...VTextField.computed.classes.call(this),\n 'v-file-input': true\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue).filter((v: any) => v instanceof File)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n }\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n }\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on <v-file-input>', this)\n },\n immediate: true\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n }\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => h(VChip, {\n small: this.smallChips,\n 'onClick:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n }\n }, () => [text]))\n },\n genControl () {\n const render = VTextField.methods.genControl.call(this)\n\n if (this.hideInput) {\n if (render.props) {\n render.props.style = mergeStyles(render.props.style, {\n display: 'none'\n })\n } else {\n render.props = {\n style: { display: 'none' }\n }\n }\n }\n\n return render\n },\n genInput () {\n // Create input without calling VTextField.genInput to avoid value setting\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, value, class: _class, style: _style, ...inputAttrs } = this.attrs$\n\n const input = h('input', {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.placeholder,\n readonly: this.isReadonly,\n type: this.type,\n multiple: this.multiple,\n ...listeners,\n onChange: this.onInput,\n onKeyDown: this.onKeyDown,\n ref: 'input'\n })\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$slots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$slots.selection) return\n\n children.push(\n this.$slots.selection({\n text: this.text[index],\n file,\n index\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return h('div', {\n class: ['v-file-input__text', {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$slots.selection\n }]\n }, children)\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot',\n onClick: (e: MouseEvent) => {\n // Clicking the label already delegates to input element, so we shouldn't click it twice\n if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return\n\n this.$refs.input.click()\n }\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null\n ])\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n }\n }\n})\n"],"sourceRoot":"","file":"VFileInput.js"}
@@ -399,7 +399,9 @@ var _default = baseMixins.extend({
399
399
  var _this$attrs$ = this.attrs$,
400
400
  title = _this$attrs$.title,
401
401
  _onChange = _this$attrs$.onChange,
402
- inputAttrs = _objectWithoutProperties(_this$attrs$, ["title", "onChange"]);
402
+ _class = _this$attrs$.class,
403
+ _style = _this$attrs$.style,
404
+ inputAttrs = _objectWithoutProperties(_this$attrs$, ["title", "onChange", "class", "style"]);
403
405
 
404
406
  var node = (0, _vue.h)('input', _objectSpread(_objectSpread(_objectSpread({
405
407
  style: {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTextField/VTextField.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport type { VNode } from '../../types/vue-internal'\nimport type { PropType } from 'vue'\nimport { withDirectives, h } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus'\n ]\n }),\n Loadable\n)\ntype options = {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-text-field',\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear'\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text'\n }\n },\n\n emits: ['update:modelValue', 'change', 'blur', 'focus', 'keydown', 'click:clear', 'click'],\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('update:modelValue', this.lazyValue)\n\n if (this.$options.$_emitChangeEvent) {\n this.$emit('change', this.lazyValue)\n }\n }\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse)\n ? {\n left: offset,\n right: 'auto'\n }\n : {\n left: 'auto',\n right: offset\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n }\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n modelValue (val) {\n this.lazyValue = val\n }\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue']\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n this.$emit('click:clear')\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner']() as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n h('div')\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback)\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue\n }\n\n return this.$slots.counter?.({ props }) ?? h(VCounter, props)\n },\n genControl () {\n return VInput.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress()\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return h('fieldset', {\n 'aria-hidden': true\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n ref: 'label',\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue\n }\n\n return h(VLabel, data, () => getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = h('span', {\n innerHTML: '&#8203;',\n class: 'notranslate'\n })\n\n return h('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined\n }\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, onChange: _onChange, ...inputAttrs } = this.attrs$ as Record<string, any>\n\n const node = h('input', {\n style: {},\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n onBlur: this.onBlur,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onKeydown: this.onKeyDown,\n ...listeners,\n ref: 'input'\n })\n\n return withDirectives(node, [\n [\n resize,\n this.onResize,\n '',\n { quiet: true }\n ]\n ])\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return h('div', {\n class: 'v-text-field__details'\n }, [\n messagesNode,\n counterNode\n ])\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot'\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return h('div', {\n class: `v-text-field__${type}`,\n ref: type\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs?.label?.$el\n ? Math.min(this.$refs?.label?.$el.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n }\n }\n})\n"],"sourceRoot":"","file":"VTextField.js"}
1
+ {"version":3,"sources":["../../../src/components/VTextField/VTextField.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, getSlot, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport type { VNode } from '../../types/vue-internal'\nimport type { PropType } from 'vue'\nimport { withDirectives, h } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus'\n ]\n }),\n Loadable\n)\ntype options = {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-text-field',\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear'\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text'\n }\n },\n\n emits: ['update:modelValue', 'change', 'blur', 'focus', 'keydown', 'click:clear', 'click'],\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('update:modelValue', this.lazyValue)\n\n if (this.$options.$_emitChangeEvent) {\n this.$emit('change', this.lazyValue)\n }\n }\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse)\n ? {\n left: offset,\n right: 'auto'\n }\n : {\n left: 'auto',\n right: offset\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n }\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n modelValue (val) {\n this.lazyValue = val\n }\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue']\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n this.$emit('click:clear')\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner']() as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n h('div')\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback)\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue\n }\n\n return this.$slots.counter?.({ props }) ?? h(VCounter, props)\n },\n genControl () {\n return VInput.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress()\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return h('fieldset', {\n 'aria-hidden': true\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n ref: 'label',\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue\n }\n\n return h(VLabel, data, () => getSlot(this, 'label') || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = h('span', {\n innerHTML: '&#8203;',\n class: 'notranslate'\n })\n\n return h('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined\n }\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, onChange: _onChange, class: _class, style: _style, ...inputAttrs } = this.attrs$ as Record<string, any>\n\n const node = h('input', {\n style: {},\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n onBlur: this.onBlur,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onKeydown: this.onKeyDown,\n ...listeners,\n ref: 'input'\n })\n\n return withDirectives(node, [\n [\n resize,\n this.onResize,\n '',\n { quiet: true }\n ]\n ])\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return h('div', {\n class: 'v-text-field__details'\n }, [\n messagesNode,\n counterNode\n ])\n },\n genTextFieldSlot () {\n return h('div', {\n class: 'v-text-field__slot'\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return h('div', {\n class: `v-text-field__${type}`,\n ref: type\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs?.label?.$el\n ? Math.min(this.$refs?.label?.$el.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n }\n }\n})\n"],"sourceRoot":"","file":"VTextField.js"}
@@ -9,6 +9,8 @@ var _dom = require("../../util/dom");
9
9
 
10
10
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11
11
 
12
+ var clickOutsideState = new WeakMap();
13
+
12
14
  function defaultConditional() {
13
15
  return true;
14
16
  }
@@ -49,7 +51,9 @@ function checkIsActive(e, binding) {
49
51
 
50
52
  function directive(e, el, binding) {
51
53
  var handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;
52
- el._clickOutside.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(function () {
54
+ var state = clickOutsideState.get(el);
55
+ if (!state) return;
56
+ state.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(function () {
53
57
  checkIsActive(e, binding) && handler && handler(e);
54
58
  }, 0);
55
59
  }
@@ -75,38 +79,32 @@ var ClickOutside = {
75
79
  };
76
80
 
77
81
  var onMousedown = function onMousedown(e) {
78
- el._clickOutside.lastMousedownWasOutside = checkEvent(e, el, binding);
82
+ var state = clickOutsideState.get(el);
83
+ if (!state) return;
84
+ state.lastMousedownWasOutside = checkEvent(e, el, binding);
79
85
  };
80
86
 
87
+ clickOutsideState.set(el, {
88
+ onClick: onClick,
89
+ onMousedown: onMousedown,
90
+ lastMousedownWasOutside: true
91
+ });
81
92
  handleShadow(el, function (app) {
82
93
  app.addEventListener('click', onClick, true);
83
94
  app.addEventListener('mousedown', onMousedown, true);
84
95
  });
85
-
86
- if (!el._clickOutside) {
87
- el._clickOutside = {
88
- lastMousedownWasOutside: true
89
- };
90
- }
91
-
92
- el._clickOutside[vnode.ctx.uid] = {
93
- onClick: onClick,
94
- onMousedown: onMousedown
95
- };
96
96
  },
97
97
  unmounted: function unmounted(el, binding, vnode) {
98
- if (!el._clickOutside) return;
98
+ var state = clickOutsideState.get(el);
99
+ if (!state) return;
99
100
  handleShadow(el, function (app) {
100
- var _a;
101
-
102
- if (!app || !((_a = el._clickOutside) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid])) return;
103
- var _el$_clickOutside$vno = el._clickOutside[vnode.ctx.uid],
104
- onClick = _el$_clickOutside$vno.onClick,
105
- onMousedown = _el$_clickOutside$vno.onMousedown;
101
+ if (!app) return;
102
+ var onClick = state.onClick,
103
+ onMousedown = state.onMousedown;
106
104
  app.removeEventListener('click', onClick, true);
107
105
  app.removeEventListener('mousedown', onMousedown, true);
108
106
  });
109
- delete el._clickOutside[vnode.ctx.uid];
107
+ clickOutsideState.delete(el);
110
108
  }
111
109
  };
112
110
  exports.ClickOutside = ClickOutside;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/click-outside/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { attachedRoot } from '../../util/dom'\nimport type { VNodeDirective } from '../../types/vue-internal'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ntype ClickOutsideDirective = VNodeDirective & {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true\n }\n }\n\n el._clickOutside[vnode.ctx.uid] = {\n onClick,\n onMousedown\n }\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.ctx.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.ctx.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.ctx.uid]\n }\n}\n\nexport default ClickOutside\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/click-outside/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { attachedRoot } from '../../util/dom'\nimport type { VNodeDirective } from '../../types/vue-internal'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ntype ClickOutsideDirective = VNodeDirective & {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\ninterface ClickOutsideState {\n onClick: (e: Event) => void\n onMousedown: (e: Event) => void\n lastMousedownWasOutside: boolean\n}\n\nconst clickOutsideState = new WeakMap<HTMLElement, ClickOutsideState>()\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n const state = clickOutsideState.get(el)\n if (!state) return\n\n state.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n const state = clickOutsideState.get(el)\n if (!state) return\n state.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n clickOutsideState.set(el, {\n onClick,\n onMousedown,\n lastMousedownWasOutside: true\n })\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const state = clickOutsideState.get(el)\n if (!state) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app) return\n\n const { onClick, onMousedown } = state\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n clickOutsideState.delete(el)\n }\n}\n\nexport default ClickOutside\n"],"sourceRoot":"","file":"index.js"}
@@ -7,6 +7,8 @@ exports.default = exports.Intersect = void 0;
7
7
 
8
8
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9
9
 
10
+ var intersectState = new WeakMap();
11
+
10
12
  function mounted(el, binding, vnode) {
11
13
  if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {
12
14
  return;
@@ -26,29 +28,24 @@ function mounted(el, binding, vnode) {
26
28
  var observer = new IntersectionObserver(function () {
27
29
  var entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
28
30
  var observer = arguments.length > 1 ? arguments[1] : undefined;
29
-
30
- var _a;
31
-
32
- var _observe = (_a = el._observe) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid];
33
-
34
- if (!_observe) return; // Just in case, should never fire
31
+ var state = intersectState.get(el);
32
+ if (!state) return; // Just in case, should never fire
35
33
 
36
34
  var isIntersecting = entries.some(function (entry) {
37
35
  return entry.isIntersecting;
38
36
  }); // If is not quiet or has already been
39
37
  // initted, invoke the user callback
40
38
 
41
- if (handler && typeof handler === 'function' && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {
39
+ if (handler && typeof handler === 'function' && (!modifiers.quiet || state.init) && (!modifiers.once || isIntersecting || state.init)) {
42
40
  handler(entries, observer, isIntersecting);
43
41
  }
44
42
 
45
- if (isIntersecting && modifiers.once) unmounted(el, binding, vnode);else _observe.init = true;
43
+ if (isIntersecting && modifiers.once) unmounted(el, binding, vnode);else state.init = true;
46
44
  }, options);
47
- el._observe = Object(el._observe);
48
- el._observe[vnode.ctx.uid] = {
45
+ intersectState.set(el, {
49
46
  init: false,
50
47
  observer: observer
51
- };
48
+ });
52
49
  observer.observe(el);
53
50
  }
54
51
 
@@ -61,12 +58,10 @@ function updated(el, binding, vnode) {
61
58
  }
62
59
 
63
60
  function unmounted(el, binding, vnode) {
64
- var _a;
65
-
66
- var observe = (_a = el._observe) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid];
67
- if (!observe) return;
68
- observe.observer.unobserve(el);
69
- delete el._observe[vnode.ctx.uid];
61
+ var state = intersectState.get(el);
62
+ if (!state) return;
63
+ state.observer.unobserve(el);
64
+ intersectState.delete(el);
70
65
  }
71
66
 
72
67
  var Intersect = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/intersect/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DirectiveBinding, ObjectDirective, VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean\n) => void;\n\ninterface ObserveDirectiveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?:\n | ObserveHandler\n | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\n// Расширяем HTMLElement для хранения данных наблюдателя\ndeclare global {\n interface HTMLElement {\n _observe?: Record<\n number,\n { init: boolean, observer: IntersectionObserver }\n >\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) { return }\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } =\n typeof value === 'object' && value !== null && 'handler' in value\n ? value\n : { handler: value, options: {} }\n\n if (!handler) return\n\n const observer = new IntersectionObserver(\n (\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[vnode.ctx!.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler &&\n typeof handler === 'function' &&\n (!modifiers.quiet || _observe.init) &&\n (!modifiers.once || isIntersecting || _observe.init)\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding, vnode)\n else _observe.init = true\n },\n options\n )\n\n el._observe = Object(el._observe)\n el._observe![vnode.ctx!.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction updated (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n // Если значение изменилось, пересоздаем observer\n if (binding.value !== binding.oldValue) {\n unmounted(el, binding, vnode)\n mounted(el, binding, vnode)\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n const observe = el._observe?.[vnode.ctx!.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.ctx!.uid]\n}\n\nexport const Intersect: ObjectDirective<\n HTMLElement,\n | ObserveHandler\n | { handler: ObserveHandler, options?: IntersectionObserverInit }\n> = {\n mounted,\n updated,\n unmounted\n}\n\nexport default Intersect\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/intersect/index.ts"],"names":[],"mappings":";;;;;;;;;AAwBA,IAAM,cAAc,GAAG,IAAI,OAAJ,EAAvB;;AAEA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAI,OAAO,MAAP,KAAkB,WAAlB,IAAiC,EAAE,0BAA0B,MAA5B,CAArC,EAA0E;AAAE;AAAQ;;AAEpF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAR,IAAqB,EAAvC;AACA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;;AALY,aAOV,QAAO,KAAP,MAAiB,QAAjB,IAA6B,KAAK,KAAK,IAAvC,IAA+C,aAAa,KAA5D,GACI,KADJ,GAEI;AAAE,IAAA,OAAO,EAAE,KAAX;AAAkB,IAAA,OAAO,EAAE;AAA3B,GATM;AAAA,MAMJ,OANI,QAMJ,OANI;AAAA,MAMK,OANL,QAMK,OANL;;AAWZ,MAAI,CAAC,OAAL,EAAc;AAEd,MAAM,QAAQ,GAAG,IAAI,oBAAJ,CACf,YAGI;AAAA,QAFF,OAEE,uEAFqC,EAErC;AAAA,QADF,QACE;AACF,QAAM,KAAK,GAAG,cAAc,CAAC,GAAf,CAAmB,EAAnB,CAAd;AACA,QAAI,CAAC,KAAL,EAAY,OAFV,CAEiB;;AAEnB,QAAM,cAAc,GAAG,OAAO,CAAC,IAAR,CAAa,UAAA,KAAK;AAAA,aAAI,KAAK,CAAC,cAAV;AAAA,KAAlB,CAAvB,CAJE,CAMF;AACA;;AACA,QACE,OAAO,IACP,OAAO,OAAP,KAAmB,UADnB,KAEC,CAAC,SAAS,CAAC,KAAX,IAAoB,KAAK,CAAC,IAF3B,MAGC,CAAC,SAAS,CAAC,IAAX,IAAmB,cAAnB,IAAqC,KAAK,CAAC,IAH5C,CADF,EAKE;AACA,MAAA,OAAO,CAAC,OAAD,EAAU,QAAV,EAAoB,cAApB,CAAP;AACD;;AAED,QAAI,cAAc,IAAI,SAAS,CAAC,IAAhC,EAAsC,SAAS,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAT,CAAtC,KACK,KAAK,CAAC,IAAN,GAAa,IAAb;AACN,GAvBc,EAwBf,OAxBe,CAAjB;AA2BA,EAAA,cAAc,CAAC,GAAf,CAAmB,EAAnB,EAAuB;AAAE,IAAA,IAAI,EAAE,KAAR;AAAe,IAAA,QAAQ,EAAR;AAAf,GAAvB;AAEA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB;AACD;;AAED,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ;AACA,MAAI,OAAO,CAAC,KAAR,KAAkB,OAAO,CAAC,QAA9B,EAAwC;AACtC,IAAA,SAAS,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAT;AACA,IAAA,OAAO,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAP;AACD;AACF;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,KAAK,GAAG,cAAc,CAAC,GAAf,CAAmB,EAAnB,CAAd;AACA,MAAI,CAAC,KAAL,EAAY;AAEZ,EAAA,KAAK,CAAC,QAAN,CAAe,SAAf,CAAyB,EAAzB;AACA,EAAA,cAAc,CAAC,MAAf,CAAsB,EAAtB;AACD;;AAEM,IAAM,SAAS,GAIlB;AACF,EAAA,OAAO,EAAP,OADE;AAEF,EAAA,OAAO,EAAP,OAFE;AAGF,EAAA,SAAS,EAAT;AAHE,CAJG;;eAUQ,S","sourcesContent":["import { DirectiveBinding, ObjectDirective, VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean\n) => void;\n\ninterface ObserveDirectiveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?:\n | ObserveHandler\n | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\ninterface IntersectState {\n init: boolean\n observer: IntersectionObserver\n}\n\nconst intersectState = new WeakMap<HTMLElement, IntersectState>()\n\nfunction mounted (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) { return }\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } =\n typeof value === 'object' && value !== null && 'handler' in value\n ? value\n : { handler: value, options: {} }\n\n if (!handler) return\n\n const observer = new IntersectionObserver(\n (\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const state = intersectState.get(el)\n if (!state) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler &&\n typeof handler === 'function' &&\n (!modifiers.quiet || state.init) &&\n (!modifiers.once || isIntersecting || state.init)\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding, vnode)\n else state.init = true\n },\n options\n )\n\n intersectState.set(el, { init: false, observer })\n\n observer.observe(el)\n}\n\nfunction updated (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n // Если значение изменилось, пересоздаем observer\n if (binding.value !== binding.oldValue) {\n unmounted(el, binding, vnode)\n mounted(el, binding, vnode)\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ObserveDirectiveBinding,\n vnode: VNode\n) {\n const state = intersectState.get(el)\n if (!state) return\n\n state.observer.unobserve(el)\n intersectState.delete(el)\n}\n\nexport const Intersect: ObjectDirective<\n HTMLElement,\n | ObserveHandler\n | { handler: ObserveHandler, options?: IntersectionObserverInit }\n> = {\n mounted,\n updated,\n unmounted\n}\n\nexport default Intersect\n"],"sourceRoot":"","file":"index.js"}
@@ -11,6 +11,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
11
11
 
12
12
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13
13
 
14
+ var mutateState = new WeakMap();
15
+
14
16
  function mounted(el, binding, vnode) {
15
17
  var modifiers = binding.modifiers || {};
16
18
  var value = binding.value;
@@ -36,27 +38,23 @@ function mounted(el, binding, vnode) {
36
38
  };
37
39
  var observer = new MutationObserver(function (mutationsList, observer) {
38
40
  /* istanbul ignore if */
39
- if (!el._mutate) return; // Just in case, should never fire
41
+ if (!mutateState.has(el)) return; // Just in case, should never fire
40
42
 
41
43
  callback(mutationsList, observer); // If has the once modifier, unbind
42
44
 
43
45
  once && unmounted(el, binding, vnode);
44
46
  });
45
47
  observer.observe(el, options);
46
- el._mutate = Object(el._mutate);
47
- el._mutate[vnode.ctx.uid] = {
48
+ mutateState.set(el, {
48
49
  observer: observer
49
- };
50
+ });
50
51
  }
51
52
 
52
53
  function unmounted(el, binding, vnode) {
53
- var _a;
54
-
55
- if (!((_a = el._mutate) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid])) return;
56
-
57
- el._mutate[vnode.ctx.uid].observer.disconnect();
58
-
59
- delete el._mutate[vnode.ctx.uid];
54
+ var state = mutateState.get(el);
55
+ if (!state) return;
56
+ state.observer.disconnect();
57
+ mutateState.delete(el);
60
58
  }
61
59
 
62
60
  var Mutate = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/mutate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAmBA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,SAAS,GAAI,OAAO,CAAC,SAAR,IAAyC,EAA5D;AACA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,MAAM,QAAQ,GAAG,QAAO,KAAP,MAAiB,QAAjB,GAA4B,KAAK,CAAC,OAAlC,GAA4C,KAA7D;;AAJY,MAKJ,IALI,GAKsB,SALtB,CAKJ,IALI;AAAA,MAKK,YALL,4BAKsB,SALtB;;AAMZ,MAAM,YAAY,GAAG,MAAM,CAAC,IAAP,CAAY,YAAZ,EAA0B,MAA1B,GAAmC,CAAxD,CANY,CAQZ;;AACA,MAAM,OAAO,GACX,QAAO,KAAP,MAAiB,QAAjB,IAA6B,KAAK,CAAC,OAAnC,GACI,KAAK,CAAC,OADV,GAEI,YAAY,GACV;AACA;AACE,IAAA,UAAU,EAAE,YAAY,CAAC,IAF3B;AAGE,IAAA,SAAS,EAAE,YAAY,CAAC,KAH1B;AAIE,IAAA,OAAO,EAAE,YAAY,CAAC,GAJxB;AAKE,IAAA,aAAa,EAAE,YAAY,CAAC;AAL9B,GADU,GAQV;AACA;AACE,IAAA,UAAU,EAAE,IAFd;AAGE,IAAA,SAAS,EAAE,IAHb;AAIE,IAAA,OAAO,EAAE,IAJX;AAKE,IAAA,aAAa,EAAE;AALjB,GAXR;AAmBA,MAAM,QAAQ,GAAG,IAAI,gBAAJ,CACf,UAAC,aAAD,EAAkC,QAAlC,EAAgE;AAC9D;AACA,QAAI,CAAC,EAAE,CAAC,OAAR,EAAiB,OAF6C,CAEtC;;AAExB,IAAA,QAAQ,CAAC,aAAD,EAAgB,QAAhB,CAAR,CAJ8D,CAM9D;;AACA,IAAA,IAAI,IAAI,SAAS,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAjB;AACD,GATc,CAAjB;AAYA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB,EAAqB,OAArB;AACA,EAAA,EAAE,CAAC,OAAH,GAAa,MAAM,CAAC,EAAE,CAAC,OAAJ,CAAnB;AACA,EAAA,EAAE,CAAC,OAAH,CAAY,KAAK,CAAC,GAAN,CAAW,GAAvB,IAA8B;AAAE,IAAA,QAAQ,EAAR;AAAF,GAA9B;AACD;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;;;AAEZ,MAAI,EAAC,CAAA,EAAA,GAAA,EAAE,CAAC,OAAH,MAAU,IAAV,IAAU,EAAA,KAAA,KAAA,CAAV,GAAU,KAAA,CAAV,GAAU,EAAA,CAAG,KAAK,CAAC,GAAN,CAAW,GAAd,CAAX,CAAJ,EAAmC;;AAEnC,EAAA,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,GAAN,CAAW,GAAtB,EAA4B,QAA5B,CAAqC,UAArC;;AACA,SAAO,EAAE,CAAC,OAAH,CAAW,KAAK,CAAC,GAAN,CAAW,GAAtB,CAAP;AACD;;AAEM,IAAM,MAAM,GAAG;AACpB,EAAA,OAAO,EAAP,OADoB;AAEpB,EAAA,SAAS,EAAT;AAFoB,CAAf;;eAKQ,M","sourcesContent":["import { DirectiveBinding, VNode } from 'vue'\n\ntype MutateHandler = (\n mutationsList: MutationRecord[],\n observer: MutationObserver\n) => void;\n\ntype MutateValue =\n | MutateHandler\n | { handler: MutateHandler, options?: MutationObserverInit };\n\ntype MutateModifiers = {\n once?: boolean\n attr?: boolean\n child?: boolean\n sub?: boolean\n char?: boolean\n};\n\nfunction mounted (\n el: HTMLElement,\n binding: DirectiveBinding<MutateValue>,\n vnode: VNode\n) {\n const modifiers = (binding.modifiers as MutateModifiers) || {}\n const value = binding.value\n const callback = typeof value === 'object' ? value.handler : value!\n const { once, ...modifierKeys } = modifiers\n const hasModifiers = Object.keys(modifierKeys).length > 0\n\n // Options take top priority\n const options =\n typeof value === 'object' && value.options\n ? value.options\n : hasModifiers\n ? {\n // If we have modifiers, use only those provided\n attributes: modifierKeys.attr,\n childList: modifierKeys.child,\n subtree: modifierKeys.sub,\n characterData: modifierKeys.char\n }\n : {\n // Defaults to everything on\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true\n }\n\n const observer = new MutationObserver(\n (mutationsList: MutationRecord[], observer: MutationObserver) => {\n /* istanbul ignore if */\n if (!el._mutate) return // Just in case, should never fire\n\n callback(mutationsList, observer)\n\n // If has the once modifier, unbind\n once && unmounted(el, binding, vnode)\n }\n )\n\n observer.observe(el, options)\n el._mutate = Object(el._mutate)\n el._mutate![vnode.ctx!.uid] = { observer }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: DirectiveBinding<MutateValue>,\n vnode: VNode\n) {\n if (!el._mutate?.[vnode.ctx!.uid]) return\n\n el._mutate[vnode.ctx!.uid]!.observer.disconnect()\n delete el._mutate[vnode.ctx!.uid]\n}\n\nexport const Mutate = {\n mounted,\n unmounted\n}\n\nexport default Mutate\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/mutate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAuBA,IAAM,WAAW,GAAG,IAAI,OAAJ,EAApB;;AAEA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,SAAS,GAAI,OAAO,CAAC,SAAR,IAAyC,EAA5D;AACA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAtB;AACA,MAAM,QAAQ,GAAG,QAAO,KAAP,MAAiB,QAAjB,GAA4B,KAAK,CAAC,OAAlC,GAA4C,KAA7D;;AAJY,MAKJ,IALI,GAKsB,SALtB,CAKJ,IALI;AAAA,MAKK,YALL,4BAKsB,SALtB;;AAMZ,MAAM,YAAY,GAAG,MAAM,CAAC,IAAP,CAAY,YAAZ,EAA0B,MAA1B,GAAmC,CAAxD,CANY,CAQZ;;AACA,MAAM,OAAO,GACX,QAAO,KAAP,MAAiB,QAAjB,IAA6B,KAAK,CAAC,OAAnC,GACI,KAAK,CAAC,OADV,GAEI,YAAY,GACV;AACA;AACE,IAAA,UAAU,EAAE,YAAY,CAAC,IAF3B;AAGE,IAAA,SAAS,EAAE,YAAY,CAAC,KAH1B;AAIE,IAAA,OAAO,EAAE,YAAY,CAAC,GAJxB;AAKE,IAAA,aAAa,EAAE,YAAY,CAAC;AAL9B,GADU,GAQV;AACA;AACE,IAAA,UAAU,EAAE,IAFd;AAGE,IAAA,SAAS,EAAE,IAHb;AAIE,IAAA,OAAO,EAAE,IAJX;AAKE,IAAA,aAAa,EAAE;AALjB,GAXR;AAmBA,MAAM,QAAQ,GAAG,IAAI,gBAAJ,CACf,UAAC,aAAD,EAAkC,QAAlC,EAAgE;AAC9D;AACA,QAAI,CAAC,WAAW,CAAC,GAAZ,CAAgB,EAAhB,CAAL,EAA0B,OAFoC,CAE7B;;AAEjC,IAAA,QAAQ,CAAC,aAAD,EAAgB,QAAhB,CAAR,CAJ8D,CAM9D;;AACA,IAAA,IAAI,IAAI,SAAS,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,CAAjB;AACD,GATc,CAAjB;AAYA,EAAA,QAAQ,CAAC,OAAT,CAAiB,EAAjB,EAAqB,OAArB;AACA,EAAA,WAAW,CAAC,GAAZ,CAAgB,EAAhB,EAAoB;AAAE,IAAA,QAAQ,EAAR;AAAF,GAApB;AACD;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAZ,CAAgB,EAAhB,CAAd;AACA,MAAI,CAAC,KAAL,EAAY;AAEZ,EAAA,KAAK,CAAC,QAAN,CAAe,UAAf;AACA,EAAA,WAAW,CAAC,MAAZ,CAAmB,EAAnB;AACD;;AAEM,IAAM,MAAM,GAAG;AACpB,EAAA,OAAO,EAAP,OADoB;AAEpB,EAAA,SAAS,EAAT;AAFoB,CAAf;;eAKQ,M","sourcesContent":["import { DirectiveBinding, VNode } from 'vue'\n\ntype MutateHandler = (\n mutationsList: MutationRecord[],\n observer: MutationObserver\n) => void;\n\ntype MutateValue =\n | MutateHandler\n | { handler: MutateHandler, options?: MutationObserverInit };\n\ntype MutateModifiers = {\n once?: boolean\n attr?: boolean\n child?: boolean\n sub?: boolean\n char?: boolean\n};\n\ninterface MutateState {\n observer: MutationObserver\n}\n\nconst mutateState = new WeakMap<HTMLElement, MutateState>()\n\nfunction mounted (\n el: HTMLElement,\n binding: DirectiveBinding<MutateValue>,\n vnode: VNode\n) {\n const modifiers = (binding.modifiers as MutateModifiers) || {}\n const value = binding.value\n const callback = typeof value === 'object' ? value.handler : value!\n const { once, ...modifierKeys } = modifiers\n const hasModifiers = Object.keys(modifierKeys).length > 0\n\n // Options take top priority\n const options =\n typeof value === 'object' && value.options\n ? value.options\n : hasModifiers\n ? {\n // If we have modifiers, use only those provided\n attributes: modifierKeys.attr,\n childList: modifierKeys.child,\n subtree: modifierKeys.sub,\n characterData: modifierKeys.char\n }\n : {\n // Defaults to everything on\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true\n }\n\n const observer = new MutationObserver(\n (mutationsList: MutationRecord[], observer: MutationObserver) => {\n /* istanbul ignore if */\n if (!mutateState.has(el)) return // Just in case, should never fire\n\n callback(mutationsList, observer)\n\n // If has the once modifier, unbind\n once && unmounted(el, binding, vnode)\n }\n )\n\n observer.observe(el, options)\n mutateState.set(el, { observer })\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: DirectiveBinding<MutateValue>,\n vnode: VNode\n) {\n const state = mutateState.get(el)\n if (!state) return\n\n state.observer.disconnect()\n mutateState.delete(el)\n}\n\nexport const Mutate = {\n mounted,\n unmounted\n}\n\nexport default Mutate\n"],"sourceRoot":"","file":"index.js"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.Resize = void 0;
7
+ var resizeState = new WeakMap();
7
8
 
8
9
  function mounted(el, binding, vnode) {
9
10
  var callback = binding.value;
@@ -11,11 +12,10 @@ function mounted(el, binding, vnode) {
11
12
  passive: true
12
13
  };
13
14
  window.addEventListener('resize', callback, options);
14
- el._onResize = Object(el._onResize);
15
- el._onResize[vnode.ctx.uid] = {
15
+ resizeState.set(el, {
16
16
  callback: callback,
17
17
  options: options
18
- };
18
+ });
19
19
 
20
20
  if (!binding.modifiers || !binding.modifiers.quiet) {
21
21
  callback();
@@ -23,14 +23,12 @@ function mounted(el, binding, vnode) {
23
23
  }
24
24
 
25
25
  function unmounted(el, binding, vnode) {
26
- var _a;
27
-
28
- if (!((_a = el._onResize) === null || _a === void 0 ? void 0 : _a[vnode.ctx.uid])) return;
29
- var _el$_onResize$vnode$c = el._onResize[vnode.ctx.uid],
30
- callback = _el$_onResize$vnode$c.callback,
31
- options = _el$_onResize$vnode$c.options;
26
+ var state = resizeState.get(el);
27
+ if (!state) return;
28
+ var callback = state.callback,
29
+ options = state.options;
32
30
  window.removeEventListener('resize', callback, options);
33
- delete el._onResize[vnode.ctx.uid];
31
+ resizeState.delete(el);
34
32
  }
35
33
 
36
34
  var Resize = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":";;;;;;;AAmBA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAzB;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAR,IAAmB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAnC;AAEA,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,QAAlC,EAA4C,OAA5C;AAEA,EAAA,EAAE,CAAC,SAAH,GAAe,MAAM,CAAC,EAAE,CAAC,SAAJ,CAArB;AACA,EAAA,EAAE,CAAC,SAAH,CAAc,KAAK,CAAC,GAAN,CAAW,GAAzB,IAAgC;AAC9B,IAAA,QAAQ,EAAR,QAD8B;AAE9B,IAAA,OAAO,EAAP;AAF8B,GAAhC;;AAKA,MAAI,CAAC,OAAO,CAAC,SAAT,IAAsB,CAAC,OAAO,CAAC,SAAR,CAAkB,KAA7C,EAAoD;AAClD,IAAA,QAAQ;AACT;AACF;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;;;AAEZ,MAAI,EAAC,CAAA,EAAA,GAAA,EAAE,CAAC,SAAH,MAAY,IAAZ,IAAY,EAAA,KAAA,KAAA,CAAZ,GAAY,KAAA,CAAZ,GAAY,EAAA,CAAG,KAAK,CAAC,GAAN,CAAW,GAAd,CAAb,CAAJ,EAAqC;AAFzB,8BAIkB,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAJlB;AAAA,MAIJ,QAJI,yBAIJ,QAJI;AAAA,MAIM,OAJN,yBAIM,OAJN;AAMZ,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,QAArC,EAA+C,OAA/C;AAEA,SAAO,EAAE,CAAC,SAAH,CAAa,KAAK,CAAC,GAAN,CAAW,GAAxB,CAAP;AACD;;AAEM,IAAM,MAAM,GAAoB;AACrC,EAAA,OAAO,EAAP,OADqC;AAErC,EAAA,SAAS,EAAT;AAFqC,CAAhC;;eAKQ,M","sourcesContent":["import { DirectiveBinding, ObjectDirective, VNode } from 'vue'\n\ninterface ResizeDirectiveBinding extends DirectiveBinding {\n value: () => void\n options?: boolean | AddEventListenerOptions\n}\n\ndeclare global {\n interface HTMLElement {\n _onResize?: Record<\n number,\n {\n callback: () => void\n options: boolean | AddEventListenerOptions\n }\n >\n }\n}\n\nfunction mounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n const callback = binding.value\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.ctx!.uid] = {\n callback,\n options\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n if (!el._onResize?.[vnode.ctx!.uid]) return\n\n const { callback, options } = el._onResize[vnode.ctx!.uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.ctx!.uid]\n}\n\nexport const Resize: ObjectDirective = {\n mounted,\n unmounted\n}\n\nexport default Resize\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/directives/resize/index.ts"],"names":[],"mappings":";;;;;;AAYA,IAAM,WAAW,GAAG,IAAI,OAAJ,EAApB;;AAEA,SAAS,OAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAzB;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAR,IAAmB;AAAE,IAAA,OAAO,EAAE;AAAX,GAAnC;AAEA,EAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,QAAlC,EAA4C,OAA5C;AAEA,EAAA,WAAW,CAAC,GAAZ,CAAgB,EAAhB,EAAoB;AAClB,IAAA,QAAQ,EAAR,QADkB;AAElB,IAAA,OAAO,EAAP;AAFkB,GAApB;;AAKA,MAAI,CAAC,OAAO,CAAC,SAAT,IAAsB,CAAC,OAAO,CAAC,SAAR,CAAkB,KAA7C,EAAoD;AAClD,IAAA,QAAQ;AACT;AACF;;AAED,SAAS,SAAT,CACE,EADF,EAEE,OAFF,EAGE,KAHF,EAGc;AAEZ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAZ,CAAgB,EAAhB,CAAd;AACA,MAAI,CAAC,KAAL,EAAY;AAHA,MAIJ,QAJI,GAIkB,KAJlB,CAIJ,QAJI;AAAA,MAIM,OAJN,GAIkB,KAJlB,CAIM,OAJN;AAMZ,EAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,QAArC,EAA+C,OAA/C;AACA,EAAA,WAAW,CAAC,MAAZ,CAAmB,EAAnB;AACD;;AAEM,IAAM,MAAM,GAAoB;AACrC,EAAA,OAAO,EAAP,OADqC;AAErC,EAAA,SAAS,EAAT;AAFqC,CAAhC;;eAKQ,M","sourcesContent":["import { DirectiveBinding, ObjectDirective, VNode } from 'vue'\n\ninterface ResizeDirectiveBinding extends DirectiveBinding {\n value: () => void\n options?: boolean | AddEventListenerOptions\n}\n\ninterface ResizeState {\n callback: () => void\n options: boolean | AddEventListenerOptions\n}\n\nconst resizeState = new WeakMap<HTMLElement, ResizeState>()\n\nfunction mounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n const callback = binding.value\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n resizeState.set(el, {\n callback,\n options\n })\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unmounted (\n el: HTMLElement,\n binding: ResizeDirectiveBinding,\n vnode: VNode\n) {\n const state = resizeState.get(el)\n if (!state) return\n const { callback, options } = state\n\n window.removeEventListener('resize', callback, options)\n resizeState.delete(el)\n}\n\nexport const Resize: ObjectDirective = {\n mounted,\n unmounted\n}\n\nexport default Resize\n"],"sourceRoot":"","file":"index.js"}