@semplice-studio/pa-design-system 0.2.0 → 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.
Files changed (114) hide show
  1. package/dist/components/PaAccordion/PaAccordion.vue.d.ts +0 -1
  2. package/dist/components/PaAccordion/PaAccordion.vue.js +3 -5
  3. package/dist/components/PaAccordion/PaAccordion.vue.js.map +1 -1
  4. package/dist/components/PaAccordion/PaAccordion.vue2.js +24 -30
  5. package/dist/components/PaAccordion/PaAccordion.vue2.js.map +1 -1
  6. package/dist/components/PaBanner/PaBanner.vue.js +6 -6
  7. package/dist/components/PaBanner/PaBanner.vue2.js +26 -28
  8. package/dist/components/PaBanner/PaBanner.vue2.js.map +1 -1
  9. package/dist/components/PaCard/PaCard.vue.d.ts +17 -14
  10. package/dist/components/PaCard/PaCard.vue.js +2 -2
  11. package/dist/components/PaCard/PaCard.vue2.js +37 -42
  12. package/dist/components/PaCard/PaCard.vue2.js.map +1 -1
  13. package/dist/components/PaCheckbox/PaCheckbox.vue.d.ts +5 -6
  14. package/dist/components/PaCheckbox/PaCheckbox.vue.js +2 -4
  15. package/dist/components/PaCheckbox/PaCheckbox.vue.js.map +1 -1
  16. package/dist/components/PaCheckbox/PaCheckbox.vue2.js +20 -26
  17. package/dist/components/PaCheckbox/PaCheckbox.vue2.js.map +1 -1
  18. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.d.ts +5 -6
  19. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js +2 -4
  20. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue.js.map +1 -1
  21. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js +25 -31
  22. package/dist/components/PaCheckboxGroup/PaCheckboxGroup.vue2.js.map +1 -1
  23. package/dist/components/PaDatePicker/PaDatePicker.vue.d.ts +13 -26
  24. package/dist/components/PaDatePicker/PaDatePicker.vue.js +4 -6
  25. package/dist/components/PaDatePicker/PaDatePicker.vue.js.map +1 -1
  26. package/dist/components/PaDatePicker/PaDatePicker.vue2.js +52 -58
  27. package/dist/components/PaDatePicker/PaDatePicker.vue2.js.map +1 -1
  28. package/dist/components/PaDrawer/PaDrawer.vue.js +2 -2
  29. package/dist/components/PaDrawer/PaDrawer.vue2.js +37 -41
  30. package/dist/components/PaDrawer/PaDrawer.vue2.js.map +1 -1
  31. package/dist/components/PaFileUpload/PaFileUpload.vue.d.ts +0 -1
  32. package/dist/components/PaFileUpload/PaFileUpload.vue.js +3 -5
  33. package/dist/components/PaFileUpload/PaFileUpload.vue.js.map +1 -1
  34. package/dist/components/PaFileUpload/PaFileUpload.vue2.js +22 -28
  35. package/dist/components/PaFileUpload/PaFileUpload.vue2.js.map +1 -1
  36. package/dist/components/PaFooter/PaFooter.vue.js +1 -1
  37. package/dist/components/PaFooter/PaFooter.vue2.js +43 -48
  38. package/dist/components/PaFooter/PaFooter.vue2.js.map +1 -1
  39. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue.js +1 -1
  40. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js +61 -66
  41. package/dist/components/PaHeaderDesktop/PaHeaderDesktop.vue2.js.map +1 -1
  42. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue.js +2 -2
  43. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js +69 -74
  44. package/dist/components/PaHeaderMobile/PaHeaderMobile.vue2.js.map +1 -1
  45. package/dist/components/PaHero/PaHero.vue.d.ts +15 -12
  46. package/dist/components/PaHero/PaHero.vue.js +2 -2
  47. package/dist/components/PaHero/PaHero.vue2.js +36 -41
  48. package/dist/components/PaHero/PaHero.vue2.js.map +1 -1
  49. package/dist/components/PaInput/PaInput.vue.d.ts +15 -13
  50. package/dist/components/PaInput/PaInput.vue.js +4 -6
  51. package/dist/components/PaInput/PaInput.vue.js.map +1 -1
  52. package/dist/components/PaInput/PaInput.vue2.js +27 -33
  53. package/dist/components/PaInput/PaInput.vue2.js.map +1 -1
  54. package/dist/components/PaModal/PaModal.vue.d.ts +14 -11
  55. package/dist/components/PaModal/PaModal.vue.js +3 -3
  56. package/dist/components/PaModal/PaModal.vue2.js +41 -46
  57. package/dist/components/PaModal/PaModal.vue2.js.map +1 -1
  58. package/dist/components/PaMonthPicker/PaMonthPicker.vue.d.ts +13 -26
  59. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js +2 -4
  60. package/dist/components/PaMonthPicker/PaMonthPicker.vue.js.map +1 -1
  61. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js +64 -70
  62. package/dist/components/PaMonthPicker/PaMonthPicker.vue2.js.map +1 -1
  63. package/dist/components/PaPagination/PaPagination.vue.js +2 -2
  64. package/dist/components/PaPagination/PaPagination.vue2.js +41 -46
  65. package/dist/components/PaPagination/PaPagination.vue2.js.map +1 -1
  66. package/dist/components/PaRadioGroup/PaRadioGroup.vue.d.ts +5 -6
  67. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js +2 -4
  68. package/dist/components/PaRadioGroup/PaRadioGroup.vue.js.map +1 -1
  69. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js +22 -28
  70. package/dist/components/PaRadioGroup/PaRadioGroup.vue2.js.map +1 -1
  71. package/dist/components/PaRangePicker/PaRangePicker.vue.d.ts +0 -1
  72. package/dist/components/PaRangePicker/PaRangePicker.vue.js +4 -6
  73. package/dist/components/PaRangePicker/PaRangePicker.vue.js.map +1 -1
  74. package/dist/components/PaRangePicker/PaRangePicker.vue2.js +75 -81
  75. package/dist/components/PaRangePicker/PaRangePicker.vue2.js.map +1 -1
  76. package/dist/components/PaSearchBar/PaSearchBar.vue.d.ts +0 -1
  77. package/dist/components/PaSearchBar/PaSearchBar.vue.js +3 -5
  78. package/dist/components/PaSearchBar/PaSearchBar.vue.js.map +1 -1
  79. package/dist/components/PaSearchBar/PaSearchBar.vue2.js +55 -61
  80. package/dist/components/PaSearchBar/PaSearchBar.vue2.js.map +1 -1
  81. package/dist/components/PaSelect/PaSelect.vue.d.ts +5 -6
  82. package/dist/components/PaSelect/PaSelect.vue.js +4 -6
  83. package/dist/components/PaSelect/PaSelect.vue.js.map +1 -1
  84. package/dist/components/PaSelect/PaSelect.vue2.js +25 -31
  85. package/dist/components/PaSelect/PaSelect.vue2.js.map +1 -1
  86. package/dist/components/PaTabs/PaTabs.vue.js +1 -1
  87. package/dist/components/PaTabs/PaTabs.vue2.js +17 -19
  88. package/dist/components/PaTabs/PaTabs.vue2.js.map +1 -1
  89. package/dist/components/PaTextarea/PaTextarea.vue.d.ts +5 -6
  90. package/dist/components/PaTextarea/PaTextarea.vue.js +4 -6
  91. package/dist/components/PaTextarea/PaTextarea.vue.js.map +1 -1
  92. package/dist/components/PaTextarea/PaTextarea.vue2.js +16 -22
  93. package/dist/components/PaTextarea/PaTextarea.vue2.js.map +1 -1
  94. package/dist/components/PaTimePicker/PaTimePicker.vue.d.ts +0 -1
  95. package/dist/components/PaTimePicker/PaTimePicker.vue.js +2 -4
  96. package/dist/components/PaTimePicker/PaTimePicker.vue.js.map +1 -1
  97. package/dist/components/PaTimePicker/PaTimePicker.vue2.js +44 -50
  98. package/dist/components/PaTimePicker/PaTimePicker.vue2.js.map +1 -1
  99. package/dist/components/PaTitleBar/PaTitleBar.vue.d.ts +12 -9
  100. package/dist/components/PaTitleBar/PaTitleBar.vue.js +2 -2
  101. package/dist/components/PaTitleBar/PaTitleBar.vue2.js +34 -39
  102. package/dist/components/PaTitleBar/PaTitleBar.vue2.js.map +1 -1
  103. package/dist/components/PaToggle/PaToggle.vue.d.ts +0 -1
  104. package/dist/components/PaToggle/PaToggle.vue.js +2 -4
  105. package/dist/components/PaToggle/PaToggle.vue.js.map +1 -1
  106. package/dist/components/PaToggle/PaToggle.vue2.js +20 -26
  107. package/dist/components/PaToggle/PaToggle.vue2.js.map +1 -1
  108. package/dist/components/PaYearPicker/PaYearPicker.vue.d.ts +13 -26
  109. package/dist/components/PaYearPicker/PaYearPicker.vue.js +4 -6
  110. package/dist/components/PaYearPicker/PaYearPicker.vue.js.map +1 -1
  111. package/dist/components/PaYearPicker/PaYearPicker.vue2.js +70 -76
  112. package/dist/components/PaYearPicker/PaYearPicker.vue2.js.map +1 -1
  113. package/dist/style.css +1 -1
  114. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PaRadioGroup.vue2.js","sources":["../../../src/components/PaRadioGroup/PaRadioGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nlet uid = 0\nexport function nextPaRadioGroupId() {\n return `pa-radio-group-${++uid}`\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type PaRadioGroupOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface PaRadioGroupProps {\n options: PaRadioGroupOption[]\n label?: string\n id?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n disabled?: boolean\n name?: string\n}\n\nconst props = withDefaults(defineProps<PaRadioGroupProps>(), {\n error: false,\n valid: false,\n required: false,\n disabled: false,\n})\n\nconst model = defineModel<string>({ default: '' })\n\nconst generatedId = nextPaRadioGroupId()\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\nfunction optionId(opt: PaRadioGroupOption) {\n return `${groupId.value}-${opt.value}`\n}\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</script>\n\n<template>\n <div\n :class=\"[\n 'pa-radio-group',\n {\n 'pa-radio-group--error': errorActive,\n 'pa-radio-group--valid': validActive,\n 'pa-radio-group--disabled': disabled,\n },\n ]\"\n role=\"radiogroup\"\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-radio-group__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-radio-group__required\" aria-hidden=\"true\">*</span>\n </span>\n <label\n v-for=\"opt in options\"\n :key=\"opt.value\"\n :for=\"optionId(opt)\"\n :class=\"[\n 'pa-radio-group__option',\n { 'pa-radio-group__option--disabled': disabled || opt.disabled },\n ]\"\n >\n <input\n :id=\"optionId(opt)\"\n v-model=\"model\"\n type=\"radio\"\n :name=\"groupName\"\n :value=\"opt.value\"\n :disabled=\"disabled || opt.disabled\"\n class=\"pa-radio-group__input\"\n />\n <span class=\"pa-radio-group__option-label\">{{ opt.label }}</span>\n </label>\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-radio-group__message', { 'pa-radio-group__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-radio-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-radio-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-radio-group--disabled .pa-radio-group__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__required {\n margin-left: 2px;\n color: var(--pa-color-error);\n}\n\n.pa-radio-group__option {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n gap: 10px;\n cursor: pointer;\n}\n\n.pa-radio-group__option--disabled {\n cursor: not-allowed;\n}\n\n.pa-radio-group__input {\n position: relative;\n flex: 0 0 auto;\n width: 24px;\n height: 24px;\n margin: 0;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background: var(--pa-color-bg-white);\n border: var(--pa-border-xs) solid var(--pa-color-neutral-gray);\n border-radius: 50%;\n cursor: pointer;\n transition: border-color 120ms ease, background-color 120ms ease;\n}\n\n.pa-radio-group__option:hover:not(.pa-radio-group__option--disabled) .pa-radio-group__input:not(:checked) {\n border-color: var(--pa-color-primary-hover);\n}\n\n.pa-radio-group:not(.pa-radio-group--error):not(.pa-radio-group--valid)\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__option-label {\n color: var(--pa-color-primary-hover);\n}\n\n.pa-radio-group__input:focus { outline: none; }\n\n.pa-radio-group__input:focus-visible {\n border-color: var(--pa-color-primary);\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 3px;\n}\n\n.pa-radio-group__input:checked {\n border-color: var(--pa-color-neutral-gray);\n}\n\n.pa-radio-group__input:checked::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 14px;\n height: 14px;\n background: var(--pa-color-primary);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n}\n\n.pa-radio-group__input:disabled {\n cursor: not-allowed;\n border-color: var(--pa-color-bg-secondary-light-40);\n}\n\n.pa-radio-group__input:disabled:checked {\n background: var(--pa-color-text-disabled-gray);\n border-color: var(--pa-color-bg-secondary-light-40);\n}\n\n.pa-radio-group__input:disabled:checked::before {\n background: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__option--disabled .pa-radio-group__option-label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__option-label {\n font-size: var(--pa-font-body-size);\n line-height: var(--pa-font-body-line-height);\n font-weight: var(--pa-font-body-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-radio-group--error .pa-radio-group__input:not(:disabled) {\n border-color: var(--pa-color-error);\n}\n.pa-radio-group--error\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__input:not(:checked):not(:disabled) {\n border-color: var(--pa-color-error);\n}\n\n.pa-radio-group--valid .pa-radio-group__input:not(:disabled) {\n border-color: var(--pa-color-success);\n}\n.pa-radio-group--valid\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__input:not(:checked):not(:disabled) {\n border-color: var(--pa-color-success);\n}\n\n.pa-radio-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-radio-group__message--error {\n color: var(--pa-color-error);\n}\n</style>\n"],"names":["uid","nextPaRadioGroupId","props","__props","model","_useModel","generatedId","groupId","computed","labelId","messageId","groupName","optionId","opt","errorActive","validActive","errorMessage","helperMessage","message","_createElementBlock","_normalizeClass","_hoisted_3","_Fragment","_renderList","_createElementVNode","$event","_hoisted_6","_toDisplayString","_hoisted_7"],"mappings":";;;;;;AACA,IAAIA,IAAM;AACH,SAASC,IAAqB;AACnC,SAAO,kBAAkB,EAAED,CAAG;AAChC;;;;;;;;;;;;;;;;;;;AAwBA,UAAME,IAAQC,GAORC,IAAQC,EAAmBF,GAAA,YAAgB,GAE3CG,IAAcL,EAAA,GACdM,IAAUC,EAAS,MAAMN,EAAM,MAAMI,CAAW,GAChDG,IAAUD,EAAS,MAAM,GAAGD,EAAQ,KAAK,QAAQ,GACjDG,IAAYF,EAAS,MAAM,GAAGD,EAAQ,KAAK,MAAM,GACjDI,IAAYH,EAAS,MAAMN,EAAM,QAAQ,GAAGK,EAAQ,KAAK,OAAO;AAEtE,aAASK,EAASC,GAAyB;AACzC,aAAO,GAAGN,EAAQ,KAAK,IAAIM,EAAI,KAAK;AAAA,IACtC;AAEA,UAAMC,IAAcN,EAAS,MAAM,EAAQN,EAAM,KAAM,GACjDa,IAAcP,EAAS,MAAMN,EAAM,SAAS,CAACY,EAAY,KAAK,GAE9DE,IAAeR;AAAA,MAAS,MAC5B,OAAON,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEe,IAAgBT;AAAA,MAAS,MAC7B,CAACM,EAAY,SAAS,CAACC,EAAY,SAASb,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9EgB,IAAUV,EAAS,MAAMQ,EAAa,SAASC,EAAc,KAAK;2BAItEE,EA6CM,OAAA;AAAA,MA5CH,OAAKC,EAAA;AAAA;;mCAAqEN,EAAA;AAAA,mCAA8CC,EAAA;AAAA,sCAAiDZ,EAAA;AAAA,QAAA;AAAA;MAQ1K,MAAK;AAAA,MACJ,mBAAiBA,EAAA,QAAQM,EAAA,QAAU;AAAA,MACnC,iBAAeN,EAAA,YAAY;AAAA,MAC3B,gBAAcW,EAAA,SAAe;AAAA,MAC7B,oBAAkBI,EAAA,QAAUR,EAAA,QAAY;AAAA,IAAA;MAE7BP,EAAA,cAAZgB,EAEO,QAAA;AAAA;QAFa,IAAIV,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YAClCN,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZgB,EAAkF,QAAlFE,GAA0E,GAAC;;cAExFF,EAmBQG,GAAA,MAAAC,EAlBQpB,EAAA,SAAO,CAAdU,YADTM,EAmBQ,SAAA;AAAA,QAjBL,KAAKN,EAAI;AAAA,QACT,KAAKD,EAASC,CAAG;AAAA,QACjB,OAAKO,EAAA;AAAA;gDAAoFjB,EAAA,YAAYU,EAAI,SAAA;AAAA,QAAQ;;UAKlHW,EAQE,SAAA;AAAA,UAPC,IAAIZ,EAASC,CAAG;AAAA,wDACRT,EAAK,QAAAqB;AAAA,UACd,MAAK;AAAA,UACJ,MAAMd,EAAA;AAAA,UACN,OAAOE,EAAI;AAAA,UACX,UAAUV,EAAA,YAAYU,EAAI;AAAA,UAC3B,OAAM;AAAA,QAAA;cALGT,EAAA,KAAK;AAAA,QAAA;QAOhBoB,EAAiE,QAAjEE,GAAiEC,EAAnBd,EAAI,KAAK,GAAA,CAAA;AAAA,MAAA;MAGjDK,EAAA,cADRC,EAMM,OAAA;AAAA;QAJH,IAAIT,EAAA;AAAA,QACJ,yEAAuEI,EAAA,OAAW,CAAA;AAAA,MAAA,KAEhFI,EAAA,KAAO,GAAA,IAAAU,CAAA;;;;"}
