@semplice-studio/pa-design-system 0.1.1 → 0.3.0
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/README.md +85 -128
- package/dist/components/PaAccordion/PaAccordion.vue.d.ts +0 -1
- package/dist/components/PaAccordion/PaAccordion.vue.js +3 -5
- package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -1
- package/dist/components/PaAccordion/PaAccordion.vue2.js +24 -30
- package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -1
- package/dist/components/PaBanner/PaBanner.vue.js +6 -6
- package/dist/components/PaBanner/PaBanner.vue2.js +26 -28
- package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -1
- package/dist/components/PaCard/PaCard.vue.d.ts +17 -14
- package/dist/components/PaCard/PaCard.vue.js +2 -2
- package/dist/components/PaCard/PaCard.vue2.js +37 -42
- package/dist/components/PaCard/PaCard.vue2.js.map +1 -1
- package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +5 -6
- package/dist/components/PaCheckbox/PaCheckbox.vue.js +2 -4
- package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -1
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js +20 -26
- package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -1
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +5 -6
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +2 -4
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -1
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +25 -31
- package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -1
- package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +13 -26
- package/dist/components/PaDatePicker/PaDatePicker.vue.js +4 -6
- package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -1
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js +53 -59
- package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -1
- package/dist/components/PaDrawer/PaDrawer.vue.js +2 -2
- package/dist/components/PaDrawer/PaDrawer.vue2.js +37 -41
- package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +0 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue.js +3 -5
- package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -1
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js +22 -28
- package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -1
- package/dist/components/PaFooter/PaFooter.vue.js +1 -1
- package/dist/components/PaFooter/PaFooter.vue2.js +43 -48
- package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -1
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +1 -1
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +61 -66
- package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -1
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +2 -2
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +69 -74
- package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -1
- package/dist/components/PaHero/PaHero.vue.d.ts +15 -12
- package/dist/components/PaHero/PaHero.vue.js +2 -2
- package/dist/components/PaHero/PaHero.vue2.js +36 -41
- package/dist/components/PaHero/PaHero.vue2.js.map +1 -1
- package/dist/components/PaInput/PaInput.vue.d.ts +15 -13
- package/dist/components/PaInput/PaInput.vue.js +4 -6
- package/dist/components/PaInput/PaInput.vue.js.map +1 -1
- package/dist/components/PaInput/PaInput.vue2.js +27 -33
- package/dist/components/PaInput/PaInput.vue2.js.map +1 -1
- package/dist/components/PaModal/PaModal.vue.d.ts +14 -11
- package/dist/components/PaModal/PaModal.vue.js +3 -3
- package/dist/components/PaModal/PaModal.vue2.js +41 -46
- package/dist/components/PaModal/PaModal.vue2.js.map +1 -1
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +13 -26
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +2 -4
- package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -1
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +64 -70
- package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -1
- package/dist/components/PaPagination/PaPagination.vue.js +2 -2
- package/dist/components/PaPagination/PaPagination.vue2.js +41 -46
- package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -1
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +5 -6
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +2 -4
- package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -1
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +22 -28
- package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +0 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue.js +4 -6
- package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -1
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js +76 -82
- package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +0 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue.js +3 -5
- package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -1
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js +55 -61
- package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -1
- package/dist/components/PaSelect/PaSelect.vue.d.ts +5 -6
- package/dist/components/PaSelect/PaSelect.vue.js +4 -6
- package/dist/components/PaSelect/PaSelect.vue.js.map +1 -1
- package/dist/components/PaSelect/PaSelect.vue2.js +25 -31
- package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -1
- package/dist/components/PaTabs/PaTabs.vue.js +1 -1
- package/dist/components/PaTabs/PaTabs.vue2.js +17 -19
- package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -1
- package/dist/components/PaTextarea/PaTextarea.vue.d.ts +5 -6
- package/dist/components/PaTextarea/PaTextarea.vue.js +4 -6
- package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -1
- package/dist/components/PaTextarea/PaTextarea.vue2.js +16 -22
- package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +0 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue.js +2 -4
- package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -1
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js +44 -50
- package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -1
- package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +12 -9
- package/dist/components/PaTitleBar/PaTitleBar.vue.js +2 -2
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js +34 -39
- package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -1
- package/dist/components/PaToggle/PaToggle.vue.d.ts +0 -1
- package/dist/components/PaToggle/PaToggle.vue.js +2 -4
- package/dist/components/PaToggle/PaToggle.vue.js.map +1 -1
- package/dist/components/PaToggle/PaToggle.vue2.js +20 -26
- package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -1
- package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +13 -26
- package/dist/components/PaYearPicker/PaYearPicker.vue.js +4 -6
- package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -1
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js +70 -76
- package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -1
- package/dist/style.css +1 -1
- package/docs/design-system.md +590 -0
- package/docs/layouts.md +297 -0
- package/docs/page-composition-examples.md +286 -0
- package/docs/public-surface.md +68 -0
- package/package.json +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaCheckboxGroup.vue2.js","sources":["../../../src/components/PaCheckboxGroup/PaCheckboxGroup.vue"],"sourcesContent":["<script
|
|
1
|
+
{"version":3,"file":"PaCheckboxGroup.vue2.js","sources":["../../../src/components/PaCheckboxGroup/PaCheckboxGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId } from 'vue'\nimport PaCheckbox from '../PaCheckbox/PaCheckbox.vue'\n\nexport type PaCheckboxGroupOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface PaCheckboxGroupProps {\n options: PaCheckboxGroupOption[]\n label?: string\n id?: string\n name?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n disabled?: boolean\n}\n\nconst props = withDefaults(defineProps<PaCheckboxGroupProps>(), {\n error: false,\n valid: false,\n required: false,\n disabled: false,\n})\n\nconst model = defineModel<string[]>({ default: () => [] })\n\nconst generatedId = `pa-checkbox-group-${useId()}`\nconst groupId = computed(() => props.id ?? generatedId)\nconst labelId = computed(() => `${groupId.value}-label`)\nconst messageId = computed(() => `${groupId.value}-msg`)\nconst groupName = computed(() => props.name ?? `${groupId.value}-name`)\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\n\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && !validActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n\nfunction toggle(value: string, next: boolean) {\n if (next) {\n if (model.value.includes(value)) return\n const selected = new Set([...model.value, value])\n model.value = props.options.map((o) => o.value).filter((v) => selected.has(v))\n } else {\n model.value = model.value.filter((v) => v !== value)\n }\n}\n</script>\n\n<template>\n <div\n :class=\"[\n 'pa-checkbox-group',\n {\n 'pa-checkbox-group--error': errorActive,\n 'pa-checkbox-group--valid': validActive,\n 'pa-checkbox-group--disabled': disabled,\n },\n ]\"\n role=\"group\"\n :aria-labelledby=\"label ? labelId : undefined\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n >\n <span v-if=\"label\" :id=\"labelId\" class=\"pa-checkbox-group__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-checkbox-group__required\" aria-hidden=\"true\">*</span>\n </span>\n <PaCheckbox\n v-for=\"opt in options\"\n :key=\"opt.value\"\n :model-value=\"model.includes(opt.value)\"\n :label=\"opt.label\"\n :value=\"opt.value\"\n :name=\"groupName\"\n :disabled=\"disabled || opt.disabled\"\n :error=\"errorActive\"\n :valid=\"validActive\"\n @update:model-value=\"(next) => toggle(opt.value, next)\"\n />\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-checkbox-group__message', { 'pa-checkbox-group__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-checkbox-group {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--pa-space-xs);\n font-family: var(--pa-font-family-base);\n direction: ltr;\n text-align: left;\n}\n\n.pa-checkbox-group__label {\n font-size: var(--pa-font-label-sm-size);\n line-height: var(--pa-font-label-sm-line-height);\n font-weight: var(--pa-font-label-sm-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-checkbox-group--disabled .pa-checkbox-group__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-checkbox-group__required {\n margin-left: 2px;\n color: var(--pa-color-error);\n}\n\n.pa-checkbox-group__message {\n font-size: var(--pa-font-label-helper-size);\n line-height: var(--pa-font-label-helper-line-height);\n font-weight: var(--pa-font-label-helper-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-checkbox-group__message--error {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["props","__props","model","_useModel","generatedId","useId","groupId","computed","labelId","messageId","groupName","errorActive","validActive","errorMessage","helperMessage","message","toggle","value","next","selected","o","v","_createElementBlock","_normalizeClass","_hoisted_3","_Fragment","_renderList","opt","_createBlock","PaCheckbox","_hoisted_4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,UAAMA,IAAQC,GAORC,IAAQC,EAAqBF,GAAA,YAAsB,GAEnDG,IAAc,qBAAqBC,EAAA,CAAO,IAC1CC,IAAUC,EAAS,MAAMP,EAAM,MAAMI,CAAW,GAChDI,IAAUD,EAAS,MAAM,GAAGD,EAAQ,KAAK,QAAQ,GACjDG,IAAYF,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GACjDI,IAAYH,EAAS,MAAMP,EAAM,QAAQ,GAAGM,EAAQ,KAAK,OAAO,GAEhEK,IAAcJ,EAAS,MAAM,EAAQP,EAAM,KAAM,GACjDY,IAAcL,EAAS,MAAMP,EAAM,SAAS,CAACW,EAAY,KAAK,GAE9DE,IAAeN;AAAA,MAAS,MAC5B,OAAOP,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEc,IAAgBP;AAAA,MAAS,MAC7B,CAACI,EAAY,SAAS,CAACC,EAAY,SAASZ,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9Ee,IAAUR,EAAS,MAAMM,EAAa,SAASC,EAAc,KAAK;AAExE,aAASE,EAAOC,GAAeC,GAAe;AAC5C,UAAIA,GAAM;AACR,YAAIhB,EAAM,MAAM,SAASe,CAAK,EAAG;AACjC,cAAME,wBAAe,IAAI,CAAC,GAAGjB,EAAM,OAAOe,CAAK,CAAC;AAChD,QAAAf,EAAM,QAAQF,EAAM,QAAQ,IAAI,CAACoB,MAAMA,EAAE,KAAK,EAAE,OAAO,CAACC,MAAMF,EAAS,IAAIE,CAAC,CAAC;AAAA,MAC/E;AACE,QAAAnB,EAAM,QAAQA,EAAM,MAAM,OAAO,CAACmB,MAAMA,MAAMJ,CAAK;AAAA,IAEvD;2BAIEK,EAqCM,OAAA;AAAA,MApCH,OAAKC,EAAA;AAAA;;sCAA2EZ,EAAA;AAAA,sCAAiDC,EAAA;AAAA,yCAAoDX,EAAA;AAAA,QAAA;AAAA;MAQtL,MAAK;AAAA,MACJ,mBAAiBA,EAAA,QAAQO,EAAA,QAAU;AAAA,MACnC,iBAAeP,EAAA,YAAY;AAAA,MAC3B,gBAAcU,EAAA,SAAe;AAAA,MAC7B,oBAAkBI,EAAA,QAAUN,EAAA,QAAY;AAAA,IAAA;MAE7BR,EAAA,cAAZqB,EAEO,QAAA;AAAA;QAFa,IAAId,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YAClCP,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZqB,EAAqF,QAArFE,GAA6E,GAAC;;cAE3FF,EAWEG,GAAA,MAAAC,EAVczB,EAAA,SAAO,CAAd0B,YADTC,EAWEC,GAAA;AAAA,QATC,KAAKF,EAAI;AAAA,QACT,eAAazB,EAAA,MAAM,SAASyB,EAAI,KAAK;AAAA,QACrC,OAAOA,EAAI;AAAA,QACX,OAAOA,EAAI;AAAA,QACX,MAAMjB,EAAA;AAAA,QACN,UAAUT,EAAA,YAAY0B,EAAI;AAAA,QAC1B,OAAOhB,EAAA;AAAA,QACP,OAAOC,EAAA;AAAA,QACP,uBAAkB,CAAGM,MAASF,EAAOW,EAAI,OAAOT,CAAI;AAAA,MAAA;MAG/CH,EAAA,cADRO,EAMM,OAAA;AAAA;QAJH,IAAIb,EAAA;AAAA,QACJ,+EAA6EE,EAAA,OAAW,CAAA;AAAA,MAAA,KAEtFI,EAAA,KAAO,GAAA,IAAAe,CAAA;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import 'v-calendar/style.css';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
display?: "popover" | "inline";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
display?: 'popover' | 'inline';
|
|
5
4
|
placeholder?: string;
|
|
6
5
|
label?: string;
|
|
7
6
|
required?: boolean;
|
|
@@ -15,28 +14,17 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
15
14
|
min?: Date | null;
|
|
16
15
|
max?: Date | null;
|
|
17
16
|
disabledDates?: (date: Date) => boolean;
|
|
18
|
-
}
|
|
17
|
+
};
|
|
18
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
19
19
|
modelValue?: Date | null;
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
|
+
declare var __VLS_1: {};
|
|
22
|
+
type __VLS_Slots = {} & {
|
|
23
|
+
suffix?: (props: typeof __VLS_1) => any;
|
|
24
|
+
};
|
|
25
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
21
26
|
"update:modelValue": (value: Date | null) => any;
|
|
22
|
-
}, string, import("vue").PublicProps, Readonly<{
|
|
23
|
-
display?: "popover" | "inline";
|
|
24
|
-
placeholder?: string;
|
|
25
|
-
label?: string;
|
|
26
|
-
required?: boolean;
|
|
27
|
-
helperText?: string;
|
|
28
|
-
error?: string | boolean;
|
|
29
|
-
valid?: boolean;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
readonly?: boolean;
|
|
32
|
-
id?: string;
|
|
33
|
-
name?: string;
|
|
34
|
-
min?: Date | null;
|
|
35
|
-
max?: Date | null;
|
|
36
|
-
disabledDates?: (date: Date) => boolean;
|
|
37
|
-
} & {
|
|
38
|
-
modelValue?: Date | null;
|
|
39
|
-
}> & Readonly<{
|
|
27
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
40
28
|
"onUpdate:modelValue"?: ((value: Date | null) => any) | undefined;
|
|
41
29
|
}>, {
|
|
42
30
|
error: string | boolean;
|
|
@@ -49,9 +37,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
49
37
|
max: Date | null;
|
|
50
38
|
display: "popover" | "inline";
|
|
51
39
|
disabledDates: (date: Date) => boolean;
|
|
52
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any
|
|
53
|
-
|
|
54
|
-
}>;
|
|
40
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
41
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
55
42
|
export default _default;
|
|
56
43
|
type __VLS_WithSlots<T, S> = T & {
|
|
57
44
|
new (): {
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { nextPaDatePickerId as f } from "./PaDatePicker.vue2.js";
|
|
1
|
+
import o from "./PaDatePicker.vue2.js";
|
|
3
2
|
/* empty css */
|
|
4
|
-
import
|
|
5
|
-
const
|
|
3
|
+
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-13cb46b4"]]);
|
|
6
5
|
export {
|
|
7
|
-
|
|
8
|
-
f as nextPaDatePickerId
|
|
6
|
+
e as default
|
|
9
7
|
};
|
|
10
8
|
//# sourceMappingURL=PaDatePicker.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaDatePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PaDatePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { DatePicker as
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
const
|
|
1
|
+
import { defineComponent as H, useModel as J, ref as M, useId as N, computed as n, watch as Q, onBeforeUnmount as X, openBlock as u, createElementBlock as c, normalizeClass as f, createTextVNode as Z, toDisplayString as C, createCommentVNode as v, withKeys as q, withModifiers as E, createElementVNode as g, renderSlot as ee, createVNode as y, withDirectives as ae, unref as te, withCtx as P, vShow as ie, mergeModels as ne } from "vue";
|
|
2
|
+
import { DatePicker as re } from "v-calendar";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import S from "../PaIcon/PaIcon.vue.js";
|
|
5
|
+
const le = ["for"], de = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "pa-date-picker__required",
|
|
8
8
|
"aria-hidden": "true"
|
|
9
|
-
},
|
|
10
|
-
let me = 0;
|
|
11
|
-
function fe() {
|
|
12
|
-
return `pa-date-picker-${++me}`;
|
|
13
|
-
}
|
|
14
|
-
const be = /* @__PURE__ */ G({
|
|
9
|
+
}, oe = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], se = { class: "pa-date-picker__value" }, ue = ["name", "value", "disabled", "readonly", "required"], ce = ["onClick"], ve = ["onClick"], me = ["id"], ke = /* @__PURE__ */ H({
|
|
15
10
|
__name: "PaDatePicker",
|
|
16
|
-
props: /* @__PURE__ */
|
|
11
|
+
props: /* @__PURE__ */ ne({
|
|
17
12
|
display: { default: "popover" },
|
|
18
13
|
placeholder: { default: "gg/mm/aaaa" },
|
|
19
14
|
label: {},
|
|
@@ -34,17 +29,17 @@ const be = /* @__PURE__ */ G({
|
|
|
34
29
|
}),
|
|
35
30
|
emits: ["update:modelValue"],
|
|
36
31
|
setup(t) {
|
|
37
|
-
const a = t, d =
|
|
32
|
+
const a = t, d = J(t, "modelValue"), k = M(null), _ = M(null), r = M(!1), B = `pa-date-picker-pop-${N()}`, Y = `pa-date-picker-${N()}`, b = n(() => a.id ?? Y), F = n(() => `${b.value}-msg`), z = new Intl.DateTimeFormat("it-IT", {
|
|
38
33
|
day: "2-digit",
|
|
39
34
|
month: "2-digit",
|
|
40
35
|
year: "numeric"
|
|
41
|
-
}),
|
|
42
|
-
() => d.value instanceof Date ?
|
|
43
|
-
),
|
|
36
|
+
}), K = n(
|
|
37
|
+
() => d.value instanceof Date ? z.format(d.value) : a.placeholder
|
|
38
|
+
), R = n(() => !(d.value instanceof Date)), s = n(() => !!a.error), V = n(() => a.valid && !s.value), A = n(
|
|
44
39
|
() => typeof a.error == "string" && a.error.length > 0 ? a.error : null
|
|
45
|
-
),
|
|
40
|
+
), W = n(
|
|
46
41
|
() => !s.value && a.helperText ? a.helperText : null
|
|
47
|
-
), h = n(() =>
|
|
42
|
+
), h = n(() => A.value ?? W.value), O = n(() => {
|
|
48
43
|
const e = d.value;
|
|
49
44
|
if (!(e instanceof Date) || isNaN(e.getTime())) return "";
|
|
50
45
|
const i = e.getFullYear(), o = String(e.getMonth() + 1).padStart(2, "0"), T = String(e.getDate()).padStart(2, "0");
|
|
@@ -56,17 +51,17 @@ const be = /* @__PURE__ */ G({
|
|
|
56
51
|
function $(e, i) {
|
|
57
52
|
return new Date(e.getFullYear(), e.getMonth(), e.getDate() + i, 0, 0, 0, 0);
|
|
58
53
|
}
|
|
59
|
-
function
|
|
54
|
+
function U(e) {
|
|
60
55
|
const i = l(e);
|
|
61
56
|
return a.min && i.getTime() < l(a.min).getTime() || a.max && i.getTime() > l(a.max).getTime() ? !0 : a.disabledDates ? a.disabledDates(i) === !0 : !1;
|
|
62
57
|
}
|
|
63
|
-
const
|
|
58
|
+
const j = n(() => {
|
|
64
59
|
const e = [];
|
|
65
60
|
if (a.min && e.push({ start: null, end: $(l(a.min), -1) }), a.max && e.push({ start: $(l(a.max), 1), end: null }), a.disabledDates) {
|
|
66
|
-
const i = d.value instanceof Date ? d.value.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), o = a.min ? l(a.min) : new Date(i - 5, 0, 1, 0, 0, 0, 0), T = a.max ? l(a.max) : new Date(i + 5, 11, 31, 0, 0, 0, 0),
|
|
67
|
-
for (;
|
|
68
|
-
const
|
|
69
|
-
a.disabledDates(
|
|
61
|
+
const i = d.value instanceof Date ? d.value.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), o = a.min ? l(a.min) : new Date(i - 5, 0, 1, 0, 0, 0, 0), T = a.max ? l(a.max) : new Date(i + 5, 11, 31, 0, 0, 0, 0), p = new Date(o.getTime());
|
|
62
|
+
for (; p.getTime() <= T.getTime(); ) {
|
|
63
|
+
const L = l(p);
|
|
64
|
+
a.disabledDates(L) && e.push(L), p.setDate(p.getDate() + 1);
|
|
70
65
|
}
|
|
71
66
|
}
|
|
72
67
|
return e;
|
|
@@ -81,10 +76,10 @@ const be = /* @__PURE__ */ G({
|
|
|
81
76
|
function w() {
|
|
82
77
|
a.disabled || a.readonly || (r.value ? m() : I());
|
|
83
78
|
}
|
|
84
|
-
function
|
|
79
|
+
function G(e) {
|
|
85
80
|
if (a.readonly) return;
|
|
86
81
|
const i = l(e.date);
|
|
87
|
-
|
|
82
|
+
U(i) || (d.value = i, a.display === "popover" && m());
|
|
88
83
|
}
|
|
89
84
|
function D(e) {
|
|
90
85
|
k.value && (k.value.contains(e.target) || m(!1));
|
|
@@ -92,14 +87,14 @@ const be = /* @__PURE__ */ G({
|
|
|
92
87
|
function x(e) {
|
|
93
88
|
e.key === "Escape" && (e.preventDefault(), m());
|
|
94
89
|
}
|
|
95
|
-
return
|
|
90
|
+
return Q(r, (e) => {
|
|
96
91
|
e ? (document.addEventListener("mousedown", D), window.addEventListener("keydown", x)) : (document.removeEventListener("mousedown", D), window.removeEventListener("keydown", x));
|
|
97
|
-
}),
|
|
92
|
+
}), X(() => {
|
|
98
93
|
document.removeEventListener("mousedown", D), window.removeEventListener("keydown", x);
|
|
99
94
|
}), (e, i) => (u(), c("div", {
|
|
100
95
|
ref_key: "rootRef",
|
|
101
96
|
ref: k,
|
|
102
|
-
class:
|
|
97
|
+
class: f([
|
|
103
98
|
"pa-date-picker",
|
|
104
99
|
`pa-date-picker--${t.display}`,
|
|
105
100
|
{
|
|
@@ -116,19 +111,19 @@ const be = /* @__PURE__ */ G({
|
|
|
116
111
|
for: b.value,
|
|
117
112
|
class: "pa-date-picker__label"
|
|
118
113
|
}, [
|
|
119
|
-
|
|
120
|
-
t.required ? (u(), c("span",
|
|
121
|
-
], 8,
|
|
114
|
+
Z(C(t.label), 1),
|
|
115
|
+
t.required ? (u(), c("span", de, "*")) : v("", !0)
|
|
116
|
+
], 8, le)) : v("", !0),
|
|
122
117
|
t.display === "popover" ? (u(), c("button", {
|
|
123
118
|
key: 1,
|
|
124
119
|
id: b.value,
|
|
125
120
|
ref_key: "triggerRef",
|
|
126
121
|
ref: _,
|
|
127
122
|
type: "button",
|
|
128
|
-
class:
|
|
123
|
+
class: f([
|
|
129
124
|
"pa-date-picker__trigger",
|
|
130
125
|
{
|
|
131
|
-
"pa-date-picker__trigger--placeholder":
|
|
126
|
+
"pa-date-picker__trigger--placeholder": R.value,
|
|
132
127
|
"pa-date-picker__trigger--disabled": t.disabled,
|
|
133
128
|
"pa-date-picker__trigger--readonly": t.readonly && !t.disabled,
|
|
134
129
|
"pa-date-picker__trigger--error": s.value && !t.disabled,
|
|
@@ -145,85 +140,84 @@ const be = /* @__PURE__ */ G({
|
|
|
145
140
|
"aria-describedby": h.value ? F.value : void 0,
|
|
146
141
|
onClick: w,
|
|
147
142
|
onKeydown: [
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
143
|
+
q(E(w, ["prevent"]), ["enter"]),
|
|
144
|
+
q(E(w, ["prevent"]), ["space"]),
|
|
145
|
+
q(E(I, ["prevent"]), ["down"])
|
|
151
146
|
]
|
|
152
147
|
}, [
|
|
153
|
-
g("span",
|
|
154
|
-
|
|
155
|
-
y(
|
|
148
|
+
g("span", se, C(K.value), 1),
|
|
149
|
+
ee(e.$slots, "suffix", {}, () => [
|
|
150
|
+
y(S, {
|
|
156
151
|
name: "calendar-blank",
|
|
157
152
|
size: "md"
|
|
158
153
|
})
|
|
159
154
|
], !0)
|
|
160
|
-
], 42,
|
|
155
|
+
], 42, oe)) : v("", !0),
|
|
161
156
|
t.name ? (u(), c("input", {
|
|
162
157
|
key: 2,
|
|
163
158
|
type: "hidden",
|
|
164
159
|
name: t.name,
|
|
165
|
-
value:
|
|
160
|
+
value: O.value,
|
|
166
161
|
disabled: t.disabled,
|
|
167
162
|
readonly: t.readonly,
|
|
168
163
|
required: t.required
|
|
169
|
-
}, null, 8,
|
|
170
|
-
|
|
164
|
+
}, null, 8, ue)) : v("", !0),
|
|
165
|
+
ae(g("div", {
|
|
171
166
|
id: B,
|
|
172
|
-
class:
|
|
167
|
+
class: f([
|
|
173
168
|
"pa-date-picker__popover",
|
|
174
169
|
{ "pa-date-picker__popover--inline": t.display === "inline" }
|
|
175
170
|
]),
|
|
176
171
|
role: "dialog",
|
|
177
172
|
"aria-modal": "false"
|
|
178
173
|
}, [
|
|
179
|
-
y(
|
|
174
|
+
y(te(re), {
|
|
180
175
|
"model-value": d.value,
|
|
181
176
|
locale: { id: "it-IT", firstDayOfWeek: 2 },
|
|
182
177
|
"is-required": !1,
|
|
183
|
-
"disabled-dates":
|
|
184
|
-
onDayclick:
|
|
178
|
+
"disabled-dates": j.value,
|
|
179
|
+
onDayclick: G
|
|
185
180
|
}, {
|
|
186
|
-
"nav-prev-button":
|
|
181
|
+
"nav-prev-button": P(({ click: o }) => [
|
|
187
182
|
g("button", {
|
|
188
183
|
type: "button",
|
|
189
184
|
class: "pa-date-picker__nav-arrow",
|
|
190
185
|
"aria-label": "Mese precedente",
|
|
191
186
|
onClick: o
|
|
192
187
|
}, [
|
|
193
|
-
y(
|
|
188
|
+
y(S, {
|
|
194
189
|
name: "caret-left",
|
|
195
190
|
size: "sm"
|
|
196
191
|
})
|
|
197
|
-
], 8,
|
|
192
|
+
], 8, ce)
|
|
198
193
|
]),
|
|
199
|
-
"nav-next-button":
|
|
194
|
+
"nav-next-button": P(({ click: o }) => [
|
|
200
195
|
g("button", {
|
|
201
196
|
type: "button",
|
|
202
197
|
class: "pa-date-picker__nav-arrow",
|
|
203
198
|
"aria-label": "Mese successivo",
|
|
204
199
|
onClick: o
|
|
205
200
|
}, [
|
|
206
|
-
y(
|
|
201
|
+
y(S, {
|
|
207
202
|
name: "caret-right",
|
|
208
203
|
size: "sm"
|
|
209
204
|
})
|
|
210
|
-
], 8,
|
|
205
|
+
], 8, ve)
|
|
211
206
|
]),
|
|
212
207
|
_: 1
|
|
213
208
|
}, 8, ["model-value", "disabled-dates"])
|
|
214
209
|
], 2), [
|
|
215
|
-
[
|
|
210
|
+
[ie, t.display === "inline" || r.value]
|
|
216
211
|
]),
|
|
217
212
|
h.value ? (u(), c("div", {
|
|
218
213
|
key: 3,
|
|
219
214
|
id: F.value,
|
|
220
|
-
class:
|
|
221
|
-
}, C(h.value), 11,
|
|
215
|
+
class: f(["pa-date-picker__message", { "pa-date-picker__message--error": s.value }])
|
|
216
|
+
}, C(h.value), 11, me)) : v("", !0)
|
|
222
217
|
], 2));
|
|
223
218
|
}
|
|
224
219
|
});
|
|
225
220
|
export {
|
|
226
|
-
|
|
227
|
-
fe as nextPaDatePickerId
|
|
221
|
+
ke as default
|
|
228
222
|
};
|
|
229
223
|
//# sourceMappingURL=PaDatePicker.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaDatePicker.vue2.js","sources":["../../../src/components/PaDatePicker/PaDatePicker.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaDatePickerId() {\n return `pa-date-picker-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, watch } from 'vue'\nimport { DatePicker as VDatePicker } from 'v-calendar'\nimport 'v-calendar/style.css'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(\n defineProps<{\n display?: 'popover' | 'inline'\n placeholder?: string\n label?: string\n required?: boolean\n helperText?: string\n error?: string | boolean\n valid?: boolean\n disabled?: boolean\n readonly?: boolean\n id?: string\n name?: string\n min?: Date | null\n max?: Date | null\n disabledDates?: (date: Date) => boolean\n }>(),\n {\n display: 'popover',\n placeholder: 'gg/mm/aaaa',\n required: false,\n error: false,\n valid: false,\n disabled: false,\n readonly: false,\n min: null,\n max: null,\n disabledDates: undefined,\n },\n)\n\nconst model = defineModel<Date | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-date-picker-pop-${Math.random().toString(36).slice(2, 9)}`\nconst generatedId = nextPaDatePickerId()\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() =>\n model.value instanceof Date ? dateFormatter.format(model.value) : props.placeholder,\n)\n\nconst placeholderShown = computed(() => !(model.value instanceof Date))\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n\n// Built from LOCAL components — NEVER `.toISOString().slice(0, 10)`, which\n// returns UTC and lands on the previous day in any UTC-positive timezone.\nconst serialized = computed(() => {\n const v = model.value\n if (!(v instanceof Date) || isNaN(v.getTime())) return ''\n const y = v.getFullYear()\n const m = String(v.getMonth() + 1).padStart(2, '0')\n const d = String(v.getDate()).padStart(2, '0')\n return `${y}-${m}-${d}`\n})\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, 0, 0, 0, 0)\n}\n\nfunction isDisabledDate(d: Date): boolean {\n const m = localMidnight(d)\n if (props.min && m.getTime() < localMidnight(props.min).getTime()) return true\n if (props.max && m.getTime() > localMidnight(props.max).getTime()) return true\n return props.disabledDates ? props.disabledDates(m) === true : false\n}\n\n// V-Calendar's `disabled-dates` accepts only Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, we enumerate predicate-true days within a bounded window\n// (min/max if set, else ±5y around the model's anchor year) and push them as\n// individual Date entries alongside the min/max ranges.\nconst disabledDatesForVCalendar = computed(() => {\n const list: unknown[] = []\n if (props.min) list.push({ start: null, end: addDays(localMidnight(props.min), -1) })\n if (props.max) list.push({ start: addDays(localMidnight(props.max), 1), end: null })\n if (props.disabledDates) {\n const anchorYear =\n model.value instanceof Date ? model.value.getFullYear() : new Date().getFullYear()\n const winStart = props.min\n ? localMidnight(props.min)\n : new Date(anchorYear - 5, 0, 1, 0, 0, 0, 0)\n const winEnd = props.max\n ? localMidnight(props.max)\n : new Date(anchorYear + 5, 11, 31, 0, 0, 0, 0)\n const cursor = new Date(winStart.getTime())\n while (cursor.getTime() <= winEnd.getTime()) {\n const day = localMidnight(cursor)\n if (props.disabledDates(day)) list.push(day)\n cursor.setDate(cursor.getDate() + 1)\n }\n }\n return list\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\n// The ONLY writer to `model`. V-Calendar receives :model-value one-way and\n// never v-models back into us — the reactive feedback loop is what crashed\n// the previous v1.32 attempt.\n//\n// Normalize to local midnight: V-Calendar's day.date may carry a non-midnight\n// wall-clock time that, once serialized via `.toISOString()`, lands on the\n// previous day in any UTC-positive timezone. Storing local midnight keeps\n// `getFullYear / getMonth / getDate` and any locale-aware formatter aligned.\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n model.value = picked\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!rootRef.value) return\n if (!rootRef.value.contains(event.target as Node)) closePopover(false)\n}\n\nfunction onWindowKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n closePopover()\n }\n}\n\nwatch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener('mousedown', onDocumentMousedown)\n window.addEventListener('keydown', onWindowKeydown)\n } else {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n }\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n})\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"[\n 'pa-date-picker',\n `pa-date-picker--${display}`,\n {\n 'pa-date-picker--open': open,\n 'pa-date-picker--disabled': disabled,\n 'pa-date-picker--readonly': readonly,\n 'pa-date-picker--error': errorActive,\n 'pa-date-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-date-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-date-picker__required\" aria-hidden=\"true\">*</span>\n </label>\n\n <button\n v-if=\"display === 'popover'\"\n :id=\"triggerId\"\n ref=\"triggerRef\"\n type=\"button\"\n :class=\"[\n 'pa-date-picker__trigger',\n {\n 'pa-date-picker__trigger--placeholder': placeholderShown,\n 'pa-date-picker__trigger--disabled': disabled,\n 'pa-date-picker__trigger--readonly': readonly && !disabled,\n 'pa-date-picker__trigger--error': errorActive && !disabled,\n 'pa-date-picker__trigger--valid': validActive && !disabled,\n },\n ]\"\n :disabled=\"disabled\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :aria-controls=\"popoverId\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-readonly=\"readonly || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n @click=\"togglePopover\"\n @keydown.enter.prevent=\"togglePopover\"\n @keydown.space.prevent=\"togglePopover\"\n @keydown.down.prevent=\"openPopover\"\n >\n <span class=\"pa-date-picker__value\">{{ displayValue }}</span>\n <slot name=\"suffix\">\n <PaIcon name=\"calendar-blank\" size=\"md\" />\n </slot>\n </button>\n\n <input\n v-if=\"name\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"serialized\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n />\n\n <div\n v-show=\"display === 'inline' || open\"\n :id=\"popoverId\"\n :class=\"[\n 'pa-date-picker__popover',\n { 'pa-date-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :model-value=\"model\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese precedente\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n </button>\n </template>\n <template #nav-next-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese successivo\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-right\" size=\"sm\" />\n </button>\n </template>\n </VDatePicker>\n </div>\n\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-date-picker__message', { 'pa-date-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-date-picker {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n gap: var(--pa-space-2xs, 4px);\n font-family: var(--pa-font-family-sans, 'Inter', sans-serif);\n}\n\n.pa-date-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-date-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 240px;\n padding: 12px 16px;\n background: #ffffff;\n border: 1px solid var(--pa-color-neutral-gray, #454d56);\n border-radius: 4px;\n font: 400 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n cursor: pointer;\n text-align: left;\n}\n.pa-date-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-date-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-date-picker__trigger--placeholder .pa-date-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-date-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--disabled,\n.pa-date-picker__trigger[disabled] {\n background: var(--pa-color-bg-disabled-gray, #e7e8e3);\n color: var(--pa-color-text-disabled, #5b6571);\n border-color: var(--pa-color-neutral-gray, #454d56);\n cursor: not-allowed;\n}\n.pa-date-picker__trigger--disabled:hover,\n.pa-date-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-date-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__popover {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 900; min-width: 280px; padding: 24px;\n background: #ffffff; border-radius: 8px;\n box-shadow: var(--pa-shadow-elevation-02, 0 0 24px #e3e5e8);\n}\n.pa-date-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n/* Anchor the absolute popover under the trigger (not under the label). */\n.pa-date-picker:has(.pa-date-picker__label) .pa-date-picker__popover:not(.pa-date-picker__popover--inline) {\n top: auto;\n}\n\n.pa-date-picker :deep(.pa-date-picker__nav-arrow) {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; padding: 0;\n background: #ffffff; border: 0; border-radius: 9999px;\n color: var(--pa-color-primary, #0071ff); cursor: pointer;\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-date-picker :deep(.vc-container) {\n --vc-bg: #ffffff; --vc-border: transparent; --vc-rounded: 0;\n --vc-font-family: 'Inter', sans-serif;\n font-family: 'Inter', sans-serif;\n background: #ffffff; border: 0;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-date-picker :deep(.vc-title) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-primary, #0071ff);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-weeks) { padding: 0; }\n.pa-date-picker :deep(.vc-weekday) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n padding: 8px 0; text-transform: capitalize;\n}\n.pa-date-picker :deep(.vc-day) { min-height: 36px; }\n.pa-date-picker :deep(.vc-day-content) {\n font: 400 16px/18px 'Roboto Mono', monospace;\n color: var(--pa-color-neutral-gray, #454d56);\n width: 32px; height: 32px; border-radius: 9999px; transition: none;\n}\n.pa-date-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-day-content:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: -2px; background: transparent;\n color: var(--pa-color-primary, #0071ff);\n}\n.pa-date-picker :deep(.vc-day-content:active) {\n background: var(--pa-color-primary-pressed, #00173d); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n border-radius: 9999px;\n}\n.pa-date-picker :deep(.vc-highlight-content-solid) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n.pa-date-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-date-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-date-picker :deep(.vc-arrow) { display: none; }\n</style>\n"],"names":["uid","nextPaDatePickerId","props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","generatedId","triggerId","computed","messageId","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","serialized","v","y","m","d","localMidnight","addDays","n","isDisabledDate","disabledDatesForVCalendar","list","anchorYear","winStart","winEnd","cursor","day","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","onDocumentMousedown","event","onWindowKeydown","watch","isOpen","onBeforeUnmount","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","_hoisted_4","_toDisplayString","_renderSlot","_ctx","_createVNode","PaIcon","_unref","VDatePicker","_withCtx","click","_vShow","_hoisted_8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaDatePicker.vue2.js","sources":["../../../src/components/PaDatePicker/PaDatePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref, useId, watch } from 'vue'\nimport { DatePicker as VDatePicker } from 'v-calendar'\nimport 'v-calendar/style.css'\nimport PaIcon from '../PaIcon/PaIcon.vue'\n\nconst props = withDefaults(\n defineProps<{\n display?: 'popover' | 'inline'\n placeholder?: string\n label?: string\n required?: boolean\n helperText?: string\n error?: string | boolean\n valid?: boolean\n disabled?: boolean\n readonly?: boolean\n id?: string\n name?: string\n min?: Date | null\n max?: Date | null\n disabledDates?: (date: Date) => boolean\n }>(),\n {\n display: 'popover',\n placeholder: 'gg/mm/aaaa',\n required: false,\n error: false,\n valid: false,\n disabled: false,\n readonly: false,\n min: null,\n max: null,\n disabledDates: undefined,\n },\n)\n\nconst model = defineModel<Date | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-date-picker-pop-${useId()}`\nconst generatedId = `pa-date-picker-${useId()}`\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() =>\n model.value instanceof Date ? dateFormatter.format(model.value) : props.placeholder,\n)\n\nconst placeholderShown = computed(() => !(model.value instanceof Date))\n\nconst errorActive = computed(() => Boolean(props.error))\nconst validActive = computed(() => props.valid && !errorActive.value)\nconst errorMessage = computed(() =>\n typeof props.error === 'string' && props.error.length > 0 ? props.error : null,\n)\nconst helperMessage = computed(() =>\n !errorActive.value && props.helperText ? props.helperText : null,\n)\nconst message = computed(() => errorMessage.value ?? helperMessage.value)\n\n// Built from LOCAL components — NEVER `.toISOString().slice(0, 10)`, which\n// returns UTC and lands on the previous day in any UTC-positive timezone.\nconst serialized = computed(() => {\n const v = model.value\n if (!(v instanceof Date) || isNaN(v.getTime())) return ''\n const y = v.getFullYear()\n const m = String(v.getMonth() + 1).padStart(2, '0')\n const d = String(v.getDate()).padStart(2, '0')\n return `${y}-${m}-${d}`\n})\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, 0, 0, 0, 0)\n}\n\nfunction isDisabledDate(d: Date): boolean {\n const m = localMidnight(d)\n if (props.min && m.getTime() < localMidnight(props.min).getTime()) return true\n if (props.max && m.getTime() > localMidnight(props.max).getTime()) return true\n return props.disabledDates ? props.disabledDates(m) === true : false\n}\n\n// V-Calendar's `disabled-dates` accepts only Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, we enumerate predicate-true days within a bounded window\n// (min/max if set, else ±5y around the model's anchor year) and push them as\n// individual Date entries alongside the min/max ranges.\nconst disabledDatesForVCalendar = computed(() => {\n const list: unknown[] = []\n if (props.min) list.push({ start: null, end: addDays(localMidnight(props.min), -1) })\n if (props.max) list.push({ start: addDays(localMidnight(props.max), 1), end: null })\n if (props.disabledDates) {\n const anchorYear =\n model.value instanceof Date ? model.value.getFullYear() : new Date().getFullYear()\n const winStart = props.min\n ? localMidnight(props.min)\n : new Date(anchorYear - 5, 0, 1, 0, 0, 0, 0)\n const winEnd = props.max\n ? localMidnight(props.max)\n : new Date(anchorYear + 5, 11, 31, 0, 0, 0, 0)\n const cursor = new Date(winStart.getTime())\n while (cursor.getTime() <= winEnd.getTime()) {\n const day = localMidnight(cursor)\n if (props.disabledDates(day)) list.push(day)\n cursor.setDate(cursor.getDate() + 1)\n }\n }\n return list\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\n// The ONLY writer to `model`. V-Calendar receives :model-value one-way and\n// never v-models back into us — the reactive feedback loop is what crashed\n// the previous v1.32 attempt.\n//\n// Normalize to local midnight: V-Calendar's day.date may carry a non-midnight\n// wall-clock time that, once serialized via `.toISOString()`, lands on the\n// previous day in any UTC-positive timezone. Storing local midnight keeps\n// `getFullYear / getMonth / getDate` and any locale-aware formatter aligned.\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n model.value = picked\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDocumentMousedown(event: MouseEvent) {\n if (!rootRef.value) return\n if (!rootRef.value.contains(event.target as Node)) closePopover(false)\n}\n\nfunction onWindowKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n closePopover()\n }\n}\n\nwatch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener('mousedown', onDocumentMousedown)\n window.addEventListener('keydown', onWindowKeydown)\n } else {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n }\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n window.removeEventListener('keydown', onWindowKeydown)\n})\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"[\n 'pa-date-picker',\n `pa-date-picker--${display}`,\n {\n 'pa-date-picker--open': open,\n 'pa-date-picker--disabled': disabled,\n 'pa-date-picker--readonly': readonly,\n 'pa-date-picker--error': errorActive,\n 'pa-date-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-date-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-date-picker__required\" aria-hidden=\"true\">*</span>\n </label>\n\n <button\n v-if=\"display === 'popover'\"\n :id=\"triggerId\"\n ref=\"triggerRef\"\n type=\"button\"\n :class=\"[\n 'pa-date-picker__trigger',\n {\n 'pa-date-picker__trigger--placeholder': placeholderShown,\n 'pa-date-picker__trigger--disabled': disabled,\n 'pa-date-picker__trigger--readonly': readonly && !disabled,\n 'pa-date-picker__trigger--error': errorActive && !disabled,\n 'pa-date-picker__trigger--valid': validActive && !disabled,\n },\n ]\"\n :disabled=\"disabled\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :aria-controls=\"popoverId\"\n :aria-required=\"required || undefined\"\n :aria-invalid=\"errorActive || undefined\"\n :aria-readonly=\"readonly || undefined\"\n :aria-describedby=\"message ? messageId : undefined\"\n @click=\"togglePopover\"\n @keydown.enter.prevent=\"togglePopover\"\n @keydown.space.prevent=\"togglePopover\"\n @keydown.down.prevent=\"openPopover\"\n >\n <span class=\"pa-date-picker__value\">{{ displayValue }}</span>\n <slot name=\"suffix\">\n <PaIcon name=\"calendar-blank\" size=\"md\" />\n </slot>\n </button>\n\n <input\n v-if=\"name\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"serialized\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :required=\"required\"\n />\n\n <div\n v-show=\"display === 'inline' || open\"\n :id=\"popoverId\"\n :class=\"[\n 'pa-date-picker__popover',\n { 'pa-date-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :model-value=\"model\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese precedente\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-left\" size=\"sm\" />\n </button>\n </template>\n <template #nav-next-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-date-picker__nav-arrow\"\n aria-label=\"Mese successivo\"\n @click=\"click\"\n >\n <PaIcon name=\"caret-right\" size=\"sm\" />\n </button>\n </template>\n </VDatePicker>\n </div>\n\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-date-picker__message', { 'pa-date-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-date-picker {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n gap: var(--pa-space-2xs, 4px);\n font-family: var(--pa-font-family-sans, 'Inter', sans-serif);\n}\n\n.pa-date-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-date-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 240px;\n padding: 12px 16px;\n background: #ffffff;\n border: 1px solid var(--pa-color-neutral-gray, #454d56);\n border-radius: 4px;\n font: 400 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n cursor: pointer;\n text-align: left;\n}\n.pa-date-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-date-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-date-picker__trigger--placeholder .pa-date-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-date-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-date-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-date-picker__trigger--disabled,\n.pa-date-picker__trigger[disabled] {\n background: var(--pa-color-bg-disabled-gray, #e7e8e3);\n color: var(--pa-color-text-disabled, #5b6571);\n border-color: var(--pa-color-neutral-gray, #454d56);\n cursor: not-allowed;\n}\n.pa-date-picker__trigger--disabled:hover,\n.pa-date-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-date-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-date-picker__popover {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n z-index: 900; min-width: 280px; padding: 24px;\n background: #ffffff; border-radius: 8px;\n box-shadow: var(--pa-shadow-elevation-02, 0 0 24px #e3e5e8);\n}\n.pa-date-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n/* Anchor the absolute popover under the trigger (not under the label). */\n.pa-date-picker:has(.pa-date-picker__label) .pa-date-picker__popover:not(.pa-date-picker__popover--inline) {\n top: auto;\n}\n\n.pa-date-picker :deep(.pa-date-picker__nav-arrow) {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; padding: 0;\n background: #ffffff; border: 0; border-radius: 9999px;\n color: var(--pa-color-primary, #0071ff); cursor: pointer;\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-date-picker :deep(.pa-date-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-date-picker :deep(.vc-container) {\n --vc-bg: #ffffff; --vc-border: transparent; --vc-rounded: 0;\n --vc-font-family: 'Inter', sans-serif;\n font-family: 'Inter', sans-serif;\n background: #ffffff; border: 0;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-date-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-date-picker :deep(.vc-title) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-primary, #0071ff);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-weeks) { padding: 0; }\n.pa-date-picker :deep(.vc-weekday) {\n font: 600 16px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n padding: 8px 0; text-transform: capitalize;\n}\n.pa-date-picker :deep(.vc-day) { min-height: 36px; }\n.pa-date-picker :deep(.vc-day-content) {\n font: 400 16px/18px 'Roboto Mono', monospace;\n color: var(--pa-color-neutral-gray, #454d56);\n width: 32px; height: 32px; border-radius: 9999px; transition: none;\n}\n.pa-date-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-day-content:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: -2px; background: transparent;\n color: var(--pa-color-primary, #0071ff);\n}\n.pa-date-picker :deep(.vc-day-content:active) {\n background: var(--pa-color-primary-pressed, #00173d); color: #ffffff;\n}\n.pa-date-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n border-radius: 9999px;\n}\n.pa-date-picker :deep(.vc-highlight-content-solid) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n.pa-date-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-date-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-date-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-date-picker :deep(.vc-arrow) { display: none; }\n</style>\n"],"names":["props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","useId","generatedId","triggerId","computed","messageId","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","serialized","v","y","m","d","localMidnight","addDays","n","isDisabledDate","disabledDatesForVCalendar","list","anchorYear","winStart","winEnd","cursor","day","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","onDocumentMousedown","event","onWindowKeydown","watch","isOpen","onBeforeUnmount","_createElementBlock","_normalizeClass","_hoisted_2","_createElementVNode","_hoisted_4","_toDisplayString","_renderSlot","_ctx","_createVNode","PaIcon","_unref","VDatePicker","_withCtx","click","_vShow","_hoisted_8"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./PaDrawer.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import r from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const p = /* @__PURE__ */ r(o, [["__scopeId", "data-v-1250bb84"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
p as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=PaDrawer.vue.js.map
|