@aotearoan/neon 21.0.0 → 21.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/common/enums/NeonBadgeSize.cjs.js +2 -0
  2. package/dist/common/enums/NeonBadgeSize.cjs.js.map +1 -0
  3. package/dist/common/enums/NeonBadgeSize.es.js +5 -0
  4. package/dist/common/enums/NeonBadgeSize.es.js.map +1 -0
  5. package/dist/common/utils/NeonDateUtils.cjs.js +1 -1
  6. package/dist/common/utils/NeonDateUtils.cjs.js.map +1 -1
  7. package/dist/common/utils/NeonDateUtils.es.js +52 -48
  8. package/dist/common/utils/NeonDateUtils.es.js.map +1 -1
  9. package/dist/components/navigation/link/NeonLink.vue.cjs.js +1 -1
  10. package/dist/components/navigation/link/NeonLink.vue.cjs.js.map +1 -1
  11. package/dist/components/navigation/link/NeonLink.vue.es.js +27 -33
  12. package/dist/components/navigation/link/NeonLink.vue.es.js.map +1 -1
  13. package/dist/components/navigation/menu/NeonMenu.vue.cjs.js +1 -1
  14. package/dist/components/navigation/menu/NeonMenu.vue.cjs.js.map +1 -1
  15. package/dist/components/navigation/menu/NeonMenu.vue.es.js +15 -15
  16. package/dist/components/navigation/menu/NeonMenu.vue.es.js.map +1 -1
  17. package/dist/components/presentation/badge/NeonBadge.cjs.js +1 -1
  18. package/dist/components/presentation/badge/NeonBadge.cjs.js.map +1 -1
  19. package/dist/components/presentation/badge/NeonBadge.es.js +8 -8
  20. package/dist/components/presentation/badge/NeonBadge.es.js.map +1 -1
  21. package/dist/components/presentation/dropdown/NeonDropdown.cjs.js +1 -1
  22. package/dist/components/presentation/dropdown/NeonDropdown.cjs.js.map +1 -1
  23. package/dist/components/presentation/dropdown/NeonDropdown.es.js +28 -24
  24. package/dist/components/presentation/dropdown/NeonDropdown.es.js.map +1 -1
  25. package/dist/components/presentation/dropdown/NeonDropdown.vue.cjs.js +1 -1
  26. package/dist/components/presentation/dropdown/NeonDropdown.vue.cjs.js.map +1 -1
  27. package/dist/components/presentation/dropdown/NeonDropdown.vue.es.js +23 -21
  28. package/dist/components/presentation/dropdown/NeonDropdown.vue.es.js.map +1 -1
  29. package/dist/components/user-input/button/NeonButton.cjs.js +1 -1
  30. package/dist/components/user-input/button/NeonButton.cjs.js.map +1 -1
  31. package/dist/components/user-input/button/NeonButton.es.js +26 -22
  32. package/dist/components/user-input/button/NeonButton.es.js.map +1 -1
  33. package/dist/components/user-input/button/NeonButton.vue.cjs.js +1 -1
  34. package/dist/components/user-input/button/NeonButton.vue.cjs.js.map +1 -1
  35. package/dist/components/user-input/button/NeonButton.vue.es.js +11 -10
  36. package/dist/components/user-input/button/NeonButton.vue.es.js.map +1 -1
  37. package/dist/components/user-input/date-picker/NeonDatePicker.cjs.js +1 -1
  38. package/dist/components/user-input/date-picker/NeonDatePicker.cjs.js.map +1 -1
  39. package/dist/components/user-input/date-picker/NeonDatePicker.es.js +27 -23
  40. package/dist/components/user-input/date-picker/NeonDatePicker.es.js.map +1 -1
  41. package/dist/components/user-input/date-picker/NeonDatePicker.vue.cjs.js +1 -1
  42. package/dist/components/user-input/date-picker/NeonDatePicker.vue.cjs.js.map +1 -1
  43. package/dist/components/user-input/date-picker/NeonDatePicker.vue.es.js +99 -114
  44. package/dist/components/user-input/date-picker/NeonDatePicker.vue.es.js.map +1 -1
  45. package/dist/components/user-input/input/NeonInput.cjs.js +1 -1
  46. package/dist/components/user-input/input/NeonInput.cjs.js.map +1 -1
  47. package/dist/components/user-input/input/NeonInput.es.js +30 -30
  48. package/dist/components/user-input/input/NeonInput.es.js.map +1 -1
  49. package/dist/neon.cjs.js +1 -1
  50. package/dist/neon.es.js +93 -91
  51. package/dist/neon.es.js.map +1 -1
  52. package/dist/src/common/enums/NeonBadgeSize.d.ts +15 -0
  53. package/dist/src/common/models/NeonCalendarConfig.d.ts +10 -0
  54. package/dist/src/common/utils/NeonDateUtils.d.ts +4 -2
  55. package/dist/src/components/feedback/dialog/NeonDialog.d.ts +12 -0
  56. package/dist/src/components/feedback/note/NeonNote.d.ts +6 -0
  57. package/dist/src/components/layout/card-list/NeonCardList.d.ts +20 -4
  58. package/dist/src/components/layout/modal/NeonModal.d.ts +6 -0
  59. package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +123 -39
  60. package/dist/src/components/navigation/menu/NeonMenu.d.ts +99 -27
  61. package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.d.ts +57 -39
  62. package/dist/src/components/presentation/badge/NeonBadge.d.ts +12 -20
  63. package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +45 -23
  64. package/dist/src/components/presentation/image-carousel/NeonImageCarousel.d.ts +6 -0
  65. package/dist/src/components/user-input/button/NeonButton.d.ts +15 -1
  66. package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +144 -116
  67. package/dist/src/components/user-input/file/NeonFile.d.ts +16 -14
  68. package/dist/src/components/user-input/input/NeonInput.d.ts +5 -9
  69. package/dist/src/components/user-input/number/NeonNumber.d.ts +20 -46
  70. package/dist/src/components/user-input/search/NeonSearch.d.ts +165 -165
  71. package/dist/src/components/user-input/select/NeonSelect.d.ts +261 -81
  72. package/dist/src/neon.d.ts +1 -0
  73. package/package.json +1 -1
  74. package/src/sass/components/_action-menu.scss +2 -7
  75. package/src/sass/components/_badge.scss +16 -42
  76. package/src/sass/components/_button.scss +0 -6
  77. package/src/sass/components/_card-list.scss +1 -6
  78. package/src/sass/components/_date-picker.scss +20 -0
  79. package/src/sass/components/_link.scss +3 -5
  80. package/src/sass/components/_search.scss +12 -0
  81. package/src/sass/components/_tree-menu.scss +1 -0
  82. package/src/sass/variables.scss +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDatePicker.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref<number>(todayDate.getMonth());\n const pageYear = ref<number>(todayDate.getFullYear());\n const pageDecadeStart = ref<number>(Math.floor(pageYear.value / 10) * 10);\n\n const resetCalendarPages = () => {\n pageMonth.value = props.modelValue\n ? +props.modelValue.substring(5, 7)\n : +todayDate.toLocaleString(locale, { month: 'numeric' });\n pageYear.value = props.modelValue\n ? +props.modelValue.substring(0, 4)\n : +todayDate.toLocaleString(locale, { year: 'numeric' });\n pageDecadeStart.value = Math.floor(pageYear.value / 10) * 10;\n };\n\n resetCalendarPages();\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const openCalendar = () => {\n if (!props.disabled) {\n resetCalendarPages();\n calendarOpen.value = true;\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n openCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","resetCalendarPages","calendar","today","openCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":"4aAqBAA,GAAeC,kBAAgB,CAC7B,KAAM,iBACN,WAAY,CACV,WAAAC,GACA,aAAAC,GACA,UAAAC,EAAA,EAEF,MAAO,CAKL,WAAY,CAAE,KAAM,OAAQ,QAAS,IAAA,EAIrC,OAAQ,CAAE,KAAM,OAAQ,QAAS,IAAA,EAIjC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAA,EAIpC,KAAM,CAAE,KAAM,OAA0B,QAASC,GAAAA,SAAS,MAAA,EAI1D,MAAO,CAAE,KAAM,OAAqC,QAASC,GAAAA,oBAAoB,OAAA,EAIjF,IAAK,CAAE,KAAM,OAAQ,QAAS,IAAA,EAI9B,IAAK,CAAE,KAAM,OAAQ,QAAS,IAAA,EAI9B,UAAW,CAAE,KAAM,OAAuC,QAASC,GAAAA,sBAAsB,UAAA,EAKzF,cAAe,CAAE,KAAM,MAA8B,QAAS,IAAM,CAAA,CAAC,EAIrE,YAAa,CAAE,KAAM,OAAQ,SAAU,EAAA,EAIvC,kBAAmB,CAAE,KAAM,OAAQ,QAAS,eAAA,EAI5C,UAAW,CAAE,KAAM,OAAQ,QAAS,MAAA,EAIpC,WAAY,CAAE,KAAM,OAAQ,QAAS,OAAA,EAIrC,iBAAkB,CAAE,KAAM,OAAQ,QAAS,cAAA,EAI3C,mBAAoB,CAAE,KAAM,OAAQ,QAAS,gBAAA,EAI7C,eAAgB,CAAE,KAAM,OAAQ,QAAS,YAAA,EAIzC,gBAAiB,CAAE,KAAM,OAAQ,QAAS,aAAA,EAI1C,kBAAmB,CAAE,KAAM,OAAQ,QAAS,eAAA,EAI5C,cAAe,CAAE,KAAM,OAAQ,QAAS,WAAA,EAIxC,oBAAqB,CAAE,KAAM,OAAQ,QAAS,iBAAA,EAI9C,gBAAiB,CAAE,KAAM,OAAQ,QAAS,aAAA,CAAc,EAE1D,MAAMC,EAAO,CAAE,KAAAC,GAAQ,CACrB,MAAMC,EAAQC,EAAAA,SAAA,EACRC,EAAW,CAACF,EAAM,SAElBG,EAAWC,EAAAA,IAAwB,IAAI,EACvCC,EAAcD,EAAAA,IAAwB,IAAI,EAC1CE,EAAeF,EAAAA,IAAa,EAAK,EACjCG,EAAqBH,EAAAA,IAAa,EAAK,EACvCI,EAAoBJ,EAAAA,IAAa,EAAK,EAEtCK,EAAiBC,EAAAA,SAAS,IAAM,CACpC,GAAIZ,EAAM,WAAY,CACpB,MAAMa,EAAgBC,EAAAA,cAAc,iBAAiBd,EAAM,WAAYA,EAAM,OAAQ,EAAI,EACzF,GAAIa,EAAe,CACjB,KAAM,CAAE,aAAAE,EAAc,eAAAC,EAAgB,cAAAC,CAAA,EAAkBJ,EACxD,MAAO,GAAGE,CAAY,IAAIC,CAAc,IAAIC,CAAa,EAC3D,CACF,CAEA,MAAO,EACT,CAAC,EAEKC,EAAU,CAACC,EAAaC,EAAeC,IAAiBP,EAAAA,cAAc,SAASK,EAAKC,EAAOC,CAAI,EAE/FC,MAAgB,KAChBC,EAASvB,EAAM,QAAU,UAAU,SAEnCwB,EAAYlB,EAAAA,IAAYgB,EAAU,SAAA,CAAU,EAC5CG,EAAWnB,EAAAA,IAAYgB,EAAU,YAAA,CAAa,EAC9CI,EAAkBpB,EAAAA,IAAY,KAAK,MAAMmB,EAAS,MAAQ,EAAE,EAAI,EAAE,EAElEE,EAAqB,IAAM,CAC/BH,EAAU,MAAQxB,EAAM,WACpB,CAACA,EAAM,WAAW,UAAU,EAAG,CAAC,EAChC,CAACsB,EAAU,eAAeC,EAAQ,CAAE,MAAO,UAAW,EAC1DE,EAAS,MAAQzB,EAAM,WACnB,CAACA,EAAM,WAAW,UAAU,EAAG,CAAC,EAChC,CAACsB,EAAU,eAAeC,EAAQ,CAAE,KAAM,UAAW,EACzDG,EAAgB,MAAQ,KAAK,MAAMD,EAAS,MAAQ,EAAE,EAAI,EAC5D,EAEAE,EAAA,EAEA,MAAMC,EAAWhB,EAAAA,SAAS,IACxBE,EAAAA,cAAc,wBACZd,EAAM,WACNwB,EAAU,MACVC,EAAS,MACTC,EAAgB,MAChB1B,EAAM,MAAA,CACR,EAGI6B,EAAQjB,EAAAA,SAAS,IAAM,CAC3B,KAAM,CAAE,IAAAO,EAAK,MAAAC,EAAO,KAAAC,CAAA,EAASO,EAAS,MAAM,MAC5C,OAAOd,EAAAA,cAAc,SAASK,EAAKC,EAAOC,CAAI,CAChD,CAAC,EAEKS,EAAe,IAAM,CACzB,GAAI,CAAC9B,EAAM,WACT2B,EAAA,EACAnB,EAAa,MAAQ,GACjBD,EAAY,OAAO,CACrB,MAAMwB,EAAWxB,EAAY,MAAM,cAAc,4CAA4C,EACzFwB,GACF,WAAW,IAAMA,EAAS,OAAO,CAErC,CAEJ,EAEMC,EAAYC,GAAoB,CACpChC,EAAK,oBAAqBgC,CAAO,CACnC,EAEMC,EAAa,IAAM,CACnBV,EAAU,QAAU,GACtBA,EAAU,MAAQ,GAClBC,EAAS,MAAQA,EAAS,MAAQ,GAElCD,EAAU,MAAQA,EAAU,MAAQ,CAExC,EAEMW,EAAS,IAAM,CACfX,EAAU,QAAU,IACtBA,EAAU,MAAQ,EAClBC,EAAS,MAAQA,EAAS,MAAQ,GAElCD,EAAU,MAAQA,EAAU,MAAQ,CAExC,EAEMY,EAAc,IAAM,CACxB3B,EAAmB,MAAQ,EAC7B,EAEM4B,EAAqBzB,EAAAA,SACzB,IAAMZ,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAAS,EAAGc,EAAS,MAAM,UAAWA,EAAS,MAAM,QAAQ,CAAA,EAEvGU,EAAiB1B,EAAAA,SAAS,IAAM,CACpC,KAAM,CAAE,SAAAa,EAAU,UAAAD,EAAW,eAAAe,CAAA,EAAmBX,EAAS,MACzD,OAAO5B,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAASyB,EAAgBf,EAAWC,CAAQ,CAC7F,CAAC,EACKe,EAAuB5B,EAAAA,SAAS,IAAMyB,EAAmB,OAASC,EAAe,KAAK,EAEtFG,EAAiB,IAAM,CAC3BhB,EAAS,MAAQA,EAAS,MAAQ,CACpC,EAEMiB,EAAa,IAAM,CACvBjB,EAAS,MAAQA,EAAS,MAAQ,CACpC,EAEMkB,EAAa,IAAM,CACvBjC,EAAkB,MAAQ,EAC5B,EAEMkC,EAAyBhC,EAAAA,SAC7B,IAAMZ,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAAS,EAAG,EAAGc,EAAS,MAAM,QAAQ,CAAA,EAEhFiB,EAAqBjC,EAAAA,SACzB,IAAMZ,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAAS,GAAI,GAAIc,EAAS,MAAM,QAAQ,CAAA,EAElFkB,EAAuBlC,EAAAA,SAAS,IAAMgC,EAAuB,OAASC,EAAmB,KAAK,EAE9FE,EAAmB,IAAM,CAC7BrB,EAAgB,MAAQA,EAAgB,MAAQ,EAClD,EAEMsB,EAAe,IAAM,CACzBtB,EAAgB,MAAQA,EAAgB,MAAQ,EAClD,EAEMuB,EAA2BrC,EAAAA,SAC/B,IAAMZ,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAAS,EAAG,EAAG,KAAK,MAAMc,EAAS,MAAM,SAAW,EAAE,EAAI,EAAE,CAAA,EAEtGsB,EAAuBtC,EAAAA,SAC3B,IAAMZ,EAAM,KAAOA,EAAM,KAAOc,EAAAA,cAAc,SAAS,GAAI,GAAI,KAAK,MAAMc,EAAS,MAAM,SAAW,EAAE,EAAI,GAAK,CAAC,CAAA,EAG5GuB,EAAkB,IAAM,CAC5B1C,EAAmB,MAAQ,GAC3BC,EAAkB,MAAQ,EAC5B,EAEM0C,EAAO,IAAM,CACjB5C,EAAa,MAAQ,GACrB2C,EAAA,CACF,EAEME,EAAQ,IAAM,CAClBpD,EAAK,oBAAqB,IAAI,EAC9BO,EAAa,MAAQ,GACrB2C,EAAA,CACF,EAEMG,EAAelC,GAAkB,CACrCI,EAAU,MAAQJ,EAClBX,EAAmB,MAAQ,EAC7B,EAEM8C,EAAclC,GAAiB,CACnCI,EAAS,MAAQJ,EACjBX,EAAkB,MAAQ,EAC5B,EAEM8C,EAActC,GAAoB,OACtC,QACEuC,EAAAzD,EAAM,gBAAN,YAAAyD,EAAqB,QAAQvC,KAAY,GACxClB,EAAM,KAAOA,EAAM,IAAMkB,GACzBlB,EAAM,KAAOA,EAAM,IAAMkB,CAE9B,EAEMwC,EAAkB,CAACrC,EAAcD,IAAkB,CACvD,MAAMuC,EAAU,GAAGtC,CAAI,IAAID,EAAQ,GAAK,IAAMA,EAAQA,CAAK,GAC3D,OACGwC,EAAa,OAASA,EAAa,MAAQD,GAAaE,EAAa,OAASA,EAAa,MAAQF,CAExG,EAEMG,EAAUlD,EAAAA,SAAwB,IAAOZ,EAAM,IAAM,CAACA,EAAM,IAAI,UAAU,EAAG,CAAC,EAAI,IAAK,EACvF4D,EAAehD,EAAAA,SAAwB,IAAOZ,EAAM,IAAMA,EAAM,IAAI,UAAU,EAAG,CAAC,EAAI,IAAK,EAC3F+D,EAAUnD,EAAAA,SAAwB,IAAOZ,EAAM,IAAM,CAACA,EAAM,IAAI,UAAU,EAAG,CAAC,EAAI,IAAK,EACvF6D,EAAejD,EAAAA,SAAwB,IAAOZ,EAAM,IAAMA,EAAM,IAAI,UAAU,EAAG,CAAC,EAAI,IAAK,EAMjG,MAAO,CACL,MAAAE,EACA,SAAA0B,EACA,aAAApB,EACA,SAAAH,EACA,eAAAM,EACA,qBAAA6B,EACA,qBAAAM,EACA,eAAAR,EACA,qBAAAY,EACA,mBAAAL,EACA,mBAAAR,EACA,yBAAAY,EACA,uBAAAL,EACA,mBAAAnC,EACA,SAAAL,EACA,MAAAyB,EACA,YAAAtB,EACA,kBAAAG,EACA,YAAA0B,EACA,WAAAO,EACA,MAAAU,EACA,KAAAD,EACA,SAAApB,EACA,WAAAwB,EACA,QAAAtC,EACA,gBAAAwC,EACA,eA/BsBrC,GACdyC,EAAQ,OAASA,EAAQ,MAAQzC,GAAU0C,EAAQ,OAASA,EAAQ,MAAQ1C,EA+BpF,aAAAS,EACA,OAAAK,EACA,aAAAa,EACA,WAAAN,EACA,WAAAR,EACA,iBAAAa,EACA,eAAAN,EACA,gBAAAU,EACA,YAAAG,EACA,WAAAC,CAAA,CAEJ,CACF,CAAC"}
1
+ {"version":3,"file":"NeonDatePicker.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * Id for the date picker button.\n */\n id: { type: String },\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return props.placeholder || '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref<number>(todayDate.getMonth());\n const pageYear = ref<number>(todayDate.getFullYear());\n const pageDecadeStart = ref<number>(Math.floor(pageYear.value / 10) * 10);\n\n const resetCalendarPages = () => {\n pageMonth.value = props.modelValue\n ? +props.modelValue.substring(5, 7)\n : +todayDate.toLocaleString(locale, { month: 'numeric' });\n pageYear.value = props.modelValue\n ? +props.modelValue.substring(0, 4)\n : +todayDate.toLocaleString(locale, { year: 'numeric' });\n pageDecadeStart.value = Math.floor(pageYear.value / 10) * 10;\n };\n\n resetCalendarPages();\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const toggleCalendar = () => {\n if (!props.disabled) {\n resetCalendarPages();\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n toggleCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","resetCalendarPages","calendar","today","toggleCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":"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"}
@@ -6,7 +6,7 @@ import ue from "../button/NeonButton.vue.es.js";
6
6
  import re from "../input/NeonInput.vue.es.js";
7
7
  import { NeonDateUtils as r } from "../../../common/utils/NeonDateUtils.es.js";
8
8
  import { NeonDropdownPlacement as ie } from "../../../common/enums/NeonDropdownPlacement.es.js";
9
- const he = ae({
9
+ const be = ae({
10
10
  name: "NeonDatePicker",
11
11
  components: {
12
12
  NeonButton: ue,
@@ -14,6 +14,10 @@ const he = ae({
14
14
  NeonInput: re
15
15
  },
16
16
  props: {
17
+ /**
18
+ * Id for the date picker button.
19
+ */
20
+ id: { type: String },
17
21
  /**
18
22
  * The selected date. A date string in the
19
23
  * <a href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a> format.
@@ -101,8 +105,8 @@ const he = ae({
101
105
  */
102
106
  nextDecadeLabel: { type: String, default: "Next decade" }
103
107
  },
104
- setup(e, { emit: b }) {
105
- const h = te(), V = !h.required, I = s(null), g = s(null), c = s(!1), m = s(!1), v = s(!1), O = t(() => {
108
+ setup(e, { emit: h }) {
109
+ const b = te(), V = !b.required, I = s(null), f = s(null), g = s(!1), c = s(!1), m = s(!1), O = t(() => {
106
110
  if (e.modelValue) {
107
111
  const a = r.stringToNeonDate(e.modelValue, e.locale, !0);
108
112
  if (a) {
@@ -110,9 +114,9 @@ const he = ae({
110
114
  return `${l} ${u} ${ee}`;
111
115
  }
112
116
  }
113
- return "";
114
- }), $ = (a, l, u) => r.dmyToIso(a, l, u), f = /* @__PURE__ */ new Date(), D = e.locale || navigator.language, o = s(f.getMonth()), n = s(f.getFullYear()), d = s(Math.floor(n.value / 10) * 10), x = () => {
115
- o.value = e.modelValue ? +e.modelValue.substring(5, 7) : +f.toLocaleString(D, { month: "numeric" }), n.value = e.modelValue ? +e.modelValue.substring(0, 4) : +f.toLocaleString(D, { year: "numeric" }), d.value = Math.floor(n.value / 10) * 10;
117
+ return e.placeholder || "";
118
+ }), $ = (a, l, u) => r.dmyToIso(a, l, u), v = /* @__PURE__ */ new Date(), D = e.locale || navigator.language, o = s(v.getMonth()), n = s(v.getFullYear()), d = s(Math.floor(n.value / 10) * 10), x = () => {
119
+ o.value = e.modelValue ? +e.modelValue.substring(5, 7) : +v.toLocaleString(D, { month: "numeric" }), n.value = e.modelValue ? +e.modelValue.substring(0, 4) : +v.toLocaleString(D, { year: "numeric" }), d.value = Math.floor(n.value / 10) * 10;
116
120
  };
117
121
  x();
118
122
  const i = t(
@@ -127,18 +131,18 @@ const he = ae({
127
131
  const { day: a, month: l, year: u } = i.value.today;
128
132
  return r.dmyToIso(a, l, u);
129
133
  }), F = () => {
130
- if (!e.disabled && (x(), c.value = !0, g.value)) {
131
- const a = g.value.querySelector(".neon-date-picker__calendar-date--selected");
134
+ if (!e.disabled && (x(), f.value)) {
135
+ const a = f.value.querySelector(".neon-date-picker__calendar-date--selected");
132
136
  a && setTimeout(() => a.focus());
133
137
  }
134
138
  }, _ = (a) => {
135
- b("update:modelValue", a);
139
+ h("update:modelValue", a);
136
140
  }, q = () => {
137
141
  o.value === 1 ? (o.value = 12, n.value = n.value - 1) : o.value = o.value - 1;
138
142
  }, B = () => {
139
143
  o.value === 12 ? (o.value = 1, n.value = n.value + 1) : o.value = o.value + 1;
140
144
  }, k = () => {
141
- m.value = !0;
145
+ c.value = !0;
142
146
  }, S = t(
143
147
  () => e.min && e.min >= r.dmyToIso(1, i.value.pageMonth, i.value.pageYear)
144
148
  ), Y = t(() => {
@@ -149,7 +153,7 @@ const he = ae({
149
153
  }, R = () => {
150
154
  n.value = n.value + 1;
151
155
  }, U = () => {
152
- v.value = !0;
156
+ m.value = !0;
153
157
  }, M = t(
154
158
  () => e.min && e.min >= r.dmyToIso(1, 1, i.value.pageYear)
155
159
  ), N = t(
@@ -163,15 +167,15 @@ const he = ae({
163
167
  ), J = t(
164
168
  () => e.max && e.max <= r.dmyToIso(31, 12, Math.floor(i.value.pageYear / 10) * 10 + 9)
165
169
  ), y = () => {
166
- m.value = !1, v.value = !1;
170
+ c.value = !1, m.value = !1;
167
171
  }, K = () => {
168
- c.value = !1, y();
172
+ g.value = !1, y();
169
173
  }, Q = () => {
170
- b("update:modelValue", null), c.value = !1, y();
174
+ h("update:modelValue", null), g.value = !1, y();
171
175
  }, W = (a) => {
172
- o.value = a, m.value = !1;
176
+ o.value = a, c.value = !1;
173
177
  }, X = (a) => {
174
- n.value = a, v.value = !1;
178
+ n.value = a, m.value = !1;
175
179
  }, Z = (a) => {
176
180
  var l;
177
181
  return ((l = e.disabledDates) == null ? void 0 : l.indexOf(a)) >= 0 || e.min && e.min > a || e.max && e.max < a;
@@ -180,9 +184,9 @@ const he = ae({
180
184
  return C.value && C.value > u || T.value && T.value < u;
181
185
  }, L = t(() => e.min ? +e.min.substring(0, 4) : null), C = t(() => e.min ? e.min.substring(0, 7) : null), P = t(() => e.max ? +e.max.substring(0, 4) : null), T = t(() => e.max ? e.max.substring(0, 7) : null);
182
186
  return {
183
- attrs: h,
187
+ attrs: b,
184
188
  calendar: i,
185
- calendarOpen: c,
189
+ calendarOpen: g,
186
190
  dropdown: I,
187
191
  formattedValue: O,
188
192
  isChangeDateDisabled: z,
@@ -193,11 +197,11 @@ const he = ae({
193
197
  isPreviousDisabled: S,
194
198
  isPreviousDecadeDisabled: H,
195
199
  isPreviousYearDisabled: M,
196
- monthSelectionOpen: m,
200
+ monthSelectionOpen: c,
197
201
  optional: V,
198
202
  today: w,
199
- calendarRef: g,
200
- yearSelectionOpen: v,
203
+ calendarRef: f,
204
+ yearSelectionOpen: m,
201
205
  changeMonth: k,
202
206
  changeYear: U,
203
207
  clear: Q,
@@ -207,7 +211,7 @@ const he = ae({
207
211
  isoDate: $,
208
212
  isMonthDisabled: p,
209
213
  isYearDisabled: (a) => L.value && L.value > a || P.value && P.value < a,
210
- openCalendar: F,
214
+ toggleCalendar: F,
211
215
  onNext: B,
212
216
  onNextDecade: G,
213
217
  onNextYear: R,
@@ -221,6 +225,6 @@ const he = ae({
221
225
  }
222
226
  });
223
227
  export {
224
- he as default
228
+ be as default
225
229
  };
226
230
  //# sourceMappingURL=NeonDatePicker.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDatePicker.es.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref<number>(todayDate.getMonth());\n const pageYear = ref<number>(todayDate.getFullYear());\n const pageDecadeStart = ref<number>(Math.floor(pageYear.value / 10) * 10);\n\n const resetCalendarPages = () => {\n pageMonth.value = props.modelValue\n ? +props.modelValue.substring(5, 7)\n : +todayDate.toLocaleString(locale, { month: 'numeric' });\n pageYear.value = props.modelValue\n ? +props.modelValue.substring(0, 4)\n : +todayDate.toLocaleString(locale, { year: 'numeric' });\n pageDecadeStart.value = Math.floor(pageYear.value / 10) * 10;\n };\n\n resetCalendarPages();\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const openCalendar = () => {\n if (!props.disabled) {\n resetCalendarPages();\n calendarOpen.value = true;\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n openCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","resetCalendarPages","calendar","today","openCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":";;;;;;;;AAqBA,MAAAA,KAAeC,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,YAAY,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAIrC,QAAQ,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAIjC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAIpC,MAAM,EAAE,MAAM,QAA0B,SAASC,GAAS,OAAA;AAAA;AAAA;AAAA;AAAA,IAI1D,OAAO,EAAE,MAAM,QAAqC,SAASC,GAAoB,QAAA;AAAA;AAAA;AAAA;AAAA,IAIjF,KAAK,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAI9B,KAAK,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,IAI9B,WAAW,EAAE,MAAM,QAAuC,SAASC,GAAsB,WAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKzF,eAAe,EAAE,MAAM,OAA8B,SAAS,MAAM,CAAA,EAAC;AAAA;AAAA;AAAA;AAAA,IAIrE,aAAa,EAAE,MAAM,QAAQ,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAIvC,mBAAmB,EAAE,MAAM,QAAQ,SAAS,gBAAA;AAAA;AAAA;AAAA;AAAA,IAI5C,WAAW,EAAE,MAAM,QAAQ,SAAS,OAAA;AAAA;AAAA;AAAA;AAAA,IAIpC,YAAY,EAAE,MAAM,QAAQ,SAAS,QAAA;AAAA;AAAA;AAAA;AAAA,IAIrC,kBAAkB,EAAE,MAAM,QAAQ,SAAS,eAAA;AAAA;AAAA;AAAA;AAAA,IAI3C,oBAAoB,EAAE,MAAM,QAAQ,SAAS,iBAAA;AAAA;AAAA;AAAA;AAAA,IAI7C,gBAAgB,EAAE,MAAM,QAAQ,SAAS,aAAA;AAAA;AAAA;AAAA;AAAA,IAIzC,iBAAiB,EAAE,MAAM,QAAQ,SAAS,cAAA;AAAA;AAAA;AAAA;AAAA,IAI1C,mBAAmB,EAAE,MAAM,QAAQ,SAAS,gBAAA;AAAA;AAAA;AAAA;AAAA,IAI5C,eAAe,EAAE,MAAM,QAAQ,SAAS,YAAA;AAAA;AAAA;AAAA;AAAA,IAIxC,qBAAqB,EAAE,MAAM,QAAQ,SAAS,kBAAA;AAAA;AAAA;AAAA;AAAA,IAI9C,iBAAiB,EAAE,MAAM,QAAQ,SAAS,cAAA;AAAA,EAAc;AAAA,EAE1D,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMC,IAAQC,GAAA,GACRC,IAAW,CAACF,EAAM,UAElBG,IAAWC,EAAwB,IAAI,GACvCC,IAAcD,EAAwB,IAAI,GAC1CE,IAAeF,EAAa,EAAK,GACjCG,IAAqBH,EAAa,EAAK,GACvCI,IAAoBJ,EAAa,EAAK,GAEtCK,IAAiBC,EAAS,MAAM;AACpC,UAAIZ,EAAM,YAAY;AACpB,cAAMa,IAAgBC,EAAc,iBAAiBd,EAAM,YAAYA,EAAM,QAAQ,EAAI;AACzF,YAAIa,GAAe;AACjB,gBAAM,EAAE,cAAAE,GAAc,gBAAAC,GAAgB,eAAAC,GAAA,IAAkBJ;AACxD,iBAAO,GAAGE,CAAY,IAAIC,CAAc,IAAIC,EAAa;AAAA,QAC3D;AAAA,MACF;AAEA,aAAO;AAAA,IACT,CAAC,GAEKC,IAAU,CAACC,GAAaC,GAAeC,MAAiBP,EAAc,SAASK,GAAKC,GAAOC,CAAI,GAE/FC,wBAAgB,KAAA,GAChBC,IAASvB,EAAM,UAAU,UAAU,UAEnCwB,IAAYlB,EAAYgB,EAAU,SAAA,CAAU,GAC5CG,IAAWnB,EAAYgB,EAAU,YAAA,CAAa,GAC9CI,IAAkBpB,EAAY,KAAK,MAAMmB,EAAS,QAAQ,EAAE,IAAI,EAAE,GAElEE,IAAqB,MAAM;AAC/B,MAAAH,EAAU,QAAQxB,EAAM,aACpB,CAACA,EAAM,WAAW,UAAU,GAAG,CAAC,IAChC,CAACsB,EAAU,eAAeC,GAAQ,EAAE,OAAO,WAAW,GAC1DE,EAAS,QAAQzB,EAAM,aACnB,CAACA,EAAM,WAAW,UAAU,GAAG,CAAC,IAChC,CAACsB,EAAU,eAAeC,GAAQ,EAAE,MAAM,WAAW,GACzDG,EAAgB,QAAQ,KAAK,MAAMD,EAAS,QAAQ,EAAE,IAAI;AAAA,IAC5D;AAEA,IAAAE,EAAA;AAEA,UAAMC,IAAWhB;AAAA,MAAS,MACxBE,EAAc;AAAA,QACZd,EAAM;AAAA,QACNwB,EAAU;AAAA,QACVC,EAAS;AAAA,QACTC,EAAgB;AAAA,QAChB1B,EAAM;AAAA,MAAA;AAAA,IACR,GAGI6B,IAAQjB,EAAS,MAAM;AAC3B,YAAM,EAAE,KAAAO,GAAK,OAAAC,GAAO,MAAAC,EAAA,IAASO,EAAS,MAAM;AAC5C,aAAOd,EAAc,SAASK,GAAKC,GAAOC,CAAI;AAAA,IAChD,CAAC,GAEKS,IAAe,MAAM;AACzB,UAAI,CAAC9B,EAAM,aACT2B,EAAA,GACAnB,EAAa,QAAQ,IACjBD,EAAY,QAAO;AACrB,cAAMwB,IAAWxB,EAAY,MAAM,cAAc,4CAA4C;AAC7F,QAAIwB,KACF,WAAW,MAAMA,EAAS,OAAO;AAAA,MAErC;AAAA,IAEJ,GAEMC,IAAW,CAACC,MAAoB;AACpC,MAAAhC,EAAK,qBAAqBgC,CAAO;AAAA,IACnC,GAEMC,IAAa,MAAM;AACvB,MAAIV,EAAU,UAAU,KACtBA,EAAU,QAAQ,IAClBC,EAAS,QAAQA,EAAS,QAAQ,KAElCD,EAAU,QAAQA,EAAU,QAAQ;AAAA,IAExC,GAEMW,IAAS,MAAM;AACnB,MAAIX,EAAU,UAAU,MACtBA,EAAU,QAAQ,GAClBC,EAAS,QAAQA,EAAS,QAAQ,KAElCD,EAAU,QAAQA,EAAU,QAAQ;AAAA,IAExC,GAEMY,IAAc,MAAM;AACxB,MAAA3B,EAAmB,QAAQ;AAAA,IAC7B,GAEM4B,IAAqBzB;AAAA,MACzB,MAAMZ,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAAS,GAAGc,EAAS,MAAM,WAAWA,EAAS,MAAM,QAAQ;AAAA,IAAA,GAEvGU,IAAiB1B,EAAS,MAAM;AACpC,YAAM,EAAE,UAAAa,GAAU,WAAAD,GAAW,gBAAAe,EAAA,IAAmBX,EAAS;AACzD,aAAO5B,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAASyB,GAAgBf,GAAWC,CAAQ;AAAA,IAC7F,CAAC,GACKe,IAAuB5B,EAAS,MAAMyB,EAAmB,SAASC,EAAe,KAAK,GAEtFG,IAAiB,MAAM;AAC3B,MAAAhB,EAAS,QAAQA,EAAS,QAAQ;AAAA,IACpC,GAEMiB,IAAa,MAAM;AACvB,MAAAjB,EAAS,QAAQA,EAAS,QAAQ;AAAA,IACpC,GAEMkB,IAAa,MAAM;AACvB,MAAAjC,EAAkB,QAAQ;AAAA,IAC5B,GAEMkC,IAAyBhC;AAAA,MAC7B,MAAMZ,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAAS,GAAG,GAAGc,EAAS,MAAM,QAAQ;AAAA,IAAA,GAEhFiB,IAAqBjC;AAAA,MACzB,MAAMZ,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAAS,IAAI,IAAIc,EAAS,MAAM,QAAQ;AAAA,IAAA,GAElFkB,IAAuBlC,EAAS,MAAMgC,EAAuB,SAASC,EAAmB,KAAK,GAE9FE,IAAmB,MAAM;AAC7B,MAAArB,EAAgB,QAAQA,EAAgB,QAAQ;AAAA,IAClD,GAEMsB,IAAe,MAAM;AACzB,MAAAtB,EAAgB,QAAQA,EAAgB,QAAQ;AAAA,IAClD,GAEMuB,IAA2BrC;AAAA,MAC/B,MAAMZ,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAAS,GAAG,GAAG,KAAK,MAAMc,EAAS,MAAM,WAAW,EAAE,IAAI,EAAE;AAAA,IAAA,GAEtGsB,IAAuBtC;AAAA,MAC3B,MAAMZ,EAAM,OAAOA,EAAM,OAAOc,EAAc,SAAS,IAAI,IAAI,KAAK,MAAMc,EAAS,MAAM,WAAW,EAAE,IAAI,KAAK,CAAC;AAAA,IAAA,GAG5GuB,IAAkB,MAAM;AAC5B,MAAA1C,EAAmB,QAAQ,IAC3BC,EAAkB,QAAQ;AAAA,IAC5B,GAEM0C,IAAO,MAAM;AACjB,MAAA5C,EAAa,QAAQ,IACrB2C,EAAA;AAAA,IACF,GAEME,IAAQ,MAAM;AAClB,MAAApD,EAAK,qBAAqB,IAAI,GAC9BO,EAAa,QAAQ,IACrB2C,EAAA;AAAA,IACF,GAEMG,IAAc,CAAClC,MAAkB;AACrC,MAAAI,EAAU,QAAQJ,GAClBX,EAAmB,QAAQ;AAAA,IAC7B,GAEM8C,IAAa,CAAClC,MAAiB;AACnC,MAAAI,EAAS,QAAQJ,GACjBX,EAAkB,QAAQ;AAAA,IAC5B,GAEM8C,IAAa,CAACtC,MAAoB;;AACtC,eACEuC,IAAAzD,EAAM,kBAAN,gBAAAyD,EAAqB,QAAQvC,OAAY,KACxClB,EAAM,OAAOA,EAAM,MAAMkB,KACzBlB,EAAM,OAAOA,EAAM,MAAMkB;AAAAA,IAE9B,GAEMwC,IAAkB,CAACrC,GAAcD,MAAkB;AACvD,YAAMuC,IAAU,GAAGtC,CAAI,IAAID,IAAQ,KAAK,MAAMA,IAAQA,CAAK;AAC3D,aACGwC,EAAa,SAASA,EAAa,QAAQD,KAAaE,EAAa,SAASA,EAAa,QAAQF;AAAA,IAExG,GAEMG,IAAUlD,EAAwB,MAAOZ,EAAM,MAAM,CAACA,EAAM,IAAI,UAAU,GAAG,CAAC,IAAI,IAAK,GACvF4D,IAAehD,EAAwB,MAAOZ,EAAM,MAAMA,EAAM,IAAI,UAAU,GAAG,CAAC,IAAI,IAAK,GAC3F+D,IAAUnD,EAAwB,MAAOZ,EAAM,MAAM,CAACA,EAAM,IAAI,UAAU,GAAG,CAAC,IAAI,IAAK,GACvF6D,IAAejD,EAAwB,MAAOZ,EAAM,MAAMA,EAAM,IAAI,UAAU,GAAG,CAAC,IAAI,IAAK;AAMjG,WAAO;AAAA,MACL,OAAAE;AAAA,MACA,UAAA0B;AAAA,MACA,cAAApB;AAAA,MACA,UAAAH;AAAA,MACA,gBAAAM;AAAA,MACA,sBAAA6B;AAAA,MACA,sBAAAM;AAAA,MACA,gBAAAR;AAAA,MACA,sBAAAY;AAAA,MACA,oBAAAL;AAAA,MACA,oBAAAR;AAAA,MACA,0BAAAY;AAAA,MACA,wBAAAL;AAAA,MACA,oBAAAnC;AAAA,MACA,UAAAL;AAAA,MACA,OAAAyB;AAAA,MACA,aAAAtB;AAAA,MACA,mBAAAG;AAAA,MACA,aAAA0B;AAAA,MACA,YAAAO;AAAA,MACA,OAAAU;AAAA,MACA,MAAAD;AAAA,MACA,UAAApB;AAAA,MACA,YAAAwB;AAAA,MACA,SAAAtC;AAAA,MACA,iBAAAwC;AAAA,MACA,gBA/BqB,CAACrC,MACdyC,EAAQ,SAASA,EAAQ,QAAQzC,KAAU0C,EAAQ,SAASA,EAAQ,QAAQ1C;AAAA,MA+BpF,cAAAS;AAAA,MACA,QAAAK;AAAA,MACA,cAAAa;AAAA,MACA,YAAAN;AAAA,MACA,YAAAR;AAAA,MACA,kBAAAa;AAAA,MACA,gBAAAN;AAAA,MACA,iBAAAU;AAAA,MACA,aAAAG;AAAA,MACA,YAAAC;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
1
+ {"version":3,"file":"NeonDatePicker.es.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * Id for the date picker button.\n */\n id: { type: String },\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return props.placeholder || '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref<number>(todayDate.getMonth());\n const pageYear = ref<number>(todayDate.getFullYear());\n const pageDecadeStart = ref<number>(Math.floor(pageYear.value / 10) * 10);\n\n const resetCalendarPages = () => {\n pageMonth.value = props.modelValue\n ? +props.modelValue.substring(5, 7)\n : +todayDate.toLocaleString(locale, { month: 'numeric' });\n pageYear.value = props.modelValue\n ? +props.modelValue.substring(0, 4)\n : +todayDate.toLocaleString(locale, { year: 'numeric' });\n pageDecadeStart.value = Math.floor(pageYear.value / 10) * 10;\n };\n\n resetCalendarPages();\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const toggleCalendar = () => {\n if (!props.disabled) {\n resetCalendarPages();\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n toggleCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","resetCalendarPages","calendar","today","toggleCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const c=require("./NeonDatePicker.cjs.js"),a=require("vue"),u=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),b=["aria-label","tabindex"],k={ref:"calendarRef",class:"neon-date-picker__calendar"},v={class:"neon-date-picker__calendar-header"},m={class:"neon-date-picker__calendar-title-readonly"},y={class:"neon-date-picker__calendar-header-actions"},w={class:"neon-date-picker__calendar-options"},h={class:"neon-date-picker__calendar-header"},g={key:0,class:"neon-date-picker__calendar-title-readonly"},C={class:"neon-date-picker__calendar-header-actions"},D={class:"neon-date-picker__calendar-options"},M={class:"neon-date-picker__calendar-header"},$={key:0,class:"neon-date-picker__calendar-title-readonly"},N={class:"neon-date-picker__calendar-header-actions"},f={class:"neon-date-picker__calendar-dows"},B={class:"neon-button-group"};function V(e,n,K,Y,z,L){const i=a.resolveComponent("neon-input"),r=a.resolveComponent("neon-button"),s=a.resolveComponent("neon-dropdown");return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass([[`neon-date-picker--${e.size}`,`neon-date-picker--${e.color}`,{"neon-date-picker--disabled":e.disabled,"neon-date-picker--open":e.calendarOpen}],"neon-date-picker"])},[a.createVNode(s,{ref:"dropdown",modelValue:e.calendarOpen,"onUpdate:modelValue":[n[23]||(n[23]=o=>e.calendarOpen=o),n[24]||(n[24]=o=>e.resetToCalendar())],color:e.color,placement:e.placement},{"dropdown-button":a.withCtx(()=>[a.createVNode(i,{color:e.color,disabled:e.disabled,"icon-readonly":!0,"model-value":e.formattedValue,placeholder:e.placeholder,size:e.size,tabindex:-1,class:"neon-date-picker__button",icon:"calendar",type:"text"},null,8,["color","disabled","model-value","placeholder","size"]),a.createElementVNode("div",{"aria-label":e.openCalendarLabel,tabindex:e.disabled?-1:0,class:"neon-date-picker__button-click-capture",role:"button",onClickCapture:n[0]||(n[0]=a.withModifiers(o=>!e.disabled&&e.openCalendar(),["stop","prevent"])),onKeydownCapture:[n[1]||(n[1]=a.withKeys(a.withModifiers(o=>e.openCalendar(),["stop","prevent"]),["enter"])),n[2]||(n[2]=a.withKeys(a.withModifiers(o=>e.openCalendar(),["stop","prevent"]),["space"]))]},null,40,b)]),default:a.withCtx(()=>[a.createElementVNode("div",k,[e.yearSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createElementVNode("div",v,[a.createElementVNode("span",m,a.toDisplayString(`${e.calendar.pageDecadeStart}–${e.calendar.pageDecadeStart+9}`),1),a.createElementVNode("div",y,[a.createVNode(r,{"aria-label":e.previousDecadeLabel,circular:!0,color:e.color,disabled:e.isPreviousDecadeDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClickCapture:n[3]||(n[3]=a.withModifiers(o=>e.onPreviousDecade(),["stop","prevent"])),onKeydownCapture:n[4]||(n[4]=a.withKeys(a.withModifiers(o=>e.onPreviousDecade(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(r,{"aria-label":e.nextDecadeLabel,circular:!0,color:e.color,disabled:e.isNextDecadeDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClickCapture:n[5]||(n[5]=a.withModifiers(o=>e.onNextDecade(),["stop","prevent"])),onKeydownCapture:n[6]||(n[6]=a.withKeys(a.withModifiers(o=>e.onNextDecade(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),n[25]||(n[25]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",w,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(10,o=>a.createVNode(r,{key:o,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":e.calendar.pageYear===e.calendar.pageDecadeStart+o-1,"neon-date-picker__calendar-option--today":e.calendar.today.year===e.calendar.pageDecadeStart+o-1,"neon-date-picker__calendar-option--disabled":e.isYearDisabled(e.calendar.pageDecadeStart+o-1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isYearDisabled(e.calendar.pageDecadeStart+o-1),"full-width":!0,label:`${e.calendar.pageDecadeStart+o-1}`,"button-style":"text",size:"s",onClickCapture:a.withModifiers(t=>e.selectYear(e.calendar.pageDecadeStart+o-1),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(t=>e.selectYear(e.calendar.pageDecadeStart+o-1),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","onClickCapture","onKeydownCapture"])),64))])],64)):e.monthSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createElementVNode("div",h,[e.isChangeYearDisabled?(a.openBlock(),a.createElementBlock("span",g,a.toDisplayString(e.calendar.pageYear),1)):(a.openBlock(),a.createBlock(r,{key:1,"aria-label":e.changeYearLabel,label:`${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"switch","icon-position":"right",size:"m",onClickCapture:n[7]||(n[7]=a.withModifiers(o=>e.changeYear(),["stop","prevent"])),onKeydownCapture:n[8]||(n[8]=a.withKeys(a.withModifiers(o=>e.changeYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","label"])),a.createElementVNode("div",C,[a.createVNode(r,{"aria-label":e.previousYearLabel,circular:!0,color:e.color,disabled:e.isPreviousYearDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClickCapture:n[9]||(n[9]=a.withModifiers(o=>e.onPreviousYear(),["stop","prevent"])),onKeydownCapture:n[10]||(n[10]=a.withKeys(a.withModifiers(o=>e.onPreviousYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(r,{"aria-label":e.nextYearLabel,circular:!0,color:e.color,disabled:e.isNextYearDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClickCapture:n[11]||(n[11]=a.withModifiers(o=>e.onNextYear(),["stop","prevent"])),onKeydownCapture:n[12]||(n[12]=a.withKeys(a.withModifiers(o=>e.onNextYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),n[26]||(n[26]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",D,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.months,(o,t)=>(a.openBlock(),a.createBlock(r,{key:t,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":t+1===e.calendar.pageMonth,"neon-date-picker__calendar-option--today":t+1===e.calendar.today.month&&e.calendar.today.year===e.calendar.pageYear,"neon-date-picker__calendar-option--disabled":e.isMonthDisabled(e.calendar.pageYear,t+1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isMonthDisabled(e.calendar.pageYear,t+1),"full-width":!0,label:o,"button-style":"text",size:"s",onClickCapture:a.withModifiers(l=>e.selectMonth(t+1),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(l=>e.selectMonth(t+1),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","onClickCapture","onKeydownCapture"]))),128))])],64)):(a.openBlock(),a.createElementBlock(a.Fragment,{key:2},[a.createElementVNode("div",M,[e.isChangeDateDisabled?(a.openBlock(),a.createElementBlock("span",$,a.toDisplayString(`${e.calendar.pageMonthName} ${e.calendar.pageYear}`),1)):(a.openBlock(),a.createBlock(r,{key:1,"aria-label":e.changeMonthLabel,label:`${e.calendar.pageMonthName} ${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"switch","icon-position":"right",size:"m",onClickCapture:n[13]||(n[13]=a.withModifiers(o=>e.changeMonth(),["stop","prevent"])),onKeydownCapture:n[14]||(n[14]=a.withKeys(a.withModifiers(o=>e.changeMonth(),["stop","prevent"]),["enter"]))},null,8,["aria-label","label"])),a.createElementVNode("div",N,[a.createVNode(r,{"aria-label":e.previousMonthLabel,circular:!0,color:e.color,disabled:e.isPreviousDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClickCapture:n[15]||(n[15]=a.withModifiers(o=>e.onPrevious(),["stop","prevent"])),onKeydownCapture:n[16]||(n[16]=a.withKeys(a.withModifiers(o=>e.onPrevious(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(r,{"aria-label":e.nextMonthLabel,circular:!0,color:e.color,disabled:e.isNextDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClickCapture:n[17]||(n[17]=a.withModifiers(o=>e.onNext(),["stop","prevent"])),onKeydownCapture:n[18]||(n[18]=a.withKeys(a.withModifiers(o=>e.onNext(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),a.createElementVNode("div",f,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dowNames,o=>(a.openBlock(),a.createElementBlock("div",{key:o,class:"neon-date-picker__calendar-dow"},a.toDisplayString(o),1))),128))]),n[27]||(n[27]=a.createElementVNode("hr",null,null,-1)),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dates,(o,t)=>(a.openBlock(),a.createElementBlock("div",{key:t,class:"neon-date-picker__calendar-dates"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(o,(l,d)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[l?(a.openBlock(),a.createBlock(r,{key:d,circular:!0,class:a.normalizeClass([{"neon-date-picker__calendar-date--selected":e.modelValue===e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--today":e.today===e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--disabled":e.isDisabled(e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear))},"neon-date-picker__calendar-date"]),color:e.color,disabled:e.isDisabled(e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear)),label:`${l}`,tabindex:e.isDisabled(e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear))?-1:0,transparent:!0,"button-style":"text",size:"m",onClickCapture:a.withModifiers(p=>e.emitDate(e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear)),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(p=>e.emitDate(e.isoDate(l,e.calendar.pageMonth,e.calendar.pageYear)),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","tabindex","onClickCapture","onKeydownCapture"])):(a.openBlock(),a.createElementBlock("div",{key:`${d}-empty`,class:"neon-date-picker__calendar-date neon-date-picker__calendar-date--empty"}))],64))),256))]))),128))],64)),n[28]||(n[28]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",B,[e.optional?(a.openBlock(),a.createBlock(r,{key:0,label:e.clearLabel,"button-style":"text",class:"neon-date-picker__calendar-clear-button",color:"low-contrast",size:"s",onClickCapture:n[19]||(n[19]=a.withModifiers(o=>e.clear(),["stop","prevent"])),onKeydownCapture:n[20]||(n[20]=a.withKeys(a.withModifiers(o=>e.clear(),["stop","prevent"]),["enter"]))},null,8,["label"])):a.createCommentVNode("",!0),a.createVNode(r,{color:e.color,label:e.doneLabel,"button-style":"text",class:"neon-date-picker__calendar-done-button",size:"s",onClickCapture:n[21]||(n[21]=a.withModifiers(o=>e.done(),["stop","prevent"])),onKeydownCapture:n[22]||(n[22]=a.withKeys(a.withModifiers(o=>e.done(),["stop","prevent"]),["enter"]))},null,8,["color","label"])])],512)]),_:1},8,["modelValue","color","placement"]),a.createVNode(i,a.mergeProps({color:e.color,disabled:e.disabled,"hide-icon":!0,max:e.max,min:e.min,"model-value":e.modelValue,size:e.size,tabindex:-1,class:"neon-date-picker__native-input",type:"date"},e.attrs,{"onUpdate:modelValue":e.emitDate}),null,16,["color","disabled","max","min","model-value","size","onUpdate:modelValue"])],2)}const E=u(c,[["render",V]]);module.exports=E;
1
+ "use strict";const c=require("./NeonDatePicker.cjs.js"),a=require("vue"),u=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),b={ref:"calendarRef",class:"neon-date-picker__calendar"},k={class:"neon-date-picker__calendar-header"},m={class:"neon-date-picker__calendar-title-readonly"},v={class:"neon-date-picker__calendar-header-actions"},y={class:"neon-date-picker__calendar-options"},w={class:"neon-date-picker__calendar-header"},g={key:0,class:"neon-date-picker__calendar-title-readonly"},h={class:"neon-date-picker__calendar-header-actions"},C={class:"neon-date-picker__calendar-options"},D={class:"neon-date-picker__calendar-header"},M={key:0,class:"neon-date-picker__calendar-title-readonly"},N={class:"neon-date-picker__calendar-header-actions"},$={class:"neon-date-picker__calendar-dows"},f=["title"],B={class:"neon-button-group"};function V(e,n,Y,K,z,L){const l=a.resolveComponent("neon-button"),d=a.resolveComponent("neon-dropdown"),s=a.resolveComponent("neon-input");return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass([[`neon-date-picker--${e.size}`,`neon-date-picker--${e.color}`,{"neon-date-picker--disabled":e.disabled,"neon-date-picker--open":e.calendarOpen}],"neon-date-picker"])},[a.createVNode(d,{id:e.id,ref:"dropdown",modelValue:e.calendarOpen,"onUpdate:modelValue":[n[20]||(n[20]=o=>e.calendarOpen=o),e.toggleCalendar],color:e.color,disabled:e.disabled,"icon-aria-label":e.openCalendarLabel,indicator:!1,label:e.formattedValue,placement:e.placement,size:e.size,"dropdown-style":"input",icon:"calendar"},{default:a.withCtx(()=>[a.createElementVNode("div",b,[e.yearSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createElementVNode("div",k,[a.createElementVNode("span",m,a.toDisplayString(`${e.calendar.pageDecadeStart}–${e.calendar.pageDecadeStart+9}`),1),a.createElementVNode("div",v,[a.createVNode(l,{"aria-label":e.previousDecadeLabel,circular:!0,color:e.color,disabled:e.isPreviousDecadeDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"arrow-left-1",size:"m",onClickCapture:n[0]||(n[0]=a.withModifiers(o=>e.onPreviousDecade(),["stop","prevent"])),onKeydownCapture:n[1]||(n[1]=a.withKeys(a.withModifiers(o=>e.onPreviousDecade(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(l,{"aria-label":e.nextDecadeLabel,circular:!0,color:e.color,disabled:e.isNextDecadeDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"arrow-right-1",size:"m",onClickCapture:n[2]||(n[2]=a.withModifiers(o=>e.onNextDecade(),["stop","prevent"])),onKeydownCapture:n[3]||(n[3]=a.withKeys(a.withModifiers(o=>e.onNextDecade(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),n[21]||(n[21]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",y,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(10,o=>a.createVNode(l,{key:o,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":e.calendar.pageYear===e.calendar.pageDecadeStart+o-1,"neon-date-picker__calendar-option--today":e.calendar.today.year===e.calendar.pageDecadeStart+o-1,"neon-date-picker__calendar-option--disabled":e.isYearDisabled(e.calendar.pageDecadeStart+o-1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isYearDisabled(e.calendar.pageDecadeStart+o-1),"full-width":!0,label:`${e.calendar.pageDecadeStart+o-1}`,"button-style":"text",size:"s",onClickCapture:a.withModifiers(r=>e.selectYear(e.calendar.pageDecadeStart+o-1),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(r=>e.selectYear(e.calendar.pageDecadeStart+o-1),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","onClickCapture","onKeydownCapture"])),64))])],64)):e.monthSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createElementVNode("div",w,[e.isChangeYearDisabled?(a.openBlock(),a.createElementBlock("span",g,a.toDisplayString(e.calendar.pageYear),1)):(a.openBlock(),a.createBlock(l,{key:1,"aria-label":e.changeYearLabel,label:`${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"data-transfer-horizontal","icon-position":"right",size:"m",onClickCapture:n[4]||(n[4]=a.withModifiers(o=>e.changeYear(),["stop","prevent"])),onKeydownCapture:n[5]||(n[5]=a.withKeys(a.withModifiers(o=>e.changeYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","label"])),a.createElementVNode("div",h,[a.createVNode(l,{"aria-label":e.previousYearLabel,circular:!0,color:e.color,disabled:e.isPreviousYearDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"arrow-left-1",size:"m",onClickCapture:n[6]||(n[6]=a.withModifiers(o=>e.onPreviousYear(),["stop","prevent"])),onKeydownCapture:n[7]||(n[7]=a.withKeys(a.withModifiers(o=>e.onPreviousYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(l,{"aria-label":e.nextYearLabel,circular:!0,color:e.color,disabled:e.isNextYearDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"arrow-right-1",size:"m",onClickCapture:n[8]||(n[8]=a.withModifiers(o=>e.onNextYear(),["stop","prevent"])),onKeydownCapture:n[9]||(n[9]=a.withKeys(a.withModifiers(o=>e.onNextYear(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),n[22]||(n[22]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",C,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.months,(o,r)=>(a.openBlock(),a.createBlock(l,{key:r,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":r+1===e.calendar.pageMonth,"neon-date-picker__calendar-option--today":r+1===e.calendar.today.month&&e.calendar.today.year===e.calendar.pageYear,"neon-date-picker__calendar-option--disabled":e.isMonthDisabled(e.calendar.pageYear,r+1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isMonthDisabled(e.calendar.pageYear,r+1),"full-width":!0,label:o,title:e.calendar.monthLongNames[r],"button-style":"text",size:"s",onClickCapture:a.withModifiers(t=>e.selectMonth(r+1),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(t=>e.selectMonth(r+1),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","title","onClickCapture","onKeydownCapture"]))),128))])],64)):(a.openBlock(),a.createElementBlock(a.Fragment,{key:2},[a.createElementVNode("div",D,[e.isChangeDateDisabled?(a.openBlock(),a.createElementBlock("span",M,a.toDisplayString(`${e.calendar.pageMonthName} ${e.calendar.pageYear}`),1)):(a.openBlock(),a.createBlock(l,{key:1,"aria-label":e.changeMonthLabel,label:`${e.calendar.pageMonthName} ${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"data-transfer-horizontal","icon-position":"right",size:"m",onClickCapture:n[10]||(n[10]=a.withModifiers(o=>e.changeMonth(),["stop","prevent"])),onKeydownCapture:n[11]||(n[11]=a.withKeys(a.withModifiers(o=>e.changeMonth(),["stop","prevent"]),["enter"]))},null,8,["aria-label","label"])),a.createElementVNode("div",N,[a.createVNode(l,{"aria-label":e.previousMonthLabel,circular:!0,color:e.color,disabled:e.isPreviousDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"arrow-left-1",size:"m",onClickCapture:n[12]||(n[12]=a.withModifiers(o=>e.onPrevious(),["stop","prevent"])),onKeydownCapture:n[13]||(n[13]=a.withKeys(a.withModifiers(o=>e.onPrevious(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"]),a.createVNode(l,{"aria-label":e.nextMonthLabel,circular:!0,color:e.color,disabled:e.isNextDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"arrow-right-1",size:"m",onClickCapture:n[14]||(n[14]=a.withModifiers(o=>e.onNext(),["stop","prevent"])),onKeydownCapture:n[15]||(n[15]=a.withKeys(a.withModifiers(o=>e.onNext(),["stop","prevent"]),["enter"]))},null,8,["aria-label","color","disabled"])])]),a.createElementVNode("div",$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dowNames,(o,r)=>(a.openBlock(),a.createElementBlock("abbr",{key:o,title:e.calendar.dowLongNames[r],class:"neon-date-picker__calendar-dow"},a.toDisplayString(o),9,f))),128))]),n[23]||(n[23]=a.createElementVNode("hr",null,null,-1)),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dates,(o,r)=>(a.openBlock(),a.createElementBlock("div",{key:r,class:"neon-date-picker__calendar-dates"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(o,(t,i)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[t?(a.openBlock(),a.createBlock(l,{key:i,circular:!0,class:a.normalizeClass([{"neon-date-picker__calendar-date--selected":e.modelValue===e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--today":e.today===e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--disabled":e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear))},"neon-date-picker__calendar-date"]),color:e.color,disabled:e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear)),label:`${t}`,tabindex:e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear))?-1:0,transparent:!0,"button-style":"text",size:"m",onClickCapture:a.withModifiers(p=>e.emitDate(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear)),["stop","prevent"]),onKeydownCapture:a.withKeys(a.withModifiers(p=>e.emitDate(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear)),["stop","prevent"]),["enter"])},null,8,["class","color","disabled","label","tabindex","onClickCapture","onKeydownCapture"])):(a.openBlock(),a.createElementBlock("div",{key:`${i}-empty`,class:"neon-date-picker__calendar-date neon-date-picker__calendar-date--empty"}))],64))),256))]))),128))],64)),n[24]||(n[24]=a.createElementVNode("hr",null,null,-1)),a.createElementVNode("div",B,[e.optional?(a.openBlock(),a.createBlock(l,{key:0,label:e.clearLabel,"button-style":"text",class:"neon-date-picker__calendar-clear-button",color:"low-contrast",size:"s",onClickCapture:n[16]||(n[16]=a.withModifiers(o=>e.clear(),["stop","prevent"])),onKeydownCapture:n[17]||(n[17]=a.withKeys(a.withModifiers(o=>e.clear(),["stop","prevent"]),["enter"]))},null,8,["label"])):a.createCommentVNode("",!0),a.createVNode(l,{color:e.color,label:e.doneLabel,"button-style":"text",class:"neon-date-picker__calendar-done-button",size:"s",onClickCapture:n[18]||(n[18]=a.withModifiers(o=>e.done(),["stop","prevent"])),onKeydownCapture:n[19]||(n[19]=a.withKeys(a.withModifiers(o=>e.done(),["stop","prevent"]),["enter"]))},null,8,["color","label"])])],512)]),_:1},8,["id","modelValue","color","disabled","icon-aria-label","label","placement","size","onUpdate:modelValue"]),a.createVNode(s,a.mergeProps({color:e.color,disabled:e.disabled,"hide-icon":!0,max:e.max,min:e.min,"model-value":e.modelValue,size:e.size,tabindex:-1,class:"neon-date-picker__native-input",type:"date"},e.attrs,{"onUpdate:modelValue":e.emitDate}),null,16,["color","disabled","max","min","model-value","size","onUpdate:modelValue"])],2)}const E=u(c,[["render",V]]);module.exports=E;
2
2
  //# sourceMappingURL=NeonDatePicker.vue.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeonDatePicker.vue.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n `neon-date-picker--${size}`,\n `neon-date-picker--${color}`,\n {\n 'neon-date-picker--disabled': disabled,\n 'neon-date-picker--open': calendarOpen,\n },\n ]\"\n class=\"neon-date-picker\"\n >\n <neon-dropdown\n ref=\"dropdown\"\n v-model=\"calendarOpen\"\n :color=\"color\"\n :placement=\"placement\"\n @update:modelValue=\"resetToCalendar()\"\n >\n <template #dropdown-button>\n <neon-input\n :color=\"color\"\n :disabled=\"disabled\"\n :icon-readonly=\"true\"\n :model-value=\"formattedValue\"\n :placeholder=\"placeholder\"\n :size=\"size\"\n :tabindex=\"-1\"\n class=\"neon-date-picker__button\"\n icon=\"calendar\"\n type=\"text\"\n />\n <div\n :aria-label=\"openCalendarLabel\"\n :tabindex=\"disabled ? -1 : 0\"\n class=\"neon-date-picker__button-click-capture\"\n role=\"button\"\n @click.stop.prevent.capture=\"!disabled && openCalendar()\"\n @keydown.enter.stop.prevent.capture=\"openCalendar()\"\n @keydown.space.stop.prevent.capture=\"openCalendar()\"\n ></div>\n </template>\n <template #default>\n <div ref=\"calendarRef\" class=\"neon-date-picker__calendar\">\n <template v-if=\"yearSelectionOpen\">\n <div class=\"neon-date-picker__calendar-header\">\n <span class=\"neon-date-picker__calendar-title-readonly\">\n {{ `${calendar.pageDecadeStart}–${calendar.pageDecadeStart + 9}` }}\n </span>\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousDecadeLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousDecadeDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"chevron-left\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPreviousDecade()\"\n @keydown.enter.stop.prevent.capture=\"onPreviousDecade()\"\n />\n <neon-button\n :aria-label=\"nextDecadeLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextDecadeDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"chevron-right\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNextDecade()\"\n @keydown.enter.stop.prevent.capture=\"onNextDecade()\"\n />\n </div>\n </div>\n <hr />\n <div class=\"neon-date-picker__calendar-options\">\n <neon-button\n v-for=\"index in 10\"\n :key=\"index\"\n :class=\"{\n 'neon-date-picker__calendar-option--selected':\n calendar.pageYear === calendar.pageDecadeStart + index - 1,\n 'neon-date-picker__calendar-option--today':\n calendar.today.year === calendar.pageDecadeStart + index - 1,\n 'neon-date-picker__calendar-option--disabled': isYearDisabled(calendar.pageDecadeStart + index - 1),\n }\"\n :color=\"color\"\n :disabled=\"isYearDisabled(calendar.pageDecadeStart + index - 1)\"\n :full-width=\"true\"\n :label=\"`${calendar.pageDecadeStart + index - 1}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-option\"\n size=\"s\"\n @click.stop.prevent.capture=\"selectYear(calendar.pageDecadeStart + index - 1)\"\n @keydown.enter.stop.prevent.capture=\"selectYear(calendar.pageDecadeStart + index - 1)\"\n />\n </div>\n </template>\n <template v-else-if=\"monthSelectionOpen\">\n <div class=\"neon-date-picker__calendar-header\">\n <span v-if=\"isChangeYearDisabled\" class=\"neon-date-picker__calendar-title-readonly\">\n {{ calendar.pageYear }}\n </span>\n <neon-button\n v-else\n :aria-label=\"changeYearLabel\"\n :label=\"`${calendar.pageYear}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-header-title\"\n color=\"high-contrast\"\n icon=\"switch\"\n icon-position=\"right\"\n size=\"m\"\n @click.stop.prevent.capture=\"changeYear()\"\n @keydown.enter.stop.prevent.capture=\"changeYear()\"\n />\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousYearLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousYearDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"chevron-left\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPreviousYear()\"\n @keydown.enter.stop.prevent.capture=\"onPreviousYear()\"\n />\n <neon-button\n :aria-label=\"nextYearLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextYearDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"chevron-right\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNextYear()\"\n @keydown.enter.stop.prevent.capture=\"onNextYear()\"\n />\n </div>\n </div>\n <hr />\n <div class=\"neon-date-picker__calendar-options\">\n <neon-button\n v-for=\"(month, index) in calendar.months\"\n :key=\"index\"\n :class=\"{\n 'neon-date-picker__calendar-option--selected': index + 1 === calendar.pageMonth,\n 'neon-date-picker__calendar-option--today':\n index + 1 === calendar.today.month && calendar.today.year === calendar.pageYear,\n 'neon-date-picker__calendar-option--disabled': isMonthDisabled(calendar.pageYear, index + 1),\n }\"\n :color=\"color\"\n :disabled=\"isMonthDisabled(calendar.pageYear, index + 1)\"\n :full-width=\"true\"\n :label=\"month\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-option\"\n size=\"s\"\n @click.stop.prevent.capture=\"selectMonth(index + 1)\"\n @keydown.enter.stop.prevent.capture=\"selectMonth(index + 1)\"\n />\n </div>\n </template>\n <template v-else>\n <div class=\"neon-date-picker__calendar-header\">\n <span v-if=\"isChangeDateDisabled\" class=\"neon-date-picker__calendar-title-readonly\">\n {{ `${calendar.pageMonthName} ${calendar.pageYear}` }}\n </span>\n <neon-button\n v-else\n :aria-label=\"changeMonthLabel\"\n :label=\"`${calendar.pageMonthName} ${calendar.pageYear}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-header-title\"\n color=\"high-contrast\"\n icon=\"switch\"\n icon-position=\"right\"\n size=\"m\"\n @click.stop.prevent.capture=\"changeMonth()\"\n @keydown.enter.stop.prevent.capture=\"changeMonth()\"\n />\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousMonthLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"chevron-left\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPrevious()\"\n @keydown.enter.stop.prevent.capture=\"onPrevious()\"\n />\n <neon-button\n :aria-label=\"nextMonthLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"chevron-right\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNext()\"\n @keydown.enter.stop.prevent.capture=\"onNext()\"\n />\n </div>\n </div>\n <div class=\"neon-date-picker__calendar-dows\">\n <div v-for=\"dow in calendar.dowNames\" :key=\"dow\" class=\"neon-date-picker__calendar-dow\">{{ dow }}</div>\n </div>\n <hr />\n <div v-for=\"(dateRow, index) in calendar.dates\" :key=\"index\" class=\"neon-date-picker__calendar-dates\">\n <template v-for=\"(dateCol, index) in dateRow\">\n <neon-button\n v-if=\"dateCol\"\n :key=\"index\"\n :circular=\"true\"\n :class=\"{\n 'neon-date-picker__calendar-date--selected':\n modelValue === isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n 'neon-date-picker__calendar-date--today':\n today === isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n 'neon-date-picker__calendar-date--disabled': isDisabled(\n isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n ),\n }\"\n :color=\"color\"\n :disabled=\"isDisabled(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\"\n :label=\"`${dateCol}`\"\n :tabindex=\"isDisabled(isoDate(dateCol, calendar.pageMonth, calendar.pageYear)) ? -1 : 0\"\n :transparent=\"true\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-date\"\n size=\"m\"\n @click.stop.prevent.capture=\"emitDate(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\"\n @keydown.enter.stop.prevent.capture=\"\n emitDate(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\n \"\n />\n <div\n v-else\n :key=\"`${index}-empty`\"\n class=\"neon-date-picker__calendar-date neon-date-picker__calendar-date--empty\"\n />\n </template>\n </div>\n </template>\n <hr />\n <div class=\"neon-button-group\">\n <neon-button\n v-if=\"optional\"\n :label=\"clearLabel\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-clear-button\"\n color=\"low-contrast\"\n size=\"s\"\n @click.stop.prevent.capture=\"clear()\"\n @keydown.enter.stop.prevent.capture=\"clear()\"\n />\n <neon-button\n :color=\"color\"\n :label=\"doneLabel\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-done-button\"\n size=\"s\"\n @click.stop.prevent.capture=\"done()\"\n @keydown.enter.stop.prevent.capture=\"done()\"\n />\n </div>\n </div>\n </template>\n </neon-dropdown>\n <neon-input\n :color=\"color\"\n :disabled=\"disabled\"\n :hide-icon=\"true\"\n :max=\"max\"\n :min=\"min\"\n :model-value=\"modelValue\"\n :size=\"size\"\n :tabindex=\"-1\"\n class=\"neon-date-picker__native-input\"\n type=\"date\"\n v-bind=\"attrs\"\n @update:modelValue=\"emitDate\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDatePicker.ts\"></script>\n"],"names":["_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","_createElementBlock","_normalizeClass","_ctx","_createVNode","_component_neon_dropdown","$event","_component_neon_input","_createElementVNode","_cache","_withModifiers","_hoisted_2","_Fragment","_toDisplayString","_component_neon_button","_renderList","index","_withKeys","_openBlock","_hoisted_8","_createBlock","month","_hoisted_12","dow","dateRow","dateCol","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"NeonDatePicker.vue.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n `neon-date-picker--${size}`,\n `neon-date-picker--${color}`,\n {\n 'neon-date-picker--disabled': disabled,\n 'neon-date-picker--open': calendarOpen,\n },\n ]\"\n class=\"neon-date-picker\"\n >\n <neon-dropdown\n :id=\"id\"\n ref=\"dropdown\"\n v-model=\"calendarOpen\"\n :color=\"color\"\n :disabled=\"disabled\"\n :icon-aria-label=\"openCalendarLabel\"\n :indicator=\"false\"\n :label=\"formattedValue\"\n :placement=\"placement\"\n :size=\"size\"\n dropdown-style=\"input\"\n icon=\"calendar\"\n @update:modelValue=\"toggleCalendar\"\n >\n <div ref=\"calendarRef\" class=\"neon-date-picker__calendar\">\n <template v-if=\"yearSelectionOpen\">\n <div class=\"neon-date-picker__calendar-header\">\n <span class=\"neon-date-picker__calendar-title-readonly\">\n {{ `${calendar.pageDecadeStart}–${calendar.pageDecadeStart + 9}` }}\n </span>\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousDecadeLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousDecadeDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"arrow-left-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPreviousDecade()\"\n @keydown.enter.stop.prevent.capture=\"onPreviousDecade()\"\n />\n <neon-button\n :aria-label=\"nextDecadeLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextDecadeDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"arrow-right-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNextDecade()\"\n @keydown.enter.stop.prevent.capture=\"onNextDecade()\"\n />\n </div>\n </div>\n <hr />\n <div class=\"neon-date-picker__calendar-options\">\n <neon-button\n v-for=\"index in 10\"\n :key=\"index\"\n :class=\"{\n 'neon-date-picker__calendar-option--selected':\n calendar.pageYear === calendar.pageDecadeStart + index - 1,\n 'neon-date-picker__calendar-option--today':\n calendar.today.year === calendar.pageDecadeStart + index - 1,\n 'neon-date-picker__calendar-option--disabled': isYearDisabled(calendar.pageDecadeStart + index - 1),\n }\"\n :color=\"color\"\n :disabled=\"isYearDisabled(calendar.pageDecadeStart + index - 1)\"\n :full-width=\"true\"\n :label=\"`${calendar.pageDecadeStart + index - 1}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-option\"\n size=\"s\"\n @click.stop.prevent.capture=\"selectYear(calendar.pageDecadeStart + index - 1)\"\n @keydown.enter.stop.prevent.capture=\"selectYear(calendar.pageDecadeStart + index - 1)\"\n />\n </div>\n </template>\n <template v-else-if=\"monthSelectionOpen\">\n <div class=\"neon-date-picker__calendar-header\">\n <span v-if=\"isChangeYearDisabled\" class=\"neon-date-picker__calendar-title-readonly\">\n {{ calendar.pageYear }}\n </span>\n <neon-button\n v-else\n :aria-label=\"changeYearLabel\"\n :label=\"`${calendar.pageYear}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-header-title\"\n color=\"high-contrast\"\n icon=\"data-transfer-horizontal\"\n icon-position=\"right\"\n size=\"m\"\n @click.stop.prevent.capture=\"changeYear()\"\n @keydown.enter.stop.prevent.capture=\"changeYear()\"\n />\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousYearLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousYearDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"arrow-left-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPreviousYear()\"\n @keydown.enter.stop.prevent.capture=\"onPreviousYear()\"\n />\n <neon-button\n :aria-label=\"nextYearLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextYearDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"arrow-right-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNextYear()\"\n @keydown.enter.stop.prevent.capture=\"onNextYear()\"\n />\n </div>\n </div>\n <hr />\n <div class=\"neon-date-picker__calendar-options\">\n <neon-button\n v-for=\"(month, index) in calendar.months\"\n :key=\"index\"\n :class=\"{\n 'neon-date-picker__calendar-option--selected': index + 1 === calendar.pageMonth,\n 'neon-date-picker__calendar-option--today':\n index + 1 === calendar.today.month && calendar.today.year === calendar.pageYear,\n 'neon-date-picker__calendar-option--disabled': isMonthDisabled(calendar.pageYear, index + 1),\n }\"\n :color=\"color\"\n :disabled=\"isMonthDisabled(calendar.pageYear, index + 1)\"\n :full-width=\"true\"\n :label=\"month\"\n :title=\"calendar.monthLongNames[index]\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-option\"\n size=\"s\"\n @click.stop.prevent.capture=\"selectMonth(index + 1)\"\n @keydown.enter.stop.prevent.capture=\"selectMonth(index + 1)\"\n />\n </div>\n </template>\n <template v-else>\n <div class=\"neon-date-picker__calendar-header\">\n <span v-if=\"isChangeDateDisabled\" class=\"neon-date-picker__calendar-title-readonly\">\n {{ `${calendar.pageMonthName} ${calendar.pageYear}` }}\n </span>\n <neon-button\n v-else\n :aria-label=\"changeMonthLabel\"\n :label=\"`${calendar.pageMonthName} ${calendar.pageYear}`\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-header-title\"\n color=\"high-contrast\"\n icon=\"data-transfer-horizontal\"\n icon-position=\"right\"\n size=\"m\"\n @click.stop.prevent.capture=\"changeMonth()\"\n @keydown.enter.stop.prevent.capture=\"changeMonth()\"\n />\n <div class=\"neon-date-picker__calendar-header-actions\">\n <neon-button\n :aria-label=\"previousMonthLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isPreviousDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__previous-button\"\n icon=\"arrow-left-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onPrevious()\"\n @keydown.enter.stop.prevent.capture=\"onPrevious()\"\n />\n <neon-button\n :aria-label=\"nextMonthLabel\"\n :circular=\"true\"\n :color=\"color\"\n :disabled=\"isNextDisabled\"\n button-style=\"text\"\n class=\"neon-date-picker__next-button\"\n icon=\"arrow-right-1\"\n size=\"m\"\n @click.stop.prevent.capture=\"onNext()\"\n @keydown.enter.stop.prevent.capture=\"onNext()\"\n />\n </div>\n </div>\n <div class=\"neon-date-picker__calendar-dows\">\n <abbr\n v-for=\"(dow, index) in calendar.dowNames\"\n :key=\"dow\"\n :title=\"calendar.dowLongNames[index]\"\n class=\"neon-date-picker__calendar-dow\"\n >\n {{ dow }}\n </abbr>\n </div>\n <hr />\n <div v-for=\"(dateRow, index) in calendar.dates\" :key=\"index\" class=\"neon-date-picker__calendar-dates\">\n <template v-for=\"(dateCol, index) in dateRow\">\n <neon-button\n v-if=\"dateCol\"\n :key=\"index\"\n :circular=\"true\"\n :class=\"{\n 'neon-date-picker__calendar-date--selected':\n modelValue === isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n 'neon-date-picker__calendar-date--today':\n today === isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n 'neon-date-picker__calendar-date--disabled': isDisabled(\n isoDate(dateCol, calendar.pageMonth, calendar.pageYear),\n ),\n }\"\n :color=\"color\"\n :disabled=\"isDisabled(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\"\n :label=\"`${dateCol}`\"\n :tabindex=\"isDisabled(isoDate(dateCol, calendar.pageMonth, calendar.pageYear)) ? -1 : 0\"\n :transparent=\"true\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-date\"\n size=\"m\"\n @click.stop.prevent.capture=\"emitDate(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\"\n @keydown.enter.stop.prevent.capture=\"emitDate(isoDate(dateCol, calendar.pageMonth, calendar.pageYear))\"\n />\n <div\n v-else\n :key=\"`${index}-empty`\"\n class=\"neon-date-picker__calendar-date neon-date-picker__calendar-date--empty\"\n />\n </template>\n </div>\n </template>\n <hr />\n <div class=\"neon-button-group\">\n <neon-button\n v-if=\"optional\"\n :label=\"clearLabel\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-clear-button\"\n color=\"low-contrast\"\n size=\"s\"\n @click.stop.prevent.capture=\"clear()\"\n @keydown.enter.stop.prevent.capture=\"clear()\"\n />\n <neon-button\n :color=\"color\"\n :label=\"doneLabel\"\n button-style=\"text\"\n class=\"neon-date-picker__calendar-done-button\"\n size=\"s\"\n @click.stop.prevent.capture=\"done()\"\n @keydown.enter.stop.prevent.capture=\"done()\"\n />\n </div>\n </div>\n </neon-dropdown>\n <neon-input\n :color=\"color\"\n :disabled=\"disabled\"\n :hide-icon=\"true\"\n :max=\"max\"\n :min=\"min\"\n :model-value=\"modelValue\"\n :size=\"size\"\n :tabindex=\"-1\"\n class=\"neon-date-picker__native-input\"\n type=\"date\"\n v-bind=\"attrs\"\n @update:modelValue=\"emitDate\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonDatePicker.ts\"></script>\n"],"names":["_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_15","_createElementBlock","_normalizeClass","_ctx","_createVNode","_component_neon_dropdown","$event","_createElementVNode","_hoisted_1","_Fragment","_toDisplayString","_component_neon_button","_renderList","index","_withModifiers","_withKeys","_openBlock","_hoisted_7","_createBlock","month","_hoisted_11","dow","_hoisted_14","dateRow","dateCol","_component_neon_input","_mergeProps"],"mappings":"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"}