@vuetify/nightly 2.6.11 → 2.6.12-master-20221018.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -3
- package/dist/json/web-types.json +5 -5
- package/dist/vuetify.css +2 -2
- package/dist/vuetify.css.map +1 -1
- package/dist/vuetify.js +11 -5
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VCalendar/mixins/calendar-with-events.js +3 -1
- package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/es5/components/VCombobox/VCombobox.js +1 -0
- package/es5/components/VCombobox/VCombobox.js.map +1 -1
- package/es5/components/VFileInput/VFileInput.js +6 -3
- package/es5/components/VFileInput/VFileInput.js.map +1 -1
- package/es5/framework.js +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.js +3 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +1 -0
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +6 -2
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/framework.js +1 -1
- package/package.json +1 -1
- package/src/components/VCalendar/mixins/calendar-with-events.ts +1 -1
- package/src/components/VCombobox/VCombobox.ts +1 -0
- package/src/components/VFileInput/VFileInput.ts +7 -2
- package/src/components/VStepper/VStepper.sass +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VCombobox/VCombobox.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:<string[]>\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n"],"sourceRoot":"","file":"VCombobox.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VCombobox/VCombobox.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:<string[]>\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n this.$emit('paste', event)\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n"],"sourceRoot":"","file":"VCombobox.js"}
|
|
@@ -190,7 +190,7 @@ export default VTextField.extend({
|
|
|
190
190
|
|
|
191
191
|
delete input.data.domProps.value; // This solves an issue in Safari where
|
|
192
192
|
// nothing happens when adding a file
|
|
193
|
-
//
|
|
193
|
+
// due to the input event not firing
|
|
194
194
|
// https://github.com/vuetifyjs/vuetify/issues/7941
|
|
195
195
|
|
|
196
196
|
delete input.data.on.input;
|
|
@@ -241,7 +241,11 @@ export default VTextField.extend({
|
|
|
241
241
|
genTextFieldSlot() {
|
|
242
242
|
const node = VTextField.options.methods.genTextFieldSlot.call(this);
|
|
243
243
|
node.data.on = { ...(node.data.on || {}),
|
|
244
|
-
click:
|
|
244
|
+
click: e => {
|
|
245
|
+
// Clicking the label already delegates to input element, so we shouldn't click it twice
|
|
246
|
+
if (e.target && e.target.nodeName === 'LABEL') return;
|
|
247
|
+
this.$refs.input.click();
|
|
248
|
+
}
|
|
245
249
|
};
|
|
246
250
|
return node;
|
|
247
251
|
},
|
|
@@ -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 { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\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 PropValidator<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 PropValidator<File | File[]>,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.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)\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) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // do to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\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.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.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 this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: () => this.$refs.input.click(),\n }\n\n return node\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 { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\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 PropValidator<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 PropValidator<File | File[]>,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.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)\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) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // due to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\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.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.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 this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: (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\n return node\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"}
|
package/lib/framework.js
CHANGED
package/package.json
CHANGED
|
@@ -261,6 +261,7 @@ export default VAutocomplete.extend({
|
|
|
261
261
|
this.internalSearch = null
|
|
262
262
|
},
|
|
263
263
|
onPaste (event: ClipboardEvent) {
|
|
264
|
+
this.$emit('paste', event)
|
|
264
265
|
if (!this.multiple || this.searchIsDirty) return
|
|
265
266
|
|
|
266
267
|
const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')
|
|
@@ -204,7 +204,7 @@ export default VTextField.extend({
|
|
|
204
204
|
|
|
205
205
|
// This solves an issue in Safari where
|
|
206
206
|
// nothing happens when adding a file
|
|
207
|
-
//
|
|
207
|
+
// due to the input event not firing
|
|
208
208
|
// https://github.com/vuetifyjs/vuetify/issues/7941
|
|
209
209
|
delete input.data!.on!.input
|
|
210
210
|
input.data!.on!.change = this.onInput
|
|
@@ -259,7 +259,12 @@ export default VTextField.extend({
|
|
|
259
259
|
|
|
260
260
|
node.data!.on = {
|
|
261
261
|
...(node.data!.on || {}),
|
|
262
|
-
click: () =>
|
|
262
|
+
click: (e: MouseEvent) => {
|
|
263
|
+
// Clicking the label already delegates to input element, so we shouldn't click it twice
|
|
264
|
+
if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return
|
|
265
|
+
|
|
266
|
+
this.$refs.input.click()
|
|
267
|
+
},
|
|
263
268
|
}
|
|
264
269
|
|
|
265
270
|
return node
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
font-size: $stepper-step-error-icon-font-size
|
|
129
129
|
color: inherit
|
|
130
130
|
|
|
131
|
-
.v-stepper__label
|
|
131
|
+
.v-stepper & .v-stepper__label
|
|
132
132
|
color: inherit
|
|
133
133
|
text-shadow: none
|
|
134
134
|
font-weight: 500
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
padding: $stepper-vertical-content-ltr-padding
|
|
187
187
|
+rtl()
|
|
188
188
|
padding: $stepper-vertical-content-rtl-padding
|
|
189
|
-
|
|
189
|
+
|
|
190
190
|
width: auto
|
|
191
191
|
+ltr()
|
|
192
192
|
margin: $stepper-vertical-content-ltr-margin
|