@dimailn/vuetify 2.7.2-alpha29 → 2.7.2-alpha31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vuetify.js +166 -78
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VBreadcrumbs/VBreadcrumbs.js +8 -6
- package/es5/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
- package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/es5/components/VCarousel/VCarousel.js +14 -2
- package/es5/components/VCarousel/VCarousel.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +47 -26
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VFileInput/VFileInput.js +50 -28
- package/es5/components/VFileInput/VFileInput.js.map +1 -1
- package/es5/components/VPagination/VPagination.js +15 -18
- package/es5/components/VPagination/VPagination.js.map +1 -1
- package/es5/components/VRangeSlider/VRangeSlider.js +57 -32
- package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/es5/components/VSubheader/VSubheader.js +1 -1
- package/es5/components/VSubheader/VSubheader.js.map +1 -1
- package/es5/components/VTreeview/VTreeview.js +26 -13
- package/es5/components/VTreeview/VTreeview.js.map +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js +0 -2
- package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/es5/framework.js +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +7 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +14 -2
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +9 -2
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +43 -26
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +15 -19
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +16 -4
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VSubheader/VSubheader.js +1 -1
- package/lib/components/VSubheader/VSubheader.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +15 -7
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js +0 -2
- package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/framework.js +1 -1
- package/package.json +1 -1
- package/src/components/VBottomNavigation/__tests__/VBottomNavigation.spec.ts +43 -37
- package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap +11 -10
- package/src/components/VBreadcrumbs/VBreadcrumbs.ts +8 -4
- package/src/components/VBreadcrumbs/VBreadcrumbsItem.ts +4 -0
- package/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.ts +125 -10
- package/src/components/VBreadcrumbs/__tests__/VBreadcrumbsItem.spec.ts +10 -6
- package/src/components/VBtnToggle/__tests__/VBtnToggle.spec.ts +10 -6
- package/src/components/VCarousel/VCarousel.ts +15 -3
- package/src/components/VCarousel/__tests__/VCarousel.spec.ts +74 -54
- package/src/components/VCarousel/__tests__/VCarouselItem.spec.ts +9 -5
- package/src/components/VCarousel/__tests__/__snapshots__/VCarousel.spec.ts.snap +1 -1
- package/src/components/VDialog/VDialog.ts +14 -4
- package/src/components/VDialog/__tests__/VDialog.spec.ts +105 -101
- package/src/components/VDialog/__tests__/__snapshots__/VDialog.spec.ts.snap +0 -15
- package/src/components/VExpansionPanel/__tests__/VExpansionPanel.spec.ts +43 -27
- package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +18 -16
- package/src/components/VFileInput/VFileInput.ts +46 -33
- package/src/components/VFileInput/__tests__/VFileInput.spec.ts +84 -54
- package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +242 -146
- package/src/components/VImg/__tests__/VImg.spec.ts +21 -20
- package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +16 -11
- package/src/components/VNavigationDrawer/__tests__/VNavigationDrawer.spec.ts +84 -71
- package/src/components/VPagination/VPagination.ts +16 -19
- package/src/components/VPagination/__tests__/VPagination.spec.ts +85 -71
- package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +184 -429
- package/src/components/VRangeSlider/VRangeSlider.ts +19 -4
- package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +40 -40
- package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +32 -38
- package/src/components/VSubheader/VSubheader.ts +1 -1
- package/src/components/VSubheader/__tests__/VSubheader.spec.ts +12 -7
- package/src/components/VSubheader/__tests__/__snapshots__/VSubheader.spec.ts.snap +1 -1
- package/src/components/VSystemBar/__tests__/VSystemBar.spec.ts +89 -17
- package/src/components/VTimeline/__tests__/VTimelineItem.spec.ts +25 -35
- package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +4 -5
- package/src/components/VTreeview/VTreeview.ts +20 -12
- package/src/components/VTreeview/VTreeviewNode.ts +0 -2
- package/src/components/VTreeview/__tests__/VTreeview.spec.ts +168 -174
- package/src/components/VTreeview/__tests__/VTreeviewNode.spec.ts +77 -66
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +141 -141
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +26 -51
- package/src/components/VVirtualScroll/VVirtualScroll.ts +0 -1
- package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +6 -9
- package/src/components/VWindow/__tests__/VWindow.spec.ts +78 -0
- package/src/components/VWindow/__tests__/VWindowItem.spec.ts +127 -0
- package/src/components/VWindow/__tests__/__snapshots__/VWindow.spec.ts.snap +59 -0
- package/src/components/VWindow/__tests__/__snapshots__/VWindowItem.spec.ts.snap +36 -0
|
@@ -56,7 +56,7 @@ var _default2 = (0, _mixins.default)(_themeable.default
|
|
|
56
56
|
var _this = this;
|
|
57
57
|
|
|
58
58
|
return (0, _vue.h)(_VBreadcrumbsDivider.default, {}, function () {
|
|
59
|
-
return _this.$slots.divider ? _this.$slots.divider : _this.divider;
|
|
59
|
+
return _this.$slots.divider ? _this.$slots.divider() : _this.divider;
|
|
60
60
|
});
|
|
61
61
|
},
|
|
62
62
|
genItems: function genItems() {
|
|
@@ -71,11 +71,13 @@ var _default2 = (0, _mixins.default)(_themeable.default
|
|
|
71
71
|
keys.push(item.text);
|
|
72
72
|
if (hasSlot) items.push(_this2.$slots.item({
|
|
73
73
|
item: item
|
|
74
|
-
}));else
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
}));else {
|
|
75
|
+
items.push((0, _vue.h)(_VBreadcrumbsItem.default, _objectSpread({
|
|
76
|
+
key: keys.join('.')
|
|
77
|
+
}, item), function () {
|
|
78
|
+
return [item.text];
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
79
81
|
if (i < _this2.items.length - 1) items.push(_this2.genDivider());
|
|
80
82
|
};
|
|
81
83
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.ts"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;AAMA;;AACA;;AAGA;;AAGA;;AACA;;;;;;;;;;gBAEe,qBACb;AACA;AAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,eADC;AAGP,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP,MAAA,OAAO,EAAE;AAFF,KADJ;AAKL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,KADD;AAEL,MAAA,OAAO,EAAE;AAAA,eAAO,EAAP;AAAA;AAFJ,KALF;AASL,IAAA,KAAK,EAAE;AATF,GAHA;AAeP,EAAA,QAAQ,EAAE;AACR,IAAA,OADQ,qBACD;AACL;AACE,gCAAwB,KAAK;AAD/B,SAEK,KAAK,YAFV;AAID;AANO,GAfH;AAwBP,EAAA,OAAO,EAAE;AACP,IAAA,UADO,wBACG;AAAA;;AACR,aAAO,YAAE,4BAAF,EAAuB,EAAvB,EAA2B;AAAA,eAAM,KAAI,CAAC,MAAL,CAAY,OAAZ,GAAsB,KAAI,CAAC,MAAL,CAAY,OAAZ,EAAtB,GAA8C,KAAI,CAAC,OAAzD;AAAA,OAA3B,CAAP;AACD,KAHM;AAIP,IAAA,QAJO,sBAIC;AAAA;;AACN,UAAM,KAAK,GAAG,EAAd;AACA,UAAM,OAAO,GAAG,CAAC,CAAC,KAAK,MAAL,CAAY,IAA9B;AACA,UAAM,IAAI,GAAG,EAAb;;AAHM,iCAKG,CALH;AAMJ,YAAM,IAAI,GAAG,MAAI,CAAC,KAAL,CAAW,CAAX,CAAb;AAEA,QAAA,IAAI,CAAC,IAAL,CAAU,IAAI,CAAC,IAAf;AAEA,YAAI,OAAJ,EAAa,KAAK,CAAC,IAAN,CAAW,MAAI,CAAC,MAAL,CAAY,IAAZ,CAAkB;AAAE,UAAA,IAAI,EAAJ;AAAF,SAAlB,CAAX,EAAb,KACK;AACH,UAAA,KAAK,CAAC,IAAN,CAAW,YAAE,yBAAF;AACT,YAAA,GAAG,EAAE,IAAI,CAAC,IAAL,CAAU,GAAV;AADI,aAEN,IAFM,GAGR;AAAA,mBAAM,CAAC,IAAI,CAAC,IAAN,CAAN;AAAA,WAHQ,CAAX;AAID;AAED,YAAI,CAAC,GAAG,MAAI,CAAC,KAAL,CAAW,MAAX,GAAoB,CAA5B,EAA+B,KAAK,CAAC,IAAN,CAAW,MAAI,CAAC,UAAL,EAAX;AAlB3B;;AAKN,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,KAAK,KAAL,CAAW,MAA/B,EAAuC,CAAC,EAAxC,EAA4C;AAAA,cAAnC,CAAmC;AAc3C;;AAED,aAAO,KAAP;AACD;AA1BM,GAxBF;AAqDP,EAAA,MArDO,oBAqDD;AACJ,QAAM,QAAQ,GAAG,sBAAQ,IAAR,KAAiB,KAAK,QAAL,EAAlC;AAEA,WAAO,YAAE,IAAF,EAAQ;AACb,MAAA,KAAK,EAAE,CAAC,eAAD,EAAkB,KAAK,OAAvB;AADM,KAAR,EAEJ,QAFI,CAAP;AAGD;AA3DM,CAHM,C","sourcesContent":["import { h, VNode } from 'vue'\n// Styles\nimport './VBreadcrumbs.sass'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VBreadcrumbsItem from './VBreadcrumbsItem'\nimport VBreadcrumbsDivider from './VBreadcrumbsDivider'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-breadcrumbs',\n\n props: {\n divider: {\n type: String,\n default: '/',\n },\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n large: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-breadcrumbs--large': this.large,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genDivider () {\n return h(VBreadcrumbsDivider, {}, () => this.$slots.divider ? this.$slots.divider() : this.divider)\n },\n genItems () {\n const items = []\n const hasSlot = !!this.$slots.item\n const keys = []\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i]\n\n keys.push(item.text)\n\n if (hasSlot) items.push(this.$slots.item!({ item }))\n else {\n items.push(h(VBreadcrumbsItem, {\n key: keys.join('.'),\n ...item\n }, () => [item.text]))\n }\n\n if (i < this.items.length - 1) items.push(this.genDivider())\n }\n\n return items\n },\n },\n\n render (): VNode {\n const children = getSlot(this) || this.genItems()\n\n return h('ul', {\n class: ['v-breadcrumbs', this.classes],\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VBreadcrumbs.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbsItem.ts"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;AAGA;eACe,qBAAO,iBAAP,EAAiB,MAAjB,CAAwB;AACrC,EAAA,IAAI,EAAE,oBAD+B;AAGrC,EAAA,KAAK,EAAE;AACL;AACA;AACA,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,MADK;AAEX,MAAA,OAAO,EAAE;AAFE,KAHR;AAOL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADA;AAEN,MAAA,OAAO,EAAE;AAFH;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbsItem.ts"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;AAGA;eACe,qBAAO,iBAAP,EAAiB,MAAjB,CAAwB;AACrC,EAAA,IAAI,EAAE,oBAD+B;AAGrC,EAAA,KAAK,EAAE;AACL;AACA;AACA,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,MADK;AAEX,MAAA,OAAO,EAAE;AAFE,KAHR;AAOL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADA;AAEN,MAAA,OAAO,EAAE;AAFH,KAPH;AAWL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL;AAXD,GAH8B;AAoBrC,EAAA,QAAQ,EAAE;AACR,IAAA,OADQ,qBACD;AACL;AACE,+BAAuB;AADzB,SAEG,KAAK,WAFR,EAEsB,KAAK,QAF3B;AAID;AANO,GApB2B;AA6BrC,EAAA,MA7BqC,oBA6B/B;AAAA,gCAC8B,KAAK,iBAAL,EAD9B;AAAA,QACI,GADJ,yBACI,GADJ;AAAA,QACS,IADT,yBACS,IADT;AAAA,QACe,UADf,yBACe,UADf;;AAGJ,WAAO,yBAAe,YAAE,IAAF,EAAQ,CAC5B,YAAE,GAAF,kCACK,IADL;AAEE,sBAAgB,KAAK,QAAL,IAAiB,KAAK,MAAtB,GAA+B,MAA/B,GAAwC;AAF1D,QAGG,sBAAQ,IAAR,CAHH,CAD4B,CAAR,CAAf,EAKH,UALG,CAAP;AAMD;AAtCoC,CAAxB,C","sourcesContent":["import {h, withDirectives} from 'vue'\nimport Routable from '../../mixins/routable'\n\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(Routable).extend({\n name: 'v-breadcrumbs-item',\n\n props: {\n // In a breadcrumb, the currently\n // active item should be dimmed\n activeClass: {\n type: String,\n default: 'v-breadcrumbs__item--disabled',\n },\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n text: {\n type: String,\n default: '',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-breadcrumbs__item': true,\n [this.activeClass]: this.disabled,\n }\n },\n },\n\n render (): VNode {\n const { tag, data, directives } = this.generateRouteLink()\n\n return withDirectives(h('li', [\n h(tag, {\n ...data,\n 'aria-current': this.isActive && this.isLink ? 'page' : undefined,\n }, getSlot(this)),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VBreadcrumbsItem.js"}
|
|
@@ -216,11 +216,23 @@ var _default = (0, _vue.defineComponent)({
|
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
218
|
render: function render() {
|
|
219
|
-
var render = _VWindow.default.render.call(this, _vue.h);
|
|
219
|
+
var render = _VWindow.default.render.call(this, _vue.h); // Update the style object instead of setting render.style directly
|
|
220
220
|
|
|
221
|
-
|
|
221
|
+
|
|
222
|
+
if (render.props) {
|
|
223
|
+
render.props.style = _objectSpread(_objectSpread({}, render.props.style), {}, {
|
|
224
|
+
height: (0, _helpers.convertToUnit)(this.height)
|
|
225
|
+
});
|
|
226
|
+
} else {
|
|
227
|
+
render.props = {
|
|
228
|
+
style: {
|
|
229
|
+
height: (0, _helpers.convertToUnit)(this.height)
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
}
|
|
222
233
|
/* istanbul ignore else */
|
|
223
234
|
|
|
235
|
+
|
|
224
236
|
if (!this.hideDelimiters) {
|
|
225
237
|
render.children.push(this.genDelimiters());
|
|
226
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VCarousel/VCarousel.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCarousel.sass'\n\n// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport VProgressLinear from '../VProgressLinear'\n\n// Mixins\n// TODO: Move this into core components v2.0\nimport ButtonGroup from '../../mixins/button-group'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { h, VNode, PropType, defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'v-carousel',\n extends: VWindow,\n\n // pass down the parent's theme\n provide (): object {\n return {\n parentTheme: this.theme,\n }\n },\n\n props: {\n continuous: {\n type: Boolean,\n default: true,\n },\n cycle: Boolean,\n delimiterIcon: {\n type: String,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n mandatory: {\n type: Boolean,\n default: true,\n },\n progress: Boolean,\n progressColor: String,\n showArrows: {\n type: Boolean,\n default: true,\n },\n verticalDelimiters: {\n type: String as PropType<'' | 'left' | 'right'>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n 'change',\n ],\n\n data () {\n return {\n internalHeight: this.height,\n slideTimeout: undefined as number | undefined,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.computed.classes.call(this),\n 'v-carousel': true,\n 'v-carousel--hide-delimiter-background': this.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': this.isVertical,\n }\n },\n isDark (): boolean {\n return this.dark || !this.light\n },\n isVertical (): boolean {\n return this.verticalDelimiters != null\n },\n },\n\n watch: {\n internalValue: 'restartTimeout',\n interval: 'restartTimeout',\n height (val, oldVal) {\n if (val === oldVal || !val) return\n this.internalHeight = val\n },\n cycle (val) {\n if (val) {\n this.restartTimeout()\n } else {\n clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ['onChange', '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 next */\n if (this.$attrs.hasOwnProperty('hide-controls')) {\n breaking('hide-controls', ':show-arrows=\"false\"', this)\n }\n },\n\n mounted () {\n this.startTimeout()\n },\n\n methods: {\n genControlIcons () {\n if (this.isVertical) return null\n\n return VWindow.methods.genControlIcons.call(this)\n },\n genDelimiters (): VNode {\n return h('div', {\n class: 'v-carousel__controls',\n style: {\n left: this.verticalDelimiters === 'left' && this.isVertical ? 0 : 'auto',\n right: this.verticalDelimiters === 'right' ? 0 : 'auto',\n },\n }, [this.genItems()])\n },\n genItems (): VNode {\n const length = this.items.length\n const children = []\n\n for (let i = 0; i < length; i++) {\n const child = h(VBtn, {\n class: 'v-carousel__controls__item',\n 'aria-label': this.$vuetify.lang.t('$vuetify.carousel.ariaLabel.delimiter', i + 1, length),\n icon: true,\n small: true,\n value: this.getValue(this.items[i], i),\n key: i,\n }, () => [\n h(VIcon, {\n size: 18\n }, () => this.delimiterIcon),\n ])\n\n children.push(child)\n }\n\n return h(ButtonGroup, {\n modelValue: this.internalValue,\n mandatory: this.mandatory,\n onChange: (val: unknown) => {\n this.internalValue = val\n }\n }, () => children)\n },\n genProgress () {\n return h(VProgressLinear, {\n class: 'v-carousel__progress',\n color: this.progressColor,\n value: (this.internalIndex + 1) / this.items.length * 100,\n })\n },\n restartTimeout () {\n this.slideTimeout && clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n\n window.requestAnimationFrame(this.startTimeout)\n },\n startTimeout () {\n if (!this.cycle) return\n\n this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6000)\n },\n },\n\n render (): VNode {\n const render = VWindow.render.call(this, h)\n\n render.style = `height: ${convertToUnit(this.height)};`\n\n /* istanbul ignore else */\n if (!this.hideDelimiters) {\n render.children!.push(this.genDelimiters())\n }\n\n /* istanbul ignore else */\n if (this.progress || this.progressColor) {\n render.children!.push(this.genProgress())\n }\n\n return render\n },\n})\n"],"sourceRoot":"","file":"VCarousel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VCarousel/VCarousel.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCarousel.sass'\n\n// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport VProgressLinear from '../VProgressLinear'\n\n// Mixins\n// TODO: Move this into core components v2.0\nimport ButtonGroup from '../../mixins/button-group'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { h, VNode, PropType, defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'v-carousel',\n extends: VWindow,\n\n // pass down the parent's theme\n provide (): object {\n return {\n parentTheme: this.theme,\n }\n },\n\n props: {\n continuous: {\n type: Boolean,\n default: true,\n },\n cycle: Boolean,\n delimiterIcon: {\n type: String,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n mandatory: {\n type: Boolean,\n default: true,\n },\n progress: Boolean,\n progressColor: String,\n showArrows: {\n type: Boolean,\n default: true,\n },\n verticalDelimiters: {\n type: String as PropType<'' | 'left' | 'right'>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n 'change',\n ],\n\n data () {\n return {\n internalHeight: this.height,\n slideTimeout: undefined as number | undefined,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.computed.classes.call(this),\n 'v-carousel': true,\n 'v-carousel--hide-delimiter-background': this.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': this.isVertical,\n }\n },\n isDark (): boolean {\n return this.dark || !this.light\n },\n isVertical (): boolean {\n return this.verticalDelimiters != null\n },\n },\n\n watch: {\n internalValue: 'restartTimeout',\n interval: 'restartTimeout',\n height (val, oldVal) {\n if (val === oldVal || !val) return\n this.internalHeight = val\n },\n cycle (val) {\n if (val) {\n this.restartTimeout()\n } else {\n clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ['onChange', '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 next */\n if (this.$attrs.hasOwnProperty('hide-controls')) {\n breaking('hide-controls', ':show-arrows=\"false\"', this)\n }\n },\n\n mounted () {\n this.startTimeout()\n },\n\n methods: {\n genControlIcons () {\n if (this.isVertical) return null\n\n return VWindow.methods.genControlIcons.call(this)\n },\n genDelimiters (): VNode {\n return h('div', {\n class: 'v-carousel__controls',\n style: {\n left: this.verticalDelimiters === 'left' && this.isVertical ? 0 : 'auto',\n right: this.verticalDelimiters === 'right' ? 0 : 'auto',\n },\n }, [this.genItems()])\n },\n genItems (): VNode {\n const length = this.items.length\n const children = []\n\n for (let i = 0; i < length; i++) {\n const child = h(VBtn, {\n class: 'v-carousel__controls__item',\n 'aria-label': this.$vuetify.lang.t('$vuetify.carousel.ariaLabel.delimiter', i + 1, length),\n icon: true,\n small: true,\n value: this.getValue(this.items[i], i),\n key: i,\n }, () => [\n h(VIcon, {\n size: 18,\n }, () => this.delimiterIcon),\n ])\n\n children.push(child)\n }\n\n return h(ButtonGroup, {\n modelValue: this.internalValue,\n mandatory: this.mandatory,\n onChange: (val: unknown) => {\n this.internalValue = val\n },\n }, () => children)\n },\n genProgress () {\n return h(VProgressLinear, {\n class: 'v-carousel__progress',\n color: this.progressColor,\n value: (this.internalIndex + 1) / this.items.length * 100,\n })\n },\n restartTimeout () {\n this.slideTimeout && clearTimeout(this.slideTimeout)\n this.slideTimeout = undefined\n\n window.requestAnimationFrame(this.startTimeout)\n },\n startTimeout () {\n if (!this.cycle) return\n\n this.slideTimeout = window.setTimeout(this.next, +this.interval > 0 ? +this.interval : 6000)\n },\n },\n\n render (): VNode {\n const render = VWindow.render.call(this, h)\n\n // Update the style object instead of setting render.style directly\n if (render.props) {\n render.props.style = {\n ...render.props.style,\n height: convertToUnit(this.height),\n }\n } else {\n render.props = {\n style: {\n height: convertToUnit(this.height),\n },\n }\n }\n\n /* istanbul ignore else */\n if (!this.hideDelimiters) {\n render.children!.push(this.genDelimiters())\n }\n\n /* istanbul ignore else */\n if (this.progress || this.progressColor) {\n render.children!.push(this.genProgress())\n }\n\n return render\n },\n})\n"],"sourceRoot":"","file":"VCarousel.js"}
|
|
@@ -41,14 +41,22 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
|
|
|
41
41
|
|
|
42
42
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
43
43
|
|
|
44
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
45
|
-
|
|
46
44
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
47
45
|
|
|
48
46
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
49
47
|
|
|
48
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
49
|
+
|
|
50
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
51
|
+
|
|
52
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
53
|
+
|
|
50
54
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
51
55
|
|
|
56
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
57
|
+
|
|
58
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
59
|
+
|
|
52
60
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
53
61
|
|
|
54
62
|
var baseMixins = (0, _mixins.default)(_dependent.default, _detachable.default, _overlayable.default, _returnable.default, _stackable.default, _activatable.default);
|
|
@@ -79,7 +87,7 @@ var _default = baseMixins.extend({
|
|
|
79
87
|
},
|
|
80
88
|
width: [String, Number]
|
|
81
89
|
},
|
|
82
|
-
emits: ['click:outside', 'keydown'],
|
|
90
|
+
emits: ['click:outside', 'keydown', 'update:return-value', 'update:modelValue'],
|
|
83
91
|
data: function data() {
|
|
84
92
|
return {
|
|
85
93
|
activatedBy: null,
|
|
@@ -131,17 +139,30 @@ var _default = baseMixins.extend({
|
|
|
131
139
|
}
|
|
132
140
|
},
|
|
133
141
|
created: function created() {
|
|
142
|
+
var _this = this;
|
|
143
|
+
|
|
144
|
+
var breakingProps = [['value', 'modelValue'], ['onInput', 'onUpdate:modelValue']];
|
|
134
145
|
/* istanbul ignore next */
|
|
146
|
+
|
|
147
|
+
breakingProps.forEach(function (_ref2) {
|
|
148
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
149
|
+
original = _ref3[0],
|
|
150
|
+
replacement = _ref3[1];
|
|
151
|
+
|
|
152
|
+
if (_this.$attrs.hasOwnProperty(original)) (0, _console.breaking)(original, replacement, _this);
|
|
153
|
+
});
|
|
154
|
+
/* istanbul ignore next */
|
|
155
|
+
|
|
135
156
|
if (this.$attrs.hasOwnProperty('full-width')) {
|
|
136
157
|
(0, _console.removed)('full-width', this);
|
|
137
158
|
}
|
|
138
159
|
},
|
|
139
160
|
beforeMount: function beforeMount() {
|
|
140
|
-
var
|
|
161
|
+
var _this2 = this;
|
|
141
162
|
|
|
142
163
|
this.$nextTick(function () {
|
|
143
|
-
|
|
144
|
-
|
|
164
|
+
_this2.isBooted = _this2.isActive;
|
|
165
|
+
_this2.isActive && _this2.show();
|
|
145
166
|
});
|
|
146
167
|
},
|
|
147
168
|
beforeUnmount: function beforeUnmount() {
|
|
@@ -149,16 +170,16 @@ var _default = baseMixins.extend({
|
|
|
149
170
|
},
|
|
150
171
|
methods: {
|
|
151
172
|
animateClick: function animateClick() {
|
|
152
|
-
var
|
|
173
|
+
var _this3 = this;
|
|
153
174
|
|
|
154
175
|
this.animate = false; // Needed for when clicking very fast
|
|
155
176
|
// outside of the dialog
|
|
156
177
|
|
|
157
178
|
this.$nextTick(function () {
|
|
158
|
-
|
|
159
|
-
window.clearTimeout(
|
|
160
|
-
|
|
161
|
-
return
|
|
179
|
+
_this3.animate = true;
|
|
180
|
+
window.clearTimeout(_this3.animateTimeout);
|
|
181
|
+
_this3.animateTimeout = window.setTimeout(function () {
|
|
182
|
+
return _this3.animate = false;
|
|
162
183
|
}, 150);
|
|
163
184
|
});
|
|
164
185
|
},
|
|
@@ -178,20 +199,20 @@ var _default = baseMixins.extend({
|
|
|
178
199
|
}
|
|
179
200
|
},
|
|
180
201
|
show: function show() {
|
|
181
|
-
var
|
|
202
|
+
var _this4 = this;
|
|
182
203
|
|
|
183
204
|
!this.fullscreen && !this.hideOverlay && this.genOverlay(); // Double nextTick to wait for lazy content to be generated
|
|
184
205
|
|
|
185
206
|
this.$nextTick(function () {
|
|
186
|
-
|
|
207
|
+
_this4.$nextTick(function () {
|
|
187
208
|
var _a, _b;
|
|
188
209
|
|
|
189
|
-
if (!((_a =
|
|
190
|
-
|
|
191
|
-
(_b =
|
|
210
|
+
if (!((_a = _this4.$refs.dialog) === null || _a === void 0 ? void 0 : _a.contains(document.activeElement))) {
|
|
211
|
+
_this4.previousActiveElement = document.activeElement;
|
|
212
|
+
(_b = _this4.$refs.dialog) === null || _b === void 0 ? void 0 : _b.focus();
|
|
192
213
|
}
|
|
193
214
|
|
|
194
|
-
|
|
215
|
+
_this4.bind();
|
|
195
216
|
});
|
|
196
217
|
});
|
|
197
218
|
},
|
|
@@ -250,25 +271,25 @@ var _default = baseMixins.extend({
|
|
|
250
271
|
}
|
|
251
272
|
},
|
|
252
273
|
genContent: function genContent() {
|
|
253
|
-
var
|
|
274
|
+
var _this5 = this;
|
|
254
275
|
|
|
255
276
|
return this.showLazyContent(function () {
|
|
256
277
|
return [(0, _vue.h)(_VThemeProvider.VThemeProvider, {
|
|
257
278
|
root: true,
|
|
258
|
-
light:
|
|
259
|
-
dark:
|
|
279
|
+
light: _this5.light,
|
|
280
|
+
dark: _this5.dark
|
|
260
281
|
}, function () {
|
|
261
282
|
return [(0, _vue.h)('div', _objectSpread(_objectSpread({
|
|
262
|
-
class:
|
|
283
|
+
class: _this5.contentClasses,
|
|
263
284
|
role: 'dialog',
|
|
264
|
-
'aria-modal':
|
|
265
|
-
},
|
|
266
|
-
onKeydown:
|
|
285
|
+
'aria-modal': _this5.hideOverlay ? undefined : 'true'
|
|
286
|
+
}, _this5.getScopeIdAttrs()), {}, {
|
|
287
|
+
onKeydown: _this5.onKeydown,
|
|
267
288
|
style: {
|
|
268
|
-
zIndex:
|
|
289
|
+
zIndex: _this5.activeZIndex
|
|
269
290
|
},
|
|
270
291
|
ref: 'content'
|
|
271
|
-
}), [
|
|
292
|
+
}), [_this5.genTransition()])];
|
|
272
293
|
})];
|
|
273
294
|
});
|
|
274
295
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, vShow, withDirectives } from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n emits: ['click:outside', 'keydown'],\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeUnmount () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark\n }, () => [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true\n }, () => [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n ],\n [\n vShow,\n this.isActive,\n ],\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }],\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, vShow, withDirectives } from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed, breaking } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n emits: ['click:outside', 'keydown', 'update:return-value', 'update:modelValue'],\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\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 next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeUnmount () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, () => [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true,\n }, () => [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n ],\n [\n vShow,\n this.isActive,\n ],\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }],\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
|
|
@@ -33,6 +33,10 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
|
|
|
33
33
|
|
|
34
34
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
35
35
|
|
|
36
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
37
|
+
|
|
38
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
39
|
+
|
|
36
40
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
37
41
|
|
|
38
42
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -98,7 +102,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
98
102
|
}
|
|
99
103
|
}
|
|
100
104
|
},
|
|
101
|
-
emits: ['change', 'keydown'],
|
|
105
|
+
emits: ['change', 'keydown', 'click:prepend'],
|
|
102
106
|
computed: {
|
|
103
107
|
classes: function classes() {
|
|
104
108
|
return _objectSpread(_objectSpread({}, _VTextField.default.computed.classes.call(this)), {}, {
|
|
@@ -116,7 +120,9 @@ var _default = (0, _vue.defineComponent)({
|
|
|
116
120
|
return this.$vuetify.lang.t(this.counterSizeString, fileCount, (0, _helpers.humanReadableFileSize)(bytes, this.base === 1024));
|
|
117
121
|
},
|
|
118
122
|
internalArrayValue: function internalArrayValue() {
|
|
119
|
-
return (0, _helpers.wrapInArray)(this.internalValue)
|
|
123
|
+
return (0, _helpers.wrapInArray)(this.internalValue).filter(function (v) {
|
|
124
|
+
return v instanceof File;
|
|
125
|
+
});
|
|
120
126
|
},
|
|
121
127
|
internalValue: {
|
|
122
128
|
get: function get() {
|
|
@@ -199,27 +205,44 @@ var _default = (0, _vue.defineComponent)({
|
|
|
199
205
|
var render = _VTextField.default.methods.genControl.call(this);
|
|
200
206
|
|
|
201
207
|
if (this.hideInput) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
208
|
+
if (render.props) {
|
|
209
|
+
render.props.style = (0, _mergeData.mergeStyles)(render.props.style, {
|
|
210
|
+
display: 'none'
|
|
211
|
+
});
|
|
212
|
+
} else {
|
|
213
|
+
render.props = {
|
|
214
|
+
style: {
|
|
215
|
+
display: 'none'
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
205
219
|
}
|
|
206
220
|
|
|
207
221
|
return render;
|
|
208
222
|
},
|
|
209
223
|
genInput: function genInput() {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
224
|
+
// Create input without calling VTextField.genInput to avoid value setting
|
|
225
|
+
var listeners = Object.assign({}, this.listeners$);
|
|
226
|
+
delete listeners.change; // Change should not be bound externally
|
|
227
|
+
|
|
228
|
+
var _this$attrs$ = this.attrs$,
|
|
229
|
+
title = _this$attrs$.title,
|
|
230
|
+
value = _this$attrs$.value,
|
|
231
|
+
inputAttrs = _objectWithoutProperties(_this$attrs$, ["title", "value"]);
|
|
232
|
+
|
|
233
|
+
var input = (0, _vue.h)('input', _objectSpread(_objectSpread(_objectSpread({}, inputAttrs), {}, {
|
|
234
|
+
autofocus: this.autofocus,
|
|
235
|
+
disabled: this.isDisabled,
|
|
236
|
+
id: this.computedId,
|
|
237
|
+
placeholder: this.placeholder,
|
|
238
|
+
readonly: this.isReadonly,
|
|
239
|
+
type: this.type,
|
|
240
|
+
multiple: this.multiple
|
|
241
|
+
}, listeners), {}, {
|
|
242
|
+
onChange: this.onInput,
|
|
243
|
+
onKeyDown: this.onKeyDown,
|
|
244
|
+
ref: 'input'
|
|
245
|
+
}));
|
|
223
246
|
return [this.genSelections(), input];
|
|
224
247
|
},
|
|
225
248
|
genPrependSlot: function genPrependSlot() {
|
|
@@ -265,16 +288,15 @@ var _default = (0, _vue.defineComponent)({
|
|
|
265
288
|
genTextFieldSlot: function genTextFieldSlot() {
|
|
266
289
|
var _this5 = this;
|
|
267
290
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
return node;
|
|
291
|
+
return (0, _vue.h)('div', {
|
|
292
|
+
class: 'v-text-field__slot',
|
|
293
|
+
onClick: function onClick(e) {
|
|
294
|
+
// Clicking the label already delegates to input element, so we shouldn't click it twice
|
|
295
|
+
if (e.target && e.target.nodeName === 'LABEL') return;
|
|
296
|
+
|
|
297
|
+
_this5.$refs.input.click();
|
|
298
|
+
}
|
|
299
|
+
}, [this.genLabel(), this.prefix ? this.genAffix('prefix') : null, this.genInput(), this.suffix ? this.genAffix('suffix') : null]);
|
|
278
300
|
},
|
|
279
301
|
onInput: function onInput(e) {
|
|
280
302
|
var files = _toConsumableArray(e.target.files || []);
|
|
@@ -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'\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 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 emits: ['change', 'keydown'],\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)\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 render.style = mergeStyles(\n render.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.methods.genInput.call(this)\n\n input.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.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.onInput\n input.onChange = 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.$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 const node = VTextField.methods.genTextFieldSlot.call(this)\n\n node.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 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":";;;;;;;AACA;;AAGA;;AAGA;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAEe,0BAAgB;AAC7B,EAAA,IAAI,EAAE,cADuB;AAE7B,EAAA,OAAO,EAAE,mBAFoB;AAI7B,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,EAAE,OADD;AAEL,IAAA,KAAK,EAAE;AAFF,GAJsB;AAS7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE,OADF;AAEL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,OADG;AAET,MAAA,OAAO,EAAE;AAFA,KAFN;AAML,IAAA,iBAAiB,EAAE;AACjB,MAAA,IAAI,EAAE,MADW;AAEjB,MAAA,OAAO,EAAE;AAFQ,KANd;AAUL,IAAA,aAAa,EAAE;AACb,MAAA,IAAI,EAAE,MADO;AAEb,MAAA,OAAO,EAAE;AAFI,KAVV;AAcL,IAAA,SAAS,EAAE,OAdN;AAeL,IAAA,QAAQ,EAAE,OAfL;AAgBL,IAAA,WAAW,EAAE,MAhBR;AAiBL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,MADK;AAEX,MAAA,OAAO,EAAE;AAFE,KAjBR;AAqBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KArBL;AAyBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADE;AAER,MAAA,OAAO,EAAE,KAFD;AAGR,MAAA,SAAS,EAAE,mBAAC,CAAD,EAAwB;AACjC,eACE,OAAO,CAAP,KAAa,SAAb,IACA,CAAC,IAAD,EAAO,IAAP,EAAa,QAAb,CAAsB,CAAtB,CAFF;AAID;AARO,KAzBL;AAmCL,IAAA,UAAU,EAAE,OAnCP;AAoCL,IAAA,cAAc,EAAE;AACd,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADQ;AAEd,MAAA,OAAO,EAAE;AAFK,KApCX;AAwCL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAxCD;AA4CL,IAAA,KAAK,EAAE;AACL,MAAA,OAAO,EAAE,SADJ;AAEL,MAAA,SAAS,EAAE,mBAAA,GAAG,EAAG;AACf,eAAO,0BAAY,GAAZ,EAAiB,KAAjB,CAAuB,UAAA,CAAC;AAAA,iBAAI,CAAC,IAAI,IAAL,IAAa,QAAO,CAAP,MAAa,QAA9B;AAAA,SAAxB,CAAP;AACD;AAJI;AA5CF,GATsB;AA6D7B,EAAA,KAAK,EAAE,CAAC,QAAD,EAAW,SAAX,EAAsB,eAAtB,CA7DsB;AA+D7B,EAAA,QAAQ,EAAE;AACR,IAAA,OADQ,qBACD;AACL,6CACK,oBAAW,QAAX,CAAoB,OAApB,CAA4B,IAA5B,CAAiC,IAAjC,CADL;AAEE,wBAAgB;AAFlB;AAID,KANO;AAOR,IAAA,oBAPQ,kCAOY;AAClB,UAAM,SAAS,GAAI,KAAK,QAAL,IAAiB,KAAK,SAAvB,GACd,KAAK,SAAL,CAAe,MADD,GAEb,KAAK,SAAL,YAA0B,IAA3B,GAAmC,CAAnC,GAAuC,CAF3C;AAIA,UAAI,CAAC,KAAK,QAAV,EAAoB,OAAO,KAAK,QAAL,CAAc,IAAd,CAAmB,CAAnB,CAAqB,KAAK,aAA1B,EAAyC,SAAzC,CAAP;AAEpB,UAAM,KAAK,GAAG,KAAK,kBAAL,CAAwB,MAAxB,CAA+B,UAAC,KAAD,QAAsC;AAAA,6BAApB,IAAoB;AAAA,YAApB,IAAoB,0BAAb,CAAa;AACjF,eAAO,KAAK,GAAG,IAAf;AACD,OAFa,EAEX,CAFW,CAAd;AAIA,aAAO,KAAK,QAAL,CAAc,IAAd,CAAmB,CAAnB,CACL,KAAK,iBADA,EAEL,SAFK,EAGL,oCAAsB,KAAtB,EAA6B,KAAK,IAAL,KAAc,IAA3C,CAHK,CAAP;AAKD,KAvBO;AAwBR,IAAA,kBAxBQ,gCAwBU;AAChB,aAAO,0BAAY,KAAK,aAAjB,EAAgC,MAAhC,CAAuC,UAAC,CAAD;AAAA,eAAY,CAAC,YAAY,IAAzB;AAAA,OAAvC,CAAP;AACD,KA1BO;AA2BR,IAAA,aAAa,EAAE;AACb,MAAA,GADa,iBACV;AACD,eAAO,KAAK,SAAZ;AACD,OAHY;AAIb,MAAA,GAJa,eAIR,GAJQ,EAIU;AACrB,aAAK,SAAL,GAAiB,GAAjB;AACA,aAAK,KAAL,CAAW,QAAX,EAAqB,KAAK,SAA1B;AACD;AAPY,KA3BP;AAoCR,IAAA,OApCQ,qBAoCD;AACL,aAAO,KAAK,kBAAL,CAAwB,MAAxB,GAAiC,CAAxC;AACD,KAtCO;AAuCR,IAAA,aAvCQ,2BAuCK;AACX,aAAO,KAAK,OAAZ;AACD,KAzCO;AA0CR,IAAA,IA1CQ,kBA0CJ;AAAA;;AACF,UAAI,CAAC,KAAK,OAAN,KAAkB,KAAK,qBAAL,IAA8B,KAAK,SAAnC,IAAgD,CAAC,KAAK,QAAxE,CAAJ,EAAuF,OAAO,CAAC,KAAK,WAAN,CAAP;AAEvF,aAAO,KAAK,kBAAL,CAAwB,GAAxB,CAA4B,UAAC,IAAD,EAAe;AAAA,yBAI5C,IAJ4C,CAE9C,IAF8C;AAAA,YAE9C,IAF8C,2BAEvC,EAFuC;AAAA,yBAI5C,IAJ4C,CAG9C,IAH8C;AAAA,YAG9C,IAH8C,2BAGvC,CAHuC;;AAMhD,YAAM,aAAa,GAAG,KAAI,CAAC,YAAL,CAAkB,IAAlB,CAAtB;;AAEA,eAAO,CAAC,KAAI,CAAC,QAAN,GACH,aADG,aAEA,aAFA,eAEkB,oCAAsB,IAAtB,EAA4B,KAAI,CAAC,IAAL,KAAc,IAA1C,CAFlB,MAAP;AAGD,OAXM,CAAP;AAYD,KAzDO;AA0DR,IAAA,IA1DQ,kBA0DJ;AACF,aAAO,OAAO,KAAK,QAAZ,KAAyB,SAAzB,GAAqC,KAAK,QAA1C,GAAqD,SAA5D;AACD,KA5DO;AA6DR,IAAA,QA7DQ,sBA6DA;AACN,aAAO,KAAK,KAAL,IAAc,KAAK,UAA1B;AACD;AA/DO,GA/DmB;AAiI7B,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,OADQ,mBACC,CADD,EACE;AACR,YAAI,CAAC,KAAK,IAAV,EAAgB,2BAAa,6CAAb,EAA4D,IAA5D;AACjB,OAHO;AAIR,MAAA,SAAS,EAAE;AAJH,KADL;AAOL,IAAA,KAPK,iBAOE,CAPF,EAOG;AACN,UAAM,KAAK,GAAG,KAAK,QAAL,GAAgB,CAAhB,GAAoB,CAAC,GAAG,CAAC,CAAD,CAAH,GAAS,EAA5C;;AACA,UAAI,CAAC,wBAAU,KAAV,EAAiB,KAAK,KAAL,CAAW,KAAX,CAAiB,KAAlC,CAAL,EAA+C;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAK,KAAL,CAAW,KAAX,CAAiB,KAAjB,GAAyB,EAAzB;AACD;AACF;AAjBI,GAjIsB;AAqJ7B,EAAA,OAAO,EAAE;AACP,IAAA,iBADO,+BACU;AACf,WAAK,aAAL,GAAqB,KAAK,QAAL,GAAgB,EAAhB,GAAqB,IAA1C;AACA,WAAK,KAAL,CAAW,KAAX,CAAiB,KAAjB,GAAyB,EAAzB;AACD,KAJM;AAKP,IAAA,QALO,sBAKC;AAAA;;AACN,UAAI,CAAC,KAAK,OAAV,EAAmB,OAAO,EAAP;AAEnB,aAAO,KAAK,IAAL,CAAU,GAAV,CAAc,UAAC,IAAD,EAAO,KAAP;AAAA,eAAiB,YAAE,YAAF,EAAS;AAC7C,UAAA,KAAK,EAAE,MAAI,CAAC,UADiC;AAE7C,2BAAiB,wBAAK;AACpB,gBAAM,aAAa,GAAG,MAAI,CAAC,aAA3B;AACA,YAAA,aAAa,CAAC,MAAd,CAAqB,KAArB,EAA4B,CAA5B;AACA,YAAA,MAAI,CAAC,aAAL,GAAqB,aAArB,CAHoB,CAGe;AACpC;AAN4C,SAAT,EAOnC,CAAC,IAAD,CAPmC,CAAjB;AAAA,OAAd,CAAP;AAQD,KAhBM;AAiBP,IAAA,UAjBO,wBAiBG;AACR,UAAM,MAAM,GAAG,oBAAW,OAAX,CAAmB,UAAnB,CAA8B,IAA9B,CAAmC,IAAnC,CAAf;;AAEA,UAAI,KAAK,SAAT,EAAoB;AAClB,YAAI,MAAM,CAAC,KAAX,EAAkB;AAChB,UAAA,MAAM,CAAC,KAAP,CAAa,KAAb,GAAqB,4BAAY,MAAM,CAAC,KAAP,CAAa,KAAzB,EAAgC;AACnD,YAAA,OAAO,EAAE;AAD0C,WAAhC,CAArB;AAGD,SAJD,MAIO;AACL,UAAA,MAAM,CAAC,KAAP,GAAe;AACb,YAAA,KAAK,EAAE;AAAE,cAAA,OAAO,EAAE;AAAX;AADM,WAAf;AAGD;AACF;;AAED,aAAO,MAAP;AACD,KAjCM;AAkCP,IAAA,QAlCO,sBAkCC;AACN;AACA,UAAM,SAAS,GAAG,MAAM,CAAC,MAAP,CAAc,EAAd,EAAkB,KAAK,UAAvB,CAAlB;AACA,aAAO,SAAS,CAAC,MAAjB,CAHM,CAGkB;;AAHlB,yBAIkC,KAAK,MAJvC;AAAA,UAIE,KAJF,gBAIE,KAJF;AAAA,UAIS,KAJT,gBAIS,KAJT;AAAA,UAImB,UAJnB;;AAMN,UAAM,KAAK,GAAG,YAAE,OAAF,gDACT,UADS;AAEZ,QAAA,SAAS,EAAE,KAAK,SAFJ;AAGZ,QAAA,QAAQ,EAAE,KAAK,UAHH;AAIZ,QAAA,EAAE,EAAE,KAAK,UAJG;AAKZ,QAAA,WAAW,EAAE,KAAK,WALN;AAMZ,QAAA,QAAQ,EAAE,KAAK,UANH;AAOZ,QAAA,IAAI,EAAE,KAAK,IAPC;AAQZ,QAAA,QAAQ,EAAE,KAAK;AARH,SAST,SATS;AAUZ,QAAA,QAAQ,EAAE,KAAK,OAVH;AAWZ,QAAA,SAAS,EAAE,KAAK,SAXJ;AAYZ,QAAA,GAAG,EAAE;AAZO,SAAd;AAeA,aAAO,CAAC,KAAK,aAAL,EAAD,EAAuB,KAAvB,CAAP;AACD,KAxDM;AAyDP,IAAA,cAzDO,4BAyDO;AAAA;;AACZ,UAAI,CAAC,KAAK,WAAV,EAAuB,OAAO,IAAP;AAEvB,UAAM,IAAI,GAAG,KAAK,OAAL,CAAa,SAAb,EAAwB,YAAK;AACxC,QAAA,MAAI,CAAC,KAAL,CAAW,KAAX,CAAiB,KAAjB;AACD,OAFY,CAAb;AAIA,aAAO,KAAK,OAAL,CAAa,SAAb,EAAwB,OAAxB,EAAiC,CAAC,IAAD,CAAjC,CAAP;AACD,KAjEM;AAkEP,IAAA,gBAlEO,8BAkES;AACd,UAAM,MAAM,GAAG,KAAK,IAAL,CAAU,MAAzB;AAEA,UAAI,MAAM,GAAG,CAAb,EAAgB,OAAO,KAAK,IAAZ;AAChB,UAAI,KAAK,QAAL,IAAiB,CAAC,KAAK,OAA3B,EAAoC,OAAO,CAAC,KAAK,oBAAN,CAAP;AACpC,aAAO,CAAC,KAAK,QAAL,CAAc,IAAd,CAAmB,CAAnB,CAAqB,KAAK,aAA1B,EAAyC,MAAzC,CAAD,CAAP;AACD,KAxEM;AAyEP,IAAA,aAzEO,2BAyEM;AAAA;;AACX,UAAM,QAAQ,GAAG,EAAjB;;AAEA,UAAI,KAAK,OAAL,IAAgB,KAAK,MAAL,CAAY,SAAhC,EAA2C;AACzC,aAAK,kBAAL,CAAwB,OAAxB,CAAgC,UAAC,IAAD,EAAa,KAAb,EAA8B;AAC5D,cAAI,CAAC,MAAI,CAAC,MAAL,CAAY,SAAjB,EAA4B;AAE5B,UAAA,QAAQ,CAAC,IAAT,CACE,MAAI,CAAC,MAAL,CAAY,SAAZ,CAAsB;AACpB,YAAA,IAAI,EAAE,MAAI,CAAC,IAAL,CAAU,KAAV,CADc;AAEpB,YAAA,IAAI,EAAJ,IAFoB;AAGpB,YAAA,KAAK,EAAL;AAHoB,WAAtB,CADF;AAOD,SAVD;AAWD,OAZD,MAYO;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,QAAL,IAAiB,KAAK,OAAtB,GAAgC,KAAK,QAAL,EAAhC,GAAkD,KAAK,gBAAL,EAAhE;AACD;;AAED,aAAO,YAAE,KAAF,EAAS;AACd,QAAA,KAAK,EAAE,CAAC,oBAAD,EAAuB;AAC5B,6CAAmC,KAAK,WAAL,IAAoB,CAAC,KAAK,OADjC;AAE5B,uCAA6B,KAAK,QAAL,IAAiB,CAAC,KAAK,MAAL,CAAY;AAF/B,SAAvB;AADO,OAAT,EAKJ,QALI,CAAP;AAMD,KAlGM;AAmGP,IAAA,gBAnGO,8BAmGS;AAAA;;AACd,aAAO,YAAE,KAAF,EAAS;AACd,QAAA,KAAK,EAAE,oBADO;AAEd,QAAA,OAAO,EAAE,iBAAC,CAAD,EAAkB;AACzB;AACA,cAAI,CAAC,CAAC,MAAF,IAAa,CAAC,CAAC,MAAF,CAAyB,QAAzB,KAAsC,OAAvD,EAAgE;;AAEhE,UAAA,MAAI,CAAC,KAAL,CAAW,KAAX,CAAiB,KAAjB;AACD;AAPa,OAAT,EAQJ,CACD,KAAK,QAAL,EADC,EAED,KAAK,MAAL,GAAc,KAAK,QAAL,CAAc,QAAd,CAAd,GAAwC,IAFvC,EAGD,KAAK,QAAL,EAHC,EAID,KAAK,MAAL,GAAc,KAAK,QAAL,CAAc,QAAd,CAAd,GAAwC,IAJvC,CARI,CAAP;AAcD,KAlHM;AAmHP,IAAA,OAnHO,mBAmHE,CAnHF,EAmHU;AACf,UAAM,KAAK,sBAAQ,CAAC,CAAC,MAAF,CAA8B,KAA9B,IAAuC,EAA/C,CAAX;;AAEA,WAAK,aAAL,GAAqB,KAAK,QAAL,GAAgB,KAAhB,GAAwB,KAAK,CAAC,CAAD,CAAlD,CAHe,CAKf;AACA;AACA;;AACA,WAAK,YAAL,GAAoB,KAAK,aAAzB;AACD,KA5HM;AA6HP,IAAA,SA7HO,qBA6HI,CA7HJ,EA6HoB;AACzB,WAAK,KAAL,CAAW,SAAX,EAAsB,CAAtB;AACD,KA/HM;AAgIP,IAAA,YAhIO,wBAgIO,GAhIP,EAgIkB;AACvB,UAAI,GAAG,CAAC,MAAJ,GAAa,MAAM,CAAC,KAAK,cAAN,CAAvB,EAA8C,OAAO,GAAP;AAC9C,UAAM,gBAAgB,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,MAAM,CAAC,KAAK,cAAN,CAAN,GAA8B,CAA/B,IAAoC,CAA/C,CAAzB;AACA,uBAAU,GAAG,CAAC,KAAJ,CAAU,CAAV,EAAa,gBAAb,CAAV,mBAA4C,GAAG,CAAC,KAAJ,CAAU,GAAG,CAAC,MAAJ,GAAa,gBAAvB,CAA5C;AACD;AApIM;AArJoB,CAAhB,C","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'\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 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 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"}
|