@onereach/ui-components 22.2.0-beta.5477.0 → 22.2.0-beta.5479.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/{OrCardCollection-CoE9Umh7.mjs → OrCardCollection-CVNj8vKN.mjs} +2 -2
- package/dist/esm/{OrCardCollection-CoE9Umh7.mjs.map → OrCardCollection-CVNj8vKN.mjs.map} +1 -1
- package/dist/esm/{OrContextMenu-CrpiM2Jq.mjs → OrContextMenu-L14E1lLm.mjs} +2 -2
- package/dist/esm/{OrContextMenu-CrpiM2Jq.mjs.map → OrContextMenu-L14E1lLm.mjs.map} +1 -1
- package/dist/esm/{OrDataGrid-Y27X0z7L.mjs → OrDataGrid-D2FFVgHK.mjs} +6 -6
- package/dist/esm/{OrDataGrid-Y27X0z7L.mjs.map → OrDataGrid-D2FFVgHK.mjs.map} +1 -1
- package/dist/esm/{OrDateFormat-DLFWyjHc.mjs → OrDateFormat-DKgu_p6Y.mjs} +2 -2
- package/dist/esm/{OrDateFormat-DLFWyjHc.mjs.map → OrDateFormat-DKgu_p6Y.mjs.map} +1 -1
- package/dist/esm/{OrDatePicker-Dtnri38h.mjs → OrDatePicker-C2QFP1NK.mjs} +2 -2
- package/dist/esm/{OrDatePicker-Dtnri38h.mjs.map → OrDatePicker-C2QFP1NK.mjs.map} +1 -1
- package/dist/esm/{OrDateRangePicker-EmSkMzJ7.mjs → OrDateRangePicker-B8atNK11.mjs} +2 -2
- package/dist/esm/{OrDateRangePicker-EmSkMzJ7.mjs.map → OrDateRangePicker-B8atNK11.mjs.map} +1 -1
- package/dist/esm/{OrDateTimeFormat-Dp-ClZ1l.mjs → OrDateTimeFormat-ByEReaKo.mjs} +2 -2
- package/dist/esm/{OrDateTimeFormat-Dp-ClZ1l.mjs.map → OrDateTimeFormat-ByEReaKo.mjs.map} +1 -1
- package/dist/esm/{OrDateTimePicker-35-aTCIt.mjs → OrDateTimePicker-FuoCwgfZ.mjs} +2 -2
- package/dist/esm/{OrDateTimePicker-35-aTCIt.mjs.map → OrDateTimePicker-FuoCwgfZ.mjs.map} +1 -1
- package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-kFeSOigY.mjs → OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs} +2 -2
- package/dist/esm/{OrDateTimePicker.vue_vue_type_script_lang-kFeSOigY.mjs.map → OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs.map} +1 -1
- package/dist/esm/{OrEditorTabs-psJUG0D3.mjs → OrEditorTabs-B7_l5FVN.mjs} +2 -2
- package/dist/esm/{OrEditorTabs-psJUG0D3.mjs.map → OrEditorTabs-B7_l5FVN.mjs.map} +1 -1
- package/dist/esm/{OrMenu-CJT4Snay.mjs → OrMenu-naJcjd7Z.mjs} +22 -18
- package/dist/esm/OrMenu-naJcjd7Z.mjs.map +1 -0
- package/dist/esm/OrPagination-CTwCcz18.mjs +351 -0
- package/dist/esm/OrPagination-CTwCcz18.mjs.map +1 -0
- package/dist/esm/{OrRichTextEditor-CvbqTzyJ.mjs → OrRichTextEditor-DHc5Lsyu.mjs} +2 -2
- package/dist/esm/{OrRichTextEditor-CvbqTzyJ.mjs.map → OrRichTextEditor-DHc5Lsyu.mjs.map} +1 -1
- package/dist/esm/{OrSorting-DCAarSF1.mjs → OrSorting-C1m5NTQf.mjs} +2 -2
- package/dist/esm/{OrSorting-DCAarSF1.mjs.map → OrSorting-C1m5NTQf.mjs.map} +1 -1
- package/dist/esm/{OrTabs-6NfHHn7M.mjs → OrTabs-Dgii4fCQ.mjs} +2 -2
- package/dist/esm/{OrTabs-6NfHHn7M.mjs.map → OrTabs-Dgii4fCQ.mjs.map} +1 -1
- package/dist/esm/{OrTimeFormat-BZQ49Thn.mjs → OrTimeFormat-DScNr0vb.mjs} +2 -2
- package/dist/esm/{OrTimeFormat-BZQ49Thn.mjs.map → OrTimeFormat-DScNr0vb.mjs.map} +1 -1
- package/dist/esm/{OrTimePicker-CCcuAt6S.mjs → OrTimePicker-Deh-pYk1.mjs} +2 -2
- package/dist/esm/{OrTimePicker-CCcuAt6S.mjs.map → OrTimePicker-Deh-pYk1.mjs.map} +1 -1
- package/dist/esm/{OrTimeRangePicker-CD1eXHAg.mjs → OrTimeRangePicker-DhsGrtcw.mjs} +2 -2
- package/dist/esm/{OrTimeRangePicker-CD1eXHAg.mjs.map → OrTimeRangePicker-DhsGrtcw.mjs.map} +1 -1
- package/dist/esm/components/index.mjs +18 -18
- package/dist/esm/components/or-card-collection-v3/index.mjs +1 -1
- package/dist/esm/components/or-context-menu-v3/index.mjs +1 -1
- package/dist/esm/components/or-data-grid-v3/index.mjs +1 -1
- package/dist/esm/components/or-date-format-v3/index.mjs +1 -1
- package/dist/esm/components/or-date-picker-v3/index.mjs +1 -1
- package/dist/esm/components/or-date-range-picker-v3/index.mjs +1 -1
- package/dist/esm/components/or-date-time-format-v3/index.mjs +1 -1
- package/dist/esm/components/or-date-time-picker-v3/index.mjs +2 -2
- package/dist/esm/components/or-editor-tabs-v3/index.mjs +1 -1
- package/dist/esm/components/or-menu-v3/index.mjs +1 -1
- package/dist/esm/components/or-pagination-v3/index.mjs +1 -1
- package/dist/esm/components/or-rich-text-editor-v3/index.mjs +1 -1
- package/dist/esm/components/or-sorting-v3/index.mjs +1 -1
- package/dist/esm/components/or-tabs-v3/index.mjs +1 -1
- package/dist/esm/components/or-time-format-v3/index.mjs +1 -1
- package/dist/esm/components/or-time-picker-v3/index.mjs +1 -1
- package/dist/esm/components/or-time-range-picker-v3/index.mjs +1 -1
- package/dist/esm/index.mjs +18 -18
- package/dist/types/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +20 -0
- package/dist/types/components/or-menu-v3/OrMenu.vue.d.ts +9 -0
- package/dist/types/components/or-pagination-v3/OrPagination.vue.d.ts +21 -0
- package/dist/types/components/or-pagination-v3/styles.d.ts +1 -0
- package/dist/types/components/or-rich-text-editor-v3/OrRichTextEditor.vue.d.ts +10 -0
- package/dist/types/components/or-sorting-v3/OrSorting.vue.d.ts +9 -0
- package/dist/types/components/or-tabs-v3/OrTabs.vue.d.ts +10 -0
- package/package.json +2 -2
- package/dist/esm/OrMenu-CJT4Snay.mjs.map +0 -1
- package/dist/esm/OrPagination-DIacMkVe.mjs +0 -333
- package/dist/esm/OrPagination-DIacMkVe.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrDateTimePicker.vue_vue_type_script_lang-kFeSOigY.mjs","sources":["../../../components/or-date-time-picker-v3/src/utils/formatDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileTime.ts","../../../components/or-date-time-picker-v3/src/utils/formatTime.ts","../../../components/or-date-time-picker-v3/src/utils/getCurrentDate.ts","../../../components/or-date-time-picker-v3/src/utils/scrollToElementWithinContainer.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/OrDateTimePickerDateControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue","../../../components/or-date-time-picker-v3/src/styles.ts","../../../components/or-date-time-picker-v3/src/OrDateTimePicker.vue"],"sourcesContent":["import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n dateStyle: format,\n timeZone: 'UTC',\n });\n};\n","import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatMobileDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n dateStyle: 'medium',\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatMobileTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: typeof format !== 'function' && format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","export const getCurrentDate = (): Date => {\n const currentDate = new Date();\n\n return new Date(Date.UTC(\n currentDate.getUTCFullYear(),\n currentDate.getUTCMonth(),\n currentDate.getUTCDate()\n ));\n};\n","export const scrollToElementWithinContainer = (element: HTMLElement, container: HTMLElement): void => {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n\n // Determine if the element is fully visible within the container by comparing their positions.\n const isFullyVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n\n if (!isFullyVisible) {\n // Calculate the new scrollTop value to center the element within the container.\n // This involves adjusting for the height of the element and container, ensuring the element is centered.\n container.scrollTop = element.offsetTop - container.offsetTop - (container.clientHeight / 2) + (element.clientHeight / 2);\n }\n};\n","export const DateTimePickerDateControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerDateControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatDate(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useDateMask, useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport type { DateFormat, FormatFunction } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatDate } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-control-v3',\n ...Styles.DateTimePickerDateControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerDateControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useDateMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatDate,\n };\n },\n});\n</script>\n","export const DateTimePickerDateSelect: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n];\n\nexport const DateTimePickerDateSelectButtonGroup: string[] = [\n // Layout\n 'grid content-start',\n 'grid-cols-7',\n\n // Box\n 'h-[262px]',\n\n // Spacing\n '-mx-[2px]',\n '-my-[2px]',\n];\n\nexport const DateTimePickerDateSelectButtonGroupWeekdayItem: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Interactivity\n 'interactivity-default',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n 'px-sm',\n 'py-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupDateItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n '!px-sm',\n '!py-sm',\n\n // Typography\n 'typography-caption-regular',\n];\n\nexport const DateTimePickerDateSelectButtonGroupCurrentDateItem: string[] = [\n // Theme\n 'theme-foreground-primary',\n 'dark:theme-foreground-primary-dark',\n\n 'theme-outline-primary outline-1',\n 'dark:theme-outline-primary-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupInRangeDateItem: string[] = [\n // Spacing\n '!mx-0',\n '!px-[10px]',\n\n // Shape\n '!rounded-0',\n\n // Theme\n 'theme-background-primary-translucent-2',\n 'dark:theme-background-primary-translucent-2-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"buttonGroupStyles\">\n <div\n v-for=\"weekday in 7\"\n :key=\"weekday\"\n :class=\"buttonGroupWeekdayItemStyles\"\n >\n {{ formatWeekday(dayOptions[weekday - 1]) }}\n </div>\n\n <OrButton\n v-for=\"value in dayOptions\"\n :key=\"Number(value)\"\n :class=\"{\n [buttonGroupDateItemStyles.join(' ')]: true,\n [buttonGroupCurrentDateItemStyles.join(' ')]: Number(value) !== Number(model) && Number(value) !== Number(rangeStart) && Number(value) !== Number(rangeEnd) && Number(value) === Number(currentDate),\n [buttonGroupInRangeDateItemStyles.join(' ')]: (rangeStart && Number(value) > Number(rangeStart)) && (rangeEnd && Number(value) < Number(rangeEnd)),\n }\"\n :variant=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'primary' : 'inherit'\"\n :disabled=\"dateFilter && !dateFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatDay(value) }}\n </OrButton>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n rangeStart: {\n type: Date,\n default: undefined,\n },\n\n rangeEnd: {\n type: Date,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-select-v3',\n ...Styles.DateTimePickerDateSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroup,\n ]);\n\n const buttonGroupWeekdayItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupWeekdayItem,\n ]);\n\n const buttonGroupDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupDateItem,\n ]);\n\n const buttonGroupCurrentDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem,\n ]);\n\n const buttonGroupInRangeDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const dayOptions = computed(() => {\n const monthStartDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth(),\n 1,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const monthEndDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth() + 1,\n 0,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const calendarStartDate = new Date(Date.UTC(\n monthStartDate.getUTCFullYear(),\n monthStartDate.getUTCMonth(),\n 1 - monthStartDate.getUTCDay(),\n monthStartDate.getUTCHours(),\n monthStartDate.getUTCMinutes(),\n ));\n\n const calendarEndDate = new Date(Date.UTC(\n monthEndDate.getUTCFullYear(),\n monthEndDate.getUTCMonth() + 1,\n 7 - monthEndDate.getUTCDay(),\n monthEndDate.getUTCHours(),\n monthEndDate.getUTCMinutes(),\n ));\n\n return (() => {\n let options = [] as Date[], value = calendarStartDate;\n\n while (Number(value) !== Number(calendarEndDate)) {\n options = [...options, value];\n\n value = new Date(Date.UTC(\n value.getUTCFullYear(),\n value.getUTCMonth(),\n value.getUTCDate() + 1,\n value.getUTCHours(),\n value.getUTCMinutes(),\n ));\n }\n\n return options;\n })();\n });\n\n const currentDate = computed(() => {\n const value = new Date();\n\n value.setUTCHours(props.initialValue.getUTCHours());\n value.setUTCMinutes(props.initialValue.getUTCMinutes());\n value.setUTCSeconds(props.initialValue.getUTCSeconds());\n value.setUTCMilliseconds(props.initialValue.getUTCMilliseconds());\n\n return value;\n });\n\n // Methods\n function formatWeekday(value: Date): string {\n return value.toLocaleString(props.locale, {\n weekday: 'short',\n timeZone: 'UTC',\n });\n }\n\n function formatDay(value: Date): string {\n return value.toLocaleString(props.locale, {\n day: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n buttonGroupStyles,\n buttonGroupWeekdayItemStyles,\n buttonGroupDateItemStyles,\n buttonGroupCurrentDateItemStyles,\n buttonGroupInRangeDateItemStyles,\n\n model,\n\n dayOptions,\n\n currentDate,\n\n formatWeekday,\n formatDay,\n };\n },\n});\n</script>\n","export const DateTimePickerMobileControl: string[] = [\n // Layout\n 'layout-column',\n\n // Interactivity\n 'interactivity-auto',\n\n // Spacing\n 'gap-xs',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-default',\n 'dark:selected:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerMobileControlContent: string[] = [\n // Typography\n 'typography-headline-1',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n >\n <OrLabel>{{ label }}</OrLabel>\n\n <div :class=\"contentStyles\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMobileControl',\n\n components: {\n OrLabel,\n },\n\n props: {\n label: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-mobile-control-v3',\n ...Styles.DateTimePickerMobileControl,\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.DateTimePickerMobileControlContent,\n ]);\n\n return {\n root,\n rootStyles,\n\n contentStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerMonthSelect: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-md',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrIconButton\n :icon=\"'chevron_left'\"\n @click.stop=\"goToPreviousMonth()\"\n />\n\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :ref=\"'yearButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"monthMenu && monthMenu.close(); yearMenu && yearMenu.toggle()\"\n >\n {{ formatYear(model) }} <OrIcon :icon=\"yearMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrButton\n :ref=\"'monthButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"yearMenu && yearMenu.close(); monthMenu && monthMenu.toggle()\"\n >\n {{ formatMonth(model) }} <OrIcon :icon=\"monthMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrMenu\n :ref=\"'yearMenu'\"\n :trigger=\"yearButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in yearOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"yearFilter && !yearFilter(value)\"\n @click.stop=\"model = value; yearMenu && yearMenu.close()\"\n >\n {{ formatYear(value) }}\n </OrMenuItem>\n </OrMenu>\n\n <OrMenu\n :ref=\"'monthMenu'\"\n :trigger=\"monthButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in monthOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"monthFilter && !monthFilter(value)\"\n @click.stop=\"model = value; monthMenu && monthMenu.close()\"\n >\n {{ formatMonth(value) }}\n </OrMenuItem>\n </OrMenu>\n </div>\n\n <OrIconButton\n :icon=\"'chevron_right'\"\n @click.stop=\"goToNextMonth()\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport { DateTimePickerMonthSelect } from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMonthSelect',\n\n components: {\n OrButton,\n OrIcon,\n OrIconButton,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<NonNullable<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-month-select-v3',\n ...DateTimePickerMonthSelect,\n ]);\n\n const yearButton = ref<InstanceType<typeof OrButton>>();\n const yearButtonRoot = computed(() => yearButton.value?.root);\n\n const monthButton = ref<InstanceType<typeof OrButton>>();\n const monthButtonRoot = computed(() => monthButton.value?.root);\n\n const yearMenu = ref<InstanceType<typeof OrMenu>>();\n const yearMenuState = computed(() => yearMenu.value?.state);\n\n const monthMenu = ref<InstanceType<typeof OrMenu>>();\n const monthMenuState = computed(() => monthMenu.value?.state);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const yearOptions = computed(() => {\n return Array.from({ length: 11 }).map((_value, index, { length }) => {\n const value = model.value.getUTCFullYear() - Math.floor(length / 2) + index;\n\n return new Date(Date.UTC(\n value,\n model.value.getUTCMonth(),\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n const monthOptions = computed(() => {\n return Array.from({ length: 12 }, (_value, index) => {\n const value = index;\n\n return new Date(Date.UTC(\n model.value.getUTCFullYear(),\n value,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n // Methods\n function goToNextMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() + 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function goToPreviousMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() - 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function formatYear(value: Date): string {\n return value.toLocaleString(props.locale, {\n year: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n function formatMonth(value: Date): string {\n return value.toLocaleString(props.locale, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n yearButton,\n yearButtonRoot,\n\n monthButton,\n monthButtonRoot,\n\n yearMenu,\n yearMenuState,\n\n monthMenu,\n monthMenuState,\n\n model,\n\n yearOptions,\n monthOptions,\n\n goToNextMonth,\n goToPreviousMonth,\n\n formatYear,\n formatMonth,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Layout (children)\n 'children:grow',\n\n // Spacing\n 'px-md md:px-sm',\n 'py-md md:py-sm',\n\n 'gap-md md:gap-sm',\n\n // Theme\n 'theme-border-outline-variant border-t-1',\n 'dark:theme-border-outline-variant-dark',\n];\n","<template>\n <footer\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrButton\n :variant=\"'outlined'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('apply')\"\n >\n Done\n </OrButton>\n\n <OrButton\n :variant=\"'text'\"\n @click.stop=\"$emit('reset')\"\n >\n Cancel\n </OrButton>\n </footer>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverFooter',\n\n components: {\n OrButton,\n },\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-footer-v3',\n ...Styles.DateTimePickerPopoverFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverHeader: string[] = [\n // Layout\n 'layout-row md:hidden',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-xl',\n];\n","<template>\n <header\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </header>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverHeader',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-header-v3',\n ...Styles.DateTimePickerPopoverHeader,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerTimeControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatTime(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue, useTimeMask } from '@onereach/ui-components-common/hooks';\nimport { FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatTime } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-control-v3',\n ...Styles.DateTimePickerTimeControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerTimeControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useTimeMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatTime,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeSelect: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerTimeSelectButtonGroup: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-[294px] md:h-[238px]',\n\n // Overflow\n 'overflow-x-hidden',\n 'overflow-y-auto',\n];\n\nexport const DateTimePickerTimeSelectButtonGroupItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Typography\n 'typography-caption-regular',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div\n :ref=\"'hoursContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in hoursOptions\"\n :ref=\"'hoursButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"hoursFilter && !hoursFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatHours(value) }}\n </OrButton>\n </div>\n\n :\n\n <div\n :ref=\"'minutesContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in minutesOptions\"\n :ref=\"'minutesButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"minutesFilter && !minutesFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatMinutes(value) }}\n </OrButton>\n </div>\n\n <template v-if=\"proxyTimeFormat === 'h12'\">\n <div :class=\"buttonGroupStyles\">\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'am' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'am' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'am'\"\n >\n AM\n </OrButton>\n\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'pm' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'pm' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'pm'\"\n >\n PM\n </OrButton>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, PropType, ref, toRef, watch } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\nimport { scrollToElementWithinContainer } from '../../utils';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n isActive: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n const hoursContainer = ref<HTMLElement>();\n const minutesContainer = ref<HTMLElement>();\n const hoursButtons = ref<InstanceType<typeof OrButton>[]>([]);\n const minutesButtons = ref<InstanceType<typeof OrButton>[]>([]);\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-select-v3',\n ...Styles.DateTimePickerTimeSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroup,\n ]);\n\n const buttonGroupItemStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroupItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const dayPeriod = ref<'am' | 'pm'>((model.value ?? props.initialValue).getUTCHours() < 12 ? 'am' : 'pm');\n\n // Effects\n watch(dayPeriod, (value) => {\n switch (value) {\n case 'am':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() - 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n\n case 'pm':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() + 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n }\n });\n\n watch(() => props.isActive, (isActive) => {\n // Wait for the next DOM update cycle to ensure all refs are correctly updated.\n nextTick(() => {\n if (!isActive || !model.value) {\n return;\n }\n\n const activeHourButton = getActiveButton(hoursButtons.value, hoursOptions.value);\n const activeMinuteButton = getActiveButton(minutesButtons.value, minutesOptions.value);\n\n if (activeHourButton && hoursContainer.value) {\n // scroll to the active hour button within the hours container.\n scrollToElementWithinContainer(activeHourButton, hoursContainer.value);\n }\n\n if (activeMinuteButton && minutesContainer.value) {\n // scroll to the active minute button within the minutes container.\n scrollToElementWithinContainer(activeMinuteButton, minutesContainer.value);\n }\n });\n }, { immediate: true });\n\n // Computed\n const proxyTimeFormat = computed(() => {\n if (typeof props.format === 'function' || props.format === TimeFormat.Auto) {\n const timeSample = new Date(1970, 0);\n\n if (timeSample.toLocaleTimeString(props.locale).includes('12')) {\n return TimeFormat.H12;\n }\n\n return TimeFormat.H23;\n }\n\n return props.format;\n });\n\n const hoursOptions = computed(() => {\n const hourStep = props.hourStep > 0 ? props.hourStep : 1;\n\n return Array.from({ length: Math.ceil(24 / hourStep) }, (_value, index) => {\n const value = index * hourStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n value,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n }).filter((value) => {\n if (proxyTimeFormat.value === TimeFormat.H23) {\n return true;\n }\n\n switch (dayPeriod.value) {\n case 'am':\n return value.getUTCHours() < 12;\n\n case 'pm':\n return value.getUTCHours() >= 12;\n }\n });\n });\n\n const minutesOptions = computed(() => {\n const minuteStep = props.minuteStep > 0 ? props.minuteStep : 1;\n\n return Array.from({ length: Math.ceil(60 / minuteStep) }, (_value, index) => {\n const value = index * minuteStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours(),\n value,\n ));\n });\n });\n\n // Methods\n function formatHours(value: Date): string {\n return value.toLocaleString(props.locale, {\n hour: 'numeric',\n hourCycle: typeof props.format !== 'function' && props.format !== TimeFormat.Auto ? props.format : undefined,\n timeZone: 'UTC',\n }).replace(/\\D/g, '');\n }\n\n function formatMinutes(value: Date): string {\n return String(value.getUTCMinutes()).padStart(2, '0');\n }\n\n function sortElementsByPosition(elements: InstanceType<typeof OrButton>[]): InstanceType<typeof OrButton>[] {\n return [...elements].sort((a, b) => {\n return a.root!.compareDocumentPosition(b.root!) & 2 ? 1 : -1;\n });\n }\n\n function getActiveButton(buttons: InstanceType<typeof OrButton>[], options: Date[]): HTMLButtonElement | undefined {\n return sortElementsByPosition(buttons)\n .find((button, index) => Number(model.value) === Number(options[index]))?.root;\n }\n\n return {\n root,\n rootStyles,\n\n hoursContainer,\n minutesContainer,\n\n hoursButtons,\n minutesButtons,\n\n buttonGroupStyles,\n buttonGroupItemStyles,\n\n model,\n dayPeriod,\n\n proxyTimeFormat,\n\n hoursOptions,\n minutesOptions,\n\n formatHours,\n formatMinutes,\n };\n },\n});\n</script>\n","export const DateTimePicker: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const DateTimePickerDatePopover: string[] = [\n // Box\n 'w-[290px]',\n];\n\nexport const DateTimePickerTimePopover: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'inputBox'\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <OrDateTimePickerDateControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"datePopover && datePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrDateTimePickerTimeControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleTimePopover\"\n v-dropdown-close=\"closeTimePopover\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"timePopover && timePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrPopover\n :ref=\"'datePopover'\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <div :class=\"datePopoverStyles\">\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerMonthSelect\n v-model=\"initialValue\"\n :locale=\"resolvedLocale\"\n :year-filter=\"yearFilter\"\n :month-filter=\"monthFilter\"\n />\n\n <OrDateTimePickerDateSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :date-filter=\"dateFilter\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); datePopover && datePopover.close()\"\n @reset=\"reset(); datePopover && datePopover.close()\"\n />\n </div>\n </OrPopover>\n\n <OrPopover\n :ref=\"'timePopover'\"\n :class=\"timePopoverStyles\"\n :custom-styles=\"timePopoverStyles\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerTimeSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :hours-filter=\"hoursFilter\"\n :minutes-filter=\"minutesFilter\"\n :is-active=\"timePopover && timePopover.state === 'open'\"\n :hour-step=\"hourStep\"\n :minute-step=\"minuteStep\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); timePopover && timePopover.close()\"\n @reset=\"reset(); timePopover && timePopover.close()\"\n />\n </OrPopover>\n\n <div :class=\"['grow']\" />\n\n <template v-slot:addon>\n <template v-if=\"modelValue\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :disabled=\"readonly || disabled\"\n @click.stop=\"$emit('update:modelValue', undefined)\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'calendar_month'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useDateFormat, useLocale, useProxyModelValue, useTimeFormat, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrDateTimePickerDateControl, OrDateTimePickerDateSelect, OrDateTimePickerMobileControl, OrDateTimePickerMonthSelect, OrDateTimePickerPopoverFooter, OrDateTimePickerPopoverHeader, OrDateTimePickerTimeControl, OrDateTimePickerTimeSelect } from './partials';\nimport * as Styles from './styles';\nimport { DateTimePickerModelValue } from './types';\nimport { formatMobileDate, formatMobileTime, getCurrentDate } from './utils';\nimport { ReferenceElement } from '@floating-ui/dom';\n\nexport default defineComponent({\n name: 'OrDateTimePicker',\n\n components: {\n OrDateTimePickerDateControl,\n OrDateTimePickerDateSelect,\n OrDateTimePickerMobileControl,\n OrDateTimePickerMonthSelect,\n OrDateTimePickerPopoverFooter,\n OrDateTimePickerPopoverHeader,\n OrDateTimePickerTimeControl,\n OrDateTimePickerTimeSelect,\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrPopover,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n dateFormat: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n timeFormat: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n locale: {\n type: String,\n default: undefined,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n anchor: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-v3',\n ...Styles.DateTimePicker,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const datePopover = ref<InstanceType<typeof OrPopover>>();\n const datePopoverState = computed(() => datePopover.value?.state);\n\n const datePopoverStyles = computed(() => [\n 'or-date-time-picker-date-popover-v3',\n ...(isMobile.value ? [] : Styles.DateTimePickerDatePopover),\n ]);\n\n const timePopover = ref<InstanceType<typeof OrPopover>>();\n const timePopoverState = computed(() => timePopover.value?.state);\n\n const timePopoverStyles = computed(() => [\n 'or-date-time-picker-time-popover-v3',\n ...Styles.DateTimePickerTimePopover,\n ]);\n\n // Options\n const resolvedDateFormat = useDateFormat(toRef(props, 'dateFormat'));\n const resolvedTimeFormat = useTimeFormat(toRef(props, 'timeFormat'));\n const resolvedLocale = useLocale(toRef(props, 'locale'));\n\n // State\n const initialValue = ref(props.modelValue ?? getCurrentDate());\n\n watch(() => props.modelValue, (value) => {\n initialValue.value = value ?? getCurrentDate();\n });\n\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const draft = ref(model.value);\n\n watch(model, (value) => {\n draft.value = value;\n });\n\n const invalid = computed(() => {\n if (draft.value) {\n if (props.yearFilter && !props.yearFilter(draft.value)) {\n return true;\n }\n\n if (props.monthFilter && !props.monthFilter(draft.value)) {\n return true;\n }\n\n if (props.dateFilter && !props.dateFilter(draft.value)) {\n return true;\n }\n\n if (props.hoursFilter && !props.hoursFilter(draft.value)) {\n return true;\n }\n\n if (props.minutesFilter && !props.minutesFilter(draft.value)) {\n return true;\n }\n\n return false;\n }\n\n return true;\n });\n\n // Methods\n function apply(): void {\n model.value = draft.value;\n }\n\n function reset(): void {\n draft.value = model.value;\n }\n\n function toggleDatePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n if (datePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeTimePopover();\n }\n }\n\n function toggleTimePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n if (timePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeDatePopover();\n }\n }\n\n function closeDatePopover(): void {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n function closeTimePopover(): void {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n inputBox,\n inputBoxRoot,\n\n datePopover,\n datePopoverState,\n datePopoverStyles,\n\n timePopover,\n timePopoverState,\n timePopoverStyles,\n\n resolvedDateFormat,\n resolvedTimeFormat,\n resolvedLocale,\n\n initialValue,\n\n model,\n draft,\n\n invalid,\n\n apply,\n reset,\n\n toggleDatePopover,\n toggleTimePopover,\n\n closeDatePopover,\n closeTimePopover,\n\n formatMobileDate,\n formatMobileTime,\n };\n },\n});\n</script>\n"],"names":["formatDate","value","format","locale","formatMobileDate","formatMobileTime","TimeFormat","formatTime","getCurrentDate","currentDate","scrollToElementWithinContainer","element","container","elementRect","containerRect","DateTimePickerDateControl","DateTimePickerDateControlPlaceholder","_sfc_main$8","defineComponent","props","context","root","ref","rootStyles","computed","Styles.DateTimePickerDateControl","placeholderStyles","Styles.DateTimePickerDateControlPlaceholder","model","useProxyModelValue","toRef","placeholder","useDateMask","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_toDisplayString","DateTimePickerDateSelect","DateTimePickerDateSelectButtonGroup","DateTimePickerDateSelectButtonGroupWeekdayItem","DateTimePickerDateSelectButtonGroupDateItem","DateTimePickerDateSelectButtonGroupCurrentDateItem","DateTimePickerDateSelectButtonGroupInRangeDateItem","_sfc_main$7","OrButton","Styles.DateTimePickerDateSelect","buttonGroupStyles","Styles.DateTimePickerDateSelectButtonGroup","buttonGroupWeekdayItemStyles","Styles.DateTimePickerDateSelectButtonGroupWeekdayItem","buttonGroupDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupDateItem","buttonGroupCurrentDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem","buttonGroupInRangeDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem","dayOptions","monthStartDate","monthEndDate","calendarStartDate","calendarEndDate","options","formatWeekday","formatDay","_resolveComponent","_Fragment","_renderList","weekday","_createElementVNode","_createBlock","_component_OrButton","$event","DateTimePickerMobileControl","DateTimePickerMobileControlContent","_sfc_main$6","OrLabel","Styles.DateTimePickerMobileControl","contentStyles","Styles.DateTimePickerMobileControlContent","_createVNode","_component_OrLabel","_withCtx","DateTimePickerMonthSelect","_sfc_main$5","OrIcon","OrIconButton","OrMenu","OrMenuItem","yearButton","yearButtonRoot","_a","monthButton","monthButtonRoot","yearMenu","yearMenuState","monthMenu","monthMenuState","yearOptions","_value","index","length","monthOptions","goToNextMonth","goToPreviousMonth","formatYear","formatMonth","_component_OrIconButton","_hoisted_1","_createTextVNode","_component_OrIcon","_component_OrMenu","_component_OrMenuItem","DateTimePickerPopoverFooter","_sfc_main$4","Styles.DateTimePickerPopoverFooter","DateTimePickerPopoverHeader","_sfc_main$3","Styles.DateTimePickerPopoverHeader","DateTimePickerTimeControl","DateTimePickerTimeControlPlaceholder","_sfc_main$2","Styles.DateTimePickerTimeControl","Styles.DateTimePickerTimeControlPlaceholder","useTimeMask","DateTimePickerTimeSelect","DateTimePickerTimeSelectButtonGroup","DateTimePickerTimeSelectButtonGroupItem","_sfc_main$1","hoursContainer","minutesContainer","hoursButtons","minutesButtons","Styles.DateTimePickerTimeSelect","Styles.DateTimePickerTimeSelectButtonGroup","buttonGroupItemStyles","Styles.DateTimePickerTimeSelectButtonGroupItem","dayPeriod","watch","isActive","nextTick","activeHourButton","getActiveButton","hoursOptions","activeMinuteButton","minutesOptions","proxyTimeFormat","hourStep","minuteStep","formatHours","formatMinutes","sortElementsByPosition","elements","a","b","buttons","button","DateTimePicker","DateTimePickerDatePopover","DateTimePickerTimePopover","_sfc_main","OrDateTimePickerDateControl","OrDateTimePickerDateSelect","OrDateTimePickerMobileControl","OrDateTimePickerMonthSelect","OrDateTimePickerPopoverFooter","OrDateTimePickerPopoverHeader","OrDateTimePickerTimeControl","OrDateTimePickerTimeSelect","OrError","OrHint","OrInputBox","OrPopover","DropdownClose","DropdownOpen","Styles.DateTimePicker","InputBoxVariant","inputBox","inputBoxRoot","datePopover","datePopoverState","datePopoverStyles","isMobile","Styles.DateTimePickerDatePopover","timePopover","timePopoverState","timePopoverStyles","Styles.DateTimePickerTimePopover","resolvedDateFormat","useDateFormat","resolvedTimeFormat","useTimeFormat","resolvedLocale","useLocale","initialValue","draft","invalid","apply","reset","toggleDatePopover","popoverInstance","closeTimePopover","toggleTimePopover","closeDatePopover","useResponsive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OrDateTimePicker.vue_vue_type_script_lang-DJ6A7YKZ.mjs","sources":["../../../components/or-date-time-picker-v3/src/utils/formatDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileDate.ts","../../../components/or-date-time-picker-v3/src/utils/formatMobileTime.ts","../../../components/or-date-time-picker-v3/src/utils/formatTime.ts","../../../components/or-date-time-picker-v3/src/utils/getCurrentDate.ts","../../../components/or-date-time-picker-v3/src/utils/scrollToElementWithinContainer.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-control/OrDateTimePickerDateControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/styles.ts","../../../components/or-date-time-picker-v3/src/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue","../../../components/or-date-time-picker-v3/src/styles.ts","../../../components/or-date-time-picker-v3/src/OrDateTimePicker.vue"],"sourcesContent":["import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n dateStyle: format,\n timeZone: 'UTC',\n });\n};\n","import { DateFormat, FormatFunction, Locale } from '@onereach/ui-components-common/types';\n\nexport const formatMobileDate = (value: Date, format: `${DateFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n dateStyle: 'medium',\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatMobileTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: typeof format !== 'function' && format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","import { FormatFunction, Locale, TimeFormat } from '@onereach/ui-components-common/types';\n\nexport const formatTime = (value: Date, format: `${TimeFormat}` | FormatFunction<Date>, locale: Locale): string => {\n if (typeof format === 'function') {\n return format(value, locale);\n }\n\n return value.toLocaleString(locale, {\n timeStyle: 'short',\n hourCycle: format !== TimeFormat.Auto ? format : undefined,\n timeZone: 'UTC',\n });\n};\n","export const getCurrentDate = (): Date => {\n const currentDate = new Date();\n\n return new Date(Date.UTC(\n currentDate.getUTCFullYear(),\n currentDate.getUTCMonth(),\n currentDate.getUTCDate()\n ));\n};\n","export const scrollToElementWithinContainer = (element: HTMLElement, container: HTMLElement): void => {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n\n // Determine if the element is fully visible within the container by comparing their positions.\n const isFullyVisible = elementRect.top >= containerRect.top && elementRect.bottom <= containerRect.bottom;\n\n if (!isFullyVisible) {\n // Calculate the new scrollTop value to center the element within the container.\n // This involves adjusting for the height of the element and container, ensuring the element is centered.\n container.scrollTop = element.offsetTop - container.offsetTop - (container.clientHeight / 2) + (element.clientHeight / 2);\n }\n};\n","export const DateTimePickerDateControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerDateControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatDate(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useDateMask, useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport type { DateFormat, FormatFunction } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatDate } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-control-v3',\n ...Styles.DateTimePickerDateControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerDateControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useDateMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatDate,\n };\n },\n});\n</script>\n","export const DateTimePickerDateSelect: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n];\n\nexport const DateTimePickerDateSelectButtonGroup: string[] = [\n // Layout\n 'grid content-start',\n 'grid-cols-7',\n\n // Box\n 'h-[262px]',\n\n // Spacing\n '-mx-[2px]',\n '-my-[2px]',\n];\n\nexport const DateTimePickerDateSelectButtonGroupWeekdayItem: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Interactivity\n 'interactivity-default',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n 'px-sm',\n 'py-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupDateItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Spacing\n 'mx-[2px]',\n 'my-[2px]',\n\n '!px-sm',\n '!py-sm',\n\n // Typography\n 'typography-caption-regular',\n];\n\nexport const DateTimePickerDateSelectButtonGroupCurrentDateItem: string[] = [\n // Theme\n 'theme-foreground-primary',\n 'dark:theme-foreground-primary-dark',\n\n 'theme-outline-primary outline-1',\n 'dark:theme-outline-primary-dark',\n];\n\nexport const DateTimePickerDateSelectButtonGroupInRangeDateItem: string[] = [\n // Spacing\n '!mx-0',\n '!px-[10px]',\n\n // Shape\n '!rounded-0',\n\n // Theme\n 'theme-background-primary-translucent-2',\n 'dark:theme-background-primary-translucent-2-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"buttonGroupStyles\">\n <div\n v-for=\"weekday in 7\"\n :key=\"weekday\"\n :class=\"buttonGroupWeekdayItemStyles\"\n >\n {{ formatWeekday(dayOptions[weekday - 1]) }}\n </div>\n\n <OrButton\n v-for=\"value in dayOptions\"\n :key=\"Number(value)\"\n :class=\"{\n [buttonGroupDateItemStyles.join(' ')]: true,\n [buttonGroupCurrentDateItemStyles.join(' ')]: Number(value) !== Number(model) && Number(value) !== Number(rangeStart) && Number(value) !== Number(rangeEnd) && Number(value) === Number(currentDate),\n [buttonGroupInRangeDateItemStyles.join(' ')]: (rangeStart && Number(value) > Number(rangeStart)) && (rangeEnd && Number(value) < Number(rangeEnd)),\n }\"\n :variant=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) || (rangeStart && Number(value) === Number(rangeStart)) || (rangeEnd && Number(value) === Number(rangeEnd)) ? 'primary' : 'inherit'\"\n :disabled=\"dateFilter && !dateFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatDay(value) }}\n </OrButton>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerDateSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n rangeStart: {\n type: Date,\n default: undefined,\n },\n\n rangeEnd: {\n type: Date,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-date-select-v3',\n ...Styles.DateTimePickerDateSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroup,\n ]);\n\n const buttonGroupWeekdayItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupWeekdayItem,\n ]);\n\n const buttonGroupDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupDateItem,\n ]);\n\n const buttonGroupCurrentDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem,\n ]);\n\n const buttonGroupInRangeDateItemStyles = computed(() => [\n ...Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const dayOptions = computed(() => {\n const monthStartDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth(),\n 1,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const monthEndDate = new Date(Date.UTC(\n props.initialValue.getUTCFullYear(),\n props.initialValue.getUTCMonth() + 1,\n 0,\n props.initialValue.getUTCHours(),\n props.initialValue.getUTCMinutes(),\n ));\n\n const calendarStartDate = new Date(Date.UTC(\n monthStartDate.getUTCFullYear(),\n monthStartDate.getUTCMonth(),\n 1 - monthStartDate.getUTCDay(),\n monthStartDate.getUTCHours(),\n monthStartDate.getUTCMinutes(),\n ));\n\n const calendarEndDate = new Date(Date.UTC(\n monthEndDate.getUTCFullYear(),\n monthEndDate.getUTCMonth() + 1,\n 7 - monthEndDate.getUTCDay(),\n monthEndDate.getUTCHours(),\n monthEndDate.getUTCMinutes(),\n ));\n\n return (() => {\n let options = [] as Date[], value = calendarStartDate;\n\n while (Number(value) !== Number(calendarEndDate)) {\n options = [...options, value];\n\n value = new Date(Date.UTC(\n value.getUTCFullYear(),\n value.getUTCMonth(),\n value.getUTCDate() + 1,\n value.getUTCHours(),\n value.getUTCMinutes(),\n ));\n }\n\n return options;\n })();\n });\n\n const currentDate = computed(() => {\n const value = new Date();\n\n value.setUTCHours(props.initialValue.getUTCHours());\n value.setUTCMinutes(props.initialValue.getUTCMinutes());\n value.setUTCSeconds(props.initialValue.getUTCSeconds());\n value.setUTCMilliseconds(props.initialValue.getUTCMilliseconds());\n\n return value;\n });\n\n // Methods\n function formatWeekday(value: Date): string {\n return value.toLocaleString(props.locale, {\n weekday: 'short',\n timeZone: 'UTC',\n });\n }\n\n function formatDay(value: Date): string {\n return value.toLocaleString(props.locale, {\n day: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n buttonGroupStyles,\n buttonGroupWeekdayItemStyles,\n buttonGroupDateItemStyles,\n buttonGroupCurrentDateItemStyles,\n buttonGroupInRangeDateItemStyles,\n\n model,\n\n dayOptions,\n\n currentDate,\n\n formatWeekday,\n formatDay,\n };\n },\n});\n</script>\n","export const DateTimePickerMobileControl: string[] = [\n // Layout\n 'layout-column',\n\n // Interactivity\n 'interactivity-auto',\n\n // Spacing\n 'gap-xs',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-default',\n 'dark:selected:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerMobileControlContent: string[] = [\n // Typography\n 'typography-headline-1',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n >\n <OrLabel>{{ label }}</OrLabel>\n\n <div :class=\"contentStyles\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMobileControl',\n\n components: {\n OrLabel,\n },\n\n props: {\n label: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-mobile-control-v3',\n ...Styles.DateTimePickerMobileControl,\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.DateTimePickerMobileControlContent,\n ]);\n\n return {\n root,\n rootStyles,\n\n contentStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerMonthSelect: string[] = [\n // Layout\n 'layout-row justify-between',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-md',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrIconButton\n :icon=\"'chevron_left'\"\n @click.stop=\"goToPreviousMonth()\"\n />\n\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :ref=\"'yearButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"monthMenu && monthMenu.close(); yearMenu && yearMenu.toggle()\"\n >\n {{ formatYear(model) }} <OrIcon :icon=\"yearMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrButton\n :ref=\"'monthButton'\"\n :variant=\"'link'\"\n :color=\"'inherit'\"\n @click.stop=\"yearMenu && yearMenu.close(); monthMenu && monthMenu.toggle()\"\n >\n {{ formatMonth(model) }} <OrIcon :icon=\"monthMenuState === 'open' ? 'arrow_drop_up' : 'arrow_drop_down'\" />\n </OrButton>\n\n <OrMenu\n :ref=\"'yearMenu'\"\n :trigger=\"yearButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in yearOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"yearFilter && !yearFilter(value)\"\n @click.stop=\"model = value; yearMenu && yearMenu.close()\"\n >\n {{ formatYear(value) }}\n </OrMenuItem>\n </OrMenu>\n\n <OrMenu\n :ref=\"'monthMenu'\"\n :trigger=\"monthButtonRoot\"\n >\n <OrMenuItem\n v-for=\"value in monthOptions\"\n :key=\"Number(value)\"\n :selected=\"Number(value) === Number(model)\"\n :disabled=\"monthFilter && !monthFilter(value)\"\n @click.stop=\"model = value; monthMenu && monthMenu.close()\"\n >\n {{ formatMonth(value) }}\n </OrMenuItem>\n </OrMenu>\n </div>\n\n <OrIconButton\n :icon=\"'chevron_right'\"\n @click.stop=\"goToNextMonth()\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport { DateTimePickerMonthSelect } from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerMonthSelect',\n\n components: {\n OrButton,\n OrIcon,\n OrIconButton,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<NonNullable<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-month-select-v3',\n ...DateTimePickerMonthSelect,\n ]);\n\n const yearButton = ref<InstanceType<typeof OrButton>>();\n const yearButtonRoot = computed(() => yearButton.value?.root);\n\n const monthButton = ref<InstanceType<typeof OrButton>>();\n const monthButtonRoot = computed(() => monthButton.value?.root);\n\n const yearMenu = ref<InstanceType<typeof OrMenu>>();\n const yearMenuState = computed(() => yearMenu.value?.state);\n\n const monthMenu = ref<InstanceType<typeof OrMenu>>();\n const monthMenuState = computed(() => monthMenu.value?.state);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const yearOptions = computed(() => {\n return Array.from({ length: 11 }).map((_value, index, { length }) => {\n const value = model.value.getUTCFullYear() - Math.floor(length / 2) + index;\n\n return new Date(Date.UTC(\n value,\n model.value.getUTCMonth(),\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n const monthOptions = computed(() => {\n return Array.from({ length: 12 }, (_value, index) => {\n const value = index;\n\n return new Date(Date.UTC(\n model.value.getUTCFullYear(),\n value,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n });\n });\n\n // Methods\n function goToNextMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() + 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function goToPreviousMonth(): void {\n model.value = new Date(Date.UTC(\n model.value.getUTCFullYear(),\n model.value.getUTCMonth() - 1,\n model.value.getUTCDate(),\n model.value.getUTCHours(),\n model.value.getUTCMinutes(),\n ));\n }\n\n function formatYear(value: Date): string {\n return value.toLocaleString(props.locale, {\n year: 'numeric',\n timeZone: 'UTC',\n });\n }\n\n function formatMonth(value: Date): string {\n return value.toLocaleString(props.locale, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n return {\n root,\n rootStyles,\n\n yearButton,\n yearButtonRoot,\n\n monthButton,\n monthButtonRoot,\n\n yearMenu,\n yearMenuState,\n\n monthMenu,\n monthMenuState,\n\n model,\n\n yearOptions,\n monthOptions,\n\n goToNextMonth,\n goToPreviousMonth,\n\n formatYear,\n formatMonth,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Layout (children)\n 'children:grow',\n\n // Spacing\n 'px-md md:px-sm',\n 'py-md md:py-sm',\n\n 'gap-md md:gap-sm',\n\n // Theme\n 'theme-border-outline-variant border-t-1',\n 'dark:theme-border-outline-variant-dark',\n];\n","<template>\n <footer\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrButton\n :variant=\"'outlined'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('apply')\"\n >\n Done\n </OrButton>\n\n <OrButton\n :variant=\"'text'\"\n @click.stop=\"$emit('reset')\"\n >\n Cancel\n </OrButton>\n </footer>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverFooter',\n\n components: {\n OrButton,\n },\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-footer-v3',\n ...Styles.DateTimePickerPopoverFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerPopoverHeader: string[] = [\n // Layout\n 'layout-row md:hidden',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-xl',\n];\n","<template>\n <header\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </header>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerPopoverHeader',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-popover-header-v3',\n ...Styles.DateTimePickerPopoverHeader,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeControl: string[] = [\n // Layout\n 'layout-inline-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Theme (focus)\n 'focus-visible:theme-border-inherit focus-visible:border-b-2',\n 'dark:focus-visible:theme-border-inherit-dark',\n\n // Theme (selected)\n 'selected:theme-border-inherit selected:border-b-2',\n 'dark:selected:theme-border-inherit-dark',\n];\n\nexport const DateTimePickerTimeControlPlaceholder: string[] = [\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :contenteditable=\"!disabled\"\n :selected=\"selected\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n @keydown.prevent\n >\n <template v-if=\"model\">\n {{ formatTime(model, format, locale) }}\n </template>\n\n <template v-else>\n <span\n :class=\"placeholderStyles\"\n :disabled=\"disabled\"\n >\n {{ placeholder }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\nimport { useProxyModelValue, useTimeMask } from '@onereach/ui-components-common/hooks';\nimport { FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { DateTimePickerModelValue } from '../../types';\nimport { formatTime } from '../../utils';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeControl',\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-control-v3',\n ...Styles.DateTimePickerTimeControl,\n ]);\n\n const placeholderStyles = computed(() => [\n ...Styles.DateTimePickerTimeControlPlaceholder,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const placeholder = useTimeMask(toRef(props, 'format'), toRef(props, 'locale'));\n\n return {\n root,\n rootStyles,\n\n placeholderStyles,\n\n model,\n placeholder,\n\n formatTime,\n };\n },\n});\n</script>\n","export const DateTimePickerTimeSelect: string[] = [\n // Layout\n 'layout-row justify-center',\n\n // Spacing\n 'px-md',\n 'py-md',\n\n 'gap-sm',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const DateTimePickerTimeSelectButtonGroup: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'h-[294px] md:h-[238px]',\n\n // Overflow\n 'overflow-x-hidden',\n 'overflow-y-auto',\n];\n\nexport const DateTimePickerTimeSelectButtonGroupItem: string[] = [\n // Box\n '!min-w-fit',\n\n // Typography\n 'typography-caption-regular',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div\n :ref=\"'hoursContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in hoursOptions\"\n :ref=\"'hoursButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"hoursFilter && !hoursFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatHours(value) }}\n </OrButton>\n </div>\n\n :\n\n <div\n :ref=\"'minutesContainer'\"\n :class=\"buttonGroupStyles\"\n >\n <OrButton\n v-for=\"value in minutesOptions\"\n :ref=\"'minutesButtons'\"\n :key=\"Number(value)\"\n :class=\"buttonGroupItemStyles\"\n :variant=\"Number(value) === Number(model) ? 'contained' : 'text'\"\n :color=\"Number(value) === Number(model) ? 'primary' : 'inherit'\"\n :disabled=\"minutesFilter && !minutesFilter(value)\"\n @click.stop=\"model = value\"\n >\n {{ formatMinutes(value) }}\n </OrButton>\n </div>\n\n <template v-if=\"proxyTimeFormat === 'h12'\">\n <div :class=\"buttonGroupStyles\">\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'am' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'am' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'am'\"\n >\n AM\n </OrButton>\n\n <OrButton\n :class=\"buttonGroupItemStyles\"\n :variant=\"dayPeriod === 'pm' ? 'contained' : 'text'\"\n :color=\"dayPeriod === 'pm' ? 'primary' : 'inherit'\"\n @click.stop=\"dayPeriod = 'pm'\"\n >\n PM\n </OrButton>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, PropType, ref, toRef, watch } from 'vue';\nimport { useProxyModelValue } from '@onereach/ui-components-common/hooks';\nimport { FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { DateTimePickerModelValue } from '../../types';\nimport * as Styles from './styles';\nimport { scrollToElementWithinContainer } from '../../utils';\n\nexport default defineComponent({\n name: 'OrDateTimePickerTimeSelect',\n\n components: {\n OrButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n initialValue: {\n type: Date,\n required: true,\n },\n\n format: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n isActive: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n const hoursContainer = ref<HTMLElement>();\n const minutesContainer = ref<HTMLElement>();\n const hoursButtons = ref<InstanceType<typeof OrButton>[]>([]);\n const minutesButtons = ref<InstanceType<typeof OrButton>[]>([]);\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-time-select-v3',\n ...Styles.DateTimePickerTimeSelect,\n ]);\n\n const buttonGroupStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroup,\n ]);\n\n const buttonGroupItemStyles = computed(() => [\n ...Styles.DateTimePickerTimeSelectButtonGroupItem,\n ]);\n\n // State\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const dayPeriod = ref<'am' | 'pm'>((model.value ?? props.initialValue).getUTCHours() < 12 ? 'am' : 'pm');\n\n // Effects\n watch(dayPeriod, (value) => {\n switch (value) {\n case 'am':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() - 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n\n case 'pm':\n model.value = new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours() + 12,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n\n break;\n }\n });\n\n watch(() => props.isActive, (isActive) => {\n // Wait for the next DOM update cycle to ensure all refs are correctly updated.\n nextTick(() => {\n if (!isActive || !model.value) {\n return;\n }\n\n const activeHourButton = getActiveButton(hoursButtons.value, hoursOptions.value);\n const activeMinuteButton = getActiveButton(minutesButtons.value, minutesOptions.value);\n\n if (activeHourButton && hoursContainer.value) {\n // scroll to the active hour button within the hours container.\n scrollToElementWithinContainer(activeHourButton, hoursContainer.value);\n }\n\n if (activeMinuteButton && minutesContainer.value) {\n // scroll to the active minute button within the minutes container.\n scrollToElementWithinContainer(activeMinuteButton, minutesContainer.value);\n }\n });\n }, { immediate: true });\n\n // Computed\n const proxyTimeFormat = computed(() => {\n if (typeof props.format === 'function' || props.format === TimeFormat.Auto) {\n const timeSample = new Date(1970, 0);\n\n if (timeSample.toLocaleTimeString(props.locale).includes('12')) {\n return TimeFormat.H12;\n }\n\n return TimeFormat.H23;\n }\n\n return props.format;\n });\n\n const hoursOptions = computed(() => {\n const hourStep = props.hourStep > 0 ? props.hourStep : 1;\n\n return Array.from({ length: Math.ceil(24 / hourStep) }, (_value, index) => {\n const value = index * hourStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n value,\n (model.value ?? props.initialValue).getUTCMinutes(),\n ));\n }).filter((value) => {\n if (proxyTimeFormat.value === TimeFormat.H23) {\n return true;\n }\n\n switch (dayPeriod.value) {\n case 'am':\n return value.getUTCHours() < 12;\n\n case 'pm':\n return value.getUTCHours() >= 12;\n }\n });\n });\n\n const minutesOptions = computed(() => {\n const minuteStep = props.minuteStep > 0 ? props.minuteStep : 1;\n\n return Array.from({ length: Math.ceil(60 / minuteStep) }, (_value, index) => {\n const value = index * minuteStep;\n\n return new Date(Date.UTC(\n (model.value ?? props.initialValue).getUTCFullYear(),\n (model.value ?? props.initialValue).getUTCMonth(),\n (model.value ?? props.initialValue).getUTCDate(),\n (model.value ?? props.initialValue).getUTCHours(),\n value,\n ));\n });\n });\n\n // Methods\n function formatHours(value: Date): string {\n return value.toLocaleString(props.locale, {\n hour: 'numeric',\n hourCycle: typeof props.format !== 'function' && props.format !== TimeFormat.Auto ? props.format : undefined,\n timeZone: 'UTC',\n }).replace(/\\D/g, '');\n }\n\n function formatMinutes(value: Date): string {\n return String(value.getUTCMinutes()).padStart(2, '0');\n }\n\n function sortElementsByPosition(elements: InstanceType<typeof OrButton>[]): InstanceType<typeof OrButton>[] {\n return [...elements].sort((a, b) => {\n return a.root!.compareDocumentPosition(b.root!) & 2 ? 1 : -1;\n });\n }\n\n function getActiveButton(buttons: InstanceType<typeof OrButton>[], options: Date[]): HTMLButtonElement | undefined {\n return sortElementsByPosition(buttons)\n .find((button, index) => Number(model.value) === Number(options[index]))?.root;\n }\n\n return {\n root,\n rootStyles,\n\n hoursContainer,\n minutesContainer,\n\n hoursButtons,\n minutesButtons,\n\n buttonGroupStyles,\n buttonGroupItemStyles,\n\n model,\n dayPeriod,\n\n proxyTimeFormat,\n\n hoursOptions,\n minutesOptions,\n\n formatHours,\n formatMinutes,\n };\n },\n});\n</script>\n","export const DateTimePicker: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const DateTimePickerDatePopover: string[] = [\n // Box\n 'w-[290px]',\n];\n\nexport const DateTimePickerTimePopover: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'inputBox'\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :variant=\"variant\"\n :size=\"size\"\n :invalid=\"!!error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <OrDateTimePickerDateControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleDatePopover\"\n v-dropdown-close=\"closeDatePopover\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"datePopover && datePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrDateTimePickerTimeControl\n v-model=\"draft\"\n v-dropdown-open=\"toggleTimePopover\"\n v-dropdown-close=\"closeTimePopover\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :selected=\"timePopover && timePopover.state === 'open'\"\n :required=\"required\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n />\n\n <OrPopover\n :ref=\"'datePopover'\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <div :class=\"datePopoverStyles\">\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerMonthSelect\n v-model=\"initialValue\"\n :locale=\"resolvedLocale\"\n :year-filter=\"yearFilter\"\n :month-filter=\"monthFilter\"\n />\n\n <OrDateTimePickerDateSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedDateFormat\"\n :locale=\"resolvedLocale\"\n :date-filter=\"dateFilter\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); datePopover && datePopover.close()\"\n @reset=\"reset(); datePopover && datePopover.close()\"\n />\n </div>\n </OrPopover>\n\n <OrPopover\n :ref=\"'timePopover'\"\n :class=\"timePopoverStyles\"\n :custom-styles=\"timePopoverStyles\"\n :variant=\"'auto'\"\n :bottom-sheet-props=\"{ variant: 'basic' }\"\n :trigger=\"anchor || inputBoxRoot\"\n :placement=\"'bottom-start'\"\n :fallback-placement=\"'start'\"\n @close=\"reset()\"\n >\n <OrDateTimePickerPopoverHeader>\n <OrDateTimePickerMobileControl :label=\"'Date'\">\n {{ draft ? formatMobileDate(draft, resolvedDateFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n\n <OrDateTimePickerMobileControl :label=\"'Time'\">\n {{ draft ? formatMobileTime(draft, resolvedTimeFormat, resolvedLocale) : '--' }}\n </OrDateTimePickerMobileControl>\n </OrDateTimePickerPopoverHeader>\n\n <OrDateTimePickerTimeSelect\n v-model=\"draft\"\n :initial-value=\"initialValue\"\n :format=\"resolvedTimeFormat\"\n :locale=\"resolvedLocale\"\n :hours-filter=\"hoursFilter\"\n :minutes-filter=\"minutesFilter\"\n :is-active=\"timePopover && timePopover.state === 'open'\"\n :hour-step=\"hourStep\"\n :minute-step=\"minuteStep\"\n />\n\n <OrDateTimePickerPopoverFooter\n :disabled=\"invalid\"\n @apply=\"apply(); timePopover && timePopover.close()\"\n @reset=\"reset(); timePopover && timePopover.close()\"\n />\n </OrPopover>\n\n <div :class=\"['grow']\" />\n\n <template v-slot:addon>\n <template v-if=\"modelValue\">\n <OrIconButton\n :icon=\"'close'\"\n :color=\"'inherit'\"\n :disabled=\"readonly || disabled\"\n @click.stop=\"$emit('update:modelValue', undefined)\"\n />\n </template>\n\n <template v-else>\n <OrIcon\n :icon=\"'calendar_month'\"\n :variant=\"'outlined'\"\n />\n </template>\n </template>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { DropdownClose, DropdownOpen } from '@onereach/ui-components-common/directives';\nimport { useDateFormat, useLocale, useProxyModelValue, useTimeFormat, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { DateFormat, FilterFunction, FormatFunction, TimeFormat } from '@onereach/ui-components-common/types';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { OrDateTimePickerDateControl, OrDateTimePickerDateSelect, OrDateTimePickerMobileControl, OrDateTimePickerMonthSelect, OrDateTimePickerPopoverFooter, OrDateTimePickerPopoverHeader, OrDateTimePickerTimeControl, OrDateTimePickerTimeSelect } from './partials';\nimport * as Styles from './styles';\nimport { DateTimePickerModelValue } from './types';\nimport { formatMobileDate, formatMobileTime, getCurrentDate } from './utils';\nimport { ReferenceElement } from '@floating-ui/dom';\n\nexport default defineComponent({\n name: 'OrDateTimePicker',\n\n components: {\n OrDateTimePickerDateControl,\n OrDateTimePickerDateSelect,\n OrDateTimePickerMobileControl,\n OrDateTimePickerMonthSelect,\n OrDateTimePickerPopoverFooter,\n OrDateTimePickerPopoverHeader,\n OrDateTimePickerTimeControl,\n OrDateTimePickerTimeSelect,\n OrError,\n OrHint,\n OrIcon,\n OrIconButton,\n OrInputBox,\n OrLabel,\n OrPopover,\n },\n\n directives: {\n DropdownClose,\n DropdownOpen,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<DateTimePickerModelValue>,\n default: undefined,\n },\n\n dateFormat: {\n type: [String, Function] as PropType<`${DateFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n timeFormat: {\n type: [String, Function] as PropType<`${TimeFormat}` | FormatFunction<DateTimePickerModelValue>>,\n default: undefined,\n },\n\n locale: {\n type: String,\n default: undefined,\n },\n\n yearFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n monthFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n dateFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hoursFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n minutesFilter: {\n type: Function as PropType<FilterFunction<Date>>,\n default: undefined,\n },\n\n hourStep: {\n type: Number,\n default: 1,\n },\n\n minuteStep: {\n type: Number,\n default: 1,\n },\n\n variant: {\n type: String as PropType<`${InputBoxVariant}`>,\n default: undefined,\n },\n\n size: {\n type: String as PropType<`${InputBoxSize}`>,\n default: undefined,\n },\n\n anchor: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'focus',\n 'blur',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-date-time-picker-v3',\n ...Styles.DateTimePicker,\n ...props.variant === InputBoxVariant.Embedded ? ['grow'] : [],\n ]);\n\n const inputBox = ref<InstanceType<typeof OrInputBox>>();\n const inputBoxRoot = computed(() => inputBox.value?.root);\n\n const datePopover = ref<InstanceType<typeof OrPopover>>();\n const datePopoverState = computed(() => datePopover.value?.state);\n\n const datePopoverStyles = computed(() => [\n 'or-date-time-picker-date-popover-v3',\n ...(isMobile.value ? [] : Styles.DateTimePickerDatePopover),\n ]);\n\n const timePopover = ref<InstanceType<typeof OrPopover>>();\n const timePopoverState = computed(() => timePopover.value?.state);\n\n const timePopoverStyles = computed(() => [\n 'or-date-time-picker-time-popover-v3',\n ...Styles.DateTimePickerTimePopover,\n ]);\n\n // Options\n const resolvedDateFormat = useDateFormat(toRef(props, 'dateFormat'));\n const resolvedTimeFormat = useTimeFormat(toRef(props, 'timeFormat'));\n const resolvedLocale = useLocale(toRef(props, 'locale'));\n\n // State\n const initialValue = ref(props.modelValue ?? getCurrentDate());\n\n watch(() => props.modelValue, (value) => {\n initialValue.value = value ?? getCurrentDate();\n });\n\n const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n const draft = ref(model.value);\n\n watch(model, (value) => {\n draft.value = value;\n });\n\n const invalid = computed(() => {\n if (draft.value) {\n if (props.yearFilter && !props.yearFilter(draft.value)) {\n return true;\n }\n\n if (props.monthFilter && !props.monthFilter(draft.value)) {\n return true;\n }\n\n if (props.dateFilter && !props.dateFilter(draft.value)) {\n return true;\n }\n\n if (props.hoursFilter && !props.hoursFilter(draft.value)) {\n return true;\n }\n\n if (props.minutesFilter && !props.minutesFilter(draft.value)) {\n return true;\n }\n\n return false;\n }\n\n return true;\n });\n\n // Methods\n function apply(): void {\n model.value = draft.value;\n }\n\n function reset(): void {\n draft.value = model.value;\n }\n\n function toggleDatePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n if (datePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeTimePopover();\n }\n }\n\n function toggleTimePopover(): void {\n if (!props.readonly && !props.disabled) {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n if (timePopoverState.value === 'open') {\n (popoverInstance.close as () => void)();\n } else {\n (popoverInstance.open as () => void)();\n }\n }\n\n closeDatePopover();\n }\n }\n\n function closeDatePopover(): void {\n const popoverInstance = datePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n function closeTimePopover(): void {\n const popoverInstance = timePopover.value;\n\n if (popoverInstance) {\n (popoverInstance.close as () => void)();\n }\n }\n\n // Helpers\n const { isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n inputBox,\n inputBoxRoot,\n\n datePopover,\n datePopoverState,\n datePopoverStyles,\n\n timePopover,\n timePopoverState,\n timePopoverStyles,\n\n resolvedDateFormat,\n resolvedTimeFormat,\n resolvedLocale,\n\n initialValue,\n\n model,\n draft,\n\n invalid,\n\n apply,\n reset,\n\n toggleDatePopover,\n toggleTimePopover,\n\n closeDatePopover,\n closeTimePopover,\n\n formatMobileDate,\n formatMobileTime,\n };\n },\n});\n</script>\n"],"names":["formatDate","value","format","locale","formatMobileDate","formatMobileTime","TimeFormat","formatTime","getCurrentDate","currentDate","scrollToElementWithinContainer","element","container","elementRect","containerRect","DateTimePickerDateControl","DateTimePickerDateControlPlaceholder","_sfc_main$8","defineComponent","props","context","root","ref","rootStyles","computed","Styles.DateTimePickerDateControl","placeholderStyles","Styles.DateTimePickerDateControlPlaceholder","model","useProxyModelValue","toRef","placeholder","useDateMask","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_withModifiers","_toDisplayString","DateTimePickerDateSelect","DateTimePickerDateSelectButtonGroup","DateTimePickerDateSelectButtonGroupWeekdayItem","DateTimePickerDateSelectButtonGroupDateItem","DateTimePickerDateSelectButtonGroupCurrentDateItem","DateTimePickerDateSelectButtonGroupInRangeDateItem","_sfc_main$7","OrButton","Styles.DateTimePickerDateSelect","buttonGroupStyles","Styles.DateTimePickerDateSelectButtonGroup","buttonGroupWeekdayItemStyles","Styles.DateTimePickerDateSelectButtonGroupWeekdayItem","buttonGroupDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupDateItem","buttonGroupCurrentDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupCurrentDateItem","buttonGroupInRangeDateItemStyles","Styles.DateTimePickerDateSelectButtonGroupInRangeDateItem","dayOptions","monthStartDate","monthEndDate","calendarStartDate","calendarEndDate","options","formatWeekday","formatDay","_resolveComponent","_Fragment","_renderList","weekday","_createElementVNode","_createBlock","_component_OrButton","$event","DateTimePickerMobileControl","DateTimePickerMobileControlContent","_sfc_main$6","OrLabel","Styles.DateTimePickerMobileControl","contentStyles","Styles.DateTimePickerMobileControlContent","_createVNode","_component_OrLabel","_withCtx","DateTimePickerMonthSelect","_sfc_main$5","OrIcon","OrIconButton","OrMenu","OrMenuItem","yearButton","yearButtonRoot","_a","monthButton","monthButtonRoot","yearMenu","yearMenuState","monthMenu","monthMenuState","yearOptions","_value","index","length","monthOptions","goToNextMonth","goToPreviousMonth","formatYear","formatMonth","_component_OrIconButton","_hoisted_1","_createTextVNode","_component_OrIcon","_component_OrMenu","_component_OrMenuItem","DateTimePickerPopoverFooter","_sfc_main$4","Styles.DateTimePickerPopoverFooter","DateTimePickerPopoverHeader","_sfc_main$3","Styles.DateTimePickerPopoverHeader","DateTimePickerTimeControl","DateTimePickerTimeControlPlaceholder","_sfc_main$2","Styles.DateTimePickerTimeControl","Styles.DateTimePickerTimeControlPlaceholder","useTimeMask","DateTimePickerTimeSelect","DateTimePickerTimeSelectButtonGroup","DateTimePickerTimeSelectButtonGroupItem","_sfc_main$1","hoursContainer","minutesContainer","hoursButtons","minutesButtons","Styles.DateTimePickerTimeSelect","Styles.DateTimePickerTimeSelectButtonGroup","buttonGroupItemStyles","Styles.DateTimePickerTimeSelectButtonGroupItem","dayPeriod","watch","isActive","nextTick","activeHourButton","getActiveButton","hoursOptions","activeMinuteButton","minutesOptions","proxyTimeFormat","hourStep","minuteStep","formatHours","formatMinutes","sortElementsByPosition","elements","a","b","buttons","button","DateTimePicker","DateTimePickerDatePopover","DateTimePickerTimePopover","_sfc_main","OrDateTimePickerDateControl","OrDateTimePickerDateSelect","OrDateTimePickerMobileControl","OrDateTimePickerMonthSelect","OrDateTimePickerPopoverFooter","OrDateTimePickerPopoverHeader","OrDateTimePickerTimeControl","OrDateTimePickerTimeSelect","OrError","OrHint","OrInputBox","OrPopover","DropdownClose","DropdownOpen","Styles.DateTimePicker","InputBoxVariant","inputBox","inputBoxRoot","datePopover","datePopoverState","datePopoverStyles","isMobile","Styles.DateTimePickerDatePopover","timePopover","timePopoverState","timePopoverStyles","Styles.DateTimePickerTimePopover","resolvedDateFormat","useDateFormat","resolvedTimeFormat","useTimeFormat","resolvedLocale","useLocale","initialValue","draft","invalid","apply","reset","toggleDatePopover","popoverInstance","closeTimePopover","toggleTimePopover","closeDatePopover","useResponsive"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { useProxyModelValue as J, useResponsive as K } from "@onereach/ui-compon
|
|
|
4
4
|
import { isNil as Q } from "@onereach/ui-components-common/utils";
|
|
5
5
|
import { O as U } from "./OrIcon-k8cyvh-D.mjs";
|
|
6
6
|
import { O as X } from "./OrMenuItem-BHRMA0L1.mjs";
|
|
7
|
-
import { O as Y } from "./OrMenu-
|
|
7
|
+
import { O as Y } from "./OrMenu-naJcjd7Z.mjs";
|
|
8
8
|
import { a as Z } from "./constants-ByXK9fg4.mjs";
|
|
9
9
|
import { O as _ } from "./OrIconButton-BlHCLpeW.mjs";
|
|
10
10
|
import { _ as D } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
|
|
@@ -395,4 +395,4 @@ export {
|
|
|
395
395
|
B as E,
|
|
396
396
|
Me as O
|
|
397
397
|
};
|
|
398
|
-
//# sourceMappingURL=OrEditorTabs-
|
|
398
|
+
//# sourceMappingURL=OrEditorTabs-B7_l5FVN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrEditorTabs-psJUG0D3.mjs","sources":["../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/styles.ts","../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/OrEditorTabsItem.vue","../../../components/or-editor-tabs-v3/src/props.ts","../../../components/or-editor-tabs-v3/src/styles.ts","../../../components/or-editor-tabs-v3/src/OrEditorTabs.vue"],"sourcesContent":["export const EditorTabsItem: string[] = [\n // Layout\n 'layout-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Box\n 'md:max-w-[240px]',\n\n // Spacing\n 'px-md',\n 'py-[7px]',\n\n 'gap-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Border\n 'border-b-1',\n 'border-outline-variant',\n 'dark:border-outline-variant-dark',\n 'selected:border-b-[theme(backgroundColor.surface-1)]',\n 'dark:selected:border-b-[theme(backgroundColor.surface-1-dark)]',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (hover)\n 'hover:theme-foreground-primary',\n 'dark:hover:theme-foreground-primary-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-primary',\n 'dark:selected:theme-foreground-primary-dark',\n\n 'selected:theme-background-surface-1',\n 'dark:selected:theme-background-surface-1-dark',\n\n // FIX\n 'pb-[9px]',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n :disabled=\"disabled\"\n @click=\"isVue2 && $emit('click', $event)\"\n >\n <slot />\n\n <template v-if=\"closeButton\">\n <div :class=\"['grow']\" />\n\n <OrIconButton\n :icon=\"'close'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('close')\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { isVue2 } from '@/constants';\n\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { EditorTabsItem } from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabsItem',\n\n components: {\n OrIconButton,\n },\n\n props: {\n closeButton: {\n type: Boolean,\n default: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-item-v3',\n ...EditorTabsItem,\n ]);\n\n return {\n root,\n rootStyles,\n\n isVue2,\n };\n },\n});\n</script>\n","export enum EditorTabsOverflow {\n Scroll = 'scroll',\n Wrap = 'wrap',\n}\n","import { EditorTabsOverflow } from './props';\n\nexport const EditorTabs: string[] = [\n // Layout\n 'layout-column',\n];\n\nexport const EditorTabsHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Theme\n 'border-b-1',\n 'theme-border-outline-variant',\n 'dark:theme-border-outline-variant-dark',\n\n // Box\n 'w-full',\n\n // FIX\n 'mb-[-1px]',\n\n // adds border between tab and '+' button\n // 'theme-divider-outline-variant',\n // 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsAddButton: string[] = [\n // Box\n 'md:grow',\n '!max-w-full',\n '!p-sm',\n\n // Border\n 'border-l-1',\n 'border-r-1 md:border-r-0',\n\n // Theme\n 'border-outline-variant dark:border-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabs: string[] = [\n // Layout\n 'layout-row grow md:grow-0',\n\n // Box\n 'max-w-full',\n\n // Theme\n 'theme-divider-outline-variant',\n 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabsOverflows: Record<EditorTabsOverflow, string[]> = {\n [EditorTabsOverflow.Scroll]: [\n // Overflow\n 'overflow-x-auto scrollbar-hidden',\n ],\n\n [EditorTabsOverflow.Wrap]: [\n // Layout\n 'flex-wrap',\n ],\n};\n\nexport const EditorTabsContent: string[] = [\n // Spacing\n 'px-md',\n 'py-md',\n\n // Box\n 'grow',\n\n // Theme\n 'theme-background-surface-1',\n 'dark:theme-background-surface-1-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div\n :ref=\"'headerTabs'\"\n :class=\"headerTabsStyles\"\n >\n <template v-if=\"isDesktop\">\n <OrEditorTabsItem\n v-for=\"item of items\"\n :ref=\"'editorTabsItems'\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n <OrEditorTabsItem\n v-if=\"addButton && overflow == 'wrap'\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && selectedItem\">\n <OrEditorTabsItem\n :class=\"['grow']\"\n :close-button=\"closeButton && !selectedItem.pinned\"\n :selected=\"true\"\n :disabled=\"selectedItem.disabled\"\n @close=\"close(selectedItem)\"\n >\n <slot\n :name=\"`${selectedItem.value}-label`\"\n :label=\"selectedItem.label\"\n >\n <div :class=\"['truncate']\">\n {{ selectedItem.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n </template>\n </div>\n\n <template v-if=\"addButton && (overflow == 'scroll' || isMobile)\">\n <OrEditorTabsItem\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && items.length > 1\">\n <OrEditorTabsItem\n :close-button=\"false\"\n @click=\"showOverflowMenu = true\"\n >\n {{ overflowItems.length }}\n\n <OrIcon\n :icon=\"'more_vert'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :is-open=\"showOverflowMenu\"\n @close=\"showOverflowMenu = false\"\n >\n <OrMenuItem\n v-for=\"item of overflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n </div>\n\n <div :class=\"contentStyles\">\n <slot :name=\"proxyModelValue\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { getItemByValue } from '@onereach/ui-components-common/helpers';\nimport { useProxyModelValue, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isNil } from '@onereach/ui-components-common/utils';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { EditorTabsItem, EditorTabsModelValue } from '@onereach/ui-components.or-tabs-v3';\nimport { OrEditorTabsItem } from './partials';\nimport { EditorTabsOverflow } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabs',\n\n components: {\n OrEditorTabsItem,\n OrIcon,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<EditorTabsModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<EditorTabsItem[]>,\n required: true,\n },\n\n overflow: {\n type: String as PropType<`${EditorTabsOverflow}`>,\n default: () => EditorTabsOverflow.Scroll,\n },\n\n addButton: {\n type: Boolean,\n default: true,\n },\n\n closeButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const headerTabs = ref<HTMLElement>();\n const editorTabsItems = ref<InstanceType<typeof OrEditorTabsItem>[]>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-v3',\n ...Styles.EditorTabs,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.EditorTabsHeader,\n ]);\n\n const headerTabsStyles = computed(() => [\n ...Styles.EditorTabsHeaderTabs,\n ...Styles.EditorTabsHeaderTabsOverflows[props.overflow],\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.EditorTabsContent,\n ]);\n\n const addButtonStyles = computed(() => [\n ...Styles.EditorTabsAddButton,\n ]);\n\n // State\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const selectedItem = computed(() => {\n return !isNil(proxyModelValue.value) ? getItemByValue(proxyModelValue.value, props.items) : undefined;\n });\n\n watch(selectedItem, (value) => {\n if (value) {\n (editorTabsItems.value?.[props.items.indexOf(value)]?.root as HTMLElement | undefined)?.scrollIntoView({ block: 'nearest' });\n }\n }, { flush: 'post' });\n\n const overflowItems = computed(() => {\n return props.items.filter((item) => item.value !== proxyModelValue.value);\n });\n\n const showOverflowMenu = ref(false);\n\n // Methods\n function open(): void {\n context.emit('open');\n }\n\n function close(item: EditorTabsItem): void {\n if (item.value === proxyModelValue.value) {\n const index = props.items.indexOf(item);\n\n if (index !== -1) {\n const nextItem = props.items[index + 1];\n const previousItem = props.items[index - 1];\n\n proxyModelValue.value = nextItem?.value || previousItem?.value;\n }\n }\n\n context.emit('close', item);\n }\n\n // Helpers\n const { isDesktop, isMobile } = useResponsive();\n\n // Effects\n watch(() => props.items, (items) => {\n if (items.length === 1) {\n proxyModelValue.value = items[0].value;\n }\n }, { immediate: true });\n\n return {\n root,\n headerTabs,\n editorTabsItems,\n\n rootStyles,\n headerStyles,\n headerTabsStyles,\n contentStyles,\n addButtonStyles,\n\n proxyModelValue,\n selectedItem,\n overflowItems,\n showOverflowMenu,\n\n open,\n close,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["EditorTabsItem","_sfc_main$1","defineComponent","OrIconButton","root","ref","rootStyles","computed","isVue2","_hoisted_1","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","$event","_renderSlot","_Fragment","_hoisted_2","_component_OrIconButton","EditorTabsOverflow","EditorTabs","EditorTabsHeader","EditorTabsAddButton","EditorTabsHeaderTabs","EditorTabsHeaderTabsOverflows","EditorTabsContent","_sfc_main","OrEditorTabsItem","OrIcon","OrMenu","OrMenuItem","props","context","headerTabs","editorTabsItems","Styles.EditorTabs","headerStyles","Styles.EditorTabsHeader","headerTabsStyles","Styles.EditorTabsHeaderTabs","Styles.EditorTabsHeaderTabsOverflows","contentStyles","Styles.EditorTabsContent","addButtonStyles","Styles.EditorTabsAddButton","proxyModelValue","useProxyModelValue","toRef","selectedItem","isNil","getItemByValue","watch","value","_c","_b","_a","overflowItems","item","showOverflowMenu","open","close","index","nextItem","previousItem","isDesktop","isMobile","useResponsive","items","_renderList","_createBlock","_component_OrEditorTabsItem","_withCtx","_createVNode","_component_OrIcon","_createCommentVNode","_createTextVNode","_toDisplayString","_component_OrMenu","_component_OrMenuItem","_createElementVNode","_hoisted_3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OrEditorTabs-B7_l5FVN.mjs","sources":["../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/styles.ts","../../../components/or-editor-tabs-v3/src/partials/or-editor-tabs-item/OrEditorTabsItem.vue","../../../components/or-editor-tabs-v3/src/props.ts","../../../components/or-editor-tabs-v3/src/styles.ts","../../../components/or-editor-tabs-v3/src/OrEditorTabs.vue"],"sourcesContent":["export const EditorTabsItem: string[] = [\n // Layout\n 'layout-row',\n\n // Interactivity\n 'interactivity-click',\n\n // Box\n 'md:max-w-[240px]',\n\n // Spacing\n 'px-md',\n 'py-[7px]',\n\n 'gap-sm',\n\n // Typography\n 'typography-caption-regular',\n\n // Border\n 'border-b-1',\n 'border-outline-variant',\n 'dark:border-outline-variant-dark',\n 'selected:border-b-[theme(backgroundColor.surface-1)]',\n 'dark:selected:border-b-[theme(backgroundColor.surface-1-dark)]',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n // Theme (hover)\n 'hover:theme-foreground-primary',\n 'dark:hover:theme-foreground-primary-dark',\n\n // Theme (selected)\n 'selected:theme-foreground-primary',\n 'dark:selected:theme-foreground-primary-dark',\n\n 'selected:theme-background-surface-1',\n 'dark:selected:theme-background-surface-1-dark',\n\n // FIX\n 'pb-[9px]',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n :selected=\"selected\"\n :disabled=\"disabled\"\n @click=\"isVue2 && $emit('click', $event)\"\n >\n <slot />\n\n <template v-if=\"closeButton\">\n <div :class=\"['grow']\" />\n\n <OrIconButton\n :icon=\"'close'\"\n :disabled=\"disabled\"\n @click.stop=\"$emit('close')\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { isVue2 } from '@/constants';\n\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { EditorTabsItem } from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabsItem',\n\n components: {\n OrIconButton,\n },\n\n props: {\n closeButton: {\n type: Boolean,\n default: true,\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-item-v3',\n ...EditorTabsItem,\n ]);\n\n return {\n root,\n rootStyles,\n\n isVue2,\n };\n },\n});\n</script>\n","export enum EditorTabsOverflow {\n Scroll = 'scroll',\n Wrap = 'wrap',\n}\n","import { EditorTabsOverflow } from './props';\n\nexport const EditorTabs: string[] = [\n // Layout\n 'layout-column',\n];\n\nexport const EditorTabsHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Theme\n 'border-b-1',\n 'theme-border-outline-variant',\n 'dark:theme-border-outline-variant-dark',\n\n // Box\n 'w-full',\n\n // FIX\n 'mb-[-1px]',\n\n // adds border between tab and '+' button\n // 'theme-divider-outline-variant',\n // 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsAddButton: string[] = [\n // Box\n 'md:grow',\n '!max-w-full',\n '!p-sm',\n\n // Border\n 'border-l-1',\n 'border-r-1 md:border-r-0',\n\n // Theme\n 'border-outline-variant dark:border-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabs: string[] = [\n // Layout\n 'layout-row grow md:grow-0',\n\n // Box\n 'max-w-full',\n\n // Theme\n 'theme-divider-outline-variant',\n 'dark:theme-divider-outline-variant-dark',\n];\n\nexport const EditorTabsHeaderTabsOverflows: Record<EditorTabsOverflow, string[]> = {\n [EditorTabsOverflow.Scroll]: [\n // Overflow\n 'overflow-x-auto scrollbar-hidden',\n ],\n\n [EditorTabsOverflow.Wrap]: [\n // Layout\n 'flex-wrap',\n ],\n};\n\nexport const EditorTabsContent: string[] = [\n // Spacing\n 'px-md',\n 'py-md',\n\n // Box\n 'grow',\n\n // Theme\n 'theme-background-surface-1',\n 'dark:theme-background-surface-1-dark',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div\n :ref=\"'headerTabs'\"\n :class=\"headerTabsStyles\"\n >\n <template v-if=\"isDesktop\">\n <OrEditorTabsItem\n v-for=\"item of items\"\n :ref=\"'editorTabsItems'\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :selected=\"item.value === proxyModelValue\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n <OrEditorTabsItem\n v-if=\"addButton && overflow == 'wrap'\"\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && selectedItem\">\n <OrEditorTabsItem\n :class=\"['grow']\"\n :close-button=\"closeButton && !selectedItem.pinned\"\n :selected=\"true\"\n :disabled=\"selectedItem.disabled\"\n @close=\"close(selectedItem)\"\n >\n <slot\n :name=\"`${selectedItem.value}-label`\"\n :label=\"selectedItem.label\"\n >\n <div :class=\"['truncate']\">\n {{ selectedItem.label }}\n </div>\n </slot>\n </OrEditorTabsItem>\n </template>\n </div>\n\n <template v-if=\"addButton && (overflow == 'scroll' || isMobile)\">\n <OrEditorTabsItem\n :close-button=\"false\"\n :class=\"addButtonStyles\"\n @click=\"open()\"\n >\n <OrIcon\n :icon=\"'add'\"\n :size=\"'m'\"\n class=\"md:my-[1px]\"\n />\n </OrEditorTabsItem>\n </template>\n\n <template v-if=\"isMobile && items.length > 1\">\n <OrEditorTabsItem\n :close-button=\"false\"\n @click=\"showOverflowMenu = true\"\n >\n {{ overflowItems.length }}\n\n <OrIcon\n :icon=\"'more_vert'\"\n :size=\"'m'\"\n />\n </OrEditorTabsItem>\n\n <OrMenu\n :is-open=\"showOverflowMenu\"\n @close=\"showOverflowMenu = false\"\n >\n <OrMenuItem\n v-for=\"item of overflowItems\"\n :key=\"item.value\"\n :close-button=\"closeButton && !item.pinned\"\n :disabled=\"item.disabled\"\n @click=\"proxyModelValue = item.value\"\n @close=\"close(item)\"\n >\n <div :class=\"['layout-row', 'gap-sm']\">\n <slot\n :name=\"`${item.value}-label`\"\n :label=\"item.label\"\n >\n <div :class=\"['truncate']\">\n {{ item.label }}\n </div>\n </slot>\n </div>\n </OrMenuItem>\n </OrMenu>\n </template>\n </div>\n\n <div :class=\"contentStyles\">\n <slot :name=\"proxyModelValue\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, ref, toRef, watch } from 'vue';\nimport { getItemByValue } from '@onereach/ui-components-common/helpers';\nimport { useProxyModelValue, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isNil } from '@onereach/ui-components-common/utils';\nimport { OrIconV3 as OrIcon } from '@onereach/ui-components.or-icon-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { EditorTabsItem, EditorTabsModelValue } from '@onereach/ui-components.or-tabs-v3';\nimport { OrEditorTabsItem } from './partials';\nimport { EditorTabsOverflow } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrEditorTabs',\n\n components: {\n OrEditorTabsItem,\n OrIcon,\n OrMenu,\n OrMenuItem,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: undefined as unknown as PropType<EditorTabsModelValue>,\n default: undefined,\n },\n\n items: {\n type: Array as PropType<EditorTabsItem[]>,\n required: true,\n },\n\n overflow: {\n type: String as PropType<`${EditorTabsOverflow}`>,\n default: () => EditorTabsOverflow.Scroll,\n },\n\n addButton: {\n type: Boolean,\n default: true,\n },\n\n closeButton: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const headerTabs = ref<HTMLElement>();\n const editorTabsItems = ref<InstanceType<typeof OrEditorTabsItem>[]>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-editor-tabs-v3',\n ...Styles.EditorTabs,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.EditorTabsHeader,\n ]);\n\n const headerTabsStyles = computed(() => [\n ...Styles.EditorTabsHeaderTabs,\n ...Styles.EditorTabsHeaderTabsOverflows[props.overflow],\n ]);\n\n const contentStyles = computed(() => [\n ...Styles.EditorTabsContent,\n ]);\n\n const addButtonStyles = computed(() => [\n ...Styles.EditorTabsAddButton,\n ]);\n\n // State\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const selectedItem = computed(() => {\n return !isNil(proxyModelValue.value) ? getItemByValue(proxyModelValue.value, props.items) : undefined;\n });\n\n watch(selectedItem, (value) => {\n if (value) {\n (editorTabsItems.value?.[props.items.indexOf(value)]?.root as HTMLElement | undefined)?.scrollIntoView({ block: 'nearest' });\n }\n }, { flush: 'post' });\n\n const overflowItems = computed(() => {\n return props.items.filter((item) => item.value !== proxyModelValue.value);\n });\n\n const showOverflowMenu = ref(false);\n\n // Methods\n function open(): void {\n context.emit('open');\n }\n\n function close(item: EditorTabsItem): void {\n if (item.value === proxyModelValue.value) {\n const index = props.items.indexOf(item);\n\n if (index !== -1) {\n const nextItem = props.items[index + 1];\n const previousItem = props.items[index - 1];\n\n proxyModelValue.value = nextItem?.value || previousItem?.value;\n }\n }\n\n context.emit('close', item);\n }\n\n // Helpers\n const { isDesktop, isMobile } = useResponsive();\n\n // Effects\n watch(() => props.items, (items) => {\n if (items.length === 1) {\n proxyModelValue.value = items[0].value;\n }\n }, { immediate: true });\n\n return {\n root,\n headerTabs,\n editorTabsItems,\n\n rootStyles,\n headerStyles,\n headerTabsStyles,\n contentStyles,\n addButtonStyles,\n\n proxyModelValue,\n selectedItem,\n overflowItems,\n showOverflowMenu,\n\n open,\n close,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["EditorTabsItem","_sfc_main$1","defineComponent","OrIconButton","root","ref","rootStyles","computed","isVue2","_hoisted_1","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","$event","_renderSlot","_Fragment","_hoisted_2","_component_OrIconButton","EditorTabsOverflow","EditorTabs","EditorTabsHeader","EditorTabsAddButton","EditorTabsHeaderTabs","EditorTabsHeaderTabsOverflows","EditorTabsContent","_sfc_main","OrEditorTabsItem","OrIcon","OrMenu","OrMenuItem","props","context","headerTabs","editorTabsItems","Styles.EditorTabs","headerStyles","Styles.EditorTabsHeader","headerTabsStyles","Styles.EditorTabsHeaderTabs","Styles.EditorTabsHeaderTabsOverflows","contentStyles","Styles.EditorTabsContent","addButtonStyles","Styles.EditorTabsAddButton","proxyModelValue","useProxyModelValue","toRef","selectedItem","isNil","getItemByValue","watch","value","_c","_b","_a","overflowItems","item","showOverflowMenu","open","close","index","nextItem","previousItem","isDesktop","isMobile","useResponsive","items","_renderList","_createBlock","_component_OrEditorTabsItem","_withCtx","_createVNode","_component_OrIcon","_createCommentVNode","_createTextVNode","_toDisplayString","_component_OrMenu","_component_OrMenuItem","_createElementVNode","_hoisted_3"],"mappings":"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"}
|