1
+ {"version":3,"file":"PaRadioGroup.vue2.js","sources":["../../../src/components/PaRadioGroup/PaRadioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId } from 'vue'\n\nexport type PaRadioGroupOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface PaRadioGroupProps {\n options: PaRadioGroupOption[]\n label?: string\n id?: string\n helperText?: string\n error?: string | boolean\n valid?: boolean\n required?: boolean\n disabled?: boolean\n name?: string\n}\n\nconst props = withDefaults(defineProps<PaRadioGroupProps>(), {\n error: false,\n valid: false,\n required: false,\n disabled: false,\n})\n\nconst model = defineModel<string>({ default: '' })\n\nconst generatedId = `pa-radio-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\nfunction optionId(opt: PaRadioGroupOption) {\n return `${groupId.value}-${opt.value}`\n}\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</script>\n\n<template>\n <div\n :class=\"[\n 'pa-radio-group',\n {\n 'pa-radio-group--error': errorActive,\n 'pa-radio-group--valid': validActive,\n 'pa-radio-group--disabled': disabled,\n },\n ]\"\n role=\"radiogroup\"\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-radio-group__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-radio-group__required\" aria-hidden=\"true\">*</span>\n </span>\n <label\n v-for=\"opt in options\"\n :key=\"opt.value\"\n :for=\"optionId(opt)\"\n :class=\"[\n 'pa-radio-group__option',\n { 'pa-radio-group__option--disabled': disabled || opt.disabled },\n ]\"\n >\n <input\n :id=\"optionId(opt)\"\n v-model=\"model\"\n type=\"radio\"\n :name=\"groupName\"\n :value=\"opt.value\"\n :disabled=\"disabled || opt.disabled\"\n class=\"pa-radio-group__input\"\n />\n <span class=\"pa-radio-group__option-label\">{{ opt.label }}</span>\n </label>\n <div\n v-if=\"message\"\n :id=\"messageId\"\n :class=\"['pa-radio-group__message', { 'pa-radio-group__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-radio-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-radio-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-radio-group--disabled .pa-radio-group__label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__required {\n margin-left: 2px;\n color: var(--pa-color-error);\n}\n\n.pa-radio-group__option {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n gap: 10px;\n cursor: pointer;\n}\n\n.pa-radio-group__option--disabled {\n cursor: not-allowed;\n}\n\n.pa-radio-group__input {\n position: relative;\n flex: 0 0 auto;\n width: 24px;\n height: 24px;\n margin: 0;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background: var(--pa-color-bg-white);\n border: var(--pa-border-xs) solid var(--pa-color-neutral-gray);\n border-radius: 50%;\n cursor: pointer;\n transition: border-color 120ms ease, background-color 120ms ease;\n}\n\n.pa-radio-group__option:hover:not(.pa-radio-group__option--disabled) .pa-radio-group__input:not(:checked) {\n border-color: var(--pa-color-primary-hover);\n}\n\n.pa-radio-group:not(.pa-radio-group--error):not(.pa-radio-group--valid)\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__option-label {\n color: var(--pa-color-primary-hover);\n}\n\n.pa-radio-group__input:focus { outline: none; }\n\n.pa-radio-group__input:focus-visible {\n border-color: var(--pa-color-primary);\n outline: var(--pa-border-xs) solid var(--pa-color-primary-focus-border);\n outline-offset: 3px;\n}\n\n.pa-radio-group__input:checked {\n border-color: var(--pa-color-neutral-gray);\n}\n\n.pa-radio-group__input:checked::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 14px;\n height: 14px;\n background: var(--pa-color-primary);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n}\n\n.pa-radio-group__input:disabled {\n cursor: not-allowed;\n border-color: var(--pa-color-bg-secondary-light-40);\n}\n\n.pa-radio-group__input:disabled:checked {\n background: var(--pa-color-text-disabled-gray);\n border-color: var(--pa-color-bg-secondary-light-40);\n}\n\n.pa-radio-group__input:disabled:checked::before {\n background: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__option--disabled .pa-radio-group__option-label {\n color: var(--pa-color-text-disabled-gray);\n}\n\n.pa-radio-group__option-label {\n font-size: var(--pa-font-body-size);\n line-height: var(--pa-font-body-line-height);\n font-weight: var(--pa-font-body-weight);\n color: var(--pa-color-text-secondary-gray);\n}\n\n.pa-radio-group--error .pa-radio-group__input:not(:disabled) {\n border-color: var(--pa-color-error);\n}\n.pa-radio-group--error\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__input:not(:checked):not(:disabled) {\n border-color: var(--pa-color-error);\n}\n\n.pa-radio-group--valid .pa-radio-group__input:not(:disabled) {\n border-color: var(--pa-color-success);\n}\n.pa-radio-group--valid\n .pa-radio-group__option:hover:not(.pa-radio-group__option--disabled)\n .pa-radio-group__input:not(:checked):not(:disabled) {\n border-color: var(--pa-color-success);\n}\n\n.pa-radio-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-radio-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","optionId","opt","errorActive","validActive","errorMessage","helperMessage","message","_createElementBlock","_normalizeClass","_hoisted_3","_Fragment","_renderList","_createElementVNode","$event","_hoisted_6","_toDisplayString","_hoisted_7"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBA,UAAMA,IAAQC,GAORC,IAAQC,EAAmBF,GAAA,YAAgB,GAE3CG,IAAc,kBAAkBC,EAAA,CAAO,IACvCC,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;AAEtE,aAASK,EAASC,GAAyB;AACzC,aAAO,GAAGN,EAAQ,KAAK,IAAIM,EAAI,KAAK;AAAA,IACtC;AAEA,UAAMC,IAAcN,EAAS,MAAM,EAAQP,EAAM,KAAM,GACjDc,IAAcP,EAAS,MAAMP,EAAM,SAAS,CAACa,EAAY,KAAK,GAE9DE,IAAeR;AAAA,MAAS,MAC5B,OAAOP,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEgB,IAAgBT;AAAA,MAAS,MAC7B,CAACM,EAAY,SAAS,CAACC,EAAY,SAASd,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAE9EiB,IAAUV,EAAS,MAAMQ,EAAa,SAASC,EAAc,KAAK;2BAItEE,EA6CM,OAAA;AAAA,MA5CH,OAAKC,EAAA;AAAA;;mCAAqEN,EAAA;AAAA,mCAA8CC,EAAA;AAAA,sCAAiDb,EAAA;AAAA,QAAA;AAAA;MAQ1K,MAAK;AAAA,MACJ,mBAAiBA,EAAA,QAAQO,EAAA,QAAU;AAAA,MACnC,iBAAeP,EAAA,YAAY;AAAA,MAC3B,gBAAcY,EAAA,SAAe;AAAA,MAC7B,oBAAkBI,EAAA,QAAUR,EAAA,QAAY;AAAA,IAAA;MAE7BR,EAAA,cAAZiB,EAEO,QAAA;AAAA;QAFa,IAAIV,EAAA;AAAA,QAAS,OAAM;AAAA,MAAA;YAClCP,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZiB,EAAkF,QAAlFE,GAA0E,GAAC;;cAExFF,EAmBQG,GAAA,MAAAC,EAlBQrB,EAAA,SAAO,CAAdW,YADTM,EAmBQ,SAAA;AAAA,QAjBL,KAAKN,EAAI;AAAA,QACT,KAAKD,EAASC,CAAG;AAAA,QACjB,OAAKO,EAAA;AAAA;gDAAoFlB,EAAA,YAAYW,EAAI,SAAA;AAAA,QAAQ;;UAKlHW,EAQE,SAAA;AAAA,UAPC,IAAIZ,EAASC,CAAG;AAAA,wDACRV,EAAK,QAAAsB;AAAA,UACd,MAAK;AAAA,UACJ,MAAMd,EAAA;AAAA,UACN,OAAOE,EAAI;AAAA,UACX,UAAUX,EAAA,YAAYW,EAAI;AAAA,UAC3B,OAAM;AAAA,QAAA;cALGV,EAAA,KAAK;AAAA,QAAA;QAOhBqB,EAAiE,QAAjEE,GAAiEC,EAAnBd,EAAI,KAAK,GAAA,CAAA;AAAA,MAAA;MAGjDK,EAAA,cADRC,EAMM,OAAA;AAAA;QAJH,IAAIT,EAAA;AAAA,QACJ,yEAAuEI,EAAA,OAAW,CAAA;AAAA,MAAA,KAEhFI,EAAA,KAAO,GAAA,IAAAU,CAAA;;;;"}
@@ -3,7 +3,6 @@ export interface PaRangePickerValue {
3
3
  start: Date;
4
4
  end: Date;
5
5
  }
6
- export declare function nextPaRangePickerId(): string;
7
6
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
8
7
  display?: "popover" | "inline";
9
8
  placeholder?: string;
@@ -1,10 +1,8 @@
1
- import e from "./PaRangePicker.vue2.js";
2
- import { nextPaRangePickerId as p } from "./PaRangePicker.vue2.js";
1
+ import o from "./PaRangePicker.vue2.js";
3
2
  /* empty css */
4
- import o from "../../_virtual/_plugin-vue_export-helper.js";
5
- const f = /* @__PURE__ */ o(e, [["__scopeId", "data-v-cdbffeea"]]);
3
+ import a from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ a(o, [["__scopeId", "data-v-116fde8a"]]);
6
5
  export {
7
- f as default,
8
- p as nextPaRangePickerId
6
+ f as default
9
7
  };
10
8
  //# sourceMappingURL=PaRangePicker.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaRangePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaRangePicker.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,19 +1,14 @@
1
- import { defineComponent as ne, useModel as re, ref as y, computed as o, watch as le, onBeforeUnmount as ie, openBlock as f, createElementBlock as m, normalizeClass as D, createTextVNode as oe, toDisplayString as F, createCommentVNode as k, withKeys as V, withModifiers as _, createElementVNode as w, renderSlot as de, createVNode as M, withDirectives as se, unref as ue, withCtx as W, vShow as ce, mergeModels as ve } from "vue";
2
- import { DatePicker as ge } from "v-calendar";
1
+ import { defineComponent as re, useModel as le, ref as y, useId as W, computed as o, watch as ie, onBeforeUnmount as oe, openBlock as f, createElementBlock as m, normalizeClass as D, createTextVNode as de, toDisplayString as F, createCommentVNode as k, withKeys as V, withModifiers as _, createElementVNode as w, renderSlot as se, createVNode as T, withDirectives as ue, unref as ce, withCtx as U, vShow as ve, mergeModels as ge } from "vue";
2
+ import { DatePicker as fe } from "v-calendar";
3
3
  /* empty css */
4
4
  import B from "../PaIcon/PaIcon.vue.js";
5
- const fe = ["for"], me = {
5
+ const me = ["for"], pe = {
6
6
  key: 0,
7
7
  class: "pa-range-picker__required",
8
8
  "aria-hidden": "true"
9
- }, pe = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], ye = { class: "pa-range-picker__value" }, ke = ["name", "value", "disabled", "readonly", "required"], he = ["onClick"], be = ["onClick"], De = ["id"];
10
- let we = 0;
11
- function Me() {
12
- return `pa-range-picker-${++we}`;
13
- }
14
- const Ee = /* @__PURE__ */ ne({
9
+ }, ye = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-readonly", "aria-describedby", "onKeydown"], ke = { class: "pa-range-picker__value" }, be = ["name", "value", "disabled", "readonly", "required"], he = ["onClick"], De = ["onClick"], we = ["id"], Ee = /* @__PURE__ */ re({
15
10
  __name: "PaRangePicker",
16
- props: /* @__PURE__ */ ve({
11
+ props: /* @__PURE__ */ ge({
17
12
  display: { default: "popover" },
18
13
  placeholder: { default: "gg/mm/aaaa – gg/mm/aaaa" },
19
14
  label: {},
@@ -34,56 +29,56 @@ const Ee = /* @__PURE__ */ ne({
34
29
  }),
35
30
  emits: ["update:modelValue"],
36
31
  setup(n) {
37
- const a = n, u = re(n, "modelValue"), T = y(null), I = y(null), s = y(!1), P = `pa-range-picker-pop-${Math.random().toString(36).slice(2, 9)}`, U = Me(), x = o(() => a.id ?? U), L = o(() => `${x.value}-msg`), i = y(null), v = y(null);
38
- let S = 0;
32
+ const a = n, u = le(n, "modelValue"), M = y(null), I = y(null), s = y(!1), L = `pa-range-picker-pop-${W()}`, j = `pa-range-picker-${W()}`, x = o(() => a.id ?? j), Y = o(() => `${x.value}-msg`), i = y(null), v = y(null);
33
+ let $ = 0;
39
34
  function r(e) {
40
35
  return e instanceof Date && !isNaN(e.getTime());
41
36
  }
42
37
  function d(e) {
43
38
  return new Date(e.getFullYear(), e.getMonth(), e.getDate(), 0, 0, 0, 0);
44
39
  }
45
- function j(e) {
40
+ function G(e) {
46
41
  return new Date(e.getFullYear(), e.getMonth(), e.getDate(), 23, 59, 59, 999);
47
42
  }
48
- function Y(e, t) {
43
+ function N(e, t) {
49
44
  return new Date(e.getFullYear(), e.getMonth(), e.getDate() + t, 0, 0, 0, 0);
50
45
  }
51
- function N(e) {
46
+ function P(e) {
52
47
  const t = d(e);
53
48
  return a.min && t.getTime() < d(a.min).getTime() || a.max && t.getTime() > d(a.max).getTime() ? !0 : a.disabledDates ? a.disabledDates(t) === !0 : !1;
54
49
  }
55
- const G = o(() => {
50
+ const H = o(() => {
56
51
  const e = [];
57
- if (a.min && e.push({ start: null, end: Y(d(a.min), -1) }), a.max && e.push({ start: Y(d(a.max), 1), end: null }), a.disabledDates) {
58
- const t = u.value, l = t && r(t.start) ? t.start.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), c = a.min ? d(a.min) : new Date(l - 5, 0, 1, 0, 0, 0, 0), p = a.max ? d(a.max) : new Date(l + 5, 11, 31, 0, 0, 0, 0), b = new Date(c.getTime());
59
- for (; b.getTime() <= p.getTime(); ) {
60
- const A = d(b);
61
- a.disabledDates(A) && e.push(A), b.setDate(b.getDate() + 1);
52
+ if (a.min && e.push({ start: null, end: N(d(a.min), -1) }), a.max && e.push({ start: N(d(a.max), 1), end: null }), a.disabledDates) {
53
+ const t = u.value, l = t && r(t.start) ? t.start.getFullYear() : (/* @__PURE__ */ new Date()).getFullYear(), c = a.min ? d(a.min) : new Date(l - 5, 0, 1, 0, 0, 0, 0), p = a.max ? d(a.max) : new Date(l + 5, 11, 31, 0, 0, 0, 0), h = new Date(c.getTime());
54
+ for (; h.getTime() <= p.getTime(); ) {
55
+ const A = d(h);
56
+ a.disabledDates(A) && e.push(A), h.setDate(h.getDate() + 1);
62
57
  }
63
58
  }
64
59
  return e;
65
- }), R = new Intl.DateTimeFormat("it-IT", {
60
+ }), z = new Intl.DateTimeFormat("it-IT", {
66
61
  day: "2-digit",
67
62
  month: "2-digit",
68
63
  year: "numeric"
69
- }), H = o(() => {
64
+ }), J = o(() => {
70
65
  const e = u.value;
71
- return e && r(e.start) && r(e.end) ? `${R.format(e.start)} – ${R.format(e.end)}` : a.placeholder;
72
- }), J = o(
66
+ return e && r(e.start) && r(e.end) ? `${z.format(e.start)} – ${z.format(e.end)}` : a.placeholder;
67
+ }), Q = o(
73
68
  () => !u.value || !r(u.value.start) || !r(u.value.end)
74
- ), g = o(() => !!a.error), z = o(() => a.valid && !g.value), Q = o(
69
+ ), g = o(() => !!a.error), R = o(() => a.valid && !g.value), X = o(
75
70
  () => typeof a.error == "string" && a.error.length > 0 ? a.error : null
76
- ), X = o(
71
+ ), Z = o(
77
72
  () => !g.value && a.helperText ? a.helperText : null
78
- ), $ = o(() => Q.value ?? X.value);
73
+ ), E = o(() => X.value ?? Z.value);
79
74
  function K(e) {
80
75
  const t = e.getFullYear(), l = String(e.getMonth() + 1).padStart(2, "0"), c = String(e.getDate()).padStart(2, "0");
81
76
  return `${t}-${l}-${c}`;
82
77
  }
83
- const Z = o(() => {
78
+ const ee = o(() => {
84
79
  const e = u.value;
85
80
  return !e || !r(e.start) || !r(e.end) ? "" : `${K(e.start)}/${K(e.end)}`;
86
- }), ee = o(() => {
81
+ }), ae = o(() => {
87
82
  if (r(i.value) && r(v.value)) {
88
83
  const t = i.value, l = v.value, [c, p] = t.getTime() <= l.getTime() ? [t, l] : [l, t];
89
84
  return [{
@@ -106,49 +101,49 @@ const Ee = /* @__PURE__ */ ne({
106
101
  }] : [];
107
102
  });
108
103
  function O() {
109
- s.value || a.disabled || a.readonly || (S = 0, i.value = null, v.value = null, s.value = !0);
104
+ s.value || a.disabled || a.readonly || ($ = 0, i.value = null, v.value = null, s.value = !0);
110
105
  }
111
- function h(e = !0) {
106
+ function b(e = !0) {
112
107
  var t;
113
108
  s.value && (s.value = !1, i.value = null, v.value = null, e && ((t = I.value) == null || t.focus()));
114
109
  }
115
- function E() {
116
- a.disabled || a.readonly || (s.value ? h() : O());
110
+ function S() {
111
+ a.disabled || a.readonly || (s.value ? b() : O());
117
112
  }
118
- function ae(e) {
113
+ function te(e) {
119
114
  if (a.readonly || !r(e.date)) return;
120
115
  const t = d(e.date);
121
- if (N(t)) return;
122
- if (S += 1, S === 1) {
116
+ if (P(t)) return;
117
+ if ($ += 1, $ === 1) {
123
118
  i.value = t;
124
119
  return;
125
120
  }
126
121
  const l = r(i.value) ? i.value : t, [c, p] = l.getTime() <= t.getTime() ? [l, t] : [t, l];
127
122
  u.value = {
128
123
  start: d(c),
129
- end: j(p)
130
- }, i.value = null, v.value = null, a.display === "popover" && h();
124
+ end: G(p)
125
+ }, i.value = null, v.value = null, a.display === "popover" && b();
131
126
  }
132
- function te(e) {
127
+ function ne(e) {
133
128
  if (!a.readonly && r(i.value) && r(e.date)) {
134
129
  const t = d(e.date);
135
- if (N(t)) return;
130
+ if (P(t)) return;
136
131
  v.value = t;
137
132
  }
138
133
  }
139
134
  function C(e) {
140
- T.value && (T.value.contains(e.target) || h(!1));
135
+ M.value && (M.value.contains(e.target) || b(!1));
141
136
  }
142
137
  function q(e) {
143
- e.key === "Escape" && (e.preventDefault(), h());
138
+ e.key === "Escape" && (e.preventDefault(), b());
144
139
  }
145
- return le(s, (e) => {
140
+ return ie(s, (e) => {
146
141
  e ? (document.addEventListener("mousedown", C), window.addEventListener("keydown", q)) : (document.removeEventListener("mousedown", C), window.removeEventListener("keydown", q));
147
- }), ie(() => {
142
+ }), oe(() => {
148
143
  document.removeEventListener("mousedown", C), window.removeEventListener("keydown", q);
149
144
  }), (e, t) => (f(), m("div", {
150
145
  ref_key: "rootRef",
151
- ref: T,
146
+ ref: M,
152
147
  class: D([
153
148
  "pa-range-picker",
154
149
  `pa-range-picker--${n.display}`,
@@ -158,7 +153,7 @@ const Ee = /* @__PURE__ */ ne({
158
153
  "pa-range-picker--disabled": n.disabled,
159
154
  "pa-range-picker--readonly": n.readonly,
160
155
  "pa-range-picker--error": g.value,
161
- "pa-range-picker--valid": z.value
156
+ "pa-range-picker--valid": R.value
162
157
  }
163
158
  ])
164
159
  }, [
@@ -167,9 +162,9 @@ const Ee = /* @__PURE__ */ ne({
167
162
  for: x.value,
168
163
  class: "pa-range-picker__label"
169
164
  }, [
170
- oe(F(n.label), 1),
171
- n.required ? (f(), m("span", me, "*")) : k("", !0)
172
- ], 8, fe)) : k("", !0),
165
+ de(F(n.label), 1),
166
+ n.required ? (f(), m("span", pe, "*")) : k("", !0)
167
+ ], 8, me)) : k("", !0),
173
168
  n.display === "popover" ? (f(), m("button", {
174
169
  key: 1,
175
170
  id: x.value,
@@ -179,47 +174,47 @@ const Ee = /* @__PURE__ */ ne({
179
174
  class: D([
180
175
  "pa-range-picker__trigger",
181
176
  {
182
- "pa-range-picker__trigger--placeholder": J.value,
177
+ "pa-range-picker__trigger--placeholder": Q.value,
183
178
  "pa-range-picker__trigger--disabled": n.disabled,
184
179
  "pa-range-picker__trigger--readonly": n.readonly && !n.disabled,
185
180
  "pa-range-picker__trigger--error": g.value && !n.disabled,
186
- "pa-range-picker__trigger--valid": z.value && !n.disabled
181
+ "pa-range-picker__trigger--valid": R.value && !n.disabled
187
182
  }
188
183
  ]),
189
184
  disabled: n.disabled,
190
185
  "aria-expanded": s.value,
191
186
  "aria-haspopup": "dialog",
192
- "aria-controls": P,
187
+ "aria-controls": L,
193
188
  "aria-required": n.required || void 0,
194
189
  "aria-invalid": g.value || void 0,
195
190
  "aria-readonly": n.readonly || void 0,
196
- "aria-describedby": $.value ? L.value : void 0,
197
- onClick: E,
191
+ "aria-describedby": E.value ? Y.value : void 0,
192
+ onClick: S,
198
193
  onKeydown: [
199
- V(_(E, ["prevent"]), ["enter"]),
200
- V(_(E, ["prevent"]), ["space"]),
194
+ V(_(S, ["prevent"]), ["enter"]),
195
+ V(_(S, ["prevent"]), ["space"]),
201
196
  V(_(O, ["prevent"]), ["down"])
202
197
  ]
203
198
  }, [
204
- w("span", ye, F(H.value), 1),
205
- de(e.$slots, "suffix", {}, () => [
206
- M(B, {
199
+ w("span", ke, F(J.value), 1),
200
+ se(e.$slots, "suffix", {}, () => [
201
+ T(B, {
207
202
  name: "calendar-blank",
208
203
  size: "md"
209
204
  })
210
205
  ], !0)
211
- ], 42, pe)) : k("", !0),
206
+ ], 42, ye)) : k("", !0),
212
207
  n.name ? (f(), m("input", {
213
208
  key: 2,
214
209
  type: "hidden",
215
210
  name: n.name,
216
- value: Z.value,
211
+ value: ee.value,
217
212
  disabled: n.disabled,
218
213
  readonly: n.readonly,
219
214
  required: n.required
220
- }, null, 8, ke)) : k("", !0),
221
- se(w("div", {
222
- id: P,
215
+ }, null, 8, be)) : k("", !0),
216
+ ue(w("div", {
217
+ id: L,
223
218
  class: D([
224
219
  "pa-range-picker__popover",
225
220
  { "pa-range-picker__popover--inline": n.display === "inline" }
@@ -227,55 +222,54 @@ const Ee = /* @__PURE__ */ ne({
227
222
  role: "dialog",
228
223
  "aria-modal": "false"
229
224
  }, [
230
- M(ue(ge), {
231
- attributes: ee.value,
225
+ T(ce(fe), {
226
+ attributes: ae.value,
232
227
  locale: { id: "it-IT", firstDayOfWeek: 2 },
233
228
  "is-required": !1,
234
- "disabled-dates": G.value,
235
- onDayclick: ae,
236
- onDaymouseenter: te
229
+ "disabled-dates": H.value,
230
+ onDayclick: te,
231
+ onDaymouseenter: ne
237
232
  }, {
238
- "nav-prev-button": W(({ click: l }) => [
233
+ "nav-prev-button": U(({ click: l }) => [
239
234
  w("button", {
240
235
  type: "button",
241
236
  class: "pa-range-picker__nav-arrow",
242
237
  "aria-label": "Mese precedente",
243
238
  onClick: l
244
239
  }, [
245
- M(B, {
240
+ T(B, {
246
241
  name: "caret-left",
247
242
  size: "sm"
248
243
  })
249
244
  ], 8, he)
250
245
  ]),
251
- "nav-next-button": W(({ click: l }) => [
246
+ "nav-next-button": U(({ click: l }) => [
252
247
  w("button", {
253
248
  type: "button",
254
249
  class: "pa-range-picker__nav-arrow",
255
250
  "aria-label": "Mese successivo",
256
251
  onClick: l
257
252
  }, [
258
- M(B, {
253
+ T(B, {
259
254
  name: "caret-right",
260
255
  size: "sm"
261
256
  })
262
- ], 8, be)
257
+ ], 8, De)
263
258
  ]),
264
259
  _: 1
265
260
  }, 8, ["attributes", "disabled-dates"])
266
261
  ], 2), [
267
- [ce, n.display === "inline" || s.value]
262
+ [ve, n.display === "inline" || s.value]
268
263
  ]),
269
- $.value ? (f(), m("div", {
264
+ E.value ? (f(), m("div", {
270
265
  key: 3,
271
- id: L.value,
266
+ id: Y.value,
272
267
  class: D(["pa-range-picker__message", { "pa-range-picker__message--error": g.value }])
273
- }, F($.value), 11, De)) : k("", !0)
268
+ }, F(E.value), 11, we)) : k("", !0)
274
269
  ], 2));
275
270
  }
276
271
  });
277
272
  export {
278
- Ee as default,
279
- Me as nextPaRangePickerId
273
+ Ee as default
280
274
  };
281
275
  //# sourceMappingURL=PaRangePicker.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaRangePicker.vue2.js","sources":["../../../src/components/PaRangePicker/PaRangePicker.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface PaRangePickerValue {\n start: Date\n end: Date\n}\n\nlet uid = 0\nexport function nextPaRangePickerId() {\n return `pa-range-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 – 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<PaRangePickerValue | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-range-picker-pop-${Math.random().toString(36).slice(2, 9)}`\nconst generatedId = nextPaRangePickerId()\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\n// In-progress range state. V-Calendar's `v-model.range` does not emit when\n// the initial model is null, so we drive the range commit ourselves via two\n// `@dayclick` events. V-Calendar provides only the visual grid + the click\n// stream; the value lives entirely in this component.\nconst pendingStart = ref<Date | null>(null)\nconst hoveredDate = ref<Date | null>(null)\nlet clicksSinceOpen = 0\n\nfunction isValidDate(d: unknown): d is Date {\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\n\nfunction localEndOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59, 999)\n}\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` only accepts Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, predicate-true days within a bounded window are enumerated\n// and pushed as 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 v = model.value\n const anchorYear =\n v && isValidDate(v.start)\n ? v.start.getFullYear()\n : 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\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() => {\n const v = model.value\n if (v && isValidDate(v.start) && isValidDate(v.end)) {\n return `${dateFormatter.format(v.start)} – ${dateFormatter.format(v.end)}`\n }\n return props.placeholder\n})\n\nconst placeholderShown = computed(\n () => !model.value || !isValidDate(model.value.start) || !isValidDate(model.value.end),\n)\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// Slash-separated ISO 8601 interval — single hidden input. Built from LOCAL\n// components on both ends; never `.toISOString()` (UTC drift).\nfunction toLocalIsoDay(d: Date): string {\n const y = d.getFullYear()\n const m = String(d.getMonth() + 1).padStart(2, '0')\n const day = String(d.getDate()).padStart(2, '0')\n return `${y}-${m}-${day}`\n}\nconst serialized = computed(() => {\n const v = model.value\n if (!v || !isValidDate(v.start) || !isValidDate(v.end)) return ''\n return `${toLocalIsoDay(v.start)}/${toLocalIsoDay(v.end)}`\n})\n\n// Drives V-Calendar's visual highlights. Three states:\n// - committed range → solid blue pill from model.start → model.end\n// - in-progress with hover → preview pill from pendingStart → hovered\n// - in-progress without hover → single solid cell on pendingStart\nconst attributes = computed(() => {\n if (isValidDate(pendingStart.value) && isValidDate(hoveredDate.value)) {\n const a = pendingStart.value\n const b = hoveredDate.value\n const [start, end] = a.getTime() <= b.getTime() ? [a, b] : [b, a]\n return [{\n key: 'in-progress',\n highlight: { color: 'blue', fillMode: 'light' },\n dates: { start, end },\n }]\n }\n if (isValidDate(pendingStart.value)) {\n return [{\n key: 'in-progress-start',\n highlight: { color: 'blue', fillMode: 'solid' },\n dates: pendingStart.value,\n }]\n }\n const v = model.value\n if (v && isValidDate(v.start) && isValidDate(v.end)) {\n return [{\n key: 'committed',\n highlight: { color: 'blue', fillMode: 'solid' },\n dates: { start: v.start, end: v.end },\n }]\n }\n return []\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n clicksSinceOpen = 0\n pendingStart.value = null\n hoveredDate.value = null\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n pendingStart.value = null\n hoveredDate.value = null\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n if (!isValidDate(day.date)) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n clicksSinceOpen += 1\n\n if (clicksSinceOpen === 1) {\n pendingStart.value = picked\n return\n }\n\n // Second click commits. Sort so end >= start, then store start at local\n // midnight + end at local end-of-day for clean day-precision serialization.\n const a = isValidDate(pendingStart.value) ? pendingStart.value : picked\n const [startDay, endDay] = a.getTime() <= picked.getTime()\n ? [a, picked]\n : [picked, a]\n model.value = {\n start: localMidnight(startDay),\n end: localEndOfDay(endDay),\n }\n pendingStart.value = null\n hoveredDate.value = null\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDayMouseEnter(day: { date: Date }) {\n if (props.readonly) return\n if (isValidDate(pendingStart.value) && isValidDate(day.date)) {\n const hovered = localMidnight(day.date)\n if (isDisabledDate(hovered)) return\n hoveredDate.value = hovered\n }\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-range-picker',\n `pa-range-picker--${display}`,\n {\n 'pa-range-picker--open': open,\n 'pa-range-picker--picking': pendingStart,\n 'pa-range-picker--disabled': disabled,\n 'pa-range-picker--readonly': readonly,\n 'pa-range-picker--error': errorActive,\n 'pa-range-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-range-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-range-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-range-picker__trigger',\n {\n 'pa-range-picker__trigger--placeholder': placeholderShown,\n 'pa-range-picker__trigger--disabled': disabled,\n 'pa-range-picker__trigger--readonly': readonly && !disabled,\n 'pa-range-picker__trigger--error': errorActive && !disabled,\n 'pa-range-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-range-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-range-picker__popover',\n { 'pa-range-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :attributes=\"attributes\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n @daymouseenter=\"onDayMouseEnter\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-range-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-range-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-range-picker__message', { 'pa-range-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-range-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-range-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-range-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-range-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-range-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 280px;\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-range-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-range-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-range-picker__trigger--placeholder .pa-range-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-range-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-range-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-range-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-range-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-range-picker__trigger--disabled,\n.pa-range-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-range-picker__trigger--disabled:hover,\n.pa-range-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-range-picker__popover {\n position: absolute; top: calc(100% + 8px); 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-range-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n\n.pa-range-picker :deep(.pa-range-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-range-picker :deep(.pa-range-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-range-picker :deep(.pa-range-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-range-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-range-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-range-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-range-picker :deep(.vc-weeks) { padding: 0; }\n.pa-range-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-range-picker :deep(.vc-day) { min-height: 36px; }\n.pa-range-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-range-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-range-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-range-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-range-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-range-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-range-picker :deep(.vc-arrow) { display: none; }\n\n.pa-range-picker :deep(.vc-highlight-base-start),\n.pa-range-picker :deep(.vc-highlight-base-middle),\n.pa-range-picker :deep(.vc-highlight-base-end),\n.pa-range-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n}\n.pa-range-picker :deep(.vc-highlight-content-solid),\n.pa-range-picker :deep(.vc-highlight-content-light) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n\n/* In-progress preview shading (between pendingStart and hovered cell) so the\n user can tell a not-yet-committed pick from a committed range at a glance. */\n.pa-range-picker--picking :deep(.vc-highlight-base-start),\n.pa-range-picker--picking :deep(.vc-highlight-base-middle),\n.pa-range-picker--picking :deep(.vc-highlight-base-end) {\n background: var(--pa-color-primary-hover, #00368f) !important;\n}\n</style>\n"],"names":["uid","nextPaRangePickerId","props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","generatedId","triggerId","computed","messageId","pendingStart","hoveredDate","clicksSinceOpen","isValidDate","d","localMidnight","localEndOfDay","addDays","n","isDisabledDate","m","disabledDatesForVCalendar","list","v","anchorYear","winStart","winEnd","cursor","day","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","toLocalIsoDay","y","serialized","attributes","a","b","start","end","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","startDay","endDay","onDayMouseEnter","hovered","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":"PaRangePicker.vue2.js","sources":["../../../src/components/PaRangePicker/PaRangePicker.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface PaRangePickerValue {\n start: Date\n end: Date\n}\n\n</script>\n\n<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 – 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<PaRangePickerValue | null>({ default: null })\n\nconst rootRef = ref<HTMLElement | null>(null)\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst open = ref(false)\nconst popoverId = `pa-range-picker-pop-${useId()}`\nconst generatedId = `pa-range-picker-${useId()}`\nconst triggerId = computed(() => props.id ?? generatedId)\nconst messageId = computed(() => `${triggerId.value}-msg`)\n\n// In-progress range state. V-Calendar's `v-model.range` does not emit when\n// the initial model is null, so we drive the range commit ourselves via two\n// `@dayclick` events. V-Calendar provides only the visual grid + the click\n// stream; the value lives entirely in this component.\nconst pendingStart = ref<Date | null>(null)\nconst hoveredDate = ref<Date | null>(null)\nlet clicksSinceOpen = 0\n\nfunction isValidDate(d: unknown): d is Date {\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction localMidnight(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0)\n}\n\nfunction localEndOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59, 999)\n}\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` only accepts Date / range entries (no\n// functions). To keep a single source of truth for visual disable + native\n// keyboard skip, predicate-true days within a bounded window are enumerated\n// and pushed as 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 v = model.value\n const anchorYear =\n v && isValidDate(v.start)\n ? v.start.getFullYear()\n : 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\nconst dateFormatter = new Intl.DateTimeFormat('it-IT', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n})\n\nconst displayValue = computed(() => {\n const v = model.value\n if (v && isValidDate(v.start) && isValidDate(v.end)) {\n return `${dateFormatter.format(v.start)} – ${dateFormatter.format(v.end)}`\n }\n return props.placeholder\n})\n\nconst placeholderShown = computed(\n () => !model.value || !isValidDate(model.value.start) || !isValidDate(model.value.end),\n)\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// Slash-separated ISO 8601 interval — single hidden input. Built from LOCAL\n// components on both ends; never `.toISOString()` (UTC drift).\nfunction toLocalIsoDay(d: Date): string {\n const y = d.getFullYear()\n const m = String(d.getMonth() + 1).padStart(2, '0')\n const day = String(d.getDate()).padStart(2, '0')\n return `${y}-${m}-${day}`\n}\nconst serialized = computed(() => {\n const v = model.value\n if (!v || !isValidDate(v.start) || !isValidDate(v.end)) return ''\n return `${toLocalIsoDay(v.start)}/${toLocalIsoDay(v.end)}`\n})\n\n// Drives V-Calendar's visual highlights. Three states:\n// - committed range → solid blue pill from model.start → model.end\n// - in-progress with hover → preview pill from pendingStart → hovered\n// - in-progress without hover → single solid cell on pendingStart\nconst attributes = computed(() => {\n if (isValidDate(pendingStart.value) && isValidDate(hoveredDate.value)) {\n const a = pendingStart.value\n const b = hoveredDate.value\n const [start, end] = a.getTime() <= b.getTime() ? [a, b] : [b, a]\n return [{\n key: 'in-progress',\n highlight: { color: 'blue', fillMode: 'light' },\n dates: { start, end },\n }]\n }\n if (isValidDate(pendingStart.value)) {\n return [{\n key: 'in-progress-start',\n highlight: { color: 'blue', fillMode: 'solid' },\n dates: pendingStart.value,\n }]\n }\n const v = model.value\n if (v && isValidDate(v.start) && isValidDate(v.end)) {\n return [{\n key: 'committed',\n highlight: { color: 'blue', fillMode: 'solid' },\n dates: { start: v.start, end: v.end },\n }]\n }\n return []\n})\n\nfunction openPopover() {\n if (open.value || props.disabled || props.readonly) return\n clicksSinceOpen = 0\n pendingStart.value = null\n hoveredDate.value = null\n open.value = true\n}\n\nfunction closePopover(returnFocus = true) {\n if (!open.value) return\n open.value = false\n pendingStart.value = null\n hoveredDate.value = null\n if (returnFocus) triggerRef.value?.focus()\n}\n\nfunction togglePopover() {\n if (props.disabled || props.readonly) return\n open.value ? closePopover() : openPopover()\n}\n\nfunction onDayClick(day: { date: Date }) {\n if (props.readonly) return\n if (!isValidDate(day.date)) return\n const picked = localMidnight(day.date)\n if (isDisabledDate(picked)) return\n clicksSinceOpen += 1\n\n if (clicksSinceOpen === 1) {\n pendingStart.value = picked\n return\n }\n\n // Second click commits. Sort so end >= start, then store start at local\n // midnight + end at local end-of-day for clean day-precision serialization.\n const a = isValidDate(pendingStart.value) ? pendingStart.value : picked\n const [startDay, endDay] = a.getTime() <= picked.getTime()\n ? [a, picked]\n : [picked, a]\n model.value = {\n start: localMidnight(startDay),\n end: localEndOfDay(endDay),\n }\n pendingStart.value = null\n hoveredDate.value = null\n if (props.display === 'popover') closePopover()\n}\n\nfunction onDayMouseEnter(day: { date: Date }) {\n if (props.readonly) return\n if (isValidDate(pendingStart.value) && isValidDate(day.date)) {\n const hovered = localMidnight(day.date)\n if (isDisabledDate(hovered)) return\n hoveredDate.value = hovered\n }\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-range-picker',\n `pa-range-picker--${display}`,\n {\n 'pa-range-picker--open': open,\n 'pa-range-picker--picking': pendingStart,\n 'pa-range-picker--disabled': disabled,\n 'pa-range-picker--readonly': readonly,\n 'pa-range-picker--error': errorActive,\n 'pa-range-picker--valid': validActive,\n },\n ]\"\n >\n <label v-if=\"label\" :for=\"triggerId\" class=\"pa-range-picker__label\">\n {{ label }}<span v-if=\"required\" class=\"pa-range-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-range-picker__trigger',\n {\n 'pa-range-picker__trigger--placeholder': placeholderShown,\n 'pa-range-picker__trigger--disabled': disabled,\n 'pa-range-picker__trigger--readonly': readonly && !disabled,\n 'pa-range-picker__trigger--error': errorActive && !disabled,\n 'pa-range-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-range-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-range-picker__popover',\n { 'pa-range-picker__popover--inline': display === 'inline' },\n ]\"\n role=\"dialog\"\n aria-modal=\"false\"\n >\n <VDatePicker\n :attributes=\"attributes\"\n :locale=\"{ id: 'it-IT', firstDayOfWeek: 2 }\"\n :is-required=\"false\"\n :disabled-dates=\"disabledDatesForVCalendar\"\n @dayclick=\"onDayClick\"\n @daymouseenter=\"onDayMouseEnter\"\n >\n <template #nav-prev-button=\"{ click }\">\n <button\n type=\"button\"\n class=\"pa-range-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-range-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-range-picker__message', { 'pa-range-picker__message--error': errorActive }]\"\n >\n {{ message }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.pa-range-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-range-picker__label {\n font: 600 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-text-dark-blue, #00173d);\n}\n.pa-range-picker__required {\n margin-left: 2px;\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-range-picker__message {\n font: 400 14px/20px 'Inter', sans-serif;\n color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__message--error {\n color: var(--pa-color-error, #de2049);\n}\n\n.pa-range-picker__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n min-width: 280px;\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-range-picker__trigger:hover { border-color: var(--pa-color-primary, #0071ff); }\n.pa-range-picker__trigger:focus-visible {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 2px;\n}\n.pa-range-picker__trigger--placeholder .pa-range-picker__value {\n color: var(--pa-color-text-disabled, #5b6571);\n}\n.pa-range-picker__trigger--error {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-range-picker__trigger--error:hover {\n border-color: var(--pa-color-error, #de2049);\n}\n.pa-range-picker__trigger--valid {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-range-picker__trigger--valid:hover {\n border-color: var(--pa-color-success, #008069);\n}\n.pa-range-picker__trigger--disabled,\n.pa-range-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-range-picker__trigger--disabled:hover,\n.pa-range-picker__trigger[disabled]:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__trigger--readonly:hover {\n border-color: var(--pa-color-neutral-gray, #454d56);\n}\n.pa-range-picker__value {\n flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n\n.pa-range-picker__popover {\n position: absolute; top: calc(100% + 8px); 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-range-picker__popover--inline {\n position: static; top: auto; left: auto; display: inline-block;\n}\n\n.pa-range-picker :deep(.pa-range-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-range-picker :deep(.pa-range-picker__nav-arrow:hover) {\n background: var(--pa-color-bg-primary-light-40, #f2f6fc);\n}\n.pa-range-picker :deep(.pa-range-picker__nav-arrow:focus-visible) {\n outline: 2px solid var(--pa-color-primary-focus-border, #0065d1);\n outline-offset: 0;\n}\n\n.pa-range-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-range-picker :deep(.vc-header) { padding: 0 0 16px; }\n.pa-range-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-range-picker :deep(.vc-weeks) { padding: 0; }\n.pa-range-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-range-picker :deep(.vc-day) { min-height: 36px; }\n.pa-range-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-range-picker :deep(.vc-day-content:hover) {\n background: var(--pa-color-primary-hover, #00368f); color: #ffffff;\n}\n.pa-range-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-range-picker :deep(.vc-day.is-not-in-month .vc-day-content),\n.pa-range-picker :deep(.vc-day.is-disabled .vc-day-content) {\n color: var(--pa-color-text-disabled, #5b6571);\n pointer-events: none;\n}\n.pa-range-picker :deep(.vc-pane-layout) { gap: 0; }\n.pa-range-picker :deep(.vc-arrow) { display: none; }\n\n.pa-range-picker :deep(.vc-highlight-base-start),\n.pa-range-picker :deep(.vc-highlight-base-middle),\n.pa-range-picker :deep(.vc-highlight-base-end),\n.pa-range-picker :deep(.vc-highlight) {\n background: var(--pa-color-primary, #0071ff) !important;\n}\n.pa-range-picker :deep(.vc-highlight-content-solid),\n.pa-range-picker :deep(.vc-highlight-content-light) {\n color: #ffffff !important;\n font: 400 16px/18px 'Roboto Mono', monospace;\n}\n\n/* In-progress preview shading (between pendingStart and hovered cell) so the\n user can tell a not-yet-committed pick from a committed range at a glance. */\n.pa-range-picker--picking :deep(.vc-highlight-base-start),\n.pa-range-picker--picking :deep(.vc-highlight-base-middle),\n.pa-range-picker--picking :deep(.vc-highlight-base-end) {\n background: var(--pa-color-primary-hover, #00368f) !important;\n}\n</style>\n"],"names":["props","__props","model","_useModel","rootRef","ref","triggerRef","open","popoverId","useId","generatedId","triggerId","computed","messageId","pendingStart","hoveredDate","clicksSinceOpen","isValidDate","d","localMidnight","localEndOfDay","addDays","n","isDisabledDate","m","disabledDatesForVCalendar","list","v","anchorYear","winStart","winEnd","cursor","day","dateFormatter","displayValue","placeholderShown","errorActive","validActive","errorMessage","helperMessage","message","toLocalIsoDay","y","serialized","attributes","a","b","start","end","openPopover","closePopover","returnFocus","_a","togglePopover","onDayClick","picked","startDay","endDay","onDayMouseEnter","hovered","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,UAAMA,IAAQC,GA+BRC,IAAQC,GAAsCF,GAAA,YAAkB,GAEhEG,IAAUC,EAAwB,IAAI,GACtCC,IAAaD,EAA8B,IAAI,GAC/CE,IAAOF,EAAI,EAAK,GAChBG,IAAY,uBAAuBC,EAAA,CAAO,IAC1CC,IAAc,mBAAmBD,EAAA,CAAO,IACxCE,IAAYC,EAAS,MAAMZ,EAAM,MAAMU,CAAW,GAClDG,IAAYD,EAAS,MAAM,GAAGD,EAAU,KAAK,MAAM,GAMnDG,IAAeT,EAAiB,IAAI,GACpCU,IAAcV,EAAiB,IAAI;AACzC,QAAIW,IAAkB;AAEtB,aAASC,EAAYC,GAAuB;AAC1C,aAAOA,aAAa,QAAQ,CAAC,MAAMA,EAAE,SAAS;AAAA,IAChD;AAEA,aAASC,EAAcD,GAAe;AACpC,aAAO,IAAI,KAAKA,EAAE,YAAA,GAAeA,EAAE,SAAA,GAAYA,EAAE,QAAA,GAAW,GAAG,GAAG,GAAG,CAAC;AAAA,IACxE;AAEA,aAASE,EAAcF,GAAe;AACpC,aAAO,IAAI,KAAKA,EAAE,YAAA,GAAeA,EAAE,SAAA,GAAYA,EAAE,QAAA,GAAW,IAAI,IAAI,IAAI,GAAG;AAAA,IAC7E;AAEA,aAASG,EAAQH,GAASI,GAAiB;AACzC,aAAO,IAAI,KAAKJ,EAAE,YAAA,GAAeA,EAAE,SAAA,GAAYA,EAAE,YAAYI,GAAG,GAAG,GAAG,GAAG,CAAC;AAAA,IAC5E;AAEA,aAASC,EAAeL,GAAkB;AACxC,YAAMM,IAAIL,EAAcD,CAAC;AAEzB,aADIlB,EAAM,OAAOwB,EAAE,QAAA,IAAYL,EAAcnB,EAAM,GAAG,EAAE,QAAA,KACpDA,EAAM,OAAOwB,EAAE,QAAA,IAAYL,EAAcnB,EAAM,GAAG,EAAE,QAAA,IAAkB,KACnEA,EAAM,gBAAgBA,EAAM,cAAcwB,CAAC,MAAM,KAAO;AAAA,IACjE;AAMA,UAAMC,IAA4Bb,EAAS,MAAM;AAC/C,YAAMc,IAAkB,CAAA;AAGxB,UAFI1B,EAAM,OAAK0B,EAAK,KAAK,EAAE,OAAO,MAAM,KAAKL,EAAQF,EAAcnB,EAAM,GAAG,GAAG,EAAE,GAAG,GAChFA,EAAM,OAAK0B,EAAK,KAAK,EAAE,OAAOL,EAAQF,EAAcnB,EAAM,GAAG,GAAG,CAAC,GAAG,KAAK,MAAM,GAC/EA,EAAM,eAAe;AACvB,cAAM2B,IAAIzB,EAAM,OACV0B,IACJD,KAAKV,EAAYU,EAAE,KAAK,IACpBA,EAAE,MAAM,YAAA,KACR,oBAAI,KAAA,GAAO,YAAA,GACXE,IAAW7B,EAAM,MACnBmB,EAAcnB,EAAM,GAAG,IACvB,IAAI,KAAK4B,IAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACvCE,IAAS9B,EAAM,MACjBmB,EAAcnB,EAAM,GAAG,IACvB,IAAI,KAAK4B,IAAa,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GACzCG,IAAS,IAAI,KAAKF,EAAS,SAAS;AAC1C,eAAOE,EAAO,QAAA,KAAaD,EAAO,aAAW;AAC3C,gBAAME,IAAMb,EAAcY,CAAM;AAChC,UAAI/B,EAAM,cAAcgC,CAAG,KAAGN,EAAK,KAAKM,CAAG,GAC3CD,EAAO,QAAQA,EAAO,QAAA,IAAY,CAAC;AAAA,QACrC;AAAA,MACF;AACA,aAAOL;AAAA,IACT,CAAC,GAEKO,IAAgB,IAAI,KAAK,eAAe,SAAS;AAAA,MACrD,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,IAAA,CACP,GAEKC,IAAetB,EAAS,MAAM;AAClC,YAAMe,IAAIzB,EAAM;AAChB,aAAIyB,KAAKV,EAAYU,EAAE,KAAK,KAAKV,EAAYU,EAAE,GAAG,IACzC,GAAGM,EAAc,OAAON,EAAE,KAAK,CAAC,MAAMM,EAAc,OAAON,EAAE,GAAG,CAAC,KAEnE3B,EAAM;AAAA,IACf,CAAC,GAEKmC,IAAmBvB;AAAA,MACvB,MAAM,CAACV,EAAM,SAAS,CAACe,EAAYf,EAAM,MAAM,KAAK,KAAK,CAACe,EAAYf,EAAM,MAAM,GAAG;AAAA,IAAA,GAGjFkC,IAAcxB,EAAS,MAAM,EAAQZ,EAAM,KAAM,GACjDqC,IAAczB,EAAS,MAAMZ,EAAM,SAAS,CAACoC,EAAY,KAAK,GAC9DE,IAAe1B;AAAA,MAAS,MAC5B,OAAOZ,EAAM,SAAU,YAAYA,EAAM,MAAM,SAAS,IAAIA,EAAM,QAAQ;AAAA,IAAA,GAEtEuC,IAAgB3B;AAAA,MAAS,MAC7B,CAACwB,EAAY,SAASpC,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA,GAExDwC,IAAU5B,EAAS,MAAM0B,EAAa,SAASC,EAAc,KAAK;AAIxE,aAASE,EAAcvB,GAAiB;AACtC,YAAMwB,IAAIxB,EAAE,YAAA,GACNM,IAAI,OAAON,EAAE,SAAA,IAAa,CAAC,EAAE,SAAS,GAAG,GAAG,GAC5Cc,IAAM,OAAOd,EAAE,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG;AAC/C,aAAO,GAAGwB,CAAC,IAAIlB,CAAC,IAAIQ,CAAG;AAAA,IACzB;AACA,UAAMW,KAAa/B,EAAS,MAAM;AAChC,YAAMe,IAAIzB,EAAM;AAChB,aAAI,CAACyB,KAAK,CAACV,EAAYU,EAAE,KAAK,KAAK,CAACV,EAAYU,EAAE,GAAG,IAAU,KACxD,GAAGc,EAAcd,EAAE,KAAK,CAAC,IAAIc,EAAcd,EAAE,GAAG,CAAC;AAAA,IAC1D,CAAC,GAMKiB,KAAahC,EAAS,MAAM;AAChC,UAAIK,EAAYH,EAAa,KAAK,KAAKG,EAAYF,EAAY,KAAK,GAAG;AACrE,cAAM8B,IAAI/B,EAAa,OACjBgC,IAAI/B,EAAY,OAChB,CAACgC,GAAOC,CAAG,IAAIH,EAAE,aAAaC,EAAE,QAAA,IAAY,CAACD,GAAGC,CAAC,IAAI,CAACA,GAAGD,CAAC;AAChE,eAAO,CAAC;AAAA,UACN,KAAK;AAAA,UACL,WAAW,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,UACtC,OAAO,EAAE,OAAAE,GAAO,KAAAC,EAAA;AAAA,QAAI,CACrB;AAAA,MACH;AACA,UAAI/B,EAAYH,EAAa,KAAK;AAChC,eAAO,CAAC;AAAA,UACN,KAAK;AAAA,UACL,WAAW,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,UACtC,OAAOA,EAAa;AAAA,QAAA,CACrB;AAEH,YAAMa,IAAIzB,EAAM;AAChB,aAAIyB,KAAKV,EAAYU,EAAE,KAAK,KAAKV,EAAYU,EAAE,GAAG,IACzC,CAAC;AAAA,QACN,KAAK;AAAA,QACL,WAAW,EAAE,OAAO,QAAQ,UAAU,QAAA;AAAA,QACtC,OAAO,EAAE,OAAOA,EAAE,OAAO,KAAKA,EAAE,IAAA;AAAA,MAAI,CACrC,IAEI,CAAA;AAAA,IACT,CAAC;AAED,aAASsB,IAAc;AACrB,MAAI1C,EAAK,SAASP,EAAM,YAAYA,EAAM,aAC1CgB,IAAkB,GAClBF,EAAa,QAAQ,MACrBC,EAAY,QAAQ,MACpBR,EAAK,QAAQ;AAAA,IACf;AAEA,aAAS2C,EAAaC,IAAc,IAAM;;AACxC,MAAK5C,EAAK,UACVA,EAAK,QAAQ,IACbO,EAAa,QAAQ,MACrBC,EAAY,QAAQ,MAChBoC,OAAaC,IAAA9C,EAAW,UAAX,QAAA8C,EAAkB;AAAA,IACrC;AAEA,aAASC,IAAgB;AACvB,MAAIrD,EAAM,YAAYA,EAAM,aAC5BO,EAAK,QAAQ2C,EAAA,IAAiBD,EAAA;AAAA,IAChC;AAEA,aAASK,GAAWtB,GAAqB;AAEvC,UADIhC,EAAM,YACN,CAACiB,EAAYe,EAAI,IAAI,EAAG;AAC5B,YAAMuB,IAASpC,EAAca,EAAI,IAAI;AACrC,UAAIT,EAAegC,CAAM,EAAG;AAG5B,UAFAvC,KAAmB,GAEfA,MAAoB,GAAG;AACzB,QAAAF,EAAa,QAAQyC;AACrB;AAAA,MACF;AAIA,YAAMV,IAAI5B,EAAYH,EAAa,KAAK,IAAIA,EAAa,QAAQyC,GAC3D,CAACC,GAAUC,CAAM,IAAIZ,EAAE,aAAaU,EAAO,QAAA,IAC7C,CAACV,GAAGU,CAAM,IACV,CAACA,GAAQV,CAAC;AACd,MAAA3C,EAAM,QAAQ;AAAA,QACZ,OAAOiB,EAAcqC,CAAQ;AAAA,QAC7B,KAAKpC,EAAcqC,CAAM;AAAA,MAAA,GAE3B3C,EAAa,QAAQ,MACrBC,EAAY,QAAQ,MAChBf,EAAM,YAAY,aAAWkD,EAAA;AAAA,IACnC;AAEA,aAASQ,GAAgB1B,GAAqB;AAC5C,UAAI,CAAAhC,EAAM,YACNiB,EAAYH,EAAa,KAAK,KAAKG,EAAYe,EAAI,IAAI,GAAG;AAC5D,cAAM2B,IAAUxC,EAAca,EAAI,IAAI;AACtC,YAAIT,EAAeoC,CAAO,EAAG;AAC7B,QAAA5C,EAAY,QAAQ4C;AAAA,MACtB;AAAA,IACF;AAEA,aAASC,EAAoBC,GAAmB;AAC9C,MAAKzD,EAAQ,UACRA,EAAQ,MAAM,SAASyD,EAAM,MAAc,OAAgB,EAAK;AAAA,IACvE;AAEA,aAASC,EAAgBD,GAAsB;AAC7C,MAAIA,EAAM,QAAQ,aAChBA,EAAM,eAAA,GACNX,EAAA;AAAA,IAEJ;AAEA,WAAAa,GAAMxD,GAAM,CAACyD,MAAW;AACtB,MAAIA,KACF,SAAS,iBAAiB,aAAaJ,CAAmB,GAC1D,OAAO,iBAAiB,WAAWE,CAAe,MAElD,SAAS,oBAAoB,aAAaF,CAAmB,GAC7D,OAAO,oBAAoB,WAAWE,CAAe;AAAA,IAEzD,CAAC,GAEDG,GAAgB,MAAM;AACpB,eAAS,oBAAoB,aAAaL,CAAmB,GAC7D,OAAO,oBAAoB,WAAWE,CAAe;AAAA,IACvD,CAAC,mBAICI,EA+GM,OAAA;AAAA,eA9GA;AAAA,MAAJ,KAAI9D;AAAA,MACH,OAAK+D,EAAA;AAAA;4BAAuDlE,EAAA,OAAO;AAAA;mCAA6CM,EAAA;AAAA,sCAA0CO,EAAA;AAAA,uCAAmDb,EAAA;AAAA,uCAA+CA,EAAA;AAAA,oCAA4CmC,EAAA;AAAA,oCAA+CC,EAAA;AAAA,QAAA;AAAA;;MAa3UpC,EAAA,cAAbiE,EAEQ,SAAA;AAAA;QAFa,KAAKvD,EAAA;AAAA,QAAW,OAAM;AAAA,MAAA;aACtCV,EAAA,KAAK,GAAA,CAAA;AAAA,QAAeA,EAAA,iBAAZiE,EAAmF,QAAnFE,IAA2E,GAAC;;MAIjFnE,EAAA,YAAO,kBADfiE,EAgCS,UAAA;AAAA;QA9BN,IAAIvD,EAAA;AAAA,iBACD;AAAA,QAAJ,KAAIL;AAAA,QACJ,MAAK;AAAA,QACJ,OAAK6D,EAAA;AAAA;;qDAAqGhC,EAAA;AAAA,kDAAkElC,EAAA;AAAA,YAA0D,sCAAAA,EAAA,aAAaA,EAAA;AAAA,YAAuD,mCAAAmC,EAAA,UAAgBnC,EAAA;AAAA,YAAuD,mCAAAoC,EAAA,UAAgBpC,EAAA;AAAA,UAAA;AAAA;QAUjY,UAAUA,EAAA;AAAA,QACV,iBAAeM,EAAA;AAAA,QAChB,iBAAc;AAAA,QACb,iBAAeC;AAAA,QACf,iBAAeP,EAAA,YAAY;AAAA,QAC3B,gBAAcmC,EAAA,SAAe;AAAA,QAC7B,iBAAenC,EAAA,YAAY;AAAA,QAC3B,oBAAkBuC,EAAA,QAAU3B,EAAA,QAAY;AAAA,QACxC,SAAOwC;AAAA,QACP,WAAO;AAAA,cAAgBA,GAAa,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,cACbA,GAAa,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,cACdJ,GAAW,CAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAA;AAAA,QAAA;AAAA;QAElCoB,EAA8D,QAA9DC,IAA8DC,EAAtBrC,EAAA,KAAY,GAAA,CAAA;AAAA,QACpDsC,GAEOC,wBAFP,MAEO;AAAA,UADLC,EAA0CC,GAAA;AAAA,YAAlC,MAAK;AAAA,YAAiB,MAAK;AAAA,UAAA;;;MAK/B1E,EAAA,aADRiE,EAQE,SAAA;AAAA;QANA,MAAK;AAAA,QACJ,MAAMjE,EAAA;AAAA,QACN,OAAO0C,GAAA;AAAA,QACP,UAAU1C,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,QACV,UAAUA,EAAA;AAAA,MAAA;SAGboE,EAuCM,OAAA;AAAA,QArCH,IAAI7D;AAAA,QACJ,OAAK2D,EAAA;AAAA;gDAAsFlE,EAAA,YAAO,SAAA;AAAA,QAAA;QAInG,MAAK;AAAA,QACL,cAAW;AAAA,MAAA;QAEXyE,EA4BcE,GAAAC,EAAA,GAAA;AAAA,UA3BX,YAAYjC,GAAA;AAAA,UACZ,QAAQ,EAAA,IAAA,SAAA,gBAAA,EAAA;AAAA,UACR,eAAa;AAAA,UACb,kBAAgBnB,EAAA;AAAA,UAChB,YAAU6B;AAAA,UACV,iBAAeI;AAAA,QAAA;UAEL,mBAAeoB,EACxB,CAOS,EARmB,OAAAC,QAAK;AAAA,YACjCV,EAOS,UAAA;AAAA,cANP,MAAK;AAAA,cACL,OAAM;AAAA,cACN,cAAW;AAAA,cACV,SAAOU;AAAA,YAAA;cAERL,EAAsCC,GAAA;AAAA,gBAA9B,MAAK;AAAA,gBAAa,MAAK;AAAA,cAAA;;;UAGxB,mBAAeG,EACxB,CAOS,EARmB,OAAAC,QAAK;AAAA,YACjCV,EAOS,UAAA;AAAA,cANP,MAAK;AAAA,cACL,OAAM;AAAA,cACN,cAAW;AAAA,cACV,SAAOU;AAAA,YAAA;cAERL,EAAuCC,GAAA;AAAA,gBAA/B,MAAK;AAAA,gBAAc,MAAK;AAAA,cAAA;;;;;;QAlC9B,CAAAK,IAAA/E,EAAA,wBAAwBM,EAAA,KAAI;AAAA,MAAA;MAyC9BiC,EAAA,cADR0B,EAMM,OAAA;AAAA;QAJH,IAAIrD,EAAA;AAAA,QACJ,2EAAyEuB,EAAA,OAAW,CAAA;AAAA,MAAA,KAElFI,EAAA,KAAO,GAAA,IAAAyC,EAAA;;;;"}
@@ -1,4 +1,3 @@
1
- export declare function nextPaSearchBarId(): string;
2
1
  export interface PaSearchBarOption {
3
2
  value: string;
4
3
  disabled?: boolean;
@@ -1,10 +1,8 @@
1
1
  import a from "./PaSearchBar.vue2.js";
2
- import { nextPaSearchBarId as f } from "./PaSearchBar.vue2.js";
3
2
  /* empty css */
4
- import r from "../../_virtual/_plugin-vue_export-helper.js";
5
- const m = /* @__PURE__ */ r(a, [["__scopeId", "data-v-ba8b44a8"]]);
3
+ import o from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ o(a, [["__scopeId", "data-v-f1199d6a"]]);
6
5
  export {
7
- m as default,
8
- f as nextPaSearchBarId
6
+ m as default
9
7
  };
10
8
  //# sourceMappingURL=PaSearchBar.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaSearchBar.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"PaSearchBar.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}