@vuetify/nightly 3.3.10-master.2023-07-29 → 3.3.10-master.2023-08-01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -2
- package/dist/json/attributes.json +1 -1
- package/dist/json/importMap.json +4 -4
- package/dist/json/web-types.json +2 -2
- package/dist/vuetify-labs.css +37 -36
- package/dist/vuetify-labs.d.ts +8 -8
- package/dist/vuetify-labs.esm.js +14 -14
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +14 -14
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1 -1
- package/dist/vuetify.d.ts +9 -9
- package/dist/vuetify.esm.js +8 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +8 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +7 -8
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +1 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +8 -8
- package/lib/components/VSlider/VSlider.mjs +2 -3
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +1 -0
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/index.d.mts +8 -8
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +1 -1
- package/lib/labs/VDatePicker/VDatePicker.css +6 -5
- package/lib/labs/VDatePicker/VDatePicker.mjs +3 -3
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.sass +8 -9
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +4 -4
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VPicker/VPicker.mjs +1 -1
- package/lib/labs/VPicker/VPicker.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# [](https://github.com/vuetifyjs/vuetify/compare/v3.3.10-master.2023-
|
|
1
|
+
# [](https://github.com/vuetifyjs/vuetify/compare/v3.3.10-master.2023-08-01...v) (2023-08-01)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
## [3.3.10-master.2023-
|
|
5
|
+
## [3.3.10-master.2023-08-01](https://github.com/vuetifyjs/vuetify/compare/v3.3.10...v3.3.10-master.2023-08-01) (2023-08-01)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
### Bug Fixes
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
* **blueprints:** buttons inherit text color in toolbars ([dfbf561](https://github.com/vuetifyjs/vuetify/commit/dfbf561a48d382b3798c1e7cf07b02da084fdae0)), closes [#17883](https://github.com/vuetifyjs/vuetify/issues/17883)
|
|
11
11
|
* **date:** parse string dates in local time zone ([#17876](https://github.com/vuetifyjs/vuetify/issues/17876)) ([246cd06](https://github.com/vuetifyjs/vuetify/commit/246cd06b86000079152417fff95f840ae3ee9925))
|
|
12
12
|
* **VChip:** filter slot not working ([#17896](https://github.com/vuetifyjs/vuetify/issues/17896)) ([9e9767f](https://github.com/vuetifyjs/vuetify/commit/9e9767f4fa36bb4cafd8e550051937f0c4161332))
|
|
13
|
+
* **VDatePicker:** add missing body padding ([b006640](https://github.com/vuetifyjs/vuetify/commit/b006640030b2eeb83ff415bf89de0ee897083a65))
|
|
14
|
+
* **VDatePicker:** reactive actions slot ([2835247](https://github.com/vuetifyjs/vuetify/commit/283524775a4c3c28a3f14cac481dd39f0ff681fa))
|
|
13
15
|
* **VExpansionPanel:** provide eager prop via defaults ([#17891](https://github.com/vuetifyjs/vuetify/issues/17891)) ([0a9ee3e](https://github.com/vuetifyjs/vuetify/commit/0a9ee3eab8189305da4f1f5f8414ce5979bd69cf))
|
|
16
|
+
* **VRangeSlider:** accept strings in model ([4ec7f13](https://github.com/vuetifyjs/vuetify/commit/4ec7f13e39f4e6da4dc70910eeab1852f47363d2)), closes [#17928](https://github.com/vuetifyjs/vuetify/issues/17928)
|
|
14
17
|
* **VSelect:** don't break environments without :autofill selector ([ebcce06](https://github.com/vuetifyjs/vuetify/commit/ebcce060c1710e0927943de53e841e518b0c2534))
|
|
15
18
|
|
|
16
19
|
|
|
@@ -6236,7 +6236,7 @@
|
|
|
6236
6236
|
"description": "MISSING DESCRIPTION ([edit in github](https://github.com/vuetifyjs/vuetify/tree/master/packages/api-generator/src/locale/en/v-radio-group.json))"
|
|
6237
6237
|
},
|
|
6238
6238
|
"v-range-slider/model-value": {
|
|
6239
|
-
"type": "number[]\n",
|
|
6239
|
+
"type": "(string | number)[]\n",
|
|
6240
6240
|
"description": "The v-model value of the component. If component supports the **multiple** prop, this defaults to an empty array"
|
|
6241
6241
|
},
|
|
6242
6242
|
"v-range-slider/error": {
|
package/dist/json/importMap.json
CHANGED
|
@@ -144,10 +144,6 @@
|
|
|
144
144
|
"from": "components/VDialog/index.mjs",
|
|
145
145
|
"styles": []
|
|
146
146
|
},
|
|
147
|
-
"VDivider": {
|
|
148
|
-
"from": "components/VDivider/index.mjs",
|
|
149
|
-
"styles": []
|
|
150
|
-
},
|
|
151
147
|
"VExpansionPanels": {
|
|
152
148
|
"from": "components/VExpansionPanel/index.mjs",
|
|
153
149
|
"styles": []
|
|
@@ -164,6 +160,10 @@
|
|
|
164
160
|
"from": "components/VExpansionPanel/index.mjs",
|
|
165
161
|
"styles": []
|
|
166
162
|
},
|
|
163
|
+
"VDivider": {
|
|
164
|
+
"from": "components/VDivider/index.mjs",
|
|
165
|
+
"styles": []
|
|
166
|
+
},
|
|
167
167
|
"VField": {
|
|
168
168
|
"from": "components/VField/index.mjs",
|
|
169
169
|
"styles": []
|
package/dist/json/web-types.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json.schemastore.org/web-types",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "vuetify",
|
|
5
|
-
"version": "3.3.10-master.2023-
|
|
5
|
+
"version": "3.3.10-master.2023-08-01",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -25208,7 +25208,7 @@
|
|
|
25208
25208
|
"default": "[0, 0]",
|
|
25209
25209
|
"value": {
|
|
25210
25210
|
"kind": "expression",
|
|
25211
|
-
"type": "number[]\n"
|
|
25211
|
+
"type": "(string | number)[]\n"
|
|
25212
25212
|
}
|
|
25213
25213
|
},
|
|
25214
25214
|
{
|
package/dist/vuetify-labs.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.10-master.2023-
|
|
2
|
+
* Vuetify v3.3.10-master.2023-08-01
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -15986,6 +15986,36 @@ html.overflow-y-hidden {
|
|
|
15986
15986
|
.v-bottom-sheet.v-bottom-sheet--inset {
|
|
15987
15987
|
max-width: 70%;
|
|
15988
15988
|
}
|
|
15989
|
+
}.v-data-table-footer {
|
|
15990
|
+
display: flex;
|
|
15991
|
+
align-items: center;
|
|
15992
|
+
flex-wrap: wrap;
|
|
15993
|
+
padding: 0 8px;
|
|
15994
|
+
justify-content: flex-end;
|
|
15995
|
+
}
|
|
15996
|
+
|
|
15997
|
+
.v-data-table-footer__items-per-page {
|
|
15998
|
+
padding-inline-end: 24px;
|
|
15999
|
+
display: flex;
|
|
16000
|
+
align-items: center;
|
|
16001
|
+
justify-content: space-between;
|
|
16002
|
+
}
|
|
16003
|
+
.v-data-table-footer__items-per-page > span {
|
|
16004
|
+
padding-inline-end: 24px;
|
|
16005
|
+
}
|
|
16006
|
+
|
|
16007
|
+
.v-data-table-footer__info {
|
|
16008
|
+
display: flex;
|
|
16009
|
+
padding-inline-end: 24px;
|
|
16010
|
+
}
|
|
16011
|
+
|
|
16012
|
+
.v-data-table-footer__pagination {
|
|
16013
|
+
display: flex;
|
|
16014
|
+
align-items: center;
|
|
16015
|
+
}
|
|
16016
|
+
|
|
16017
|
+
.v-data-table-footer__page {
|
|
16018
|
+
padding: 0 8px;
|
|
15989
16019
|
}.v-data-table {
|
|
15990
16020
|
width: 100%;
|
|
15991
16021
|
}
|
|
@@ -16110,36 +16140,6 @@ html.overflow-y-hidden {
|
|
|
16110
16140
|
.v-data-table-rows-loading,
|
|
16111
16141
|
.v-data-table-rows-no-data {
|
|
16112
16142
|
text-align: center;
|
|
16113
|
-
}.v-data-table-footer {
|
|
16114
|
-
display: flex;
|
|
16115
|
-
align-items: center;
|
|
16116
|
-
flex-wrap: wrap;
|
|
16117
|
-
padding: 0 8px;
|
|
16118
|
-
justify-content: flex-end;
|
|
16119
|
-
}
|
|
16120
|
-
|
|
16121
|
-
.v-data-table-footer__items-per-page {
|
|
16122
|
-
padding-inline-end: 24px;
|
|
16123
|
-
display: flex;
|
|
16124
|
-
align-items: center;
|
|
16125
|
-
justify-content: space-between;
|
|
16126
|
-
}
|
|
16127
|
-
.v-data-table-footer__items-per-page > span {
|
|
16128
|
-
padding-inline-end: 24px;
|
|
16129
|
-
}
|
|
16130
|
-
|
|
16131
|
-
.v-data-table-footer__info {
|
|
16132
|
-
display: flex;
|
|
16133
|
-
padding-inline-end: 24px;
|
|
16134
|
-
}
|
|
16135
|
-
|
|
16136
|
-
.v-data-table-footer__pagination {
|
|
16137
|
-
display: flex;
|
|
16138
|
-
align-items: center;
|
|
16139
|
-
}
|
|
16140
|
-
|
|
16141
|
-
.v-data-table-footer__page {
|
|
16142
|
-
padding: 0 8px;
|
|
16143
16143
|
}.v-date-card {
|
|
16144
16144
|
padding-bottom: 8px;
|
|
16145
16145
|
}
|
|
@@ -16181,15 +16181,16 @@ html.overflow-y-hidden {
|
|
|
16181
16181
|
.v-date-picker {
|
|
16182
16182
|
overflow: hidden;
|
|
16183
16183
|
}
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
padding
|
|
16184
|
+
|
|
16185
|
+
.v-date-picker-month {
|
|
16186
|
+
padding: 0 12px 12px;
|
|
16187
16187
|
}
|
|
16188
|
-
|
|
16188
|
+
|
|
16189
|
+
.v-date-picker-month__day {
|
|
16189
16190
|
height: 48px;
|
|
16190
16191
|
width: 48px;
|
|
16191
16192
|
}
|
|
16192
|
-
.v-date-picker
|
|
16193
|
+
.v-date-picker-month__day .v-btn {
|
|
16193
16194
|
--v-btn-height: 28px;
|
|
16194
16195
|
--v-btn-size: 0.85rem;
|
|
16195
16196
|
}.v-date-picker-controls {
|
package/dist/vuetify-labs.d.ts
CHANGED
|
@@ -38722,7 +38722,7 @@ declare const VRangeSlider: {
|
|
|
38722
38722
|
messages?: string | readonly string[] | undefined;
|
|
38723
38723
|
rounded?: string | number | boolean | undefined;
|
|
38724
38724
|
density?: Density | undefined;
|
|
38725
|
-
modelValue?: readonly number[] | undefined;
|
|
38725
|
+
modelValue?: readonly (string | number)[] | undefined;
|
|
38726
38726
|
focused?: boolean | undefined;
|
|
38727
38727
|
errorMessages?: string | readonly string[] | undefined;
|
|
38728
38728
|
maxErrors?: string | number | undefined;
|
|
@@ -38876,7 +38876,7 @@ declare const VRangeSlider: {
|
|
|
38876
38876
|
elevation: NonNullable<string | number>;
|
|
38877
38877
|
messages: string | readonly string[];
|
|
38878
38878
|
density: Density;
|
|
38879
|
-
modelValue: readonly number[];
|
|
38879
|
+
modelValue: readonly (string | number)[];
|
|
38880
38880
|
focused: boolean;
|
|
38881
38881
|
errorMessages: string | readonly string[];
|
|
38882
38882
|
maxErrors: string | number;
|
|
@@ -38963,7 +38963,7 @@ declare const VRangeSlider: {
|
|
|
38963
38963
|
messages: string | readonly string[];
|
|
38964
38964
|
rounded: string | number | boolean;
|
|
38965
38965
|
density: Density;
|
|
38966
|
-
modelValue: readonly number[];
|
|
38966
|
+
modelValue: readonly (string | number)[];
|
|
38967
38967
|
focused: boolean;
|
|
38968
38968
|
errorMessages: string | readonly string[];
|
|
38969
38969
|
maxErrors: string | number;
|
|
@@ -39034,7 +39034,7 @@ declare const VRangeSlider: {
|
|
|
39034
39034
|
elevation: NonNullable<string | number>;
|
|
39035
39035
|
messages: string | readonly string[];
|
|
39036
39036
|
density: Density;
|
|
39037
|
-
modelValue: readonly number[];
|
|
39037
|
+
modelValue: readonly (string | number)[];
|
|
39038
39038
|
focused: boolean;
|
|
39039
39039
|
errorMessages: string | readonly string[];
|
|
39040
39040
|
maxErrors: string | number;
|
|
@@ -39119,7 +39119,7 @@ declare const VRangeSlider: {
|
|
|
39119
39119
|
elevation: NonNullable<string | number>;
|
|
39120
39120
|
messages: string | readonly string[];
|
|
39121
39121
|
density: Density;
|
|
39122
|
-
modelValue: readonly number[];
|
|
39122
|
+
modelValue: readonly (string | number)[];
|
|
39123
39123
|
focused: boolean;
|
|
39124
39124
|
errorMessages: string | readonly string[];
|
|
39125
39125
|
maxErrors: string | number;
|
|
@@ -39206,7 +39206,7 @@ declare const VRangeSlider: {
|
|
|
39206
39206
|
messages: string | readonly string[];
|
|
39207
39207
|
rounded: string | number | boolean;
|
|
39208
39208
|
density: Density;
|
|
39209
|
-
modelValue: readonly number[];
|
|
39209
|
+
modelValue: readonly (string | number)[];
|
|
39210
39210
|
focused: boolean;
|
|
39211
39211
|
errorMessages: string | readonly string[];
|
|
39212
39212
|
maxErrors: string | number;
|
|
@@ -39246,7 +39246,7 @@ declare const VRangeSlider: {
|
|
|
39246
39246
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
39247
39247
|
strict: BooleanConstructor;
|
|
39248
39248
|
modelValue: {
|
|
39249
|
-
type: PropType<readonly number[]>;
|
|
39249
|
+
type: PropType<readonly (string | number)[]>;
|
|
39250
39250
|
default: () => number[];
|
|
39251
39251
|
};
|
|
39252
39252
|
elevation: Omit<{
|
|
@@ -39363,7 +39363,7 @@ declare const VRangeSlider: {
|
|
|
39363
39363
|
}, vue.ExtractPropTypes<{
|
|
39364
39364
|
strict: BooleanConstructor;
|
|
39365
39365
|
modelValue: {
|
|
39366
|
-
type: PropType<readonly number[]>;
|
|
39366
|
+
type: PropType<readonly (string | number)[]>;
|
|
39367
39367
|
default: () => number[];
|
|
39368
39368
|
};
|
|
39369
39369
|
elevation: Omit<{
|
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.10-master.2023-
|
|
2
|
+
* Vuetify v3.3.10-master.2023-08-01
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -11224,7 +11224,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11224
11224
|
const vTextFieldRef = ref();
|
|
11225
11225
|
const isFocused = shallowRef(false);
|
|
11226
11226
|
const isPristine = shallowRef(true);
|
|
11227
|
-
const listHasFocus =
|
|
11227
|
+
const listHasFocus = shallowRef(false);
|
|
11228
11228
|
const vMenuRef = ref();
|
|
11229
11229
|
const _menu = useProxiedModel(props, 'menu');
|
|
11230
11230
|
const menu = computed({
|
|
@@ -13448,6 +13448,7 @@ const useSteps = props => {
|
|
|
13448
13448
|
const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
13449
13449
|
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
13450
13450
|
function roundValue(value) {
|
|
13451
|
+
value = parseFloat(value);
|
|
13451
13452
|
if (step.value <= 0) return value;
|
|
13452
13453
|
const clamped = clamp(value, min.value, max.value);
|
|
13453
13454
|
const offset = min.value % step.value;
|
|
@@ -13951,9 +13952,8 @@ const VSlider = genericComponent()({
|
|
|
13951
13952
|
rtlClasses
|
|
13952
13953
|
} = useRtl();
|
|
13953
13954
|
const steps = useSteps(props);
|
|
13954
|
-
const model = useProxiedModel(props, 'modelValue', undefined,
|
|
13955
|
-
|
|
13956
|
-
return steps.roundValue(value);
|
|
13955
|
+
const model = useProxiedModel(props, 'modelValue', undefined, value => {
|
|
13956
|
+
return steps.roundValue(value == null ? steps.min.value : value);
|
|
13957
13957
|
});
|
|
13958
13958
|
const {
|
|
13959
13959
|
min,
|
|
@@ -14747,7 +14747,7 @@ const VCombobox = genericComponent()({
|
|
|
14747
14747
|
const vTextFieldRef = ref();
|
|
14748
14748
|
const isFocused = shallowRef(false);
|
|
14749
14749
|
const isPristine = shallowRef(true);
|
|
14750
|
-
const listHasFocus =
|
|
14750
|
+
const listHasFocus = shallowRef(false);
|
|
14751
14751
|
const vMenuRef = ref();
|
|
14752
14752
|
const _menu = useProxiedModel(props, 'menu');
|
|
14753
14753
|
const menu = computed({
|
|
@@ -22807,7 +22807,7 @@ const VPicker = genericComponent()({
|
|
|
22807
22807
|
"class": "v-picker__header"
|
|
22808
22808
|
}, [slots.header()]), createVNode("div", {
|
|
22809
22809
|
"class": "v-picker__body"
|
|
22810
|
-
}, [slots.default?.()]), slots.actions && createVNode("div", {
|
|
22810
|
+
}, [slots.default?.()]), slots.actions?.()[0]?.children && createVNode("div", {
|
|
22811
22811
|
"class": "v-picker__actions"
|
|
22812
22812
|
}, [slots.actions()])]
|
|
22813
22813
|
});
|
|
@@ -22875,7 +22875,7 @@ const VDatePicker = genericComponent()({
|
|
|
22875
22875
|
viewMode,
|
|
22876
22876
|
inputMode
|
|
22877
22877
|
} = createDatePicker(props);
|
|
22878
|
-
const isReversing =
|
|
22878
|
+
const isReversing = shallowRef(false);
|
|
22879
22879
|
const inputModel = computed(() => model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '');
|
|
22880
22880
|
const title = computed(() => t(props.title));
|
|
22881
22881
|
const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header));
|
|
@@ -22957,7 +22957,7 @@ const VDatePicker = genericComponent()({
|
|
|
22957
22957
|
"label": t(props.inputText),
|
|
22958
22958
|
"placeholder": "dd/mm/yyyy"
|
|
22959
22959
|
}, null)]),
|
|
22960
|
-
actions: !props.hideActions ?
|
|
22960
|
+
actions: () => !props.hideActions ? createVNode("div", null, [createVNode(VBtn, {
|
|
22961
22961
|
"variant": "text",
|
|
22962
22962
|
"color": props.color,
|
|
22963
22963
|
"onClick": onClickCancel,
|
|
@@ -23051,10 +23051,10 @@ const VInfiniteScroll = genericComponent()({
|
|
|
23051
23051
|
emit
|
|
23052
23052
|
} = _ref2;
|
|
23053
23053
|
const rootEl = ref();
|
|
23054
|
-
const startStatus =
|
|
23055
|
-
const endStatus =
|
|
23054
|
+
const startStatus = shallowRef('ok');
|
|
23055
|
+
const endStatus = shallowRef('ok');
|
|
23056
23056
|
const margin = computed(() => convertToUnit(props.margin));
|
|
23057
|
-
const isIntersecting =
|
|
23057
|
+
const isIntersecting = shallowRef(false);
|
|
23058
23058
|
function setScrollAmount(amount) {
|
|
23059
23059
|
if (!rootEl.value) return;
|
|
23060
23060
|
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
@@ -23708,7 +23708,7 @@ function createVuetify$1() {
|
|
|
23708
23708
|
date
|
|
23709
23709
|
};
|
|
23710
23710
|
}
|
|
23711
|
-
const version$1 = "3.3.10-master.2023-
|
|
23711
|
+
const version$1 = "3.3.10-master.2023-08-01";
|
|
23712
23712
|
createVuetify$1.version = version$1;
|
|
23713
23713
|
|
|
23714
23714
|
// Vue's inject() can only be used in setup
|
|
@@ -23722,7 +23722,7 @@ function inject(key) {
|
|
|
23722
23722
|
|
|
23723
23723
|
/* eslint-disable local-rules/sort-imports */
|
|
23724
23724
|
|
|
23725
|
-
const version = "3.3.10-master.2023-
|
|
23725
|
+
const version = "3.3.10-master.2023-08-01";
|
|
23726
23726
|
|
|
23727
23727
|
/* eslint-disable local-rules/sort-imports */
|
|
23728
23728
|
|