@dimailn/vuetify 2.7.2-alpha28 → 2.7.2-alpha29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vuetify.js +1416 -304
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAlert/VAlert.js +38 -8
- package/es5/components/VAlert/VAlert.js.map +1 -1
- package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
- package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/es5/components/VBadge/VBadge.js +28 -0
- package/es5/components/VBadge/VBadge.js.map +1 -1
- package/es5/components/VBanner/VBanner.js +34 -6
- package/es5/components/VBanner/VBanner.js.map +1 -1
- package/es5/components/VBottomNavigation/VBottomNavigation.js +25 -0
- package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/es5/components/VCarousel/VCarousel.js +28 -3
- package/es5/components/VCarousel/VCarousel.js.map +1 -1
- package/es5/components/VCheckbox/VSimpleCheckbox.js +30 -2
- package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/es5/components/VColorPicker/VColorPicker.js +30 -2
- package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
- package/es5/components/VCombobox/VCombobox.js +1 -0
- package/es5/components/VCombobox/VCombobox.js.map +1 -1
- package/es5/components/VDataIterator/VDataFooter.js +16 -7
- package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
- package/es5/components/VDataIterator/VDataIterator.js +42 -47
- package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
- package/es5/components/VDataTable/RowGroup.js +46 -15
- package/es5/components/VDataTable/RowGroup.js.map +1 -1
- package/es5/components/VDataTable/VDataTable.js +10 -18
- package/es5/components/VDataTable/VDataTable.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderMobile.js +28 -37
- package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
- package/es5/components/VDataTable/VEditDialog.js +3 -4
- package/es5/components/VDataTable/VEditDialog.js.map +1 -1
- package/es5/components/VDataTable/VSimpleTable.js +1 -1
- package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
- package/es5/components/VDataTable/VVirtualTable.js +5 -5
- package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
- package/es5/components/VDataTable/mixins/header.js +1 -1
- package/es5/components/VDataTable/mixins/header.js.map +1 -1
- package/es5/components/VDatePicker/VDatePicker.js +21 -9
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerHeader.js +24 -8
- package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerTitle.js +33 -8
- package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerYears.js +38 -13
- package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +33 -17
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VInput/VInput.js +36 -8
- package/es5/components/VInput/VInput.js.map +1 -1
- package/es5/components/VList/VListGroup.js +47 -21
- package/es5/components/VList/VListGroup.js.map +1 -1
- package/es5/components/VList/VListItem.js +29 -4
- package/es5/components/VList/VListItem.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +55 -30
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VMessages/VMessages.js +30 -7
- package/es5/components/VMessages/VMessages.js.map +1 -1
- package/es5/components/VNavigationDrawer/VNavigationDrawer.js +36 -9
- package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/es5/components/VOverlay/VOverlay.js +28 -0
- package/es5/components/VOverlay/VOverlay.js.map +1 -1
- package/es5/components/VPagination/VPagination.js +30 -6
- package/es5/components/VPagination/VPagination.js.map +1 -1
- package/es5/components/VProgressLinear/VProgressLinear.js +28 -0
- package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/es5/components/VRadioGroup/VRadioGroup.js +28 -0
- package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/es5/components/VRating/VRating.js +45 -17
- package/es5/components/VRating/VRating.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +112 -84
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VSelect/VSelectList.js +58 -17
- package/es5/components/VSelect/VSelectList.js.map +1 -1
- package/es5/components/VSlider/VSlider.js +42 -16
- package/es5/components/VSlider/VSlider.js.map +1 -1
- package/es5/components/VSpeedDial/VSpeedDial.js +10 -8
- package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
- package/es5/components/VTabs/VTabs.js +45 -17
- package/es5/components/VTabs/VTabs.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/validatable/index.js +24 -0
- package/es5/mixins/validatable/index.js.map +1 -1
- package/es5/util/console.js +49 -18
- package/es5/util/console.js.map +1 -1
- package/es5/util/helpers.js +5 -1
- package/es5/util/helpers.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +12 -6
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +11 -0
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +11 -0
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +7 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +7 -0
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VCheckbox/VSimpleCheckbox.js +11 -0
- package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +12 -1
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +1 -0
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.js +14 -7
- package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +26 -31
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/RowGroup.js +30 -14
- package/lib/components/VDataTable/RowGroup.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +8 -15
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.js +1 -1
- package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.js +17 -25
- package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
- package/lib/components/VDataTable/VEditDialog.js +3 -4
- package/lib/components/VDataTable/VEditDialog.js.map +1 -1
- package/lib/components/VDataTable/VSimpleTable.js +1 -1
- package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.js +1 -2
- package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
- package/lib/components/VDataTable/mixins/header.js +1 -1
- package/lib/components/VDataTable/mixins/header.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +7 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +12 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.js +11 -0
- package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +11 -1
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VInput/VInput.js +13 -3
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VList/VListGroup.js +16 -8
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.js +8 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +14 -3
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +13 -2
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +11 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +11 -0
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +11 -0
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +11 -0
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +11 -0
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRating/VRating.js +11 -0
- package/lib/components/VRating/VRating.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +52 -36
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelect/VSelectList.js +21 -3
- package/lib/components/VSelect/VSelectList.js.map +1 -1
- package/lib/components/VSlider/VSlider.js +11 -1
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.js +7 -7
- package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +11 -0
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/validatable/index.js +7 -1
- package/lib/mixins/validatable/index.js.map +1 -1
- package/lib/util/console.js +47 -17
- package/lib/util/console.js.map +1 -1
- package/lib/util/helpers.js +5 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VAlert/VAlert.ts +17 -7
- package/src/components/VAlert/__tests__/VAlert.spec.ts +78 -50
- package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +16 -18
- package/src/components/VAutocomplete/VAutocomplete.ts +22 -0
- package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +51 -53
- package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +77 -48
- package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +101 -39
- package/src/components/VBadge/VBadge.ts +13 -0
- package/src/components/VBanner/VBanner.ts +13 -0
- package/src/components/VBottomNavigation/VBottomNavigation.ts +10 -0
- package/src/components/VCarousel/VCarousel.ts +11 -0
- package/src/components/VCheckbox/VSimpleCheckbox.ts +13 -0
- package/src/components/VColorPicker/VColorPicker.ts +13 -0
- package/src/components/VCombobox/VCombobox.ts +23 -0
- package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +118 -110
- package/src/components/VCombobox/__tests__/VCombobox.spec.ts +119 -93
- package/src/components/VDataIterator/VDataFooter.ts +14 -9
- package/src/components/VDataIterator/VDataIterator.ts +46 -34
- package/src/components/VDataIterator/__tests__/VDataFooter.spec.ts +38 -39
- package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +90 -122
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +92 -82
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +79 -69
- package/src/components/VDataTable/RowGroup.ts +33 -16
- package/src/components/VDataTable/VDataTable.ts +8 -15
- package/src/components/VDataTable/VDataTableHeader.ts +2 -2
- package/src/components/VDataTable/VDataTableHeaderDesktop.ts +4 -0
- package/src/components/VDataTable/VDataTableHeaderMobile.ts +16 -25
- package/src/components/VDataTable/VEditDialog.ts +3 -3
- package/src/components/VDataTable/VSimpleTable.ts +2 -3
- package/src/components/VDataTable/VVirtualTable.ts +1 -2
- package/src/components/VDataTable/__tests__/VDataTable.spec.ts +18 -22
- package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +39 -29
- package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +7 -2
- package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +11 -16
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +2543 -2086
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +115 -144
- package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +4 -12
- package/src/components/VDataTable/__tests__/__snapshots__/VSimpleTable.spec.ts.snap +22 -18
- package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +9 -12
- package/src/components/VDataTable/mixins/__tests__/header.spec.ts +15 -15
- package/src/components/VDataTable/mixins/header.ts +1 -1
- package/src/components/VDatePicker/VDatePicker.ts +11 -1
- package/src/components/VDatePicker/VDatePickerHeader.ts +13 -0
- package/src/components/VDatePicker/VDatePickerTitle.ts +12 -0
- package/src/components/VDatePicker/VDatePickerYears.ts +13 -0
- package/src/components/VDatePicker/mixins/date-picker-table.ts +13 -0
- package/src/components/VInput/VInput.ts +18 -5
- package/src/components/VList/VListGroup.ts +22 -10
- package/src/components/VList/VListItem.ts +10 -1
- package/src/components/VMenu/VMenu.ts +21 -3
- package/src/components/VMenu/__tests__/VMenu.spec.ts +90 -69
- package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +3 -5
- package/src/components/VMessages/VMessages.ts +15 -4
- package/src/components/VMessages/__tests__/VMessages.spec.ts +43 -5
- package/src/components/VMessages/__tests__/__snapshots__/VMessages.spec.ts.snap +16 -25
- package/src/components/VNavigationDrawer/VNavigationDrawer.ts +21 -11
- package/src/components/VOverlay/VOverlay.ts +12 -0
- package/src/components/VPagination/VPagination.ts +23 -9
- package/src/components/VProgressLinear/VProgressLinear.ts +13 -0
- package/src/components/VRadioGroup/VRadioGroup.ts +14 -0
- package/src/components/VRating/VRating.ts +13 -0
- package/src/components/VSelect/VSelect.ts +60 -43
- package/src/components/VSelect/VSelectList.ts +29 -8
- package/src/components/VSlider/VSlider.ts +14 -1
- package/src/components/VSpeedDial/VSpeedDial.ts +7 -8
- package/src/components/VSpeedDial/__tests__/VSpeedDial.spec.ts +21 -13
- package/src/components/VSpeedDial/__tests__/__snapshots__/VSpeedDial.spec.ts.snap +6 -6
- package/src/components/VTabs/VTabs.ts +14 -0
- package/src/mixins/validatable/index.ts +11 -1
- package/src/util/__tests__/console.spec.ts +124 -11
- package/src/util/__tests__/helpers.spec.ts +59 -31
- package/src/util/console.ts +43 -24
- package/src/util/helpers.ts +8 -4
package/es5/util/console.js
CHANGED
|
@@ -14,7 +14,8 @@ var _framework = _interopRequireDefault(require("../framework"));
|
|
|
14
14
|
|
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
18
|
+
|
|
18
19
|
function createMessage(message, vm, parent) {
|
|
19
20
|
if (_framework.default.config.silent) return;
|
|
20
21
|
|
|
@@ -27,7 +28,6 @@ function createMessage(message, vm, parent) {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
if (vm) {
|
|
30
|
-
// Only show each message once per instance
|
|
31
31
|
vm.$_alreadyWarned = vm.$_alreadyWarned || [];
|
|
32
32
|
if (vm.$_alreadyWarned.includes(message)) return;
|
|
33
33
|
vm.$_alreadyWarned.push(message);
|
|
@@ -56,7 +56,7 @@ function deprecate(original, replacement, vm, parent) {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
function breaking(original, replacement, vm, parent) {
|
|
59
|
-
consoleError("[BREAKING] '".concat(original, "' has been removed, use '").concat(replacement, "' instead.
|
|
59
|
+
consoleError("[BREAKING] '".concat(original, "' has been removed, use '").concat(replacement, "' instead."), vm, parent);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
function removed(original, vm, parent) {
|
|
@@ -75,35 +75,66 @@ var classify = function classify(str) {
|
|
|
75
75
|
}).replace(/[-_]/g, '');
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
function formatComponentName(vm
|
|
79
|
-
|
|
78
|
+
function formatComponentName(vm) {
|
|
79
|
+
var _a, _b, _c;
|
|
80
|
+
|
|
81
|
+
if (vm === ((_c = (_b = (_a = vm === null || vm === void 0 ? void 0 : vm.appContext) === null || _a === void 0 ? void 0 : _a.app) === null || _b === void 0 ? void 0 : _b._instance) === null || _c === void 0 ? void 0 : _c.proxy)) {
|
|
80
82
|
return '<Root>';
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
var _extractComponentInfo = extractComponentInfo(vm),
|
|
86
|
+
name = _extractComponentInfo.name;
|
|
87
|
+
|
|
88
|
+
var additionalInfo = getAdditionalVue3Info(vm);
|
|
89
|
+
var componentName = name ? "<".concat(classify(name), ">") : '<Anonymous>';
|
|
90
|
+
var additionalInfoStr = additionalInfo.length > 0 ? " (".concat(additionalInfo.join(', '), ")") : '';
|
|
91
|
+
return componentName + additionalInfoStr;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function extractComponentInfo(vm) {
|
|
95
|
+
var _a;
|
|
96
|
+
|
|
97
|
+
var options = (vm === null || vm === void 0 ? void 0 : vm.$options) || ((_a = vm === null || vm === void 0 ? void 0 : vm.vnode) === null || _a === void 0 ? void 0 : _a.type) || (vm === null || vm === void 0 ? void 0 : vm.type) || vm || {};
|
|
98
|
+
return {
|
|
99
|
+
name: options.name
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function getAdditionalVue3Info(vm) {
|
|
104
|
+
var additionalInfo = [];
|
|
105
|
+
|
|
106
|
+
if ((vm === null || vm === void 0 ? void 0 : vm.props) && _typeof(vm.props) === 'object') {
|
|
107
|
+
var propKeys = Object.keys(vm.props).slice(0, 3);
|
|
108
|
+
|
|
109
|
+
if (propKeys.length > 0) {
|
|
110
|
+
additionalInfo.push("props: ".concat(propKeys.join(', ')).concat(Object.keys(vm.props).length > 3 ? '...' : ''));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if ((vm === null || vm === void 0 ? void 0 : vm.setupState) && _typeof(vm.setupState) === 'object') {
|
|
115
|
+
var setupKeys = Object.keys(vm.setupState).slice(0, 2);
|
|
86
116
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
117
|
+
if (setupKeys.length > 0) {
|
|
118
|
+
additionalInfo.push("setup: ".concat(setupKeys.join(', ')).concat(Object.keys(vm.setupState).length > 2 ? '...' : ''));
|
|
119
|
+
}
|
|
90
120
|
}
|
|
91
121
|
|
|
92
|
-
return
|
|
122
|
+
return additionalInfo;
|
|
93
123
|
}
|
|
94
124
|
|
|
95
125
|
function generateComponentTrace(vm) {
|
|
96
|
-
if (vm.
|
|
126
|
+
if ((vm === null || vm === void 0 ? void 0 : vm.parent) || (vm === null || vm === void 0 ? void 0 : vm.$parent)) {
|
|
97
127
|
var tree = [];
|
|
98
128
|
var currentRecursiveSequence = 0;
|
|
129
|
+
var currentVm = vm;
|
|
99
130
|
|
|
100
|
-
while (
|
|
131
|
+
while (currentVm) {
|
|
101
132
|
if (tree.length > 0) {
|
|
102
133
|
var last = tree[tree.length - 1];
|
|
103
134
|
|
|
104
|
-
if (last.constructor ===
|
|
135
|
+
if (last.constructor === currentVm.constructor) {
|
|
105
136
|
currentRecursiveSequence++;
|
|
106
|
-
|
|
137
|
+
currentVm = currentVm.parent || currentVm.$parent;
|
|
107
138
|
continue;
|
|
108
139
|
} else if (currentRecursiveSequence > 0) {
|
|
109
140
|
tree[tree.length - 1] = [last, currentRecursiveSequence];
|
|
@@ -111,8 +142,8 @@ function generateComponentTrace(vm) {
|
|
|
111
142
|
}
|
|
112
143
|
}
|
|
113
144
|
|
|
114
|
-
tree.push(
|
|
115
|
-
|
|
145
|
+
tree.push(currentVm);
|
|
146
|
+
currentVm = currentVm.parent || currentVm.$parent;
|
|
116
147
|
}
|
|
117
148
|
|
|
118
149
|
return '\n\nfound in\n\n' + tree.map(function (vm, i) {
|
package/es5/util/console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/console.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA
|
|
1
|
+
{"version":3,"sources":["../../src/util/console.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead.`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any): string {\n if (vm === vm?.appContext?.app?._instance?.proxy) {\n return '<Root>'\n }\n\n const { name } = extractComponentInfo(vm)\n const additionalInfo = getAdditionalVue3Info(vm)\n\n const componentName = name ? `<${classify(name)}>` : '<Anonymous>'\n const additionalInfoStr = additionalInfo.length > 0 ? ` (${additionalInfo.join(', ')})` : ''\n\n return componentName + additionalInfoStr\n}\n\nfunction extractComponentInfo (vm: any): { name?: string } {\n const options = vm?.$options || vm?.vnode?.type || vm?.type || vm || {}\n return { name: options.name }\n}\n\nfunction getAdditionalVue3Info (vm: any): string[] {\n const additionalInfo: string[] = []\n\n if (vm?.props && typeof vm.props === 'object') {\n const propKeys = Object.keys(vm.props).slice(0, 3)\n if (propKeys.length > 0) {\n additionalInfo.push(`props: ${propKeys.join(', ')}${Object.keys(vm.props).length > 3 ? '...' : ''}`)\n }\n }\n\n if (vm?.setupState && typeof vm.setupState === 'object') {\n const setupKeys = Object.keys(vm.setupState).slice(0, 2)\n if (setupKeys.length > 0) {\n additionalInfo.push(`setup: ${setupKeys.join(', ')}${Object.keys(vm.setupState).length > 2 ? '...' : ''}`)\n }\n }\n\n return additionalInfo\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm?.parent || vm?.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n let currentVm = vm\n\n while (currentVm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === currentVm.constructor) {\n currentRecursiveSequence++\n currentVm = currentVm.parent || currentVm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(currentVm)\n currentVm = currentVm.parent || currentVm.$parent\n }\n\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n"],"sourceRoot":"","file":"console.js"}
|
package/es5/util/helpers.js
CHANGED
|
@@ -173,7 +173,11 @@ function deepEqual(a, b) {
|
|
|
173
173
|
function getObjectValueByPath(obj, path, fallback) {
|
|
174
174
|
// credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621
|
|
175
175
|
if (obj == null || !path || typeof path !== 'string') return fallback;
|
|
176
|
-
|
|
176
|
+
|
|
177
|
+
if (obj !== null && _typeof(obj) === 'object' && !Array.isArray(obj) && path in obj && obj[path] !== undefined) {
|
|
178
|
+
return obj[path];
|
|
179
|
+
}
|
|
180
|
+
|
|
177
181
|
path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
|
|
178
182
|
|
|
179
183
|
path = path.replace(/^\./, ''); // strip a leading dot
|
package/es5/util/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {defineComponent, h} from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n c: string,\n el = 'div',\n name?: string\n) {\n return defineComponent({\n name: name || c.replace(/__/g, '-'),\n\n functional: true,\n\n props: {\n tag: {\n type: String,\n default: el,\n },\n },\n\n render (): VNode {\n const data = { ...this.$attrs }\n\n data.class = (`${c} ${data.class || ''}`).trim()\n\n return h(this.tag, data, this.$slots.default?.())\n },\n })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n return {\n ...defaults,\n ...binding.modifiers,\n value: binding.arg,\n ...(binding.value || {}),\n }\n}\n\nexport function addOnceEventListener (\n el: EventTarget,\n eventName: string,\n cb: (event: Event) => void,\n options: boolean | AddEventListenerOptions = false\n): void {\n const once = (event: Event) => {\n cb(event)\n el.removeEventListener(eventName, once, options)\n }\n\n el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n if (typeof window !== 'undefined') {\n const testListenerOpts = Object.defineProperty({}, 'passive', {\n get: () => {\n passiveSupported = true\n },\n }) as EventListener & EventListenerOptions\n\n window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n }\n} catch (e) { console.warn(e) } /* eslint-disable-line no-console */\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n el: EventTarget,\n event: string,\n cb: (event: any) => void,\n options: {}\n): void {\n el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (path in obj && obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function kebabCase (str: string): string {\n return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\n/**\n * This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n * to the current name or component for that icon.\n */\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n // Look for custom component in the configuration\n const component = vm.$vuetify.icons.component\n\n // Look for overrides\n if (iconName.startsWith('$')) {\n // Get the target icon name\n const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n // Now look up icon indirection name,\n // e.g. '$vuetify.icons.values.cancel'\n\n const override = getObjectValueByPath(vm, iconPath, iconName)\n\n if (typeof override === 'string') iconName = override\n else return override\n }\n\n if (component == null) {\n return iconName\n }\n\n return {\n component,\n props: {\n icon: iconName,\n },\n }\n}\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) < 0) diff.push(b[i])\n }\n return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters && customSorters[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n * - 'normal' for old style slots - `<template slot=\"default\">`\n * - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n return 'scoped'\n\n if (vm.$slots.hasOwnProperty(name) && vm.$slots.hasOwnProperty(name) && (vm.$slots[name] as any).name) {\n return split ? 'v-slot' as any : 'scoped'\n }\n if (vm.$slots.hasOwnProperty(name)) return 'normal'\n if (vm.$slots.hasOwnProperty(name)) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n obj[k.replace(prefix, '')] = scopedSlots[k]\n return obj\n }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n const kebabName = kebabCase(name)\n\n if (vm.$slots.hasOwnProperty(name)) {\n return vm.$slots[name]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(kebabName)) {\n return vm.$slots[kebabName]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {\n return vm.$slots[name]\n } else if (vm.$slots.hasOwnProperty(kebabName) && (!data || optional)) {\n return vm.$slots[kebabName]\n }\n return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\n/** Polyfill for Event.prototype.composedPath */\nexport function composedPath (e: Event): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n}\n\nexport function normalizeAttrs (attrs) {\n const keys = Object.keys(attrs).sort()\n\n const obj = {}\n\n for(let i = 0; i < keys.length; i++) {\n obj[keys[i]] = attrs[keys[i]]\n }\n\n return obj\n}\n\n/**\n * Нормализует классы из различных форматов в объект\n * @param classes - классы в виде строки, объекта или массива\n * @returns объект с нормализованными классами\n */\nexport function normalizeClasses (classes: string | Record<string, any> | Array<string | Record<string, any>> | undefined): Record<string, any> {\n if (!classes) return {}\n\n if (typeof classes === 'object' && !Array.isArray(classes)) {\n return classes\n }\n\n if (typeof classes === 'string') {\n const trimmed = classes.trim()\n if (!trimmed) return {}\n\n return trimmed.split(/\\s+/).reduce((acc, cls) => {\n acc[cls] = true\n return acc\n }, {} as Record<string, any>)\n }\n\n if (Array.isArray(classes)) {\n return classes.reduce((acc, cls) => {\n if (typeof cls === 'string') {\n const trimmed = cls.trim()\n if (trimmed) {\n trimmed.split(/\\s+/).forEach(className => {\n acc[className] = true\n })\n }\n } else if (cls && typeof cls === 'object') {\n Object.assign(acc, cls)\n }\n return acc\n }, {} as Record<string, any>)\n }\n\n return {}\n}\n"],"sourceRoot":"","file":"helpers.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineComponent, h } from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n c: string,\n el = 'div',\n name?: string\n) {\n return defineComponent({\n name: name || c.replace(/__/g, '-'),\n\n functional: true,\n\n props: {\n tag: {\n type: String,\n default: el,\n },\n },\n\n render (): VNode {\n const data = { ...this.$attrs }\n\n data.class = (`${c} ${data.class || ''}`).trim()\n\n return h(this.tag, data, this.$slots.default?.())\n },\n })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n return {\n ...defaults,\n ...binding.modifiers,\n value: binding.arg,\n ...(binding.value || {}),\n }\n}\n\nexport function addOnceEventListener (\n el: EventTarget,\n eventName: string,\n cb: (event: Event) => void,\n options: boolean | AddEventListenerOptions = false\n): void {\n const once = (event: Event) => {\n cb(event)\n el.removeEventListener(eventName, once, options)\n }\n\n el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n if (typeof window !== 'undefined') {\n const testListenerOpts = Object.defineProperty({}, 'passive', {\n get: () => {\n passiveSupported = true\n },\n }) as EventListener & EventListenerOptions\n\n window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n }\n} catch (e) { console.warn(e) } /* eslint-disable-line no-console */\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n el: EventTarget,\n event: string,\n cb: (event: any) => void,\n options: {}\n): void {\n el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj !== null && typeof obj === 'object' && !Array.isArray(obj) && path in obj && obj[path] !== undefined) {\n return obj[path]\n }\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function kebabCase (str: string): string {\n return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\n/**\n * This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n * to the current name or component for that icon.\n */\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n // Look for custom component in the configuration\n const component = vm.$vuetify.icons.component\n\n // Look for overrides\n if (iconName.startsWith('$')) {\n // Get the target icon name\n const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n // Now look up icon indirection name,\n // e.g. '$vuetify.icons.values.cancel'\n\n const override = getObjectValueByPath(vm, iconPath, iconName)\n\n if (typeof override === 'string') iconName = override\n else return override\n }\n\n if (component == null) {\n return iconName\n }\n\n return {\n component,\n props: {\n icon: iconName,\n },\n }\n}\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) < 0) diff.push(b[i])\n }\n return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters && customSorters[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n * - 'normal' for old style slots - `<template slot=\"default\">`\n * - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n return 'scoped'\n\n if (vm.$slots.hasOwnProperty(name) && vm.$slots.hasOwnProperty(name) && (vm.$slots[name] as any).name) {\n return split ? 'v-slot' as any : 'scoped'\n }\n if (vm.$slots.hasOwnProperty(name)) return 'normal'\n if (vm.$slots.hasOwnProperty(name)) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n obj[k.replace(prefix, '')] = scopedSlots[k]\n return obj\n }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n const kebabName = kebabCase(name)\n\n if (vm.$slots.hasOwnProperty(name)) {\n return vm.$slots[name]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(kebabName)) {\n return vm.$slots[kebabName]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {\n return vm.$slots[name]\n } else if (vm.$slots.hasOwnProperty(kebabName) && (!data || optional)) {\n return vm.$slots[kebabName]\n }\n return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\n/** Polyfill for Event.prototype.composedPath */\nexport function composedPath (e: Event): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n}\n\nexport function normalizeAttrs (attrs) {\n const keys = Object.keys(attrs).sort()\n\n const obj = {}\n\n for (let i = 0; i < keys.length; i++) {\n obj[keys[i]] = attrs[keys[i]]\n }\n\n return obj\n}\n\n/**\n * Нормализует классы из различных форматов в объект\n * @param classes - классы в виде строки, объекта или массива\n * @returns объект с нормализованными классами\n */\nexport function normalizeClasses (\n classes: string | Record<string, any> | Array<string | Record<string, any>> | undefined\n): Record<string, any> {\n if (!classes) return {}\n\n if (typeof classes === 'object' && !Array.isArray(classes)) {\n return classes\n }\n\n if (typeof classes === 'string') {\n const trimmed = classes.trim()\n if (!trimmed) return {}\n\n return trimmed.split(/\\s+/).reduce((acc, cls) => {\n acc[cls] = true\n return acc\n }, {} as Record<string, any>)\n }\n\n if (Array.isArray(classes)) {\n return classes.reduce((acc, cls) => {\n if (typeof cls === 'string') {\n const trimmed = cls.trim()\n if (trimmed) {\n trimmed.split(/\\s+/).forEach(className => {\n acc[className] = true\n })\n }\n } else if (cls && typeof cls === 'object') {\n Object.assign(acc, cls)\n }\n return acc\n }, {} as Record<string, any>)\n }\n\n return {}\n}\n"],"sourceRoot":"","file":"helpers.js"}
|
|
@@ -60,7 +60,7 @@ export default mixins(VSheet, Toggleable, Transitionable).extend({
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
},
|
|
63
|
-
|
|
63
|
+
modelValue: {
|
|
64
64
|
type: Boolean,
|
|
65
65
|
default: true
|
|
66
66
|
}
|
|
@@ -94,7 +94,9 @@ export default mixins(VSheet, Toggleable, Transitionable).extend({
|
|
|
94
94
|
onClick: () => this.isActive = false
|
|
95
95
|
}, [h(VIcon, {
|
|
96
96
|
color
|
|
97
|
-
},
|
|
97
|
+
}, {
|
|
98
|
+
default: () => this.closeIcon
|
|
99
|
+
})]);
|
|
98
100
|
},
|
|
99
101
|
|
|
100
102
|
__cachedIcon() {
|
|
@@ -102,7 +104,9 @@ export default mixins(VSheet, Toggleable, Transitionable).extend({
|
|
|
102
104
|
return h(VIcon, {
|
|
103
105
|
class: 'v-alert__icon',
|
|
104
106
|
color: this.iconColor
|
|
105
|
-
},
|
|
107
|
+
}, {
|
|
108
|
+
default: () => this.computedIcon
|
|
109
|
+
});
|
|
106
110
|
},
|
|
107
111
|
|
|
108
112
|
classes() {
|
|
@@ -152,10 +156,12 @@ export default mixins(VSheet, Toggleable, Transitionable).extend({
|
|
|
152
156
|
},
|
|
153
157
|
|
|
154
158
|
created() {
|
|
159
|
+
const breakingProps = [['outline', 'outlined'], ['value', 'modelValue'], ['onInput', 'onUpdate:modelValue']];
|
|
155
160
|
/* istanbul ignore next */
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
|
|
162
|
+
breakingProps.forEach(([original, replacement]) => {
|
|
163
|
+
if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this);
|
|
164
|
+
});
|
|
159
165
|
},
|
|
160
166
|
|
|
161
167
|
methods: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VAlert/VAlert.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNodeData, Transition } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n emits: ['update:modelValue'],\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n class: ['v-alert__border', {\n [`v-alert__border--${this.border}`]: true,\n }]\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return h('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return h(VBtn, {\n class: 'v-alert__dismissible',\n color,\n icon: true,\n small: true,\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n onClick: () => (this.isActive = false),\n }, [\n h(VIcon, {\n color,\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return h(VIcon, {\n class: 'v-alert__icon',\n color: this.iconColor,\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record<string, boolean> = {\n ...VSheet.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n getSlot(this, 'prepend') || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n getSlot(this, 'append'),\n this.$slots.close\n ? this.$slots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n class: 'v-alert__wrapper',\n }\n\n return h('div', data, children)\n },\n genContent (): VNode {\n return h('div', {\n class: 'v-alert__content',\n }, getSlot(this))\n },\n genAlert (): VNode {\n let data: VNodeData = {\n class: ['v-alert', this.classes],\n role: 'alert',\n ...this.listeners$,\n style: this.styles\n }\n\n const directives = [\n [\n vShow,\n this.isActive\n ]\n ]\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return withDirectives(h('div', data, [this.genWrapper()]), directives)\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode\n }, [render])\n },\n})\n"],"sourceRoot":"","file":"VAlert.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VAlert/VAlert.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, vShow, withDirectives} from 'vue'\n// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNodeData, Transition } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n emits: ['update:modelValue'],\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n class: ['v-alert__border', {\n [`v-alert__border--${this.border}`]: true,\n }]\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return h('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return h(VBtn, {\n class: 'v-alert__dismissible',\n color,\n icon: true,\n small: true,\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n onClick: () => (this.isActive = false),\n }, [\n h(VIcon, {\n color,\n }, {\n default: () => this.closeIcon\n }),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return h(VIcon, {\n class: 'v-alert__icon',\n color: this.iconColor,\n }, {\n default: () => this.computedIcon\n })\n },\n classes (): object {\n const classes: Record<string, boolean> = {\n ...VSheet.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.computed.isDark.call(this)\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n getSlot(this, 'prepend') || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n getSlot(this, 'append'),\n this.$slots.close\n ? this.$slots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n class: 'v-alert__wrapper',\n }\n\n return h('div', data, children)\n },\n genContent (): VNode {\n return h('div', {\n class: 'v-alert__content',\n }, getSlot(this))\n },\n genAlert (): VNode {\n let data: VNodeData = {\n class: ['v-alert', this.classes],\n role: 'alert',\n ...this.listeners$,\n style: this.styles\n }\n\n const directives = [\n [\n vShow,\n this.isActive\n ]\n ]\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return withDirectives(h('div', data, [this.genWrapper()]), directives)\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode\n }, [render])\n },\n})"],"sourceRoot":"","file":"VAlert.js"}
|
|
@@ -16,6 +16,7 @@ const defaultMenuProps = { ...VSelectMenuProps,
|
|
|
16
16
|
export default defineComponent({
|
|
17
17
|
name: 'v-autocomplete',
|
|
18
18
|
extends: VSelect,
|
|
19
|
+
emits: ['update:search-input', 'update:modelValue', 'change', 'focus', 'blur', 'keydown', 'click', 'update:list-index', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'click:prepend', 'click:append', 'click:append-outer', 'click:prepend-inner', 'click:clear', 'input', 'update:error'],
|
|
19
20
|
props: {
|
|
20
21
|
autoSelectFirst: {
|
|
21
22
|
type: Boolean,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport { defineComponent, mergeProps } from 'vue'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-autocomplete',\n extends: VSelect,\n\n props: {\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType<string | null>,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n unmounted () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.methods.genInput.call(this)\n\n const ariaActiveDescendant = getObjectValueByPath(this.$refs.menu, 'activeTile.id')\n const autocomplete = getObjectValueByPath(input.props, 'autocomplete', 'off')\n\n // в оригинале class не пробрасывался в инпут\n input.props = mergeProps({\n ...input.props,\n class: undefined\n }, {\n 'aria-activedescendant': ariaActiveDescendant,\n autocomplete,\n value: this.internalSearch,\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.methods.genInputSlot.call(this)\n\n slot.props.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n"],"sourceRoot":"","file":"VAutocomplete.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VAutocomplete/VAutocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport { defineComponent, mergeProps } from 'vue'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-autocomplete',\n extends: VSelect,\n\n emits: [\n 'update:search-input',\n 'update:modelValue',\n 'change',\n 'focus',\n 'blur',\n 'keydown',\n 'click',\n 'update:list-index',\n 'mousedown',\n 'mouseup',\n 'touchstart',\n 'touchend',\n 'click:prepend',\n 'click:append',\n 'click:append-outer',\n 'click:prepend-inner',\n 'click:clear',\n 'input',\n 'update:error',\n ],\n\n props: {\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType<string | null>,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n unmounted () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.methods.genInput.call(this)\n\n const ariaActiveDescendant = getObjectValueByPath(this.$refs.menu, 'activeTile.id')\n const autocomplete = getObjectValueByPath(input.props, 'autocomplete', 'off')\n\n // в оригинале class не пробрасывался в инпут\n input.props = mergeProps({\n ...input.props,\n class: undefined\n }, {\n 'aria-activedescendant': ariaActiveDescendant,\n autocomplete,\n value: this.internalSearch,\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.methods.genInputSlot.call(this)\n\n slot.props.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n"],"sourceRoot":"","file":"VAutocomplete.js"}
|
|
@@ -12,6 +12,7 @@ import { factory as PositionableFactory } from '../../mixins/positionable';
|
|
|
12
12
|
import mergeData from '../../util/mergeData'; // Utilities
|
|
13
13
|
|
|
14
14
|
import { convertToUnit, getSlot } from '../../util/helpers';
|
|
15
|
+
import { breaking } from '../../util/console';
|
|
15
16
|
const Toggleable = ToggleableFactory('modelValue', 'update:modelValue');
|
|
16
17
|
export default defineComponent({
|
|
17
18
|
name: 'v-badge',
|
|
@@ -116,6 +117,16 @@ export default defineComponent({
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
},
|
|
120
|
+
|
|
121
|
+
created() {
|
|
122
|
+
const breakingProps = [['value', 'modelValue'], ['onInput', 'onUpdate:modelValue']];
|
|
123
|
+
/* istanbul ignore next */
|
|
124
|
+
|
|
125
|
+
breakingProps.forEach(([original, replacement]) => {
|
|
126
|
+
if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this);
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
|
|
119
130
|
methods: {
|
|
120
131
|
calcPosition(offset) {
|
|
121
132
|
return `calc(100% - ${convertToUnit(offset || this.offset)})`;
|