vuetify 3.7.3 → 3.7.5
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 +5352 -5304
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +158 -158
- package/dist/json/tags.json +14 -1
- package/dist/json/web-types.json +10068 -9980
- package/dist/vuetify-labs.css +4693 -4689
- package/dist/vuetify-labs.d.ts +204 -207
- package/dist/vuetify-labs.esm.js +91 -66
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +91 -66
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2681 -2677
- package/dist/vuetify.d.ts +187 -190
- package/dist/vuetify.esm.js +80 -56
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +80 -56
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +50 -50
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +28 -28
- package/lib/components/VBadge/VBadge.css +4 -0
- package/lib/components/VBadge/VBadge.sass +4 -0
- package/lib/components/VBtn/VBtn.css +2 -2
- package/lib/components/VBtn/VBtn.sass +7 -8
- package/lib/components/VBtnToggle/VBtnToggle.css +3 -0
- package/lib/components/VBtnToggle/VBtnToggle.sass +3 -0
- package/lib/components/VChip/VChip.mjs +3 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +9 -9
- package/lib/components/VCode/index.mjs +1 -1
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +4 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +28 -28
- package/lib/components/VConfirmEdit/VConfirmEdit.mjs +9 -7
- package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +1 -1
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
- package/lib/components/VConfirmEdit/index.d.mts +3 -7
- package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +1 -0
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +6 -6
- package/lib/components/VDialog/VDialog.css +3 -7
- package/lib/components/VDialog/VDialog.mjs +8 -1
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +6 -7
- package/lib/components/VField/VField.mjs +2 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VKbd/index.mjs +1 -1
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VList/VList.mjs +3 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +8 -7
- package/lib/components/VList/VListItem.mjs +3 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +16 -10
- package/lib/components/VList/_variables.scss +0 -11
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/VMenu.mjs +15 -6
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +3 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +28 -28
- package/lib/components/VStepper/VStepper.mjs +5 -4
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.mjs +5 -4
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VStepper/index.d.mts +58 -52
- package/lib/components/index.d.mts +130 -133
- package/lib/composables/form.mjs +7 -2
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/validation.mjs +10 -12
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +56 -56
- package/lib/labs/VDateInput/VDateInput.mjs +1 -1
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/VNumberInput.mjs +7 -5
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VStepperVertical/index.d.mts +51 -51
- package/lib/labs/VTreeview/VTreeviewItem.mjs +3 -4
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +22 -22
- package/lib/labs/components.d.mts +73 -73
- package/lib/locale/el.mjs +0 -0
- package/lib/locale/fr.mjs +1 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/index.mjs +0 -0
- package/package.json +2 -2
|
@@ -382,8 +382,8 @@ declare const VList: {
|
|
|
382
382
|
activeColor?: string | undefined;
|
|
383
383
|
activeClass?: string | undefined;
|
|
384
384
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
385
|
-
collapseIcon?:
|
|
386
|
-
expandIcon?:
|
|
385
|
+
collapseIcon?: IconValue | undefined;
|
|
386
|
+
expandIcon?: IconValue | undefined;
|
|
387
387
|
} & {
|
|
388
388
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
389
389
|
"onClick:activate"?: ((value: {
|
|
@@ -454,8 +454,8 @@ declare const VList: {
|
|
|
454
454
|
activeColor?: string | undefined;
|
|
455
455
|
activeClass?: string | undefined;
|
|
456
456
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
457
|
-
collapseIcon?:
|
|
458
|
-
expandIcon?:
|
|
457
|
+
collapseIcon?: IconValue | undefined;
|
|
458
|
+
expandIcon?: IconValue | undefined;
|
|
459
459
|
} & {
|
|
460
460
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
461
461
|
"onClick:activate"?: ((value: {
|
|
@@ -552,8 +552,8 @@ declare const VList: {
|
|
|
552
552
|
activeColor?: string | undefined;
|
|
553
553
|
activeClass?: string | undefined;
|
|
554
554
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
555
|
-
collapseIcon?:
|
|
556
|
-
expandIcon?:
|
|
555
|
+
collapseIcon?: IconValue | undefined;
|
|
556
|
+
expandIcon?: IconValue | undefined;
|
|
557
557
|
} & {
|
|
558
558
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
559
559
|
"onClick:activate"?: ((value: {
|
|
@@ -628,8 +628,8 @@ declare const VList: {
|
|
|
628
628
|
activeColor?: string | undefined;
|
|
629
629
|
activeClass?: string | undefined;
|
|
630
630
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
631
|
-
collapseIcon?:
|
|
632
|
-
expandIcon?:
|
|
631
|
+
collapseIcon?: IconValue | undefined;
|
|
632
|
+
expandIcon?: IconValue | undefined;
|
|
633
633
|
} & {
|
|
634
634
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
635
635
|
"onClick:activate"?: ((value: {
|
|
@@ -818,8 +818,8 @@ declare const VList: {
|
|
|
818
818
|
activeClass: StringConstructor;
|
|
819
819
|
bgColor: StringConstructor;
|
|
820
820
|
disabled: BooleanConstructor;
|
|
821
|
-
expandIcon:
|
|
822
|
-
collapseIcon:
|
|
821
|
+
expandIcon: PropType<IconValue>;
|
|
822
|
+
collapseIcon: PropType<IconValue>;
|
|
823
823
|
lines: {
|
|
824
824
|
type: PropType<"one" | "two" | "three" | false>;
|
|
825
825
|
default: string;
|
|
@@ -927,8 +927,8 @@ declare const VList: {
|
|
|
927
927
|
activeClass: StringConstructor;
|
|
928
928
|
bgColor: StringConstructor;
|
|
929
929
|
disabled: BooleanConstructor;
|
|
930
|
-
expandIcon:
|
|
931
|
-
collapseIcon:
|
|
930
|
+
expandIcon: PropType<IconValue>;
|
|
931
|
+
collapseIcon: PropType<IconValue>;
|
|
932
932
|
lines: {
|
|
933
933
|
type: PropType<"one" | "two" | "three" | false>;
|
|
934
934
|
default: string;
|
|
@@ -3191,8 +3191,8 @@ declare const VCombobox: {
|
|
|
3191
3191
|
activeColor?: string | undefined;
|
|
3192
3192
|
activeClass?: string | undefined;
|
|
3193
3193
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
3194
|
-
collapseIcon?:
|
|
3195
|
-
expandIcon?:
|
|
3194
|
+
collapseIcon?: IconValue | undefined;
|
|
3195
|
+
expandIcon?: IconValue | undefined;
|
|
3196
3196
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
3197
3197
|
"onClick:activate"?: ((value: {
|
|
3198
3198
|
id: unknown;
|
|
@@ -3236,8 +3236,8 @@ declare const VCombobox: {
|
|
|
3236
3236
|
activeColor?: string | undefined;
|
|
3237
3237
|
activeClass?: string | undefined;
|
|
3238
3238
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
3239
|
-
collapseIcon?:
|
|
3240
|
-
expandIcon?:
|
|
3239
|
+
collapseIcon?: IconValue | undefined;
|
|
3240
|
+
expandIcon?: IconValue | undefined;
|
|
3241
3241
|
} & {
|
|
3242
3242
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
3243
3243
|
"onClick:activate"?: ((value: {
|
|
@@ -3686,8 +3686,8 @@ declare const VCombobox: {
|
|
|
3686
3686
|
activeColor?: string | undefined;
|
|
3687
3687
|
activeClass?: string | undefined;
|
|
3688
3688
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
3689
|
-
collapseIcon?:
|
|
3690
|
-
expandIcon?:
|
|
3689
|
+
collapseIcon?: IconValue | undefined;
|
|
3690
|
+
expandIcon?: IconValue | undefined;
|
|
3691
3691
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
3692
3692
|
"onClick:activate"?: ((value: {
|
|
3693
3693
|
id: unknown;
|
|
@@ -3731,8 +3731,8 @@ declare const VCombobox: {
|
|
|
3731
3731
|
activeColor?: string | undefined;
|
|
3732
3732
|
activeClass?: string | undefined;
|
|
3733
3733
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
3734
|
-
collapseIcon?:
|
|
3735
|
-
expandIcon?:
|
|
3734
|
+
collapseIcon?: IconValue | undefined;
|
|
3735
|
+
expandIcon?: IconValue | undefined;
|
|
3736
3736
|
} & {
|
|
3737
3737
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
3738
3738
|
"onClick:activate"?: ((value: {
|
|
@@ -4265,8 +4265,8 @@ declare const VCombobox: {
|
|
|
4265
4265
|
activeColor?: string | undefined;
|
|
4266
4266
|
activeClass?: string | undefined;
|
|
4267
4267
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
4268
|
-
collapseIcon?:
|
|
4269
|
-
expandIcon?:
|
|
4268
|
+
collapseIcon?: IconValue | undefined;
|
|
4269
|
+
expandIcon?: IconValue | undefined;
|
|
4270
4270
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
4271
4271
|
"onClick:activate"?: ((value: {
|
|
4272
4272
|
id: unknown;
|
|
@@ -4310,8 +4310,8 @@ declare const VCombobox: {
|
|
|
4310
4310
|
activeColor?: string | undefined;
|
|
4311
4311
|
activeClass?: string | undefined;
|
|
4312
4312
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
4313
|
-
collapseIcon?:
|
|
4314
|
-
expandIcon?:
|
|
4313
|
+
collapseIcon?: IconValue | undefined;
|
|
4314
|
+
expandIcon?: IconValue | undefined;
|
|
4315
4315
|
} & {
|
|
4316
4316
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
4317
4317
|
"onClick:activate"?: ((value: {
|
|
@@ -4809,8 +4809,8 @@ declare const VCombobox: {
|
|
|
4809
4809
|
activeColor?: string | undefined;
|
|
4810
4810
|
activeClass?: string | undefined;
|
|
4811
4811
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
4812
|
-
collapseIcon?:
|
|
4813
|
-
expandIcon?:
|
|
4812
|
+
collapseIcon?: IconValue | undefined;
|
|
4813
|
+
expandIcon?: IconValue | undefined;
|
|
4814
4814
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
4815
4815
|
"onClick:activate"?: ((value: {
|
|
4816
4816
|
id: unknown;
|
|
@@ -4854,8 +4854,8 @@ declare const VCombobox: {
|
|
|
4854
4854
|
activeColor?: string | undefined;
|
|
4855
4855
|
activeClass?: string | undefined;
|
|
4856
4856
|
activeStrategy?: ActiveStrategyProp | undefined;
|
|
4857
|
-
collapseIcon?:
|
|
4858
|
-
expandIcon?:
|
|
4857
|
+
collapseIcon?: IconValue | undefined;
|
|
4858
|
+
expandIcon?: IconValue | undefined;
|
|
4859
4859
|
} & {
|
|
4860
4860
|
"onUpdate:activated"?: ((value: unknown) => any) | undefined;
|
|
4861
4861
|
"onClick:activate"?: ((value: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
1
|
+
import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
|
|
2
2
|
// Components
|
|
3
3
|
import { VBtn } from "../VBtn/index.mjs"; // Composables
|
|
4
4
|
import { useLocale } from "../../composables/index.mjs";
|
|
@@ -49,21 +49,23 @@ export const VConfirmEdit = genericComponent()({
|
|
|
49
49
|
internalModel.value = structuredClone(toRaw(model.value));
|
|
50
50
|
emit('cancel');
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const actions = _createVNode(_Fragment, null, [_createVNode(VBtn, {
|
|
52
|
+
function actions(actionsProps) {
|
|
53
|
+
return _createVNode(_Fragment, null, [_createVNode(VBtn, _mergeProps({
|
|
55
54
|
"disabled": isPristine.value,
|
|
56
55
|
"variant": "text",
|
|
57
56
|
"color": props.color,
|
|
58
57
|
"onClick": cancel,
|
|
59
58
|
"text": t(props.cancelText)
|
|
60
|
-
}, null), _createVNode(VBtn, {
|
|
59
|
+
}, actionsProps), null), _createVNode(VBtn, _mergeProps({
|
|
61
60
|
"disabled": isPristine.value,
|
|
62
61
|
"variant": "text",
|
|
63
62
|
"color": props.color,
|
|
64
63
|
"onClick": save,
|
|
65
64
|
"text": t(props.okText)
|
|
66
|
-
}, null)]);
|
|
65
|
+
}, actionsProps), null)]);
|
|
66
|
+
}
|
|
67
|
+
let actionsUsed = false;
|
|
68
|
+
useRender(() => {
|
|
67
69
|
return _createVNode(_Fragment, null, [slots.default?.({
|
|
68
70
|
model: internalModel,
|
|
69
71
|
save,
|
|
@@ -73,7 +75,7 @@ export const VConfirmEdit = genericComponent()({
|
|
|
73
75
|
actionsUsed = true;
|
|
74
76
|
return actions;
|
|
75
77
|
}
|
|
76
|
-
}), !actionsUsed && actions]);
|
|
78
|
+
}), !actionsUsed && actions()]);
|
|
77
79
|
});
|
|
78
80
|
return {
|
|
79
81
|
save,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VConfirmEdit.mjs","names":["VBtn","useLocale","useProxiedModel","computed","ref","toRaw","watchEffect","deepEqual","genericComponent","propsFactory","useRender","makeVConfirmEditProps","modelValue","color","String","cancelText","type","default","okText","VConfirmEdit","name","props","emits","cancel","save","value","setup","_ref","emit","slots","model","internalModel","structuredClone","t","isPristine","
|
|
1
|
+
{"version":3,"file":"VConfirmEdit.mjs","names":["VBtn","useLocale","useProxiedModel","computed","ref","toRaw","watchEffect","deepEqual","genericComponent","propsFactory","useRender","makeVConfirmEditProps","modelValue","color","String","cancelText","type","default","okText","VConfirmEdit","name","props","emits","cancel","save","value","setup","_ref","emit","slots","model","internalModel","structuredClone","t","isPristine","actions","actionsProps","_createVNode","_Fragment","_mergeProps","actionsUsed"],"sources":["../../../src/components/VConfirmEdit/VConfirmEdit.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref, VNode } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VConfirmEditSlots<T> = {\n default: {\n model: Ref<T>\n save: () => void\n cancel: () => void\n isPristine: boolean\n get actions (): (props?: {}) => VNode\n }\n}\n\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok',\n },\n}, 'VConfirmEdit')\n\nexport const VConfirmEdit = genericComponent<new <T> (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n 'onSave'?: (value: T) => void\n },\n slots: VConfirmEditSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VConfirmEdit',\n\n props: makeVConfirmEditProps(),\n\n emits: {\n cancel: () => true,\n save: (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const internalModel = ref()\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value))\n })\n\n const { t } = useLocale()\n\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value)\n })\n\n function save () {\n model.value = internalModel.value\n emit('save', internalModel.value)\n }\n\n function cancel () {\n internalModel.value = structuredClone(toRaw(model.value))\n emit('cancel')\n }\n\n function actions (actionsProps?: {}) {\n return (\n <>\n <VBtn\n disabled={ isPristine.value }\n variant=\"text\"\n color={ props.color }\n onClick={ cancel }\n text={ t(props.cancelText) }\n { ...actionsProps }\n />\n\n <VBtn\n disabled={ isPristine.value }\n variant=\"text\"\n color={ props.color }\n onClick={ save }\n text={ t(props.okText) }\n { ...actionsProps }\n />\n </>\n )\n }\n\n let actionsUsed = false\n useRender(() => {\n return (\n <>\n {\n slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions () {\n actionsUsed = true\n return actions\n },\n })\n }\n\n { !actionsUsed && actions() }\n </>\n )\n })\n\n return {\n save,\n cancel,\n isPristine,\n }\n },\n})\n\nexport type VConfirmEdit = InstanceType<typeof VConfirmEdit>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VConfirmEdit.spec.browser.mjs","names":["VConfirmEdit","render","screen","userEvent","nextTick","shallowRef","describe","it","externalModel","_createVNode","value","default","_ref","model","expect","getByText","toBeInTheDocument","$event","_ref2","_Fragment","join","onClick","push","_createTextVNode","click","getByTestId","toEqual","getAllByCSS","toHaveLength","_ref3","_ref4","actions","queryAllByCSS","_ref5"],"sources":["../../../../src/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.tsx"],"sourcesContent":["// Components\nimport { VConfirmEdit } from '../'\n\n// Utilities\nimport { render, screen, userEvent } from '@test'\nimport { nextTick, shallowRef } from 'vue'\n\ndescribe('VConfirmEdit', () => {\n it('mirrors external updates', async () => {\n const externalModel = shallowRef('foo')\n\n render(() => (\n <VConfirmEdit modelValue={ externalModel.value }>\n { ({ model }) => (\n <p>{ model.value }</p>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n externalModel.value = 'bar'\n await nextTick()\n expect(screen.getByText('bar')).toBeInTheDocument()\n })\n\n it(\"doesn't mutate the original value\", async () => {\n const externalModel = shallowRef(['foo'])\n\n render(() => (\n <VConfirmEdit v-model={ externalModel.value } modelValue={ externalModel.value }>\n { ({ model }) => (\n <>\n <p>{ model.value.join(',') }</p>\n <button data-testid=\"push\" onClick={ () => model.value.push('bar') }>Push</button>\n </>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n await userEvent.click(screen.getByTestId('push'))\n expect(screen.getByText('foo,bar')).toBeInTheDocument()\n expect(externalModel.value).toEqual(['foo'])\n\n await userEvent.click(screen.getByText('OK'))\n expect(externalModel.value).toEqual(['foo', 'bar'])\n })\n\n describe('hides actions if used from the slot', () => {\n it('nothing', () => {\n render(() => <VConfirmEdit />)\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume model', () => {\n render(() => (\n <VConfirmEdit>\n { ({ model }) => {\n void model\n }}\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => {\n void actions\n }}\n </VConfirmEdit>\n ))\n expect(screen.queryAllByCSS('button')).toHaveLength(0)\n })\n\n it('render actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => actions }\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n })\n})\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VConfirmEdit.spec.browser.mjs","names":["VConfirmEdit","render","screen","userEvent","nextTick","shallowRef","describe","it","externalModel","_createVNode","value","default","_ref","model","expect","getByText","toBeInTheDocument","$event","_ref2","_Fragment","join","onClick","push","_createTextVNode","click","getByTestId","toEqual","getAllByCSS","toHaveLength","_ref3","_ref4","actions","queryAllByCSS","_ref5"],"sources":["../../../../src/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.tsx"],"sourcesContent":["// Components\nimport { VConfirmEdit } from '../'\n\n// Utilities\nimport { render, screen, userEvent } from '@test'\nimport { nextTick, shallowRef } from 'vue'\n\ndescribe('VConfirmEdit', () => {\n it('mirrors external updates', async () => {\n const externalModel = shallowRef('foo')\n\n render(() => (\n <VConfirmEdit modelValue={ externalModel.value }>\n { ({ model }) => (\n <p>{ model.value }</p>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n externalModel.value = 'bar'\n await nextTick()\n expect(screen.getByText('bar')).toBeInTheDocument()\n })\n\n it(\"doesn't mutate the original value\", async () => {\n const externalModel = shallowRef(['foo'])\n\n render(() => (\n <VConfirmEdit v-model={ externalModel.value } modelValue={ externalModel.value }>\n { ({ model }) => (\n <>\n <p>{ model.value.join(',') }</p>\n <button data-testid=\"push\" onClick={ () => model.value.push('bar') }>Push</button>\n </>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n await userEvent.click(screen.getByTestId('push'))\n expect(screen.getByText('foo,bar')).toBeInTheDocument()\n expect(externalModel.value).toEqual(['foo'])\n\n await userEvent.click(screen.getByText('OK'))\n expect(externalModel.value).toEqual(['foo', 'bar'])\n })\n\n describe('hides actions if used from the slot', () => {\n it('nothing', () => {\n render(() => <VConfirmEdit />)\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume model', () => {\n render(() => (\n <VConfirmEdit>\n { ({ model }) => {\n void model\n }}\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => {\n void actions\n }}\n </VConfirmEdit>\n ))\n expect(screen.queryAllByCSS('button')).toHaveLength(0)\n })\n\n it('render actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => actions() }\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,7 +36,7 @@ type VConfirmEditSlots<T> = {
|
|
|
36
36
|
save: () => void;
|
|
37
37
|
cancel: () => void;
|
|
38
38
|
isPristine: boolean;
|
|
39
|
-
get actions(): VNode;
|
|
39
|
+
get actions(): (props?: {}) => VNode;
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
declare const VConfirmEdit: {
|
|
@@ -71,9 +71,7 @@ declare const VConfirmEdit: {
|
|
|
71
71
|
save: () => void;
|
|
72
72
|
cancel: () => void;
|
|
73
73
|
isPristine: boolean;
|
|
74
|
-
readonly actions:
|
|
75
|
-
[key: string]: any;
|
|
76
|
-
}>;
|
|
74
|
+
readonly actions: (props?: {}) => VNode;
|
|
77
75
|
}) => VNode[];
|
|
78
76
|
}>>, {
|
|
79
77
|
P: {};
|
|
@@ -124,9 +122,7 @@ declare const VConfirmEdit: {
|
|
|
124
122
|
save: () => void;
|
|
125
123
|
cancel: () => void;
|
|
126
124
|
isPristine: boolean;
|
|
127
|
-
readonly actions:
|
|
128
|
-
[key: string]: any;
|
|
129
|
-
}>;
|
|
125
|
+
readonly actions: (props?: {}) => VNode;
|
|
130
126
|
}) => VNode[];
|
|
131
127
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: {
|
|
132
128
|
modelValue?: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableFooter.mjs","names":["VPagination","VSelect","usePagination","IconValue","useLocale","computed","genericComponent","propsFactory","useRender","makeVDataTableFooterProps","prevIcon","type","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","String","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","isNaN","Number","paginationProps","filterProps","_createVNode","prepend","v","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n first-aria-label={ props.firstPageLabel }\n last-aria-label={ props.lastPageLabel }\n length={ pageCount.value }\n next-aria-label={ props.nextPageLabel }\n previous-aria-label={ props.prevPageLabel }\n rounded\n show-first-last-page\n total-visible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...paginationProps }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDataTableFooter.mjs","names":["VPagination","VSelect","usePagination","IconValue","useLocale","computed","genericComponent","propsFactory","useRender","makeVDataTableFooterProps","prevIcon","type","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","String","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","isNaN","Number","paginationProps","filterProps","_createVNode","prepend","v","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n first-aria-label={ props.firstPageLabel }\n last-aria-label={ props.lastPageLabel }\n length={ pageCount.value }\n next-aria-label={ props.nextPageLabel }\n previous-aria-label={ props.prevPageLabel }\n rounded\n show-first-last-page\n total-visible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...paginationProps }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableFooter = InstanceType<typeof VDataTableFooter>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1999,6 +1999,7 @@ declare const VDataTableFooter: {
|
|
|
1999
1999
|
};
|
|
2000
2000
|
showCurrentPage: BooleanConstructor;
|
|
2001
2001
|
}>>;
|
|
2002
|
+
type VDataTableFooter = InstanceType<typeof VDataTableFooter>;
|
|
2002
2003
|
|
|
2003
2004
|
type VDataTableVirtualSlotProps<T> = Omit<VDataTableSlotProps<T>, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>;
|
|
2004
2005
|
type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {
|
|
@@ -6,10 +6,11 @@ import "./VDatePickerHeader.css";
|
|
|
6
6
|
import { VBtn } from "../VBtn/index.mjs";
|
|
7
7
|
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs"; // Composables
|
|
8
8
|
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
9
|
+
import { IconValue } from "../../composables/icons.mjs";
|
|
9
10
|
import { MaybeTransition } from "../../composables/transition.mjs"; // Utilities
|
|
10
11
|
import { EventProp, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
11
12
|
export const makeVDatePickerHeaderProps = propsFactory({
|
|
12
|
-
appendIcon:
|
|
13
|
+
appendIcon: IconValue,
|
|
13
14
|
color: String,
|
|
14
15
|
header: String,
|
|
15
16
|
transition: String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VDefaultsProvider","useBackgroundColor","MaybeTransition","EventProp","genericComponent","propsFactory","useRender","makeVDatePickerHeaderProps","appendIcon","
|
|
1
|
+
{"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VDefaultsProvider","useBackgroundColor","IconValue","MaybeTransition","EventProp","genericComponent","propsFactory","useRender","makeVDatePickerHeaderProps","appendIcon","color","String","header","transition","onClick","VDatePickerHeader","name","props","emits","click","click:append","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","onClickAppend","hasContent","default","hasAppend","append","_createVNode","value","prepend","icon","variant"],"sources":["../../../src/components/VDatePicker/VDatePickerHeader.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: IconValue,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp<[MouseEvent]>(),\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent<VDatePickerHeaderSlots>()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n click: () => true,\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClick () {\n emit('click')\n }\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n <div\n class={[\n 'v-date-picker-header',\n {\n 'v-date-picker-header--clickable': !!props.onClick,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n onClick={ onClick }\n >\n { slots.prepend && (\n <div key=\"prepend\" class=\"v-date-picker-header__prepend\">\n { slots.prepend() }\n </div>\n )}\n\n { hasContent && (\n <MaybeTransition key=\"content\" name={ props.transition }>\n <div key={ props.header } class=\"v-date-picker-header__content\">\n { slots.default?.() ?? props.header }\n </div>\n </MaybeTransition>\n )}\n\n { hasAppend && (\n <div class=\"v-date-picker-header__append\">\n { !slots.append ? (\n <VBtn\n key=\"append-btn\"\n icon={ props.appendIcon }\n variant=\"text\"\n onClick={ onClickAppend }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VBtn: {\n icon: props.appendIcon,\n variant: 'text',\n },\n }}\n >\n { slots.append?.() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,0CAE1B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,SAAS;AAAA,SACTC,eAAe,4CAExB;AAAA,SACSC,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAE7D;AAOA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,UAAU,EAAEP,SAAS;EACrBQ,KAAK,EAAEC,MAAM;EACbC,MAAM,EAAED,MAAM;EACdE,UAAU,EAAEF,MAAM;EAClBG,OAAO,EAAEV,SAAS,CAAe;AACnC,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMW,iBAAiB,GAAGV,gBAAgB,CAAyB,CAAC,CAAC;EAC1EW,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAET,0BAA0B,CAAC,CAAC;EAEnCU,KAAK,EAAE;IACLC,KAAK,EAAEA,CAAA,KAAM,IAAI;IACjB,cAAc,EAAEC,CAAA,KAAM;EACxB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,sBAAsB;MAAEC;IAAsB,CAAC,GAAGzB,kBAAkB,CAACgB,KAAK,EAAE,OAAO,CAAC;IAE5F,SAASH,OAAOA,CAAA,EAAI;MAClBS,IAAI,CAAC,OAAO,CAAC;IACf;IAEA,SAASI,aAAaA,CAAA,EAAI;MACxBJ,IAAI,CAAC,cAAc,CAAC;IACtB;IAEAhB,SAAS,CAAC,MAAM;MACd,MAAMqB,UAAU,GAAG,CAAC,EAAEJ,KAAK,CAACK,OAAO,IAAIZ,KAAK,CAACL,MAAM,CAAC;MACpD,MAAMkB,SAAS,GAAG,CAAC,EAAEN,KAAK,CAACO,MAAM,IAAId,KAAK,CAACR,UAAU,CAAC;MAEtD,OAAAuB,YAAA;QAAA,SAEW,CACL,sBAAsB,EACtB;UACE,iCAAiC,EAAE,CAAC,CAACf,KAAK,CAACH;QAC7C,CAAC,EACDW,sBAAsB,CAACQ,KAAK,CAC7B;QAAA,SACOP,qBAAqB,CAACO,KAAK;QAAA,WACzBnB;MAAO,IAEfU,KAAK,CAACU,OAAO,IAAAF,YAAA;QAAA;QAAA;MAAA,IAETR,KAAK,CAACU,OAAO,CAAC,CAAC,EAEpB,EAECN,UAAU,IAAAI,YAAA,CAAA7B,eAAA;QAAA;QAAA,QAC4Bc,KAAK,CAACJ;MAAU;QAAAgB,OAAA,EAAAA,CAAA,MAAAG,YAAA;UAAA,OACzCf,KAAK,CAACL,MAAM;UAAA;QAAA,IACnBY,KAAK,CAACK,OAAO,GAAG,CAAC,IAAIZ,KAAK,CAACL,MAAM;MAAA,EAGxC,EAECkB,SAAS,IAAAE,YAAA;QAAA;MAAA,IAEL,CAACR,KAAK,CAACO,MAAM,GAAAC,YAAA,CAAAjC,IAAA;QAAA;QAAA,QAGJkB,KAAK,CAACR,UAAU;QAAA;QAAA,WAEbkB;MAAa,WAAAK,YAAA,CAAAhC,iBAAA;QAAA;QAAA,YAKZ,CAACiB,KAAK,CAACR,UAAU;QAAA,YAClB;UACRV,IAAI,EAAE;YACJoC,IAAI,EAAElB,KAAK,CAACR,UAAU;YACtB2B,OAAO,EAAE;UACX;QACF;MAAC;QAAAP,OAAA,EAAAA,CAAA,MAECL,KAAK,CAACO,MAAM,GAAG,CAAC;MAAA,EAErB,EAEJ;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -794,7 +794,7 @@ declare const VDatePickerHeader: {
|
|
|
794
794
|
transition?: string | undefined;
|
|
795
795
|
header?: string | undefined;
|
|
796
796
|
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
797
|
-
appendIcon?:
|
|
797
|
+
appendIcon?: IconValue | undefined;
|
|
798
798
|
} & {
|
|
799
799
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
800
800
|
prepend?: (() => vue.VNodeChild) | undefined;
|
|
@@ -821,7 +821,7 @@ declare const VDatePickerHeader: {
|
|
|
821
821
|
transition?: string | undefined;
|
|
822
822
|
header?: string | undefined;
|
|
823
823
|
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
824
|
-
appendIcon?:
|
|
824
|
+
appendIcon?: IconValue | undefined;
|
|
825
825
|
} & {
|
|
826
826
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
827
827
|
prepend?: (() => vue.VNodeChild) | undefined;
|
|
@@ -856,7 +856,7 @@ declare const VDatePickerHeader: {
|
|
|
856
856
|
transition?: string | undefined;
|
|
857
857
|
header?: string | undefined;
|
|
858
858
|
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
859
|
-
appendIcon?:
|
|
859
|
+
appendIcon?: IconValue | undefined;
|
|
860
860
|
} & {
|
|
861
861
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
862
862
|
prepend?: (() => vue.VNodeChild) | undefined;
|
|
@@ -884,7 +884,7 @@ declare const VDatePickerHeader: {
|
|
|
884
884
|
transition?: string | undefined;
|
|
885
885
|
header?: string | undefined;
|
|
886
886
|
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
887
|
-
appendIcon?:
|
|
887
|
+
appendIcon?: IconValue | undefined;
|
|
888
888
|
} & {
|
|
889
889
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
890
890
|
prepend?: (() => vue.VNodeChild) | undefined;
|
|
@@ -911,13 +911,13 @@ declare const VDatePickerHeader: {
|
|
|
911
911
|
default: () => vue.VNode[];
|
|
912
912
|
append: () => vue.VNode[];
|
|
913
913
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
914
|
-
appendIcon:
|
|
914
|
+
appendIcon: vue.PropType<IconValue>;
|
|
915
915
|
color: StringConstructor;
|
|
916
916
|
header: StringConstructor;
|
|
917
917
|
transition: StringConstructor;
|
|
918
918
|
onClick: vue.PropType<(args_0: MouseEvent) => void>;
|
|
919
919
|
}, vue.ExtractPropTypes<{
|
|
920
|
-
appendIcon:
|
|
920
|
+
appendIcon: vue.PropType<IconValue>;
|
|
921
921
|
color: StringConstructor;
|
|
922
922
|
header: StringConstructor;
|
|
923
923
|
transition: StringConstructor;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
--v-scrollbar-offset: 0px;
|
|
23
23
|
border-radius: 4px;
|
|
24
24
|
overflow-y: auto;
|
|
25
|
+
flex: 1 1 100%;
|
|
25
26
|
}
|
|
26
27
|
.v-dialog > .v-overlay__content > .v-card,
|
|
27
28
|
.v-dialog > .v-overlay__content > .v-sheet,
|
|
@@ -62,16 +63,13 @@
|
|
|
62
63
|
margin: 0;
|
|
63
64
|
padding: 0;
|
|
64
65
|
width: 100%;
|
|
66
|
+
height: 100%;
|
|
65
67
|
max-width: 100%;
|
|
66
68
|
max-height: 100%;
|
|
67
69
|
overflow-y: auto;
|
|
68
70
|
top: 0;
|
|
69
71
|
left: 0;
|
|
70
72
|
}
|
|
71
|
-
.v-dialog--fullscreen > .v-overlay__content,
|
|
72
|
-
.v-dialog--fullscreen > .v-overlay__content > form {
|
|
73
|
-
height: 100%;
|
|
74
|
-
}
|
|
75
73
|
.v-dialog--fullscreen > .v-overlay__content > .v-card,
|
|
76
74
|
.v-dialog--fullscreen > .v-overlay__content > .v-sheet,
|
|
77
75
|
.v-dialog--fullscreen > .v-overlay__content > form > .v-card,
|
|
@@ -82,10 +80,8 @@
|
|
|
82
80
|
}
|
|
83
81
|
|
|
84
82
|
.v-dialog--scrollable > .v-overlay__content,
|
|
85
|
-
.v-dialog--scrollable > .v-overlay__content > form {
|
|
86
|
-
display: flex;
|
|
87
|
-
}
|
|
88
83
|
.v-dialog--scrollable > .v-overlay__content > .v-card,
|
|
84
|
+
.v-dialog--scrollable > .v-overlay__content > form,
|
|
89
85
|
.v-dialog--scrollable > .v-overlay__content > form > .v-card {
|
|
90
86
|
display: flex;
|
|
91
87
|
flex: 1 1 100%;
|
|
@@ -10,7 +10,7 @@ import { makeVOverlayProps } from "../VOverlay/VOverlay.mjs"; // Composables
|
|
|
10
10
|
import { forwardRefs } from "../../composables/forwardRefs.mjs";
|
|
11
11
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
12
12
|
import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
|
|
13
|
-
import { mergeProps, nextTick, ref, watch } from 'vue';
|
|
13
|
+
import { mergeProps, nextTick, onBeforeUnmount, ref, watch } from 'vue';
|
|
14
14
|
import { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
15
|
export const makeVDialogProps = propsFactory({
|
|
16
16
|
fullscreen: Boolean,
|
|
@@ -67,6 +67,9 @@ export const VDialog = genericComponent()({
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
onBeforeUnmount(() => {
|
|
71
|
+
document.removeEventListener('focusin', onFocusin);
|
|
72
|
+
});
|
|
70
73
|
if (IN_BROWSER) {
|
|
71
74
|
watch(() => isActive.value && props.retainFocus, val => {
|
|
72
75
|
val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);
|
|
@@ -114,6 +117,10 @@ export const VDialog = genericComponent()({
|
|
|
114
117
|
"aria-modal": "true",
|
|
115
118
|
"activatorProps": activatorProps,
|
|
116
119
|
"contentProps": contentProps,
|
|
120
|
+
"height": !props.fullscreen ? props.height : undefined,
|
|
121
|
+
"width": !props.fullscreen ? props.width : undefined,
|
|
122
|
+
"maxHeight": !props.fullscreen ? props.maxHeight : undefined,
|
|
123
|
+
"maxWidth": !props.fullscreen ? props.maxWidth : undefined,
|
|
117
124
|
"role": "dialog",
|
|
118
125
|
"onAfterEnter": onAfterEnter,
|
|
119
126
|
"onAfterLeave": onAfterLeave
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDialog.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","mergeProps","nextTick","ref","watch","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","makeVDialogProps","fullscreen","Boolean","retainFocus","type","default","scrollable","origin","scrollStrategy","transition","component","zIndex","VDialog","name","props","emits","value","afterEnter","afterLeave","setup","_ref","emit","slots","isActive","scopeId","overlay","onFocusin","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","length","firstElement","lastElement","focus","val","addEventListener","removeEventListener","immediate","onAfterEnter","activeElement","preventScroll","onAfterLeave","activatorEl","overlayProps","filterProps","activatorProps","contentProps","tabindex","_createVNode","_mergeProps","class","style","$event","activator","_len","arguments","args","Array","_key"],"sources":["../../../src/components/VDialog/VDialog.tsx"],"sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent<OverlaySlots>()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({ preventScroll: true })\n }\n }\n\n function onAfterLeave () {\n emit('afterLeave')\n }\n\n watch(isActive, async val => {\n if (!val) {\n await nextTick()\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog',\n }, props.activatorProps)\n const contentProps = mergeProps({\n tabindex: -1,\n }, props.contentProps)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n aria-modal=\"true\"\n activatorProps={ activatorProps }\n contentProps={ contentProps }\n role=\"dialog\"\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VDialog\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDialog.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","mergeProps","nextTick","onBeforeUnmount","ref","watch","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","makeVDialogProps","fullscreen","Boolean","retainFocus","type","default","scrollable","origin","scrollStrategy","transition","component","zIndex","VDialog","name","props","emits","value","afterEnter","afterLeave","setup","_ref","emit","slots","isActive","scopeId","overlay","onFocusin","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","length","firstElement","lastElement","focus","removeEventListener","val","addEventListener","immediate","onAfterEnter","activeElement","preventScroll","onAfterLeave","activatorEl","overlayProps","filterProps","activatorProps","contentProps","tabindex","_createVNode","_mergeProps","class","style","$event","height","undefined","width","maxHeight","maxWidth","activator","_len","arguments","args","Array","_key"],"sources":["../../../src/components/VDialog/VDialog.tsx"],"sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { mergeProps, nextTick, onBeforeUnmount, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent<OverlaySlots>()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n onBeforeUnmount(() => {\n document.removeEventListener('focusin', onFocusin)\n })\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({ preventScroll: true })\n }\n }\n\n function onAfterLeave () {\n emit('afterLeave')\n }\n\n watch(isActive, async val => {\n if (!val) {\n await nextTick()\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog',\n }, props.activatorProps)\n const contentProps = mergeProps({\n tabindex: -1,\n }, props.contentProps)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n aria-modal=\"true\"\n activatorProps={ activatorProps }\n contentProps={ contentProps }\n height={ !props.fullscreen ? props.height : undefined }\n width={ !props.fullscreen ? props.width : undefined }\n maxHeight={ !props.fullscreen ? props.maxHeight : undefined }\n maxWidth={ !props.fullscreen ? props.maxWidth : undefined }\n role=\"dialog\"\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VDialog\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
--v-scrollbar-offset: 0px
|
|
25
25
|
border-radius: $dialog-border-radius
|
|
26
26
|
overflow-y: auto
|
|
27
|
+
flex: 1 1 100%
|
|
27
28
|
|
|
28
29
|
@include tools.elevation($dialog-elevation)
|
|
29
30
|
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
margin: 0
|
|
55
56
|
padding: 0
|
|
56
57
|
width: 100%
|
|
58
|
+
height: 100%
|
|
57
59
|
max-width: 100%
|
|
58
60
|
max-height: 100%
|
|
59
61
|
overflow-y: auto
|
|
@@ -62,8 +64,6 @@
|
|
|
62
64
|
|
|
63
65
|
&,
|
|
64
66
|
> form
|
|
65
|
-
height: 100%
|
|
66
|
-
|
|
67
67
|
> .v-card,
|
|
68
68
|
> .v-sheet
|
|
69
69
|
min-height: 100%
|
|
@@ -73,8 +73,7 @@
|
|
|
73
73
|
.v-dialog--scrollable > .v-overlay__content
|
|
74
74
|
&,
|
|
75
75
|
> form
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
&,
|
|
78
77
|
> .v-card
|
|
79
78
|
display: flex
|
|
80
79
|
flex: 1 1 100%
|
|
@@ -82,6 +81,6 @@
|
|
|
82
81
|
max-height: 100%
|
|
83
82
|
max-width: 100%
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
> .v-card > .v-card-text
|
|
85
|
+
backface-visibility: hidden
|
|
86
|
+
overflow-y: auto
|