vuetify 3.7.0 → 3.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +172 -172
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +160 -160
- package/dist/json/web-types.json +230 -219
- package/dist/vuetify-labs.css +1941 -1926
- package/dist/vuetify-labs.d.ts +4266 -2397
- package/dist/vuetify-labs.esm.js +107 -111
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +107 -111
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1521 -1506
- package/dist/vuetify.d.ts +1282 -901
- package/dist/vuetify.esm.js +79 -54
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +79 -54
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1087 -1086
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +4 -1
- package/lib/blueprints/md1.d.mts +4 -1
- package/lib/blueprints/md2.d.mts +4 -1
- package/lib/blueprints/md3.d.mts +4 -1
- package/lib/components/VAlert/index.d.mts +14 -11
- package/lib/components/VAppBar/index.d.mts +22 -19
- package/lib/components/VAutocomplete/index.d.mts +158 -110
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VAvatar/index.d.mts +8 -5
- package/lib/components/VBadge/index.d.mts +8 -5
- package/lib/components/VBanner/index.d.mts +18 -15
- package/lib/components/VBottomNavigation/index.d.mts +4 -4
- package/lib/components/VBottomSheet/index.d.mts +11 -11
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +8 -5
- package/lib/components/VBtn/VBtn.mjs +3 -4
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +18 -15
- package/lib/components/VBtnGroup/index.d.mts +4 -4
- package/lib/components/VBtnToggle/index.d.mts +4 -4
- package/lib/components/VCard/VCard.mjs +3 -4
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +18 -15
- package/lib/components/VCarousel/index.d.mts +17 -14
- package/lib/components/VCheckbox/index.d.mts +8 -5
- package/lib/components/VChip/VChip.mjs +2 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +12 -9
- package/lib/components/VChipGroup/index.d.mts +8 -5
- package/lib/components/VColorPicker/index.d.mts +22 -22
- package/lib/components/VCombobox/index.d.mts +158 -110
- package/lib/components/VDataTable/index.d.mts +18 -15
- package/lib/components/VDatePicker/index.d.mts +16 -13
- package/lib/components/VDialog/VDialog.css +4 -1
- package/lib/components/VDialog/VDialog.mjs +3 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +2 -1
- package/lib/components/VDialog/index.d.mts +89 -50
- package/lib/components/VEmptyState/index.d.mts +12 -9
- package/lib/components/VExpansionPanel/index.d.mts +8 -5
- package/lib/components/VFab/index.d.mts +22 -19
- package/lib/components/VField/index.d.mts +4 -1
- package/lib/components/VFileInput/index.d.mts +34 -7
- package/lib/components/VFooter/index.d.mts +4 -4
- package/lib/components/VForm/index.d.mts +96 -3
- package/lib/components/VIcon/index.d.mts +8 -5
- package/lib/components/VInfiniteScroll/VInfiniteScroll.css +13 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +6 -8
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -1
- package/lib/components/VInput/index.d.mts +6 -3
- package/lib/components/VItemGroup/index.d.mts +4 -4
- package/lib/components/VLabel/index.d.mts +4 -4
- package/lib/components/VList/VList.mjs +4 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +8 -6
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +84 -24
- package/lib/components/VMenu/index.d.mts +92 -50
- package/lib/components/VMessages/index.d.mts +8 -8
- package/lib/components/VNavigationDrawer/index.d.mts +18 -18
- package/lib/components/VOtpInput/index.d.mts +4 -4
- package/lib/components/VOverlay/index.d.mts +11 -11
- package/lib/components/VPagination/index.d.mts +8 -5
- package/lib/components/VProgressCircular/index.d.mts +4 -4
- package/lib/components/VRadio/index.d.mts +4 -1
- package/lib/components/VRadioGroup/index.d.mts +6 -3
- package/lib/components/VRangeSlider/index.d.mts +12 -9
- package/lib/components/VRating/index.d.mts +4 -1
- package/lib/components/VSelect/index.d.mts +158 -110
- package/lib/components/VSelectionControl/index.d.mts +4 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +4 -1
- package/lib/components/VSheet/index.d.mts +10 -10
- package/lib/components/VSkeletonLoader/index.d.mts +4 -4
- package/lib/components/VSlideGroup/index.d.mts +4 -1
- package/lib/components/VSlider/index.d.mts +12 -9
- package/lib/components/VSnackbar/index.d.mts +95 -62
- package/lib/components/VSpeedDial/index.d.mts +11 -11
- package/lib/components/VStepper/index.d.mts +12 -12
- package/lib/components/VSwitch/index.d.mts +6 -3
- package/lib/components/VSystemBar/index.d.mts +4 -4
- package/lib/components/VTabs/index.d.mts +69 -54
- package/lib/components/VTextField/index.d.mts +47 -14
- package/lib/components/VTextarea/index.d.mts +38 -11
- package/lib/components/VTimeline/index.d.mts +8 -5
- package/lib/components/VToolbar/index.d.mts +4 -4
- package/lib/components/VTooltip/index.d.mts +78 -45
- package/lib/components/VWindow/index.d.mts +10 -7
- package/lib/components/index.d.mts +1204 -814
- package/lib/components/index.mjs +1 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +1 -1
- package/lib/composables/directiveComponent.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +2 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +18 -6
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +2 -4
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/router.mjs +19 -9
- package/lib/composables/router.mjs.map +1 -1
- package/lib/directives/tooltip/index.mjs +1 -1
- package/lib/directives/tooltip/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa-svg.d.mts +4 -1
- package/lib/iconsets/fa.d.mts +4 -1
- package/lib/iconsets/fa4.d.mts +4 -1
- package/lib/iconsets/md.d.mts +4 -1
- package/lib/iconsets/mdi-svg.d.mts +4 -1
- package/lib/iconsets/mdi.d.mts +4 -1
- package/lib/index.d.mts +82 -88
- package/lib/labs/VDateInput/index.d.mts +16 -13
- package/lib/labs/VNumberInput/VNumberInput.mjs +7 -1
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +2212 -730
- package/lib/labs/VPicker/index.d.mts +10 -10
- package/lib/labs/VSnackbarQueue/index.d.mts +128 -95
- package/lib/labs/VStepperVertical/index.d.mts +10 -7
- package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
- package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -2
- package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +26 -26
- package/lib/labs/VTimePicker/util.mjs +5 -0
- package/lib/labs/VTimePicker/util.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeview.mjs +3 -12
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -20
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +44 -41
- package/lib/labs/components.d.mts +2515 -1000
- package/lib/util/helpers.mjs +7 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +7 -13
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -21
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs +0 -22
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
- package/lib/components/VDatePicker/util/index.mjs +0 -9
- package/lib/components/VDatePicker/util/index.mjs.map +0 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs +0 -7
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
- package/lib/components/VDatePicker/util/monthChange.mjs +0 -18
- package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
- package/lib/components/VDatePicker/util/pad.mjs +0 -21
- package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs +0 -12
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
- package/lib/components/VTreeview/VTreeview.mjs +0 -350
- package/lib/components/VTreeview/VTreeview.mjs.map +0 -1
- package/lib/components/VTreeview/VTreeview.sass +0 -128
- package/lib/components/VTreeview/VTreeviewNode.mjs +0 -321
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +0 -1
- package/lib/components/VTreeview/_mixins.sass +0 -18
- package/lib/components/VTreeview/_variables.scss +0 -10
- package/lib/components/VTreeview/index.mjs +0 -10
- package/lib/components/VTreeview/index.mjs.map +0 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -25
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +0 -1
- package/lib/services/goto/easing-patterns.mjs +0 -27
- package/lib/services/goto/easing-patterns.mjs.map +0 -1
- package/lib/services/goto/index.mjs +0 -73
- package/lib/services/goto/index.mjs.map +0 -1
- package/lib/services/goto/util.mjs +0 -39
- package/lib/services/goto/util.mjs.map +0 -1
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.7.
|
|
2
|
+
* Vuetify v3.7.2
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -162,6 +162,10 @@ function convertToUnit(str) {
|
|
|
162
162
|
function isObject(obj) {
|
|
163
163
|
return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
|
|
164
164
|
}
|
|
165
|
+
function isPlainObject(obj) {
|
|
166
|
+
let proto;
|
|
167
|
+
return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
|
|
168
|
+
}
|
|
165
169
|
function refElement(obj) {
|
|
166
170
|
if (obj && '$el' in obj) {
|
|
167
171
|
const el = obj.$el;
|
|
@@ -311,7 +315,7 @@ function padEnd(str, length) {
|
|
|
311
315
|
let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
|
312
316
|
return str + char.repeat(Math.max(0, length - str.length));
|
|
313
317
|
}
|
|
314
|
-
function padStart
|
|
318
|
+
function padStart(str, length) {
|
|
315
319
|
let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
|
316
320
|
return char.repeat(Math.max(0, length - str.length)) + str;
|
|
317
321
|
}
|
|
@@ -357,12 +361,12 @@ function mergeDeep() {
|
|
|
357
361
|
const targetProperty = target[key];
|
|
358
362
|
|
|
359
363
|
// Only continue deep merging if
|
|
360
|
-
// both properties are objects
|
|
361
|
-
if (
|
|
364
|
+
// both properties are plain objects
|
|
365
|
+
if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
|
|
362
366
|
out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
|
|
363
367
|
continue;
|
|
364
368
|
}
|
|
365
|
-
if (Array.isArray(sourceProperty) && Array.isArray(targetProperty)
|
|
369
|
+
if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
|
|
366
370
|
out[key] = arrayFn(sourceProperty, targetProperty);
|
|
367
371
|
continue;
|
|
368
372
|
}
|
|
@@ -5152,10 +5156,14 @@ function useLink(props, attrs) {
|
|
|
5152
5156
|
return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
|
|
5153
5157
|
});
|
|
5154
5158
|
if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {
|
|
5159
|
+
const href = toRef(props, 'href');
|
|
5155
5160
|
return {
|
|
5156
5161
|
isLink,
|
|
5157
5162
|
isClickable,
|
|
5158
|
-
href
|
|
5163
|
+
href,
|
|
5164
|
+
linkProps: reactive({
|
|
5165
|
+
href
|
|
5166
|
+
})
|
|
5159
5167
|
};
|
|
5160
5168
|
}
|
|
5161
5169
|
// vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
|
|
@@ -5167,18 +5175,24 @@ function useLink(props, attrs) {
|
|
|
5167
5175
|
// Actual link needs to be undefined when to prop is not used
|
|
5168
5176
|
const link = computed(() => props.to ? routerLink : undefined);
|
|
5169
5177
|
const route = useRoute();
|
|
5178
|
+
const isActive = computed(() => {
|
|
5179
|
+
if (!link.value) return false;
|
|
5180
|
+
if (!props.exact) return link.value.isActive?.value ?? false;
|
|
5181
|
+
if (!route.value) return link.value.isExactActive?.value ?? false;
|
|
5182
|
+
return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
|
|
5183
|
+
});
|
|
5184
|
+
const href = computed(() => props.to ? link.value?.route.value.href : props.href);
|
|
5170
5185
|
return {
|
|
5171
5186
|
isLink,
|
|
5172
5187
|
isClickable,
|
|
5188
|
+
isActive,
|
|
5173
5189
|
route: link.value?.route,
|
|
5174
5190
|
navigate: link.value?.navigate,
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
}),
|
|
5181
|
-
href: computed(() => props.to ? link.value?.route.value.href : props.href)
|
|
5191
|
+
href,
|
|
5192
|
+
linkProps: reactive({
|
|
5193
|
+
href,
|
|
5194
|
+
'aria-current': computed(() => isActive.value ? 'page' : undefined)
|
|
5195
|
+
})
|
|
5182
5196
|
};
|
|
5183
5197
|
}
|
|
5184
5198
|
const makeRouterProps = propsFactory({
|
|
@@ -5653,7 +5667,7 @@ const VBtn = genericComponent()({
|
|
|
5653
5667
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
|
5654
5668
|
const hasAppend = !!(props.appendIcon || slots.append);
|
|
5655
5669
|
const hasIcon = !!(props.icon && props.icon !== true);
|
|
5656
|
-
return withDirectives(createVNode(Tag, {
|
|
5670
|
+
return withDirectives(createVNode(Tag, mergeProps({
|
|
5657
5671
|
"type": Tag === 'a' ? undefined : 'button',
|
|
5658
5672
|
"class": ['v-btn', group?.selectedClass.value, {
|
|
5659
5673
|
'v-btn--active': isActive.value,
|
|
@@ -5670,11 +5684,10 @@ const VBtn = genericComponent()({
|
|
|
5670
5684
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
5671
5685
|
"aria-busy": props.loading ? true : undefined,
|
|
5672
5686
|
"disabled": isDisabled.value || undefined,
|
|
5673
|
-
"href": link.href.value,
|
|
5674
5687
|
"tabindex": props.loading || props.readonly ? -1 : undefined,
|
|
5675
5688
|
"onClick": onClick,
|
|
5676
5689
|
"value": valueAttr.value
|
|
5677
|
-
}, {
|
|
5690
|
+
}, link.linkProps), {
|
|
5678
5691
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
|
|
5679
5692
|
"key": "prepend",
|
|
5680
5693
|
"class": "v-btn__prepend"
|
|
@@ -7937,7 +7950,7 @@ const VChip = genericComponent()({
|
|
|
7937
7950
|
const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
|
|
7938
7951
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
7939
7952
|
const hasColor = !group || group.isSelected.value;
|
|
7940
|
-
return isActive.value && withDirectives(createVNode(Tag, {
|
|
7953
|
+
return isActive.value && withDirectives(createVNode(Tag, mergeProps({
|
|
7941
7954
|
"class": ['v-chip', {
|
|
7942
7955
|
'v-chip--disabled': props.disabled,
|
|
7943
7956
|
'v-chip--label': props.label,
|
|
@@ -7948,11 +7961,10 @@ const VChip = genericComponent()({
|
|
|
7948
7961
|
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
7949
7962
|
"disabled": props.disabled || undefined,
|
|
7950
7963
|
"draggable": props.draggable,
|
|
7951
|
-
"href": link.href.value,
|
|
7952
7964
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7953
7965
|
"onClick": onClick,
|
|
7954
7966
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7955
|
-
}, {
|
|
7967
|
+
}, link.linkProps), {
|
|
7956
7968
|
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
|
|
7957
7969
|
"key": "filter"
|
|
7958
7970
|
}, {
|
|
@@ -8197,7 +8209,6 @@ const leafSingleActiveStrategy = mandatory => {
|
|
|
8197
8209
|
return strategy;
|
|
8198
8210
|
};
|
|
8199
8211
|
|
|
8200
|
-
// Utilities
|
|
8201
8212
|
const singleOpenStrategy = {
|
|
8202
8213
|
open: _ref => {
|
|
8203
8214
|
let {
|
|
@@ -8231,11 +8242,11 @@ const multipleOpenStrategy = {
|
|
|
8231
8242
|
parents
|
|
8232
8243
|
} = _ref2;
|
|
8233
8244
|
if (value) {
|
|
8234
|
-
let parent =
|
|
8245
|
+
let parent = parents.get(id);
|
|
8235
8246
|
opened.add(id);
|
|
8236
8247
|
while (parent != null && parent !== id) {
|
|
8237
8248
|
opened.add(parent);
|
|
8238
|
-
parent =
|
|
8249
|
+
parent = parents.get(parent);
|
|
8239
8250
|
}
|
|
8240
8251
|
return opened;
|
|
8241
8252
|
} else {
|
|
@@ -8477,7 +8488,8 @@ const emptyNested = {
|
|
|
8477
8488
|
opened: ref(new Set()),
|
|
8478
8489
|
activated: ref(new Set()),
|
|
8479
8490
|
selected: ref(new Map()),
|
|
8480
|
-
selectedValues: ref([])
|
|
8491
|
+
selectedValues: ref([]),
|
|
8492
|
+
getPath: () => []
|
|
8481
8493
|
}
|
|
8482
8494
|
};
|
|
8483
8495
|
const makeNestedProps = propsFactory({
|
|
@@ -8495,7 +8507,7 @@ const useNested = props => {
|
|
|
8495
8507
|
let isUnmounted = false;
|
|
8496
8508
|
const children = ref(new Map());
|
|
8497
8509
|
const parents = ref(new Map());
|
|
8498
|
-
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(
|
|
8510
|
+
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
|
8499
8511
|
const activeStrategy = computed(() => {
|
|
8500
8512
|
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
|
8501
8513
|
if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
|
|
@@ -8555,6 +8567,7 @@ const useNested = props => {
|
|
|
8555
8567
|
return path;
|
|
8556
8568
|
}
|
|
8557
8569
|
const vm = getCurrentInstance('nested');
|
|
8570
|
+
const nodeIds = new Set();
|
|
8558
8571
|
const nested = {
|
|
8559
8572
|
id: shallowRef(),
|
|
8560
8573
|
root: {
|
|
@@ -8571,6 +8584,14 @@ const useNested = props => {
|
|
|
8571
8584
|
return arr;
|
|
8572
8585
|
}),
|
|
8573
8586
|
register: (id, parentId, isGroup) => {
|
|
8587
|
+
if (nodeIds.has(id)) {
|
|
8588
|
+
const path = getPath(id).join(' -> ');
|
|
8589
|
+
const newPath = getPath(parentId).concat(id).join(' -> ');
|
|
8590
|
+
consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
|
|
8591
|
+
return;
|
|
8592
|
+
} else {
|
|
8593
|
+
nodeIds.add(id);
|
|
8594
|
+
}
|
|
8574
8595
|
parentId && id !== parentId && parents.value.set(id, parentId);
|
|
8575
8596
|
isGroup && children.value.set(id, []);
|
|
8576
8597
|
if (parentId != null) {
|
|
@@ -8579,6 +8600,7 @@ const useNested = props => {
|
|
|
8579
8600
|
},
|
|
8580
8601
|
unregister: id => {
|
|
8581
8602
|
if (isUnmounted) return;
|
|
8603
|
+
nodeIds.delete(id);
|
|
8582
8604
|
children.value.delete(id);
|
|
8583
8605
|
const parent = parents.value.get(id);
|
|
8584
8606
|
if (parent) {
|
|
@@ -8655,7 +8677,8 @@ const useNested = props => {
|
|
|
8655
8677
|
newActivated && (activated.value = newActivated);
|
|
8656
8678
|
},
|
|
8657
8679
|
children,
|
|
8658
|
-
parents
|
|
8680
|
+
parents,
|
|
8681
|
+
getPath
|
|
8659
8682
|
}
|
|
8660
8683
|
};
|
|
8661
8684
|
provide(VNestedSymbol, nested);
|
|
@@ -8668,9 +8691,9 @@ const useNestedItem = (id, isGroup) => {
|
|
|
8668
8691
|
const item = {
|
|
8669
8692
|
...parent,
|
|
8670
8693
|
id: computedId,
|
|
8671
|
-
open: (open, e) => parent.root.open(
|
|
8694
|
+
open: (open, e) => parent.root.open(computedId.value, open, e),
|
|
8672
8695
|
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
|
8673
|
-
isOpen: computed(() => parent.root.opened.value.has(
|
|
8696
|
+
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
|
8674
8697
|
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
|
8675
8698
|
activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
|
|
8676
8699
|
isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
|
|
@@ -8900,7 +8923,8 @@ const VListItem = genericComponent()({
|
|
|
8900
8923
|
isGroupActivator,
|
|
8901
8924
|
root,
|
|
8902
8925
|
parent,
|
|
8903
|
-
openOnSelect
|
|
8926
|
+
openOnSelect,
|
|
8927
|
+
id: uid
|
|
8904
8928
|
} = useNestedItem(id, false);
|
|
8905
8929
|
const list = useList();
|
|
8906
8930
|
const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
|
|
@@ -8984,7 +9008,7 @@ const VListItem = genericComponent()({
|
|
|
8984
9008
|
if (props.activeColor) {
|
|
8985
9009
|
deprecate('active-color', ['color', 'base-color']);
|
|
8986
9010
|
}
|
|
8987
|
-
return withDirectives(createVNode(Tag, {
|
|
9011
|
+
return withDirectives(createVNode(Tag, mergeProps({
|
|
8988
9012
|
"class": ['v-list-item', {
|
|
8989
9013
|
'v-list-item--active': isActive.value,
|
|
8990
9014
|
'v-list-item--disabled': props.disabled,
|
|
@@ -8995,11 +9019,10 @@ const VListItem = genericComponent()({
|
|
|
8995
9019
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
8996
9020
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8997
9021
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
8998
|
-
"href": link.href.value,
|
|
8999
9022
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
9000
9023
|
"onClick": onClick,
|
|
9001
9024
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
9002
|
-
}, {
|
|
9025
|
+
}, link.linkProps), {
|
|
9003
9026
|
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
|
|
9004
9027
|
"key": "prepend",
|
|
9005
9028
|
"class": "v-list-item__prepend"
|
|
@@ -9086,7 +9109,9 @@ const VListItem = genericComponent()({
|
|
|
9086
9109
|
isGroupActivator,
|
|
9087
9110
|
isSelected,
|
|
9088
9111
|
list,
|
|
9089
|
-
select
|
|
9112
|
+
select,
|
|
9113
|
+
root,
|
|
9114
|
+
id: uid
|
|
9090
9115
|
};
|
|
9091
9116
|
}
|
|
9092
9117
|
});
|
|
@@ -9487,7 +9512,8 @@ const VList = genericComponent()({
|
|
|
9487
9512
|
children,
|
|
9488
9513
|
open,
|
|
9489
9514
|
parents,
|
|
9490
|
-
select
|
|
9515
|
+
select,
|
|
9516
|
+
getPath
|
|
9491
9517
|
} = useNested(props);
|
|
9492
9518
|
const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
9493
9519
|
const activeColor = toRef(props, 'activeColor');
|
|
@@ -9579,7 +9605,8 @@ const VList = genericComponent()({
|
|
|
9579
9605
|
select,
|
|
9580
9606
|
focus,
|
|
9581
9607
|
children,
|
|
9582
|
-
parents
|
|
9608
|
+
parents,
|
|
9609
|
+
getPath
|
|
9583
9610
|
};
|
|
9584
9611
|
}
|
|
9585
9612
|
});
|
|
@@ -11031,6 +11058,8 @@ const Refs = Symbol('Forwarded refs');
|
|
|
11031
11058
|
|
|
11032
11059
|
/** Omit properties starting with P */
|
|
11033
11060
|
|
|
11061
|
+
/** Omit keyof $props from T */
|
|
11062
|
+
|
|
11034
11063
|
function getDescriptor(obj, key) {
|
|
11035
11064
|
let currentObj = obj;
|
|
11036
11065
|
while (currentObj) {
|
|
@@ -13686,6 +13715,7 @@ const VDialog = genericComponent()({
|
|
|
13686
13715
|
props: makeVDialogProps(),
|
|
13687
13716
|
emits: {
|
|
13688
13717
|
'update:modelValue': value => true,
|
|
13718
|
+
afterEnter: () => true,
|
|
13689
13719
|
afterLeave: () => true
|
|
13690
13720
|
},
|
|
13691
13721
|
setup(props, _ref) {
|
|
@@ -13727,6 +13757,7 @@ const VDialog = genericComponent()({
|
|
|
13727
13757
|
});
|
|
13728
13758
|
}
|
|
13729
13759
|
function onAfterEnter() {
|
|
13760
|
+
emit('afterEnter');
|
|
13730
13761
|
if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
|
|
13731
13762
|
overlay.value.contentEl.focus({
|
|
13732
13763
|
preventScroll: true
|
|
@@ -13747,8 +13778,7 @@ const VDialog = genericComponent()({
|
|
|
13747
13778
|
useRender(() => {
|
|
13748
13779
|
const overlayProps = VOverlay.filterProps(props);
|
|
13749
13780
|
const activatorProps = mergeProps({
|
|
13750
|
-
'aria-haspopup': 'dialog'
|
|
13751
|
-
'aria-expanded': String(isActive.value)
|
|
13781
|
+
'aria-haspopup': 'dialog'
|
|
13752
13782
|
}, props.activatorProps);
|
|
13753
13783
|
const contentProps = mergeProps({
|
|
13754
13784
|
tabindex: -1
|
|
@@ -13879,12 +13909,10 @@ const VBreadcrumbsItem = genericComponent()({
|
|
|
13879
13909
|
"style": [textColorStyles.value, props.style],
|
|
13880
13910
|
"aria-current": isActive.value ? 'page' : undefined
|
|
13881
13911
|
}, {
|
|
13882
|
-
default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", {
|
|
13912
|
+
default: () => [!link.isLink.value ? slots.default?.() ?? props.title : createVNode("a", mergeProps({
|
|
13883
13913
|
"class": "v-breadcrumbs-item--link",
|
|
13884
|
-
"href": link.href.value,
|
|
13885
|
-
"aria-current": isActive.value ? 'page' : undefined,
|
|
13886
13914
|
"onClick": link.navigate
|
|
13887
|
-
}, [slots.default?.() ?? props.title])]
|
|
13915
|
+
}, link.linkProps), [slots.default?.() ?? props.title])]
|
|
13888
13916
|
});
|
|
13889
13917
|
});
|
|
13890
13918
|
return {};
|
|
@@ -14260,7 +14288,7 @@ const VCard = genericComponent()({
|
|
|
14260
14288
|
const hasImage = !!(slots.image || props.image);
|
|
14261
14289
|
const hasCardItem = hasHeader || hasPrepend || hasAppend;
|
|
14262
14290
|
const hasText = !!(slots.text || props.text != null);
|
|
14263
|
-
return withDirectives(createVNode(Tag, {
|
|
14291
|
+
return withDirectives(createVNode(Tag, mergeProps({
|
|
14264
14292
|
"class": ['v-card', {
|
|
14265
14293
|
'v-card--disabled': props.disabled,
|
|
14266
14294
|
'v-card--flat': props.flat,
|
|
@@ -14268,10 +14296,9 @@ const VCard = genericComponent()({
|
|
|
14268
14296
|
'v-card--link': isClickable.value
|
|
14269
14297
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
14270
14298
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
14271
|
-
"href": link.href.value,
|
|
14272
14299
|
"onClick": isClickable.value && link.navigate,
|
|
14273
14300
|
"tabindex": props.disabled ? -1 : undefined
|
|
14274
|
-
}, {
|
|
14301
|
+
}, link.linkProps), {
|
|
14275
14302
|
default: () => [hasImage && createVNode("div", {
|
|
14276
14303
|
"key": "image",
|
|
14277
14304
|
"class": "v-card__image"
|
|
@@ -17637,8 +17664,8 @@ function format(value, formatString, locale, formats) {
|
|
|
17637
17664
|
function toISO(adapter, value) {
|
|
17638
17665
|
const date = adapter.toJsDate(value);
|
|
17639
17666
|
const year = date.getFullYear();
|
|
17640
|
-
const month = padStart
|
|
17641
|
-
const day = padStart
|
|
17667
|
+
const month = padStart(String(date.getMonth() + 1), 2, '0');
|
|
17668
|
+
const day = padStart(String(date.getDate()), 2, '0');
|
|
17642
17669
|
return `${year}-${month}-${day}`;
|
|
17643
17670
|
}
|
|
17644
17671
|
function parseISO(value) {
|
|
@@ -23166,7 +23193,6 @@ const VInfiniteScrollIntersect = defineComponent({
|
|
|
23166
23193
|
type: String,
|
|
23167
23194
|
required: true
|
|
23168
23195
|
},
|
|
23169
|
-
rootRef: null,
|
|
23170
23196
|
rootMargin: String
|
|
23171
23197
|
},
|
|
23172
23198
|
emits: {
|
|
@@ -23179,14 +23205,15 @@ const VInfiniteScrollIntersect = defineComponent({
|
|
|
23179
23205
|
const {
|
|
23180
23206
|
intersectionRef,
|
|
23181
23207
|
isIntersecting
|
|
23182
|
-
} = useIntersectionObserver(
|
|
23183
|
-
rootMargin: props.rootMargin
|
|
23184
|
-
} : undefined);
|
|
23208
|
+
} = useIntersectionObserver();
|
|
23185
23209
|
watch(isIntersecting, async val => {
|
|
23186
23210
|
emit('intersect', props.side, val);
|
|
23187
23211
|
});
|
|
23188
23212
|
useRender(() => createVNode("div", {
|
|
23189
23213
|
"class": "v-infinite-scroll-intersect",
|
|
23214
|
+
"style": {
|
|
23215
|
+
'--v-infinite-margin-size': props.rootMargin
|
|
23216
|
+
},
|
|
23190
23217
|
"ref": intersectionRef
|
|
23191
23218
|
}, [createTextVNode("\xA0")]));
|
|
23192
23219
|
return {};
|
|
@@ -23337,17 +23364,15 @@ const VInfiniteScroll = genericComponent()({
|
|
|
23337
23364
|
}, {
|
|
23338
23365
|
default: () => [createVNode("div", {
|
|
23339
23366
|
"class": "v-infinite-scroll__side"
|
|
23340
|
-
}, [renderSide('start', startStatus.value)]),
|
|
23367
|
+
}, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
|
|
23341
23368
|
"key": "start",
|
|
23342
23369
|
"side": "start",
|
|
23343
23370
|
"onIntersect": handleIntersect,
|
|
23344
|
-
"rootRef": rootEl.value,
|
|
23345
23371
|
"rootMargin": margin.value
|
|
23346
|
-
}, null), slots.default?.(),
|
|
23372
|
+
}, null), slots.default?.(), hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
|
|
23347
23373
|
"key": "end",
|
|
23348
23374
|
"side": "end",
|
|
23349
23375
|
"onIntersect": handleIntersect,
|
|
23350
|
-
"rootRef": rootEl.value,
|
|
23351
23376
|
"rootMargin": margin.value
|
|
23352
23377
|
}, null), createVNode("div", {
|
|
23353
23378
|
"class": "v-infinite-scroll__side"
|
|
@@ -28150,7 +28175,13 @@ const VNumberInput = genericComponent()({
|
|
|
28150
28175
|
const model = computed({
|
|
28151
28176
|
get: () => _model.value,
|
|
28152
28177
|
set(val) {
|
|
28153
|
-
if (
|
|
28178
|
+
if (val === null) {
|
|
28179
|
+
_model.value = null;
|
|
28180
|
+
return;
|
|
28181
|
+
}
|
|
28182
|
+
if (!isNaN(+val) && +val <= props.max && +val >= props.min) {
|
|
28183
|
+
_model.value = +val;
|
|
28184
|
+
}
|
|
28154
28185
|
}
|
|
28155
28186
|
});
|
|
28156
28187
|
const vTextFieldRef = ref();
|
|
@@ -28840,6 +28871,11 @@ const VSnackbarQueue = genericComponent()({
|
|
|
28840
28871
|
}
|
|
28841
28872
|
});
|
|
28842
28873
|
|
|
28874
|
+
function pad(n) {
|
|
28875
|
+
let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
28876
|
+
return String(n).padStart(length, '0');
|
|
28877
|
+
}
|
|
28878
|
+
|
|
28843
28879
|
// Types
|
|
28844
28880
|
|
|
28845
28881
|
const makeVTimePickerClockProps = propsFactory({
|
|
@@ -29080,27 +29116,6 @@ const VTimePickerClock = genericComponent()({
|
|
|
29080
29116
|
}
|
|
29081
29117
|
});
|
|
29082
29118
|
|
|
29083
|
-
// @ts-nocheck
|
|
29084
|
-
/* eslint-disable */
|
|
29085
|
-
|
|
29086
|
-
const padStart = (string, targetLength, padString) => {
|
|
29087
|
-
targetLength = targetLength >> 0;
|
|
29088
|
-
string = String(string);
|
|
29089
|
-
padString = String(padString);
|
|
29090
|
-
if (string.length > targetLength) {
|
|
29091
|
-
return String(string);
|
|
29092
|
-
}
|
|
29093
|
-
targetLength = targetLength - string.length;
|
|
29094
|
-
if (targetLength > padString.length) {
|
|
29095
|
-
padString += padString.repeat(targetLength / padString.length);
|
|
29096
|
-
}
|
|
29097
|
-
return padString.slice(0, targetLength) + String(string);
|
|
29098
|
-
};
|
|
29099
|
-
var pad = (function (n) {
|
|
29100
|
-
let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
29101
|
-
return padStart(n, length, '0');
|
|
29102
|
-
});
|
|
29103
|
-
|
|
29104
29119
|
// @ts-nocheck
|
|
29105
29120
|
/* eslint-disable */
|
|
29106
29121
|
var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
|
|
@@ -29548,25 +29563,13 @@ const VTreeviewItem = genericComponent()({
|
|
|
29548
29563
|
emit
|
|
29549
29564
|
} = _ref;
|
|
29550
29565
|
const link = useLink(props, attrs);
|
|
29551
|
-
const rawId = computed(() => props.value === undefined ? link.href.value : props.value);
|
|
29552
29566
|
const vListItemRef = ref();
|
|
29553
|
-
const
|
|
29554
|
-
activate,
|
|
29555
|
-
isActivated,
|
|
29556
|
-
isGroupActivator,
|
|
29557
|
-
root,
|
|
29558
|
-
id
|
|
29559
|
-
} = useNestedItem(rawId, false);
|
|
29560
|
-
const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
|
|
29567
|
+
const isActivatableGroupActivator = computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
|
|
29561
29568
|
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
|
|
29562
29569
|
function activateItem(e) {
|
|
29563
|
-
if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
|
|
29564
|
-
if (root.activatable.value) {
|
|
29565
|
-
|
|
29566
|
-
activate(!isActivated.value, e);
|
|
29567
|
-
} else {
|
|
29568
|
-
vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
|
|
29569
|
-
}
|
|
29570
|
+
if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
|
|
29571
|
+
if (vListItemRef.value?.root.activatable.value) {
|
|
29572
|
+
vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
|
|
29570
29573
|
}
|
|
29571
29574
|
}
|
|
29572
29575
|
const visibleIds = inject$1(VTreeviewSymbol, {
|
|
@@ -29575,11 +29578,13 @@ const VTreeviewItem = genericComponent()({
|
|
|
29575
29578
|
useRender(() => {
|
|
29576
29579
|
const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
|
|
29577
29580
|
const hasPrepend = slots.prepend || props.toggleIcon;
|
|
29578
|
-
return createVNode(VListItem, mergeProps(
|
|
29579
|
-
"
|
|
29581
|
+
return createVNode(VListItem, mergeProps({
|
|
29582
|
+
"ref": vListItemRef
|
|
29583
|
+
}, listItemProps, {
|
|
29584
|
+
"active": vListItemRef.value?.isActivated,
|
|
29580
29585
|
"class": ['v-treeview-item', {
|
|
29581
29586
|
'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
|
|
29582
|
-
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(
|
|
29587
|
+
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
|
|
29583
29588
|
}, props.class],
|
|
29584
29589
|
"ripple": false,
|
|
29585
29590
|
"onClick": props.onClick ?? activateItem
|
|
@@ -29713,7 +29718,7 @@ const VTreeviewChildren = genericComponent()({
|
|
|
29713
29718
|
...itemProps,
|
|
29714
29719
|
...activatorProps,
|
|
29715
29720
|
value: itemProps?.value,
|
|
29716
|
-
onToggleExpand: activatorProps.onClick,
|
|
29721
|
+
onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
|
|
29717
29722
|
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
|
|
29718
29723
|
};
|
|
29719
29724
|
return createVNode(VTreeviewItem, mergeProps(listItemProps, {
|
|
@@ -29798,22 +29803,13 @@ const VTreeview = genericComponent()({
|
|
|
29798
29803
|
filteredItems
|
|
29799
29804
|
} = useFilter(props, flatItems, search);
|
|
29800
29805
|
const visibleIds = computed(() => {
|
|
29801
|
-
if (!search.value)
|
|
29802
|
-
|
|
29803
|
-
|
|
29806
|
+
if (!search.value) return null;
|
|
29807
|
+
const getPath = vListRef.value?.getPath;
|
|
29808
|
+
if (!getPath) return null;
|
|
29804
29809
|
return new Set(filteredItems.value.flatMap(item => {
|
|
29805
29810
|
return [...getPath(item.props.value), ...getChildren(item.props.value)];
|
|
29806
29811
|
}));
|
|
29807
29812
|
});
|
|
29808
|
-
function getPath(id) {
|
|
29809
|
-
const path = [];
|
|
29810
|
-
let parent = id;
|
|
29811
|
-
while (parent != null) {
|
|
29812
|
-
path.unshift(parent);
|
|
29813
|
-
parent = vListRef.value?.parents.get(parent);
|
|
29814
|
-
}
|
|
29815
|
-
return path;
|
|
29816
|
-
}
|
|
29817
29813
|
function getChildren(id) {
|
|
29818
29814
|
const arr = [];
|
|
29819
29815
|
const queue = (vListRef.value?.children.get(id) ?? []).slice();
|
|
@@ -30214,7 +30210,7 @@ function mountComponent(component, props) {
|
|
|
30214
30210
|
const value = isObject(binding.value) ? binding.value : {};
|
|
30215
30211
|
|
|
30216
30212
|
// Get the children from the props or directive value, or the element's children
|
|
30217
|
-
const children = () => text ?? el.
|
|
30213
|
+
const children = () => text ?? el.textContent;
|
|
30218
30214
|
|
|
30219
30215
|
// If vnode.ctx is the same as the instance, then we're bound to a plain element
|
|
30220
30216
|
// and need to find the nearest parent component instance to inherit provides from
|
|
@@ -30272,7 +30268,7 @@ function findComponentParent(vnode, root) {
|
|
|
30272
30268
|
const Tooltip = useDirectiveComponent(VTooltip, binding => {
|
|
30273
30269
|
return {
|
|
30274
30270
|
activator: 'parent',
|
|
30275
|
-
location: binding.arg?.replace('-', ' ')
|
|
30271
|
+
location: binding.arg?.replace('-', ' '),
|
|
30276
30272
|
text: typeof binding.value === 'boolean' ? undefined : binding.value
|
|
30277
30273
|
};
|
|
30278
30274
|
});
|
|
@@ -30378,7 +30374,7 @@ function createVuetify$1() {
|
|
|
30378
30374
|
goTo
|
|
30379
30375
|
};
|
|
30380
30376
|
}
|
|
30381
|
-
const version$1 = "3.7.
|
|
30377
|
+
const version$1 = "3.7.2";
|
|
30382
30378
|
createVuetify$1.version = version$1;
|
|
30383
30379
|
|
|
30384
30380
|
// Vue's inject() can only be used in setup
|
|
@@ -30631,7 +30627,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
30631
30627
|
|
|
30632
30628
|
/* eslint-disable local-rules/sort-imports */
|
|
30633
30629
|
|
|
30634
|
-
const version = "3.7.
|
|
30630
|
+
const version = "3.7.2";
|
|
30635
30631
|
|
|
30636
30632
|
/* eslint-disable local-rules/sort-imports */
|
|
30637
30633
|
|