vuetify 2.5.13 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +188 -0
- package/dist/json/tags.json +86 -20
- package/dist/json/web-types.json +697 -139
- package/dist/vuetify.css +136 -5
- package/dist/vuetify.css.map +1 -1
- package/dist/vuetify.js +927 -304
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
- package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/es5/components/VBanner/VBanner.js +3 -2
- package/es5/components/VBanner/VBanner.js.map +1 -1
- package/es5/components/VBottomSheet/VBottomSheet.js +1 -4
- package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
- package/es5/components/VCalendar/VCalendar.js +2 -2
- package/es5/components/VCalendar/VCalendar.js.map +1 -1
- package/es5/components/VCalendar/VCalendarDaily.js +16 -8
- package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
- package/es5/components/VCalendar/VCalendarWeekly.js +14 -10
- package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/es5/components/VCalendar/mixins/calendar-with-events.js +19 -20
- package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/es5/components/VCalendar/mixins/mouse.js +13 -4
- package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
- package/es5/components/VDataTable/MobileRow.js +2 -2
- package/es5/components/VDataTable/MobileRow.js.map +1 -1
- package/es5/components/VDataTable/Row.js +25 -9
- package/es5/components/VDataTable/Row.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +13 -3
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +4 -10
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VInput/VInput.js +3 -1
- package/es5/components/VInput/VInput.js.map +1 -1
- package/es5/components/VItemGroup/VItemGroup.js +8 -4
- package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +1 -1
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +375 -0
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -0
- package/es5/components/VOtpInput/index.js +20 -0
- package/es5/components/VOtpInput/index.js.map +1 -0
- package/es5/components/VRadioGroup/VRadioGroup.js +1 -3
- package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/es5/components/VSlideGroup/VSlideGroup.js +8 -1
- package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/es5/components/VSnackbar/VSnackbar.js +4 -8
- package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
- package/es5/components/VTabs/VTab.js +3 -2
- package/es5/components/VTabs/VTab.js.map +1 -1
- package/es5/components/VTextField/VTextField.js +6 -1
- package/es5/components/VTextField/VTextField.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +0 -1
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/components/VTreeview/VTreeview.js +2 -1
- package/es5/components/VTreeview/VTreeview.js.map +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js +3 -1
- package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/es5/components/index.js +13 -0
- package/es5/components/index.js.map +1 -1
- package/es5/directives/click-outside/index.js +3 -1
- package/es5/directives/click-outside/index.js.map +1 -1
- package/es5/directives/intersect/index.js +8 -5
- package/es5/directives/intersect/index.js.map +1 -1
- package/es5/directives/mutate/index.js +3 -2
- package/es5/directives/mutate/index.js.map +1 -1
- package/es5/directives/resize/index.js +3 -1
- package/es5/directives/resize/index.js.map +1 -1
- package/es5/directives/ripple/index.js +0 -7
- package/es5/directives/ripple/index.js.map +1 -1
- package/es5/directives/scroll/index.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/locale/da.js +77 -0
- package/es5/locale/da.js.map +1 -0
- package/es5/locale/index.js +8 -0
- package/es5/locale/index.js.map +1 -1
- package/es5/locale/it.js +6 -6
- package/es5/locale/it.js.map +1 -1
- package/es5/mixins/intersectable/index.js +6 -0
- package/es5/mixins/intersectable/index.js.map +1 -1
- package/es5/mixins/routable/index.js +2 -5
- package/es5/mixins/routable/index.js.map +1 -1
- package/es5/util/helpers.js +13 -6
- package/es5/util/helpers.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +3 -2
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.js +1 -4
- package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
- package/lib/components/VCalendar/VCalendar.js +2 -2
- package/lib/components/VCalendar/VCalendar.js.map +1 -1
- package/lib/components/VCalendar/VCalendarDaily.js +20 -8
- package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.js +10 -2
- package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.js +6 -3
- package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.js +9 -4
- package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
- package/lib/components/VDataTable/MobileRow.js +2 -2
- package/lib/components/VDataTable/MobileRow.js.map +1 -1
- package/lib/components/VDataTable/Row.js +15 -8
- package/lib/components/VDataTable/Row.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +4 -10
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VInput/VInput.js +2 -0
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.js +7 -5
- package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +342 -0
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -0
- package/lib/components/VOtpInput/index.js +4 -0
- package/lib/components/VOtpInput/index.js.map +1 -0
- package/lib/components/VRadioGroup/VRadioGroup.js +2 -4
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js +9 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.js +4 -8
- package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
- package/lib/components/VTabs/VTab.js +3 -2
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +8 -1
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +0 -1
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +2 -1
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js +3 -1
- package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/directives/click-outside/index.js +3 -1
- package/lib/directives/click-outside/index.js.map +1 -1
- package/lib/directives/intersect/index.js +7 -5
- package/lib/directives/intersect/index.js.map +1 -1
- package/lib/directives/mutate/index.js +3 -2
- package/lib/directives/mutate/index.js.map +1 -1
- package/lib/directives/resize/index.js +3 -1
- package/lib/directives/resize/index.js.map +1 -1
- package/lib/directives/ripple/index.js +0 -7
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/directives/scroll/index.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/locale/da.js +70 -0
- package/lib/locale/da.js.map +1 -0
- package/lib/locale/index.js +1 -0
- package/lib/locale/index.js.map +1 -1
- package/lib/locale/it.js +6 -6
- package/lib/locale/it.js.map +1 -1
- package/lib/mixins/intersectable/index.js +4 -0
- package/lib/mixins/intersectable/index.js.map +1 -1
- package/lib/mixins/routable/index.js +3 -5
- package/lib/mixins/routable/index.js.map +1 -1
- package/lib/util/helpers.js +13 -6
- package/lib/util/helpers.js.map +1 -1
- package/package.json +2 -2
- package/src/components/VAutocomplete/VAutocomplete.ts +2 -0
- package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +16 -0
- package/src/components/VBanner/VBanner.ts +16 -10
- package/src/components/VBottomSheet/VBottomSheet.ts +1 -4
- package/src/components/VCalendar/VCalendar.ts +3 -2
- package/src/components/VCalendar/VCalendarCategory.sass +67 -0
- package/src/components/VCalendar/VCalendarDaily.ts +9 -8
- package/src/components/VCalendar/VCalendarWeekly.ts +4 -2
- package/src/components/VCalendar/_variables.scss +4 -0
- package/src/components/VCalendar/mixins/calendar-with-events.ts +4 -3
- package/src/components/VCalendar/mixins/mouse.ts +10 -4
- package/src/components/VDataTable/MobileRow.ts +2 -2
- package/src/components/VDataTable/Row.ts +23 -16
- package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
- package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +16 -0
- package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +16 -0
- package/src/components/VDatePicker/mixins/date-picker-table.ts +24 -2
- package/src/components/VDialog/VDialog.ts +4 -10
- package/src/components/VInput/VInput.sass +8 -0
- package/src/components/VInput/VInput.ts +2 -0
- package/src/components/VItemGroup/VItemGroup.ts +5 -3
- package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +19 -2
- package/src/components/VMenu/VMenu.ts +1 -1
- package/src/components/VOtpInput/VOtpInput.sass +37 -0
- package/src/components/VOtpInput/VOtpInput.ts +322 -0
- package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +294 -0
- package/src/components/VOtpInput/_variables.scss +4 -0
- package/src/components/VOtpInput/index.ts +4 -0
- package/src/components/VRadioGroup/VRadioGroup.ts +0 -4
- package/src/components/VSlideGroup/VSlideGroup.ts +14 -1
- package/src/components/VSnackbar/VSnackbar.ts +3 -7
- package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +4 -1
- package/src/components/VStepper/VStepper.sass +4 -4
- package/src/components/VTabs/VTab.ts +10 -2
- package/src/components/VTextField/VTextField.ts +8 -3
- package/src/components/VTooltip/VTooltip.sass +4 -1
- package/src/components/VTooltip/VTooltip.ts +0 -1
- package/src/components/VTooltip/_variables.scss +1 -0
- package/src/components/VTreeview/VTreeview.ts +2 -1
- package/src/components/VTreeview/VTreeviewNode.ts +3 -1
- package/src/components/index.ts +1 -0
- package/src/directives/click-outside/index.ts +2 -2
- package/src/directives/intersect/index.ts +6 -5
- package/src/directives/mutate/index.ts +2 -3
- package/src/directives/resize/index.ts +2 -2
- package/src/directives/ripple/VRipple.sass +4 -1
- package/src/directives/ripple/index.ts +0 -7
- package/src/directives/scroll/index.ts +1 -1
- package/src/globals.d.ts +5 -5
- package/src/locale/da.ts +69 -0
- package/src/locale/index.ts +1 -0
- package/src/locale/it.ts +6 -6
- package/src/mixins/intersectable/index.ts +6 -0
- package/src/mixins/routable/index.ts +1 -4
- package/src/styles/settings/_variables.scss +4 -3
- package/src/util/__tests__/__snapshots__/helpers.spec.ts.snap +11 -0
- package/src/util/__tests__/helpers.spec.ts +17 -0
- package/src/util/helpers.ts +14 -7
- package/src/directives/ripple/_variables.scss +0 -6
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
// Types
|
|
2
2
|
import Vue from 'vue'; // Utils
|
|
3
3
|
|
|
4
|
-
import { getObjectValueByPath } from '../../util/helpers';
|
|
4
|
+
import { getObjectValueByPath, wrapInArray } from '../../util/helpers';
|
|
5
|
+
|
|
6
|
+
function needsTd(slot) {
|
|
7
|
+
var _slot$;
|
|
8
|
+
|
|
9
|
+
return slot.length !== 1 || !['td', 'th'].includes((_slot$ = slot[0]) == null ? void 0 : _slot$.tag);
|
|
10
|
+
}
|
|
11
|
+
|
|
5
12
|
export default Vue.extend({
|
|
6
13
|
name: 'row',
|
|
7
14
|
functional: true,
|
|
@@ -22,29 +29,29 @@ export default Vue.extend({
|
|
|
22
29
|
const children = [];
|
|
23
30
|
const value = getObjectValueByPath(props.item, header.value);
|
|
24
31
|
const slotName = header.value;
|
|
25
|
-
const scopedSlot = data.scopedSlots && data.scopedSlots[slotName];
|
|
26
|
-
const regularSlot = computedSlots[slotName];
|
|
32
|
+
const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName];
|
|
33
|
+
const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName];
|
|
27
34
|
|
|
28
35
|
if (scopedSlot) {
|
|
29
|
-
children.push(scopedSlot({
|
|
36
|
+
children.push(...wrapInArray(scopedSlot({
|
|
30
37
|
item: props.item,
|
|
31
38
|
isMobile: false,
|
|
32
39
|
header,
|
|
33
40
|
index: props.index,
|
|
34
41
|
value
|
|
35
|
-
}));
|
|
42
|
+
})));
|
|
36
43
|
} else if (regularSlot) {
|
|
37
|
-
children.push(regularSlot);
|
|
44
|
+
children.push(...wrapInArray(regularSlot));
|
|
38
45
|
} else {
|
|
39
46
|
children.push(value == null ? value : String(value));
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
const textAlign = `text-${header.align || 'start'}`;
|
|
43
|
-
return h('td', {
|
|
50
|
+
return needsTd(children) ? h('td', {
|
|
44
51
|
class: [textAlign, header.cellClass, {
|
|
45
52
|
'v-data-table__divider': header.divider
|
|
46
53
|
}]
|
|
47
|
-
}, children);
|
|
54
|
+
}, children) : children;
|
|
48
55
|
});
|
|
49
56
|
return h('tr', data, columns);
|
|
50
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,GAAP,MAAqC,KAArC,C,CAGA;;AACA,SAAS,oBAAT,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,GAAP,MAAqC,KAArC,C,CAGA;;AACA,SAAS,oBAAT,EAA+B,WAA/B,QAAkD,oBAAlD;;AAEA,SAAS,OAAT,CAAkB,IAAlB,EAA2C;AAAA;;AACzC,SAAO,IAAK,CAAC,MAAN,KAAiB,CAAjB,IACL,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,QAAb,WAAsB,IAAK,CAAC,CAAD,CAA3B,qBAAsB,OAAU,GAAhC,CADH;AAED;;AAED,eAAe,GAAG,CAAC,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,KADkB;AAGxB,EAAA,UAAU,EAAE,IAHY;AAKxB,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,KAAK,EAAE,MAFF;AAGL,IAAA,IAAI,EAAE,MAHD;AAIL,IAAA,GAAG,EAAE;AAJA,GALiB;;AAYxB,EAAA,MAAM,CAAE,CAAF,EAAK;AAAE,IAAA,KAAF;AAAS,IAAA,KAAT;AAAgB,IAAA;AAAhB,GAAL,EAA2B;AAC/B,UAAM,aAAa,GAAG,KAAK,EAA3B;AAEA,UAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,GAAd,CAAmB,MAAD,IAA4B;AAC5D,YAAM,QAAQ,GAAG,EAAjB;AACA,YAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAP,EAAa,MAAM,CAAC,KAApB,CAAlC;AAEA,YAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,YAAM,UAAU,GAAG,IAAI,CAAC,WAAL,IAAoB,IAAI,CAAC,WAAL,CAAiB,cAAjB,CAAgC,QAAhC,CAApB,IAAiE,IAAI,CAAC,WAAL,CAAiB,QAAjB,CAApF;AACA,YAAM,WAAW,GAAG,aAAa,CAAC,cAAd,CAA6B,QAA7B,KAA0C,aAAa,CAAC,QAAD,CAA3E;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,GAAG,WAAW,CAAC,UAAU,CAAC;AACtC,UAAA,IAAI,EAAE,KAAK,CAAC,IAD0B;AAEtC,UAAA,QAAQ,EAAE,KAF4B;AAGtC,UAAA,MAHsC;AAItC,UAAA,KAAK,EAAE,KAAK,CAAC,KAJyB;AAKtC,UAAA;AALsC,SAAD,CAAX,CAA5B;AAOD,OARD,MAQO,IAAI,WAAJ,EAAiB;AACtB,QAAA,QAAQ,CAAC,IAAT,CAAc,GAAG,WAAW,CAAC,WAAD,CAA5B;AACD,OAFM,MAEA;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,YAAM,SAAS,GAAG,QAAQ,MAAM,CAAC,KAAP,IAAgB,OAAO,EAAjD;AAEA,aAAO,OAAO,CAAC,QAAD,CAAP,GACH,CAAC,CAAC,IAAD,EAAO;AACR,QAAA,KAAK,EAAE,CACL,SADK,EAEL,MAAM,CAAC,SAFF,EAGL;AACE,mCAAyB,MAAM,CAAC;AADlC,SAHK;AADC,OAAP,EAQA,QARA,CADE,GAUH,QAVJ;AAWD,KAnCe,CAAhB;AAqCA,WAAO,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,CAAR;AACD;;AArDuB,CAAX,CAAf","sourcesContent":["// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n"],"sourceRoot":"","file":"Row.js"}
|
|
@@ -62,7 +62,7 @@ export default mixins(header).extend({
|
|
|
62
62
|
return this.$createElement('th', data, [this.genSelectAll()]);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
children.push(this.$scopedSlots
|
|
65
|
+
children.push(this.$scopedSlots.hasOwnProperty(header.value) ? this.$scopedSlots[header.value]({
|
|
66
66
|
header
|
|
67
67
|
}) : this.$createElement('span', [header.text]));
|
|
68
68
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDataTable/VDataTableHeaderDesktop.ts"],"names":[],"mappings":"AAEA,OAAO,MAAP,MAAmB,mBAAnB;AACA,OAAO,MAAP,MAAmB,iBAAnB;AACA,SAAS,WAAT,EAAsB,aAAtB,QAA2C,oBAA3C;AAGA,eAAe,MAAM,CAAC,MAAD,CAAN,CAAe,MAAf,CAAsB;AACnC,EAAA,IAAI,EAAE,6BAD6B;AAGnC,EAAA,OAAO,EAAE;AACP,IAAA,gBAAgB,CAAE,MAAF,EAAyB;AACvC,aAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B;AACjC,QAAA,EAAE,EAAE;AACF,UAAA,KAAK,EAAG,CAAD,IAAkB;AACvB,YAAA,CAAC,CAAC,eAAF;AACA,iBAAK,KAAL,CAAW,OAAX,EAAoB,MAAM,CAAC,KAA3B;AACD;AAJC;AAD6B,OAA5B,EAOJ,CAAC,OAAD,CAPI,CAAP;AAQD,KAVM;;AAWP,IAAA,OAAO,CAAE,WAAF,EAAwB,MAAxB,EAAuC;AAC5C,YAAM,EAAE,GAAI,GAAD,IAAiB,KAAK,QAAL,CAAc,IAAd,CAAmB,CAAnB,CAAqB,gCAAgC,GAAG,EAAxD,CAA5B;;AAEA,UAAI,QAAQ,GAAG,MAAf;AACA,UAAI,SAAS,GAAG,CACd,EAAE,CAAC,UAAD,CADY,EAEd,EAAE,CAAC,mBAAD,CAFY,CAAhB;;AAKA,UAAI,CAAC,WAAL,EAAkB;AAChB,eAAO;AAAE,UAAA,QAAF;AAAY,UAAA,SAAS,EAAE,SAAS,CAAC,IAAV,CAAe,GAAf;AAAvB,SAAP;AACD;;AAED,UAAI,MAAJ,EAAY;AACV,QAAA,QAAQ,GAAG,YAAX;AACA,QAAA,SAAS,GAAG,CACV,EAAE,CAAC,gBAAD,CADQ,EAEV,EAAE,CAAC,KAAK,OAAL,CAAa,QAAb,GAAwB,mBAAxB,GAA8C,cAA/C,CAFQ,CAAZ;AAID,OAND,MAMO;AACL,QAAA,QAAQ,GAAG,WAAX;AACA,QAAA,SAAS,GAAG,CACV,EAAE,CAAC,eAAD,CADQ,EAEV,EAAE,CAAC,oBAAD,CAFQ,CAAZ;AAID;;AAED,aAAO;AAAE,QAAA,QAAF;AAAY,QAAA,SAAS,EAAE,SAAS,CAAC,IAAV,CAAe,GAAf;AAAvB,OAAP;AACD,KAvCM;;AAwCP,IAAA,SAAS,CAAE,MAAF,EAAyB;AAChC,YAAM,IAAI,GAAkE;AAC1E,QAAA,KAAK,EAAE;AACL,UAAA,IAAI,EAAE,cADD;AAEL,UAAA,KAAK,EAAE,KAFF;AAGL,wBAAc,MAAM,CAAC,IAAP,IAAe;AAHxB,SADmE;AAM1E,QAAA,KAAK,EAAE;AACL,UAAA,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAR,CADf;AAEL,UAAA,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,KAAR;AAFlB,SANmE;AAU1E,QAAA,KAAK,EAAE,CACL,QAAQ,MAAM,CAAC,KAAP,IAAgB,OAAO,EAD1B,EAEL,GAAG,WAAW,CAAC,MAAM,CAAC,KAAR,CAFT,EAGL,MAAM,CAAC,OAAP,IAAkB,uBAHb,CAVmE;AAe1E,QAAA,EAAE,EAAE;AAfsE,OAA5E;AAiBA,YAAM,QAAQ,GAAG,EAAjB;;AAEA,UAAI,MAAM,CAAC,KAAP,KAAiB,mBAAjB,IAAwC,CAAC,KAAK,YAAlD,EAAgE;AAC9D,eAAO,KAAK,cAAL,CAAoB,IAApB,EAA0B,IAA1B,EAAgC,CAAC,KAAK,YAAL,EAAD,CAAhC,CAAP;AACD;;AAED,MAAA,QAAQ,CAAC,IAAT,CACE,KAAK,YAAL,CAAkB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VDataTable/VDataTableHeaderDesktop.ts"],"names":[],"mappings":"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","sourcesContent":["// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required<Pick<VNodeData, 'attrs' | 'on' | 'class' | 'style'>> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDataTableHeaderDesktop.js"}
|
|
@@ -71,7 +71,7 @@ export default mixins(Colorable, Localable, Themeable
|
|
|
71
71
|
},
|
|
72
72
|
|
|
73
73
|
methods: {
|
|
74
|
-
genButtonClasses(isAllowed, isFloating, isSelected, isCurrent) {
|
|
74
|
+
genButtonClasses(isAllowed, isFloating, isSelected, isCurrent, isFirst, isLast) {
|
|
75
75
|
return {
|
|
76
76
|
'v-size--default': !isFloating,
|
|
77
77
|
'v-date-picker-table__current': isCurrent,
|
|
@@ -81,6 +81,8 @@ export default mixins(Colorable, Localable, Themeable
|
|
|
81
81
|
'v-btn--rounded': isFloating,
|
|
82
82
|
'v-btn--disabled': !isAllowed || this.disabled,
|
|
83
83
|
'v-btn--outlined': isCurrent && !isSelected,
|
|
84
|
+
'v-date-picker--first-in-range': isFirst,
|
|
85
|
+
'v-date-picker--last-in-range': isLast,
|
|
84
86
|
...this.themeClasses
|
|
85
87
|
};
|
|
86
88
|
},
|
|
@@ -100,9 +102,17 @@ export default mixins(Colorable, Localable, Themeable
|
|
|
100
102
|
const isCurrent = value === this.current;
|
|
101
103
|
const setColor = isSelected ? this.setBackgroundColor : this.setTextColor;
|
|
102
104
|
const color = (isSelected || isCurrent) && (this.color || 'accent');
|
|
105
|
+
let isFirst = false;
|
|
106
|
+
let isLast = false;
|
|
107
|
+
|
|
108
|
+
if (this.range && !!this.value && Array.isArray(this.value)) {
|
|
109
|
+
isFirst = value === this.value[0];
|
|
110
|
+
isLast = value === this.value[this.value.length - 1];
|
|
111
|
+
}
|
|
112
|
+
|
|
103
113
|
return this.$createElement('button', setColor(color, {
|
|
104
114
|
staticClass: 'v-btn',
|
|
105
|
-
class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),
|
|
115
|
+
class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent, isFirst, isLast),
|
|
106
116
|
attrs: {
|
|
107
117
|
type: 'button'
|
|
108
118
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/VDatePicker/mixins/date-picker-table.ts"],"names":[],"mappings":"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","sourcesContent":["import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (isAllowed: boolean, isFloating: boolean, isSelected: boolean, isCurrent: boolean) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"sourceRoot":"","file":"date-picker-table.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/VDatePicker/mixins/date-picker-table.ts"],"names":[],"mappings":"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","sourcesContent":["import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"sourceRoot":"","file":"date-picker-table.js"}
|
|
@@ -29,10 +29,7 @@ export default baseMixins.extend({
|
|
|
29
29
|
disabled: Boolean,
|
|
30
30
|
fullscreen: Boolean,
|
|
31
31
|
light: Boolean,
|
|
32
|
-
maxWidth:
|
|
33
|
-
type: [String, Number],
|
|
34
|
-
default: 'none'
|
|
35
|
-
},
|
|
32
|
+
maxWidth: [String, Number],
|
|
36
33
|
noClickAnimation: Boolean,
|
|
37
34
|
origin: {
|
|
38
35
|
type: String,
|
|
@@ -48,10 +45,7 @@ export default baseMixins.extend({
|
|
|
48
45
|
type: [String, Boolean],
|
|
49
46
|
default: 'dialog-transition'
|
|
50
47
|
},
|
|
51
|
-
width:
|
|
52
|
-
type: [String, Number],
|
|
53
|
-
default: 'auto'
|
|
54
|
-
}
|
|
48
|
+
width: [String, Number]
|
|
55
49
|
},
|
|
56
50
|
|
|
57
51
|
data() {
|
|
@@ -288,8 +282,8 @@ export default baseMixins.extend({
|
|
|
288
282
|
|
|
289
283
|
if (!this.fullscreen) {
|
|
290
284
|
data.style = { ...data.style,
|
|
291
|
-
maxWidth:
|
|
292
|
-
width:
|
|
285
|
+
maxWidth: convertToUnit(this.maxWidth),
|
|
286
|
+
width: convertToUnit(this.width)
|
|
293
287
|
};
|
|
294
288
|
}
|
|
295
289
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["// 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'\nimport Toggleable from '../../mixins/toggleable'\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 Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none',\n },\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: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\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.$scopedSlots.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 beforeDestroy () {\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.options.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.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.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 // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.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.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\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":["// 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'\nimport Toggleable from '../../mixins/toggleable'\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 Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\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 data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\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.$scopedSlots.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 beforeDestroy () {\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.options.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.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.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 // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.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.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\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 this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
|
|
@@ -26,6 +26,7 @@ export default baseMixins.extend().extend({
|
|
|
26
26
|
dense: Boolean,
|
|
27
27
|
height: [Number, String],
|
|
28
28
|
hideDetails: [Boolean, String],
|
|
29
|
+
hideSpinButtons: Boolean,
|
|
29
30
|
hint: String,
|
|
30
31
|
id: String,
|
|
31
32
|
label: String,
|
|
@@ -55,6 +56,7 @@ export default baseMixins.extend().extend({
|
|
|
55
56
|
'v-input--is-loading': this.loading !== false && this.loading != null,
|
|
56
57
|
'v-input--is-readonly': this.isReadonly,
|
|
57
58
|
'v-input--dense': this.dense,
|
|
59
|
+
'v-input--hide-spin-buttons': this.hideSpinButtons,
|
|
58
60
|
...this.themeClasses
|
|
59
61
|
};
|
|
60
62
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,4CAAP,C,CAEA;;AACA,OAAO,KAAP,MAAkB,UAAlB;AACA,OAAO,MAAP,MAAmB,WAAnB;AACA,OAAO,SAAP,MAAsB,cAAtB,C,CAEA;;AACA,OAAO,UAAP,MAAuB,0BAAvB;AACA,OAAO,WAAP,MAAwB,0BAAxB,C,CAEA;;AACA,SACE,aADF,EAEE,OAFF,EAGE,SAHF,QAIO,oBAJP;AAKA,OAAO,SAAP,MAAsB,sBAAtB;AAIA,OAAO,MAAP,MAAmB,mBAAnB;AAGA,MAAM,UAAU,GAAG,MAAM,CACvB,UADuB,EAEvB,WAFuB,CAAzB;AAUA;;AACA,eAAe,UAAU,CAAC,MAAX,GAA6B,MAA7B,CAAoC;AACjD,EAAA,IAAI,EAAE,SAD2C;AAGjD,EAAA,YAAY,EAAE,KAHmC;AAKjD,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,EAAE,MADP;AAEL,IAAA,eAAe,EAAE;AACf,MAAA,IAAI,EAAE,MADS;AAEf,MAAA,OAAO,EAAE;AAFM,KAFZ;AAML,IAAA,KAAK,EAAE,OANF;AAOL,IAAA,MAAM,EAAE,CAAC,MAAD,EAAS,MAAT,CAPH;AAQL,IAAA,WAAW,EAAE,CAAC,OAAD,EAAU,MAAV,CARR;AASL,IAAA,IAAI,EAAE,MATD;AAUL,IAAA,EAAE,EAAE,MAVC;AAWL,IAAA,KAAK,EAAE,MAXF;AAYL,IAAA,OAAO,EAAE,OAZJ;AAaL,IAAA,cAAc,EAAE,OAbX;AAcL,IAAA,WAAW,EAAE,MAdR;AAeL,IAAA,KAAK,EAAE;AAfF,GAL0C;;AAuBjD,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,SAAS,EAAE,KAAK,KADX;AAEL,MAAA,YAAY,EAAE;AAFT,KAAP;AAID,GA5BgD;;AA8BjD,EAAA,QAAQ,EAAE;AACR,IAAA,OAAO,GAAA;AACL,aAAO;AACL,8BAAsB,KAAK,QADtB;AAEL,iCAAyB,CAAC,KAAK,WAF1B;AAGL,oCAA4B,KAAK,aAH5B;AAIL,6BAAqB,KAAK,OAJrB;AAKL,gCAAwB,KAAK,UALxB;AAML,+BAAuB,KAAK,SANvB;AAOL;AACA,+BAAuB,KAAK,OAAL,KAAiB,KAAjB,IAA0B,KAAK,OAAL,IAAgB,IAR5D;AASL,gCAAwB,KAAK,UATxB;AAUL,0BAAkB,KAAK,KAVlB;AAWL,WAAG,KAAK;AAXH,OAAP;AAaD,KAfO;;AAgBR,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,EAAL,IAAW,SAAS,KAAK,IAAI,EAApC;AACD,KAlBO;;AAmBR,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,iBAAL,CAAuB,MAAvB,GAAgC,CAAvC;AACD,KArBO;;AAsBR,IAAA,OAAO,GAAA;AACL,aAAO,CAAC,KAAK,WAAN,IACL,CAAC,CAAC,KAAK,IADF,KAEJ,KAAK,cAAL,IAAuB,KAAK,SAFxB,CAAP;AAGD,KA1BO;;AA2BR,IAAA,QAAQ,GAAA;AACN,aAAO,CAAC,EAAE,KAAK,MAAL,CAAY,KAAZ,IAAqB,KAAK,KAA5B,CAAR;AACD,KA7BO;;AA8BR;AACA;AACA;AACA;AACA,IAAA,aAAa,EAAE;AACb,MAAA,GAAG,GAAA;AACD,eAAO,KAAK,SAAZ;AACD,OAHY;;AAIb,MAAA,GAAG,CAAE,GAAF,EAAU;AACX,aAAK,SAAL,GAAiB,GAAjB;AACA,aAAK,KAAL,CAAW,KAAK,YAAhB,EAA8B,GAA9B;AACD;;AAPY,KAlCP;;AA2CR,IAAA,OAAO,GAAA;AACL,aAAO,CAAC,CAAC,KAAK,SAAd;AACD,KA7CO;;AA8CR,IAAA,aAAa,GAAA;AACX,aAAO,KAAK,OAAZ;AACD,KAhDO;;AAiDR,IAAA,iBAAiB,GAAA;AACf,UAAI,KAAK,OAAT,EAAkB,OAAO,CAAC,KAAK,IAAN,CAAP;AAElB,UAAI,CAAC,KAAK,WAAV,EAAuB,OAAO,EAAP;AAEvB,aAAO,KAAK,WAAL,CAAiB,GAAjB,CAAsB,UAAD,IAA6C;AACvE,YAAI,OAAO,UAAP,KAAsB,QAA1B,EAAoC,OAAO,UAAP;AAEpC,cAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,aAAN,CAAnC;AAEA,eAAO,OAAO,gBAAP,KAA4B,QAA5B,GAAuC,gBAAvC,GAA0D,EAAjE;AACD,OANM,EAMJ,MANI,CAMG,OAAO,IAAI,OAAO,KAAK,EAN1B,CAAP;AAOD,KA7DO;;AA8DR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,WAAL,KAAqB,KAArB,IAA+B,KAAK,WAAL,KAAqB,MAArB,IAA+B,KAAK,UAA1E;AACD;;AAhEO,GA9BuC;AAiGjD,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,CAAE,GAAF,EAAK;AACR,WAAK,SAAL,GAAiB,GAAjB;AACD;;AAHI,GAjG0C;;AAuGjD,EAAA,YAAY,GAAA;AACV;AACA;AACA,SAAK,YAAL,GAAqB,KAAK,QAAL,CAAc,KAAd,IAAuB,KAAK,QAAL,CAAc,KAAd,CAAoB,KAA5C,IAAsD,OAA1E;AACD,GA3GgD;;AA6GjD,EAAA,OAAO,EAAE;AACP,IAAA,UAAU,GAAA;AACR,aAAO,CACL,KAAK,cAAL,EADK,EAEL,KAAK,UAAL,EAFK,EAGL,KAAK,aAAL,EAHK,CAAP;AAKD,KAPM;;AAQP,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,kBADmB;AAEhC,QAAA,KAAK,EAAE;AAAE,UAAA,KAAK,EAAE,KAAK,MAAL,CAAY;AAArB;AAFyB,OAA3B,EAGJ,CACD,KAAK,YAAL,EADC,EAED,KAAK,WAAL,EAFC,CAHI,CAAP;AAOD,KAhBM;;AAiBP,IAAA,cAAc,GAAA;AACZ,aAAO,CACL,KAAK,QAAL,EADK,EAEL,KAAK,MAAL,CAAY,OAFP,CAAP;AAID,KAtBM;;AAuBP,IAAA,OAAO,CACL,IADK,EAEL,EAFK,EAGL,SAAA,GAAuB,EAHlB,EAGoB;AAEzB,YAAM,IAAI,GAAI,KAAa,GAAG,IAAI,MAApB,CAAd;AACA,YAAM,SAAS,GAAG,SAAS,SAAS,CAAC,IAAD,CAAM,EAA1C;AACA,YAAM,WAAW,GAAG,CAAC,EAAE,KAAK,UAAL,CAAgB,SAAhB,KAA8B,EAAhC,CAArB;AAEA,YAAM,IAAI,GAAG,SAAS,CAAC;AACrB,QAAA,KAAK,EAAE;AACL,wBAAc,WAAW,GAAG,SAAS,CAAC,IAAD,CAAT,CAAgB,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,IAAgC,OAAnC,GAA6C,SADjE;AAEL,UAAA,KAAK,EAAE,KAAK,eAFP;AAGL,UAAA,IAAI,EAAE,KAAK,IAHN;AAIL,UAAA,QAAQ,EAAE,KAAK,UAJV;AAKL,UAAA,KAAK,EAAE,KAAK;AALP,SADc;AAQrB,QAAA,EAAE,EAAE,CAAC,WAAD,GACA,SADA,GAEA;AACA,UAAA,KAAK,EAAG,CAAD,IAAa;AAClB,YAAA,CAAC,CAAC,cAAF;AACA,YAAA,CAAC,CAAC,eAAF;AAEA,iBAAK,KAAL,CAAW,SAAX,EAAsB,CAAtB;AACA,YAAA,EAAE,IAAI,EAAE,CAAC,CAAD,CAAR;AACD,WAPD;AAQA;AACA;AACA,UAAA,OAAO,EAAG,CAAD,IAAa;AACpB,YAAA,CAAC,CAAC,cAAF;AACA,YAAA,CAAC,CAAC,eAAF;AACD;AAbD;AAViB,OAAD,EAyBnB,SAzBmB,CAAtB;AA2BA,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,eADmB;AAEhC,QAAA,KAAK,EAAE,IAAI,GAAG,kBAAkB,SAAS,CAAC,IAAD,CAAM,EAApC,GAAyC;AAFpB,OAA3B,EAGJ,CACD,KAAK,cAAL,CACE,KADF,EAEE,IAFF,EAGE,IAHF,CADC,CAHI,CAAP;AAUD,KArEM;;AAsEP,IAAA,YAAY,GAAA;AACV,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B,KAAK,kBAAL,CAAwB,KAAK,eAA7B,EAA8C;AAC9E,QAAA,WAAW,EAAE,eADiE;AAE9E,QAAA,KAAK,EAAE;AAAE,UAAA,MAAM,EAAE,aAAa,CAAC,KAAK,MAAN;AAAvB,SAFuE;AAG9E,QAAA,EAAE,EAAE;AACF,UAAA,KAAK,EAAE,KAAK,OADV;AAEF,UAAA,SAAS,EAAE,KAAK,WAFd;AAGF,UAAA,OAAO,EAAE,KAAK;AAHZ,SAH0E;AAQ9E,QAAA,GAAG,EAAE;AARyE,OAA9C,CAA3B,EASH,CAAC,KAAK,cAAL,EAAD,CATG,CAAP;AAUD,KAjFM;;AAkFP,IAAA,QAAQ,GAAA;AACN,UAAI,CAAC,KAAK,QAAV,EAAoB,OAAO,IAAP;AAEpB,aAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B;AACjC,QAAA,KAAK,EAAE;AACL,UAAA,KAAK,EAAE,KAAK,eADP;AAEL,UAAA,IAAI,EAAE,KAAK,IAFN;AAGL,UAAA,QAAQ,EAAE,KAAK,UAHV;AAIL,UAAA,OAAO,EAAE,KAAK,QAJT;AAKL,UAAA,GAAG,EAAE,KAAK,UALL;AAML,UAAA,KAAK,EAAE,KAAK;AANP;AAD0B,OAA5B,EASJ,KAAK,MAAL,CAAY,KAAZ,IAAqB,KAAK,KATtB,CAAP;AAUD,KA/FM;;AAgGP,IAAA,WAAW,GAAA;AACT,UAAI,CAAC,KAAK,WAAV,EAAuB,OAAO,IAAP;AAEvB,aAAO,KAAK,cAAL,CAAoB,SAApB,EAA+B;AACpC,QAAA,KAAK,EAAE;AACL,UAAA,KAAK,EAAE,KAAK,OAAL,GAAe,EAAf,GAAoB,KAAK,eAD3B;AAEL,UAAA,IAAI,EAAE,KAAK,IAFN;AAGL,UAAA,KAAK,EAAE,KAAK,KAHP;AAIL,UAAA,KAAK,EAAE,KAAK;AAJP,SAD6B;AAOpC,QAAA,KAAK,EAAE;AACL,UAAA,IAAI,EAAE,KAAK,WAAL,GAAmB,OAAnB,GAA6B;AAD9B,SAP6B;AAUpC,QAAA,WAAW,EAAE;AACX,UAAA,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,IAAD,EAAO,SAAP,EAAkB,KAAlB;AADd;AAVuB,OAA/B,CAAP;AAcD,KAjHM;;AAkHP,IAAA,OAAO,CACL,IADK,EAEL,QAFK,EAGL,IAHK,EAGoB;AAEzB,UAAI,CAAC,IAAI,CAAC,MAAV,EAAkB,OAAO,IAAP;AAElB,YAAM,GAAG,GAAG,GAAG,IAAI,IAAI,QAAQ,EAA/B;AAEA,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,YAAY,GAAG,EADI;AAEhC,QAAA;AAFgC,OAA3B,EAGJ,IAHI,CAAP;AAID,KA/HM;;AAgIP,IAAA,cAAc,GAAA;AACZ,YAAM,IAAI,GAAG,EAAb;;AAEA,UAAI,KAAK,MAAL,CAAY,OAAhB,EAAyB;AACvB,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,MAAL,CAAY,OAAtB;AACD,OAFD,MAEO,IAAI,KAAK,WAAT,EAAsB;AAC3B,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,OAAL,CAAa,SAAb,CAAV;AACD;;AAED,aAAO,KAAK,OAAL,CAAa,SAAb,EAAwB,OAAxB,EAAiC,IAAjC,CAAP;AACD,KA1IM;;AA2IP,IAAA,aAAa,GAAA;AACX,YAAM,IAAI,GAAG,EAAb,CADW,CAGX;AACA;AACA;AACA;;AACA,UAAI,KAAK,MAAL,CAAY,MAAhB,EAAwB;AACtB,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,MAAL,CAAY,MAAtB;AACD,OAFD,MAEO,IAAI,KAAK,UAAT,EAAqB;AAC1B,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,OAAL,CAAa,QAAb,CAAV;AACD;;AAED,aAAO,KAAK,OAAL,CAAa,QAAb,EAAuB,OAAvB,EAAgC,IAAhC,CAAP;AACD,KAzJM;;AA0JP,IAAA,OAAO,CAAE,CAAF,EAAU;AACf,WAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AACD,KA5JM;;AA6JP,IAAA,WAAW,CAAE,CAAF,EAAU;AACnB,WAAK,YAAL,GAAoB,IAApB;AACA,WAAK,KAAL,CAAW,WAAX,EAAwB,CAAxB;AACD,KAhKM;;AAiKP,IAAA,SAAS,CAAE,CAAF,EAAU;AACjB,WAAK,YAAL,GAAoB,KAApB;AACA,WAAK,KAAL,CAAW,SAAX,EAAsB,CAAtB;AACD;;AApKM,GA7GwC;;AAoRjD,EAAA,MAAM,CAAE,CAAF,EAAG;AACP,WAAO,CAAC,CAAC,KAAD,EAAQ,KAAK,YAAL,CAAkB,KAAK,eAAvB,EAAwC;AACtD,MAAA,WAAW,EAAE,SADyC;AAEtD,MAAA,KAAK,EAAE,KAAK;AAF0C,KAAxC,CAAR,EAGJ,KAAK,UAAL,EAHI,CAAR;AAID;;AAzRgD,CAApC,CAAf","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VInput/VInput.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,4CAAP,C,CAEA;;AACA,OAAO,KAAP,MAAkB,UAAlB;AACA,OAAO,MAAP,MAAmB,WAAnB;AACA,OAAO,SAAP,MAAsB,cAAtB,C,CAEA;;AACA,OAAO,UAAP,MAAuB,0BAAvB;AACA,OAAO,WAAP,MAAwB,0BAAxB,C,CAEA;;AACA,SACE,aADF,EAEE,OAFF,EAGE,SAHF,QAIO,oBAJP;AAKA,OAAO,SAAP,MAAsB,sBAAtB;AAIA,OAAO,MAAP,MAAmB,mBAAnB;AAGA,MAAM,UAAU,GAAG,MAAM,CACvB,UADuB,EAEvB,WAFuB,CAAzB;AAUA;;AACA,eAAe,UAAU,CAAC,MAAX,GAA6B,MAA7B,CAAoC;AACjD,EAAA,IAAI,EAAE,SAD2C;AAGjD,EAAA,YAAY,EAAE,KAHmC;AAKjD,EAAA,KAAK,EAAE;AACL,IAAA,UAAU,EAAE,MADP;AAEL,IAAA,eAAe,EAAE;AACf,MAAA,IAAI,EAAE,MADS;AAEf,MAAA,OAAO,EAAE;AAFM,KAFZ;AAML,IAAA,KAAK,EAAE,OANF;AAOL,IAAA,MAAM,EAAE,CAAC,MAAD,EAAS,MAAT,CAPH;AAQL,IAAA,WAAW,EAAE,CAAC,OAAD,EAAU,MAAV,CARR;AASL,IAAA,eAAe,EAAE,OATZ;AAUL,IAAA,IAAI,EAAE,MAVD;AAWL,IAAA,EAAE,EAAE,MAXC;AAYL,IAAA,KAAK,EAAE,MAZF;AAaL,IAAA,OAAO,EAAE,OAbJ;AAcL,IAAA,cAAc,EAAE,OAdX;AAeL,IAAA,WAAW,EAAE,MAfR;AAgBL,IAAA,KAAK,EAAE;AAhBF,GAL0C;;AAwBjD,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,SAAS,EAAE,KAAK,KADX;AAEL,MAAA,YAAY,EAAE;AAFT,KAAP;AAID,GA7BgD;;AA+BjD,EAAA,QAAQ,EAAE;AACR,IAAA,OAAO,GAAA;AACL,aAAO;AACL,8BAAsB,KAAK,QADtB;AAEL,iCAAyB,CAAC,KAAK,WAF1B;AAGL,oCAA4B,KAAK,aAH5B;AAIL,6BAAqB,KAAK,OAJrB;AAKL,gCAAwB,KAAK,UALxB;AAML,+BAAuB,KAAK,SANvB;AAOL;AACA,+BAAuB,KAAK,OAAL,KAAiB,KAAjB,IAA0B,KAAK,OAAL,IAAgB,IAR5D;AASL,gCAAwB,KAAK,UATxB;AAUL,0BAAkB,KAAK,KAVlB;AAWL,sCAA8B,KAAK,eAX9B;AAYL,WAAG,KAAK;AAZH,OAAP;AAcD,KAhBO;;AAiBR,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,EAAL,IAAW,SAAS,KAAK,IAAI,EAApC;AACD,KAnBO;;AAoBR,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,iBAAL,CAAuB,MAAvB,GAAgC,CAAvC;AACD,KAtBO;;AAuBR,IAAA,OAAO,GAAA;AACL,aAAO,CAAC,KAAK,WAAN,IACL,CAAC,CAAC,KAAK,IADF,KAEJ,KAAK,cAAL,IAAuB,KAAK,SAFxB,CAAP;AAGD,KA3BO;;AA4BR,IAAA,QAAQ,GAAA;AACN,aAAO,CAAC,EAAE,KAAK,MAAL,CAAY,KAAZ,IAAqB,KAAK,KAA5B,CAAR;AACD,KA9BO;;AA+BR;AACA;AACA;AACA;AACA,IAAA,aAAa,EAAE;AACb,MAAA,GAAG,GAAA;AACD,eAAO,KAAK,SAAZ;AACD,OAHY;;AAIb,MAAA,GAAG,CAAE,GAAF,EAAU;AACX,aAAK,SAAL,GAAiB,GAAjB;AACA,aAAK,KAAL,CAAW,KAAK,YAAhB,EAA8B,GAA9B;AACD;;AAPY,KAnCP;;AA4CR,IAAA,OAAO,GAAA;AACL,aAAO,CAAC,CAAC,KAAK,SAAd;AACD,KA9CO;;AA+CR,IAAA,aAAa,GAAA;AACX,aAAO,KAAK,OAAZ;AACD,KAjDO;;AAkDR,IAAA,iBAAiB,GAAA;AACf,UAAI,KAAK,OAAT,EAAkB,OAAO,CAAC,KAAK,IAAN,CAAP;AAElB,UAAI,CAAC,KAAK,WAAV,EAAuB,OAAO,EAAP;AAEvB,aAAO,KAAK,WAAL,CAAiB,GAAjB,CAAsB,UAAD,IAA6C;AACvE,YAAI,OAAO,UAAP,KAAsB,QAA1B,EAAoC,OAAO,UAAP;AAEpC,cAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,aAAN,CAAnC;AAEA,eAAO,OAAO,gBAAP,KAA4B,QAA5B,GAAuC,gBAAvC,GAA0D,EAAjE;AACD,OANM,EAMJ,MANI,CAMG,OAAO,IAAI,OAAO,KAAK,EAN1B,CAAP;AAOD,KA9DO;;AA+DR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,WAAL,KAAqB,KAArB,IAA+B,KAAK,WAAL,KAAqB,MAArB,IAA+B,KAAK,UAA1E;AACD;;AAjEO,GA/BuC;AAmGjD,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,CAAE,GAAF,EAAK;AACR,WAAK,SAAL,GAAiB,GAAjB;AACD;;AAHI,GAnG0C;;AAyGjD,EAAA,YAAY,GAAA;AACV;AACA;AACA,SAAK,YAAL,GAAqB,KAAK,QAAL,CAAc,KAAd,IAAuB,KAAK,QAAL,CAAc,KAAd,CAAoB,KAA5C,IAAsD,OAA1E;AACD,GA7GgD;;AA+GjD,EAAA,OAAO,EAAE;AACP,IAAA,UAAU,GAAA;AACR,aAAO,CACL,KAAK,cAAL,EADK,EAEL,KAAK,UAAL,EAFK,EAGL,KAAK,aAAL,EAHK,CAAP;AAKD,KAPM;;AAQP,IAAA,UAAU,GAAA;AACR,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,kBADmB;AAEhC,QAAA,KAAK,EAAE;AAAE,UAAA,KAAK,EAAE,KAAK,MAAL,CAAY;AAArB;AAFyB,OAA3B,EAGJ,CACD,KAAK,YAAL,EADC,EAED,KAAK,WAAL,EAFC,CAHI,CAAP;AAOD,KAhBM;;AAiBP,IAAA,cAAc,GAAA;AACZ,aAAO,CACL,KAAK,QAAL,EADK,EAEL,KAAK,MAAL,CAAY,OAFP,CAAP;AAID,KAtBM;;AAuBP,IAAA,OAAO,CACL,IADK,EAEL,EAFK,EAGL,SAAA,GAAuB,EAHlB,EAGoB;AAEzB,YAAM,IAAI,GAAI,KAAa,GAAG,IAAI,MAApB,CAAd;AACA,YAAM,SAAS,GAAG,SAAS,SAAS,CAAC,IAAD,CAAM,EAA1C;AACA,YAAM,WAAW,GAAG,CAAC,EAAE,KAAK,UAAL,CAAgB,SAAhB,KAA8B,EAAhC,CAArB;AAEA,YAAM,IAAI,GAAG,SAAS,CAAC;AACrB,QAAA,KAAK,EAAE;AACL,wBAAc,WAAW,GAAG,SAAS,CAAC,IAAD,CAAT,CAAgB,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,IAAgC,OAAnC,GAA6C,SADjE;AAEL,UAAA,KAAK,EAAE,KAAK,eAFP;AAGL,UAAA,IAAI,EAAE,KAAK,IAHN;AAIL,UAAA,QAAQ,EAAE,KAAK,UAJV;AAKL,UAAA,KAAK,EAAE,KAAK;AALP,SADc;AAQrB,QAAA,EAAE,EAAE,CAAC,WAAD,GACA,SADA,GAEA;AACA,UAAA,KAAK,EAAG,CAAD,IAAa;AAClB,YAAA,CAAC,CAAC,cAAF;AACA,YAAA,CAAC,CAAC,eAAF;AAEA,iBAAK,KAAL,CAAW,SAAX,EAAsB,CAAtB;AACA,YAAA,EAAE,IAAI,EAAE,CAAC,CAAD,CAAR;AACD,WAPD;AAQA;AACA;AACA,UAAA,OAAO,EAAG,CAAD,IAAa;AACpB,YAAA,CAAC,CAAC,cAAF;AACA,YAAA,CAAC,CAAC,eAAF;AACD;AAbD;AAViB,OAAD,EAyBnB,SAzBmB,CAAtB;AA2BA,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,eADmB;AAEhC,QAAA,KAAK,EAAE,IAAI,GAAG,kBAAkB,SAAS,CAAC,IAAD,CAAM,EAApC,GAAyC;AAFpB,OAA3B,EAGJ,CACD,KAAK,cAAL,CACE,KADF,EAEE,IAFF,EAGE,IAHF,CADC,CAHI,CAAP;AAUD,KArEM;;AAsEP,IAAA,YAAY,GAAA;AACV,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B,KAAK,kBAAL,CAAwB,KAAK,eAA7B,EAA8C;AAC9E,QAAA,WAAW,EAAE,eADiE;AAE9E,QAAA,KAAK,EAAE;AAAE,UAAA,MAAM,EAAE,aAAa,CAAC,KAAK,MAAN;AAAvB,SAFuE;AAG9E,QAAA,EAAE,EAAE;AACF,UAAA,KAAK,EAAE,KAAK,OADV;AAEF,UAAA,SAAS,EAAE,KAAK,WAFd;AAGF,UAAA,OAAO,EAAE,KAAK;AAHZ,SAH0E;AAQ9E,QAAA,GAAG,EAAE;AARyE,OAA9C,CAA3B,EASH,CAAC,KAAK,cAAL,EAAD,CATG,CAAP;AAUD,KAjFM;;AAkFP,IAAA,QAAQ,GAAA;AACN,UAAI,CAAC,KAAK,QAAV,EAAoB,OAAO,IAAP;AAEpB,aAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B;AACjC,QAAA,KAAK,EAAE;AACL,UAAA,KAAK,EAAE,KAAK,eADP;AAEL,UAAA,IAAI,EAAE,KAAK,IAFN;AAGL,UAAA,QAAQ,EAAE,KAAK,UAHV;AAIL,UAAA,OAAO,EAAE,KAAK,QAJT;AAKL,UAAA,GAAG,EAAE,KAAK,UALL;AAML,UAAA,KAAK,EAAE,KAAK;AANP;AAD0B,OAA5B,EASJ,KAAK,MAAL,CAAY,KAAZ,IAAqB,KAAK,KATtB,CAAP;AAUD,KA/FM;;AAgGP,IAAA,WAAW,GAAA;AACT,UAAI,CAAC,KAAK,WAAV,EAAuB,OAAO,IAAP;AAEvB,aAAO,KAAK,cAAL,CAAoB,SAApB,EAA+B;AACpC,QAAA,KAAK,EAAE;AACL,UAAA,KAAK,EAAE,KAAK,OAAL,GAAe,EAAf,GAAoB,KAAK,eAD3B;AAEL,UAAA,IAAI,EAAE,KAAK,IAFN;AAGL,UAAA,KAAK,EAAE,KAAK,KAHP;AAIL,UAAA,KAAK,EAAE,KAAK;AAJP,SAD6B;AAOpC,QAAA,KAAK,EAAE;AACL,UAAA,IAAI,EAAE,KAAK,WAAL,GAAmB,OAAnB,GAA6B;AAD9B,SAP6B;AAUpC,QAAA,WAAW,EAAE;AACX,UAAA,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,IAAD,EAAO,SAAP,EAAkB,KAAlB;AADd;AAVuB,OAA/B,CAAP;AAcD,KAjHM;;AAkHP,IAAA,OAAO,CACL,IADK,EAEL,QAFK,EAGL,IAHK,EAGoB;AAEzB,UAAI,CAAC,IAAI,CAAC,MAAV,EAAkB,OAAO,IAAP;AAElB,YAAM,GAAG,GAAG,GAAG,IAAI,IAAI,QAAQ,EAA/B;AAEA,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,WAAW,EAAE,YAAY,GAAG,EADI;AAEhC,QAAA;AAFgC,OAA3B,EAGJ,IAHI,CAAP;AAID,KA/HM;;AAgIP,IAAA,cAAc,GAAA;AACZ,YAAM,IAAI,GAAG,EAAb;;AAEA,UAAI,KAAK,MAAL,CAAY,OAAhB,EAAyB;AACvB,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,MAAL,CAAY,OAAtB;AACD,OAFD,MAEO,IAAI,KAAK,WAAT,EAAsB;AAC3B,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,OAAL,CAAa,SAAb,CAAV;AACD;;AAED,aAAO,KAAK,OAAL,CAAa,SAAb,EAAwB,OAAxB,EAAiC,IAAjC,CAAP;AACD,KA1IM;;AA2IP,IAAA,aAAa,GAAA;AACX,YAAM,IAAI,GAAG,EAAb,CADW,CAGX;AACA;AACA;AACA;;AACA,UAAI,KAAK,MAAL,CAAY,MAAhB,EAAwB;AACtB,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,MAAL,CAAY,MAAtB;AACD,OAFD,MAEO,IAAI,KAAK,UAAT,EAAqB;AAC1B,QAAA,IAAI,CAAC,IAAL,CAAU,KAAK,OAAL,CAAa,QAAb,CAAV;AACD;;AAED,aAAO,KAAK,OAAL,CAAa,QAAb,EAAuB,OAAvB,EAAgC,IAAhC,CAAP;AACD,KAzJM;;AA0JP,IAAA,OAAO,CAAE,CAAF,EAAU;AACf,WAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AACD,KA5JM;;AA6JP,IAAA,WAAW,CAAE,CAAF,EAAU;AACnB,WAAK,YAAL,GAAoB,IAApB;AACA,WAAK,KAAL,CAAW,WAAX,EAAwB,CAAxB;AACD,KAhKM;;AAiKP,IAAA,SAAS,CAAE,CAAF,EAAU;AACjB,WAAK,YAAL,GAAoB,KAApB;AACA,WAAK,KAAL,CAAW,SAAX,EAAsB,CAAtB;AACD;;AApKM,GA/GwC;;AAsRjD,EAAA,MAAM,CAAE,CAAF,EAAG;AACP,WAAO,CAAC,CAAC,KAAD,EAAQ,KAAK,YAAL,CAAkB,KAAK,eAAvB,EAAwC;AACtD,MAAA,WAAW,EAAE,SADyC;AAEtD,MAAA,KAAK,EAAE,KAAK;AAF0C,KAAxC,CAAR,EAGJ,KAAK,UAAL,EAHI,CAAR;AAID;;AA3RgD,CAApC,CAAf","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType<any>,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // <v-switch loading>.loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n"],"sourceRoot":"","file":"VInput.js"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Styles
|
|
2
|
-
import "../../../src/components/VItemGroup/VItemGroup.sass";
|
|
2
|
+
import "../../../src/components/VItemGroup/VItemGroup.sass"; // Mixins
|
|
3
|
+
|
|
4
|
+
import Comparable from '../../mixins/comparable';
|
|
3
5
|
import Proxyable from '../../mixins/proxyable';
|
|
4
6
|
import Themeable from '../../mixins/themeable'; // Utilities
|
|
5
7
|
|
|
6
8
|
import mixins from '../../util/mixins';
|
|
7
9
|
import { consoleWarn } from '../../util/console';
|
|
8
|
-
export const BaseItemGroup = mixins(Proxyable, Themeable).extend({
|
|
10
|
+
export const BaseItemGroup = mixins(Comparable, Proxyable, Themeable).extend({
|
|
9
11
|
name: 'base-item-group',
|
|
10
12
|
props: {
|
|
11
13
|
activeClass: {
|
|
@@ -64,13 +66,13 @@ export const BaseItemGroup = mixins(Proxyable, Themeable).extend({
|
|
|
64
66
|
|
|
65
67
|
toggleMethod() {
|
|
66
68
|
if (!this.multiple) {
|
|
67
|
-
return v => this.internalValue
|
|
69
|
+
return v => this.valueComparator(this.internalValue, v);
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
const internalValue = this.internalValue;
|
|
71
73
|
|
|
72
74
|
if (Array.isArray(internalValue)) {
|
|
73
|
-
return v => internalValue.
|
|
75
|
+
return v => internalValue.some(intern => this.valueComparator(intern, v));
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
return () => false;
|
|
@@ -96,7 +98,7 @@ export const BaseItemGroup = mixins(Proxyable, Themeable).extend({
|
|
|
96
98
|
},
|
|
97
99
|
|
|
98
100
|
getValue(item, i) {
|
|
99
|
-
return item.value
|
|
101
|
+
return item.value === undefined ? i : item.value;
|
|
100
102
|
},
|
|
101
103
|
|
|
102
104
|
onClick(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VItemGroup/VItemGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record<string, boolean> {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.internalValue === v\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.includes(v)\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value == null || item.value === ''\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VItemGroup.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VItemGroup/VItemGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record<string, boolean> {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VItemGroup.js"}
|
|
@@ -359,7 +359,7 @@ export default baseMixins.extend({
|
|
|
359
359
|
|
|
360
360
|
getTiles() {
|
|
361
361
|
if (!this.$refs.content) return;
|
|
362
|
-
this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'));
|
|
362
|
+
this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'));
|
|
363
363
|
},
|
|
364
364
|
|
|
365
365
|
mouseEnterHandler() {
|