@onereach/ui-components 4.9.1-beta.2907.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/bundled/v2/{OrDateTimePickerPopoverHeader-6f78e8e7.js → OrDateTimePickerPopoverHeader-28995b95.js} +8 -1
  2. package/dist/bundled/v2/{OrDateTimePickerTimeSelect-78f775d8.js → OrDateTimePickerTimeSelect-c52ee823.js} +74 -4
  3. package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.js +19 -1
  4. package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.vue.d.ts +2 -0
  5. package/dist/bundled/v2/components/OrDatePickerV3/index.js +1 -1
  6. package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.js +37 -2
  7. package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.vue.d.ts +14 -1
  8. package/dist/bundled/v2/components/OrDateTimePickerV3/hooks/useTimePlaceholder.d.ts +1 -1
  9. package/dist/bundled/v2/components/OrDateTimePickerV3/hooks/useTimePlaceholder.js +2 -1
  10. package/dist/bundled/v2/components/OrDateTimePickerV3/index.js +3 -2
  11. package/dist/bundled/v2/components/OrDateTimePickerV3/props.d.ts +5 -0
  12. package/dist/bundled/v2/components/OrDateTimePickerV3/props.js +9 -0
  13. package/dist/bundled/v2/components/OrDateTimePickerV3/styles.js +1 -3
  14. package/dist/bundled/v2/components/OrTimePickerV3/OrTimePicker.js +25 -2
  15. package/dist/bundled/v2/components/OrTimePickerV3/OrTimePicker.vue.d.ts +14 -1
  16. package/dist/bundled/v2/components/OrTimePickerV3/index.js +3 -2
  17. package/dist/bundled/v2/components/OrTimePickerV3/props.d.ts +1 -0
  18. package/dist/bundled/v2/components/OrTimePickerV3/props.js +1 -0
  19. package/dist/bundled/v2/components/OrTimePickerV3/styles.js +1 -3
  20. package/dist/bundled/v2/components/index.d.ts +0 -1
  21. package/dist/bundled/v2/components/index.js +3 -3
  22. package/dist/bundled/v2/index.js +4 -4
  23. package/dist/bundled/v3/{OrDatePicker.vue_vue_type_script_lang-8ec017e2.js → OrDatePicker.vue_vue_type_script_lang-0e648149.js} +16 -1
  24. package/dist/bundled/v3/{OrDateTimePicker.vue_vue_type_script_lang-fec947db.js → OrDateTimePicker.vue_vue_type_script_lang-69d65518.js} +29 -2
  25. package/dist/bundled/v3/{OrDateTimePickerPopoverHeader-bb988d7c.js → OrDateTimePickerPopoverHeader-ec90761f.js} +8 -1
  26. package/dist/bundled/v3/{OrDateTimePickerTimeSelect-01a39297.js → OrDateTimePickerTimeSelect-683ab20d.js} +68 -5
  27. package/dist/bundled/v3/{OrTimePicker.vue_vue_type_script_lang-c737eaa8.js → OrTimePicker.vue_vue_type_script_lang-a300ab1b.js} +20 -2
  28. package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.js +5 -4
  29. package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.vue.d.ts +1 -0
  30. package/dist/bundled/v3/components/OrDatePickerV3/index.js +2 -2
  31. package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.js +14 -9
  32. package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.vue.d.ts +11 -1
  33. package/dist/bundled/v3/components/OrDateTimePickerV3/hooks/useTimePlaceholder.d.ts +1 -1
  34. package/dist/bundled/v3/components/OrDateTimePickerV3/hooks/useTimePlaceholder.js +2 -1
  35. package/dist/bundled/v3/components/OrDateTimePickerV3/index.js +4 -3
  36. package/dist/bundled/v3/components/OrDateTimePickerV3/props.d.ts +5 -0
  37. package/dist/bundled/v3/components/OrDateTimePickerV3/props.js +9 -0
  38. package/dist/bundled/v3/components/OrDateTimePickerV3/styles.js +1 -3
  39. package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.js +12 -8
  40. package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.vue.d.ts +11 -1
  41. package/dist/bundled/v3/components/OrTimePickerV3/index.js +4 -3
  42. package/dist/bundled/v3/components/OrTimePickerV3/props.d.ts +1 -0
  43. package/dist/bundled/v3/components/OrTimePickerV3/props.js +1 -0
  44. package/dist/bundled/v3/components/OrTimePickerV3/styles.js +1 -3
  45. package/dist/bundled/v3/components/index.d.ts +0 -1
  46. package/dist/bundled/v3/components/index.js +6 -6
  47. package/dist/bundled/v3/index.js +7 -8
  48. package/dist/esm/v2/{OrDatePicker-0989a40c.js → OrDatePicker-328189a2.js} +19 -2
  49. package/dist/esm/v2/{OrDateTimePicker-ac766f04.js → OrDateTimePicker-8bcc71c3.js} +9 -234
  50. package/dist/esm/v2/OrDateTimePicker.vue_rollup-plugin-vue_script-399a44b5.js +636 -0
  51. package/dist/esm/v2/{OrDateTimePickerMonthSelect-4eb8bfb6.js → OrDateTimePickerPopoverHeader-fa88e970.js} +263 -39
  52. package/dist/esm/v2/{OrTimePicker-5fd08ad2.js → OrTimePicker-a9c5547b.js} +25 -5
  53. package/dist/esm/v2/components/index.d.ts +0 -1
  54. package/dist/esm/v2/components/index.js +5 -7
  55. package/dist/esm/v2/components/or-date-picker-v3/OrDatePicker.vue.d.ts +2 -0
  56. package/dist/esm/v2/components/or-date-picker-v3/index.js +3 -4
  57. package/dist/esm/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +14 -1
  58. package/dist/esm/v2/components/or-date-time-picker-v3/hooks/useTimePlaceholder.d.ts +1 -1
  59. package/dist/esm/v2/components/or-date-time-picker-v3/index.js +4 -5
  60. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +19 -3
  61. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue.d.ts +13 -0
  62. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +16 -0
  63. package/dist/esm/v2/components/or-date-time-picker-v3/props.d.ts +5 -0
  64. package/dist/esm/v2/components/or-time-picker-v3/OrTimePicker.vue.d.ts +14 -1
  65. package/dist/esm/v2/components/or-time-picker-v3/index.js +8 -6
  66. package/dist/esm/v2/components/or-time-picker-v3/props.d.ts +1 -0
  67. package/dist/esm/v2/index.js +5 -7
  68. package/dist/esm/v3/{OrDatePicker-6ac8578a.js → OrDatePicker-4c4fd5dc.js} +18 -3
  69. package/dist/esm/v3/OrDateTimePicker-0a4d194e.js +763 -0
  70. package/dist/esm/v3/{OrDateTimePickerMonthSelect-f807e6d5.js → OrDateTimePickerPopoverHeader-bc8e0bcf.js} +174 -24
  71. package/dist/esm/v3/{OrTimePicker-d66edf77.js → OrTimePicker-67f75e85.js} +26 -8
  72. package/dist/esm/v3/components/index.d.ts +0 -1
  73. package/dist/esm/v3/components/index.js +4 -7
  74. package/dist/esm/v3/components/or-date-picker-v3/OrDatePicker.vue.d.ts +1 -0
  75. package/dist/esm/v3/components/or-date-picker-v3/index.js +3 -4
  76. package/dist/esm/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +11 -1
  77. package/dist/esm/v3/components/or-date-time-picker-v3/hooks/useTimePlaceholder.d.ts +1 -1
  78. package/dist/esm/v3/components/or-date-time-picker-v3/index.js +2 -4
  79. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +15 -3
  80. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue.d.ts +11 -0
  81. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +12 -0
  82. package/dist/esm/v3/components/or-date-time-picker-v3/props.d.ts +5 -0
  83. package/dist/esm/v3/components/or-time-picker-v3/OrTimePicker.vue.d.ts +11 -1
  84. package/dist/esm/v3/components/or-time-picker-v3/index.js +8 -6
  85. package/dist/esm/v3/components/or-time-picker-v3/props.d.ts +1 -0
  86. package/dist/esm/v3/index.js +4 -7
  87. package/package.json +3 -2
  88. package/src/components/index.ts +0 -1
  89. package/src/components/or-date-picker-v3/OrDatePicker.vue +20 -0
  90. package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +38 -1
  91. package/src/components/or-date-time-picker-v3/hooks/useTimePlaceholder.ts +2 -1
  92. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue +8 -0
  93. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-control/OrDateTimePickerTimeControl.vue +9 -2
  94. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue +87 -2
  95. package/src/components/or-date-time-picker-v3/props.ts +6 -0
  96. package/src/components/or-date-time-picker-v3/styles.ts +1 -4
  97. package/src/components/or-time-picker-v3/OrTimePicker.vue +25 -1
  98. package/src/components/or-time-picker-v3/props.ts +1 -0
  99. package/src/components/or-time-picker-v3/styles.ts +1 -4
  100. package/dist/bundled/v2/components/OrTreeV3/OrTree.js +0 -277
  101. package/dist/bundled/v2/components/OrTreeV3/OrTree.vue.d.ts +0 -68
  102. package/dist/bundled/v2/components/OrTreeV3/index.d.ts +0 -1
  103. package/dist/bundled/v2/components/OrTreeV3/index.js +0 -17
  104. package/dist/bundled/v2/components/OrTreeV3/types.d.ts +0 -7
  105. package/dist/bundled/v2/components/OrTreeV3/types.js +0 -1
  106. package/dist/bundled/v3/OrTree.vue_vue_type_script_lang-60234ac6.js +0 -179
  107. package/dist/bundled/v3/components/OrTreeV3/OrTree.js +0 -50
  108. package/dist/bundled/v3/components/OrTreeV3/OrTree.vue.d.ts +0 -54
  109. package/dist/bundled/v3/components/OrTreeV3/index.d.ts +0 -1
  110. package/dist/bundled/v3/components/OrTreeV3/index.js +0 -21
  111. package/dist/bundled/v3/components/OrTreeV3/types.d.ts +0 -7
  112. package/dist/bundled/v3/components/OrTreeV3/types.js +0 -1
  113. package/dist/esm/v2/OrDateTimePickerPopoverHeader-a84af34e.js +0 -222
  114. package/dist/esm/v2/OrDateTimePickerTimeSelect-eecdd8ab.js +0 -304
  115. package/dist/esm/v2/OrTree-ee993927.js +0 -266
  116. package/dist/esm/v2/components/or-tree-v3/OrTree.vue.d.ts +0 -68
  117. package/dist/esm/v2/components/or-tree-v3/index.d.ts +0 -1
  118. package/dist/esm/v2/components/or-tree-v3/index.js +0 -8
  119. package/dist/esm/v2/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +0 -85
  120. package/dist/esm/v2/components/or-tree-v3/types.d.ts +0 -7
  121. package/dist/esm/v3/OrDateTimePicker-b15d4198.js +0 -419
  122. package/dist/esm/v3/OrDateTimePickerPopoverHeader-3ae517f8.js +0 -148
  123. package/dist/esm/v3/OrDateTimePickerTimeSelect-14503fde.js +0 -252
  124. package/dist/esm/v3/OrTree-b4276dfb.js +0 -204
  125. package/dist/esm/v3/components/or-tree-v3/OrTree.vue.d.ts +0 -54
  126. package/dist/esm/v3/components/or-tree-v3/index.d.ts +0 -1
  127. package/dist/esm/v3/components/or-tree-v3/index.js +0 -8
  128. package/dist/esm/v3/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue.d.ts +0 -62
  129. package/dist/esm/v3/components/or-tree-v3/types.d.ts +0 -7
  130. package/src/components/or-tree-v3/OrTree.vue +0 -63
  131. package/src/components/or-tree-v3/index.ts +0 -1
  132. package/src/components/or-tree-v3/partials/or-tree-node/OrTreeNode.vue +0 -158
  133. package/src/components/or-tree-v3/types.ts +0 -7
@@ -0,0 +1,636 @@
1
+ import { defineComponent, ref, computed, watch } from 'vue-demi';
2
+ import { D as DropdownClose, a as DropdownOpen } from './dropdown-open-e1f90e0a.js';
3
+ import { _ as __vue_component__$9 } from './OrError-4ffc1c39.js';
4
+ import { _ as __vue_component__$a } from './OrHint-aa221198.js';
5
+ import { _ as __vue_component__$c } from './OrIconButton-ab726d49.js';
6
+ import { _ as __vue_component__$b } from './OrIcon-d35a84d8.js';
7
+ import { _ as __vue_component__$d } from './OrInputBox-11227ecd.js';
8
+ import { I as InputBoxSize } from './OrInputBox.vue_rollup-plugin-vue_script-1715021a.js';
9
+ import { _ as __vue_component__$e } from './OrLabel-63380256.js';
10
+ import { _ as __vue_component__$f } from './OrPopover-ef16a904.js';
11
+ import { _ as __vue_component__$3, a as __vue_component__$4, b as __vue_component__$5, c as __vue_component__$6, d as __vue_component__$7, e as __vue_component__$8, u as useCurrentDate } from './OrDateTimePickerPopoverHeader-fa88e970.js';
12
+ import { n as normalizeComponent } from './normalize-component-6e8e3d80.js';
13
+ import { _ as __vue_component__$2 } from './OrButton-9622e713.js';
14
+
15
+ function useTimePlaceholder(hourCycle) {
16
+ const sample = new Date(Date.UTC(1, 1, 3, 4, 5)).toLocaleString(navigator.language, {
17
+ timeStyle: 'short',
18
+ hourCycle,
19
+ timeZone: 'UTC'
20
+ });
21
+ return sample.replace(/04/, 'HH').replace(/4/, 'H').replace(/05/, 'MM').replace(/5/, 'M').replace(/AM|PM/, 'A');
22
+ }
23
+
24
+ var DateTimePickerTimeFormat;
25
+ (function (DateTimePickerTimeFormat) {
26
+ DateTimePickerTimeFormat["Auto"] = "auto";
27
+ DateTimePickerTimeFormat["H12"] = "h12";
28
+ DateTimePickerTimeFormat["H23"] = "h23";
29
+ })(DateTimePickerTimeFormat || (DateTimePickerTimeFormat = {}));
30
+
31
+ const DateTimePickerTimeControl = [
32
+ // Layout
33
+ 'layout-inline-row',
34
+ // Interactivity
35
+ 'interactivity-auto',
36
+ // Theme (focus)
37
+ 'focus:theme-border-2-inherit', 'dark:focus:theme-border-2-inherit-dark', 'focus:theme-border-underline'];
38
+ const DateTimePickerTimeControlPlaceholder = [
39
+ // Theme
40
+ 'theme-foreground-outline', 'dark:theme-foreground-outline-dark'];
41
+
42
+ var script$2 = defineComponent({
43
+ name: 'OrDateTimePickerTimeControl',
44
+ model: {
45
+ prop: 'modelValue',
46
+ event: 'update:modelValue'
47
+ },
48
+ props: {
49
+ modelValue: {
50
+ type: Date,
51
+ default: undefined
52
+ },
53
+ format: {
54
+ type: String,
55
+ default: DateTimePickerTimeFormat.Auto
56
+ },
57
+ required: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+ readonly: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ disabled: {
66
+ type: Boolean,
67
+ default: false
68
+ }
69
+ },
70
+ expose: ['root'],
71
+ setup(props, context) {
72
+ // Refs
73
+ const root = ref();
74
+ // Styles
75
+ const rootStyles = computed(() => ['or-date-time-picker-time-control-v3', ...DateTimePickerTimeControl]);
76
+ const placeholderStyles = computed(() => [...DateTimePickerTimeControlPlaceholder]);
77
+ // State
78
+ const proxyModelValue = computed({
79
+ get: () => props.modelValue,
80
+ set: value => {
81
+ context.emit('update:modelValue', value);
82
+ }
83
+ });
84
+ const placeholder = useTimePlaceholder(props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined);
85
+ // Methods
86
+ function formatModelValue(value) {
87
+ return value.toLocaleString(navigator.language, {
88
+ timeStyle: 'short',
89
+ hourCycle: props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined,
90
+ timeZone: 'UTC'
91
+ });
92
+ }
93
+ return {
94
+ root,
95
+ rootStyles,
96
+ placeholderStyles,
97
+ proxyModelValue,
98
+ placeholder,
99
+ formatModelValue
100
+ };
101
+ }
102
+ });
103
+
104
+ /* script */
105
+ const __vue_script__$1 = script$2;
106
+
107
+ /* template */
108
+ var __vue_render__$1 = function () {
109
+ var _vm = this;
110
+ var _h = _vm.$createElement;
111
+ var _c = _vm._self._c || _h;
112
+ return _c('div', {
113
+ ref: "root",
114
+ class: _vm.rootStyles,
115
+ attrs: {
116
+ "contenteditable": !_vm.disabled ? '' : null,
117
+ "required": _vm.required ? '' : null,
118
+ "readonly": _vm.readonly ? '' : null,
119
+ "disabled": _vm.disabled ? '' : null
120
+ }
121
+ }, [_vm.proxyModelValue ? [_vm._v("\n " + _vm._s(_vm.formatModelValue(_vm.proxyModelValue)) + "\n ")] : [_c('span', {
122
+ class: _vm.placeholderStyles,
123
+ attrs: {
124
+ "disabled": _vm.disabled ? '' : null
125
+ }
126
+ }, [_vm._v("\n " + _vm._s(_vm.placeholder) + "\n ")])]], 2);
127
+ };
128
+ var __vue_staticRenderFns__$1 = [];
129
+
130
+ /* style */
131
+ const __vue_inject_styles__$1 = undefined;
132
+ /* scoped */
133
+ const __vue_scope_id__$1 = undefined;
134
+ /* module identifier */
135
+ const __vue_module_identifier__$1 = undefined;
136
+ /* functional template */
137
+ const __vue_is_functional_template__$1 = false;
138
+ /* style inject */
139
+
140
+ /* style inject SSR */
141
+
142
+ /* style inject shadow dom */
143
+
144
+ const __vue_component__$1 = /*#__PURE__*/normalizeComponent({
145
+ render: __vue_render__$1,
146
+ staticRenderFns: __vue_staticRenderFns__$1
147
+ }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
148
+
149
+ const DateTimePickerTimeSelect = [
150
+ // Layout
151
+ 'layout-row justify-center',
152
+ // Spacing
153
+ 'px-md', 'py-md', 'gap-sm',
154
+ // Typography
155
+ 'typography-body-2-regular',
156
+ // Theme
157
+ 'theme-foreground-default', 'dark:theme-foreground-default-dark'];
158
+ const DateTimePickerTimeSelectButtonGroup = [
159
+ // Layout
160
+ 'layout-column',
161
+ // Box
162
+ 'h-[294px] md:h-[238px]',
163
+ // Overflow
164
+ 'overflow-x-hidden', 'overflow-y-auto'];
165
+ const DateTimePickerTimeSelectButtonGroupItem = [
166
+ // Box
167
+ '!min-w-fit',
168
+ // Typography
169
+ 'typography-caption-regular'];
170
+
171
+ var script$1 = defineComponent({
172
+ name: 'OrDateTimePickerTimeSelect',
173
+ components: {
174
+ OrButton: __vue_component__$2
175
+ },
176
+ model: {
177
+ prop: 'modelValue',
178
+ event: 'update:modelValue'
179
+ },
180
+ props: {
181
+ modelValue: {
182
+ type: Date,
183
+ default: undefined
184
+ },
185
+ initialValue: {
186
+ type: Date,
187
+ required: true
188
+ },
189
+ format: {
190
+ type: String,
191
+ default: DateTimePickerTimeFormat.Auto
192
+ },
193
+ hoursFilter: {
194
+ type: Function,
195
+ default: undefined
196
+ },
197
+ minutesFilter: {
198
+ type: Function,
199
+ default: undefined
200
+ }
201
+ },
202
+ emits: ['update:modelValue'],
203
+ expose: ['root'],
204
+ setup(props, context) {
205
+ // Refs
206
+ const root = ref();
207
+ // Styles
208
+ const rootStyles = computed(() => ['or-date-time-picker-time-select-v3', ...DateTimePickerTimeSelect]);
209
+ const buttonGroupStyles = computed(() => [...DateTimePickerTimeSelectButtonGroup]);
210
+ const buttonGroupItemStyles = computed(() => [...DateTimePickerTimeSelectButtonGroupItem]);
211
+ // State
212
+ const proxyModelValue = computed({
213
+ get: () => {
214
+ var _a;
215
+ return (_a = props.modelValue) !== null && _a !== void 0 ? _a : props.initialValue;
216
+ },
217
+ set: value => {
218
+ context.emit('update:modelValue', value);
219
+ }
220
+ });
221
+ const proxyTimeFormat = computed(() => {
222
+ if (props.format === DateTimePickerTimeFormat.Auto) {
223
+ const timeSample = new Date(1970, 0);
224
+ if (timeSample.toLocaleTimeString(navigator.language).includes('12')) {
225
+ return DateTimePickerTimeFormat.H12;
226
+ }
227
+ return DateTimePickerTimeFormat.H23;
228
+ }
229
+ return props.format;
230
+ });
231
+ const hoursRange = ref(proxyModelValue.value.getUTCHours() < 12 ? 'am' : 'pm');
232
+ watch(hoursRange, value => {
233
+ switch (value) {
234
+ case 'am':
235
+ proxyModelValue.value = new Date(Date.UTC(proxyModelValue.value.getUTCFullYear(), proxyModelValue.value.getUTCMonth(), proxyModelValue.value.getUTCDate(), proxyModelValue.value.getUTCHours() - 12, proxyModelValue.value.getUTCMinutes()));
236
+ break;
237
+ case 'pm':
238
+ proxyModelValue.value = new Date(Date.UTC(proxyModelValue.value.getUTCFullYear(), proxyModelValue.value.getUTCMonth(), proxyModelValue.value.getUTCDate(), proxyModelValue.value.getUTCHours() + 12, proxyModelValue.value.getUTCMinutes()));
239
+ break;
240
+ }
241
+ });
242
+ const hoursOptions = computed(() => {
243
+ return Array.from({
244
+ length: 24
245
+ }, (_value, index) => {
246
+ const value = index;
247
+ return new Date(Date.UTC(proxyModelValue.value.getUTCFullYear(), proxyModelValue.value.getUTCMonth(), proxyModelValue.value.getUTCDate(), value, proxyModelValue.value.getUTCMinutes()));
248
+ }).filter(value => {
249
+ if (proxyTimeFormat.value === DateTimePickerTimeFormat.H23) {
250
+ return true;
251
+ }
252
+ switch (hoursRange.value) {
253
+ case 'am':
254
+ return value.getUTCHours() < 12;
255
+ case 'pm':
256
+ return value.getUTCHours() >= 12;
257
+ }
258
+ });
259
+ });
260
+ const minutesOptions = computed(() => {
261
+ return Array.from({
262
+ length: 60
263
+ }, (_value, index) => {
264
+ const value = index;
265
+ return new Date(Date.UTC(proxyModelValue.value.getUTCFullYear(), proxyModelValue.value.getUTCMonth(), proxyModelValue.value.getUTCDate(), proxyModelValue.value.getUTCHours(), value));
266
+ });
267
+ });
268
+ // Methods
269
+ function formatHours(value) {
270
+ return value.toLocaleString(navigator.language, {
271
+ hour: 'numeric',
272
+ hourCycle: props.format !== DateTimePickerTimeFormat.Auto ? props.format : undefined,
273
+ timeZone: 'UTC'
274
+ }).replace(/\s(am|pm)/i, '');
275
+ }
276
+ function formatMinutes(value) {
277
+ return String(value.getUTCMinutes()).padStart(2, '0');
278
+ }
279
+ return {
280
+ root,
281
+ rootStyles,
282
+ buttonGroupStyles,
283
+ buttonGroupItemStyles,
284
+ proxyModelValue,
285
+ proxyTimeFormat,
286
+ hoursRange,
287
+ hoursOptions,
288
+ minutesOptions,
289
+ formatHours,
290
+ formatMinutes
291
+ };
292
+ }
293
+ });
294
+
295
+ /* script */
296
+ const __vue_script__ = script$1;
297
+
298
+ /* template */
299
+ var __vue_render__ = function () {
300
+ var _vm = this;
301
+ var _h = _vm.$createElement;
302
+ var _c = _vm._self._c || _h;
303
+ return _c('div', {
304
+ ref: "root",
305
+ class: _vm.rootStyles
306
+ }, [_c('div', {
307
+ class: _vm.buttonGroupStyles
308
+ }, _vm._l(_vm.hoursOptions, function (value) {
309
+ return _c('OrButton', {
310
+ key: Number(value),
311
+ class: _vm.buttonGroupItemStyles,
312
+ attrs: {
313
+ "variant": Number(value) === Number(_vm.proxyModelValue) ? 'contained' : 'text',
314
+ "color": Number(value) === Number(_vm.proxyModelValue) ? 'primary' : 'inherit',
315
+ "disabled": _vm.hoursFilter && !_vm.hoursFilter(value)
316
+ },
317
+ on: {
318
+ "click": function ($event) {
319
+ $event.stopPropagation();
320
+ _vm.proxyModelValue = value;
321
+ }
322
+ }
323
+ }, [_vm._v("\n " + _vm._s(_vm.formatHours(value)) + "\n ")]);
324
+ }), 1), _vm._v("\n\n :\n\n "), _c('div', {
325
+ class: _vm.buttonGroupStyles
326
+ }, _vm._l(_vm.minutesOptions, function (value) {
327
+ return _c('OrButton', {
328
+ key: Number(value),
329
+ class: _vm.buttonGroupItemStyles,
330
+ attrs: {
331
+ "variant": Number(value) === Number(_vm.proxyModelValue) ? 'contained' : 'text',
332
+ "color": Number(value) === Number(_vm.proxyModelValue) ? 'primary' : 'inherit',
333
+ "disabled": _vm.minutesFilter && !_vm.minutesFilter(value)
334
+ },
335
+ on: {
336
+ "click": function ($event) {
337
+ $event.stopPropagation();
338
+ _vm.proxyModelValue = value;
339
+ }
340
+ }
341
+ }, [_vm._v("\n " + _vm._s(_vm.formatMinutes(value)) + "\n ")]);
342
+ }), 1), _vm._v(" "), _vm.proxyTimeFormat === 'h12' ? [_c('div', {
343
+ class: _vm.buttonGroupStyles
344
+ }, [_c('OrButton', {
345
+ class: _vm.buttonGroupItemStyles,
346
+ attrs: {
347
+ "variant": _vm.hoursRange === 'am' ? 'contained' : 'text',
348
+ "color": _vm.hoursRange === 'am' ? 'primary' : 'inherit'
349
+ },
350
+ on: {
351
+ "click": function ($event) {
352
+ $event.stopPropagation();
353
+ _vm.hoursRange = 'am';
354
+ }
355
+ }
356
+ }, [_vm._v("\n AM\n ")]), _vm._v(" "), _c('OrButton', {
357
+ class: _vm.buttonGroupItemStyles,
358
+ attrs: {
359
+ "variant": _vm.hoursRange === 'pm' ? 'contained' : 'text',
360
+ "color": _vm.hoursRange === 'pm' ? 'primary' : 'inherit'
361
+ },
362
+ on: {
363
+ "click": function ($event) {
364
+ $event.stopPropagation();
365
+ _vm.hoursRange = 'pm';
366
+ }
367
+ }
368
+ }, [_vm._v("\n PM\n ")])], 1)] : _vm._e()], 2);
369
+ };
370
+ var __vue_staticRenderFns__ = [];
371
+
372
+ /* style */
373
+ const __vue_inject_styles__ = undefined;
374
+ /* scoped */
375
+ const __vue_scope_id__ = undefined;
376
+ /* module identifier */
377
+ const __vue_module_identifier__ = undefined;
378
+ /* functional template */
379
+ const __vue_is_functional_template__ = false;
380
+ /* style inject */
381
+
382
+ /* style inject SSR */
383
+
384
+ /* style inject shadow dom */
385
+
386
+ const __vue_component__ = /*#__PURE__*/normalizeComponent({
387
+ render: __vue_render__,
388
+ staticRenderFns: __vue_staticRenderFns__
389
+ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
390
+
391
+ const DateTimePicker = [
392
+ // Layout
393
+ 'layout-column',
394
+ // Spacing
395
+ 'gap-xs'];
396
+ const DateTimePickerDatePopover = [
397
+ // Box
398
+ 'w-[298px]'];
399
+ const DateTimePickerTimePopover = [];
400
+
401
+ var script = defineComponent({
402
+ name: 'OrDateTimePicker',
403
+ components: {
404
+ OrDateTimePickerDateControl: __vue_component__$3,
405
+ OrDateTimePickerDateSelect: __vue_component__$4,
406
+ OrDateTimePickerMobileControl: __vue_component__$5,
407
+ OrDateTimePickerMonthSelect: __vue_component__$6,
408
+ OrDateTimePickerPopoverFooter: __vue_component__$7,
409
+ OrDateTimePickerPopoverHeader: __vue_component__$8,
410
+ OrDateTimePickerTimeControl: __vue_component__$1,
411
+ OrDateTimePickerTimeSelect: __vue_component__,
412
+ OrError: __vue_component__$9,
413
+ OrHint: __vue_component__$a,
414
+ OrIcon: __vue_component__$b,
415
+ OrIconButton: __vue_component__$c,
416
+ OrInputBox: __vue_component__$d,
417
+ OrLabel: __vue_component__$e,
418
+ OrPopover: __vue_component__$f
419
+ },
420
+ directives: {
421
+ DropdownClose,
422
+ DropdownOpen
423
+ },
424
+ model: {
425
+ prop: 'modelValue',
426
+ event: 'update:modelValue'
427
+ },
428
+ props: {
429
+ modelValue: {
430
+ type: Date,
431
+ default: undefined
432
+ },
433
+ timeFormat: {
434
+ type: String,
435
+ default: DateTimePickerTimeFormat.Auto
436
+ },
437
+ yearFilter: {
438
+ type: Function,
439
+ default: undefined
440
+ },
441
+ monthFilter: {
442
+ type: Function,
443
+ default: undefined
444
+ },
445
+ dateFilter: {
446
+ type: Function,
447
+ default: undefined
448
+ },
449
+ hoursFilter: {
450
+ type: Function,
451
+ default: undefined
452
+ },
453
+ minutesFilter: {
454
+ type: Function,
455
+ default: undefined
456
+ },
457
+ size: {
458
+ type: String,
459
+ default: InputBoxSize.M
460
+ },
461
+ label: {
462
+ type: String,
463
+ default: undefined
464
+ },
465
+ hint: {
466
+ type: String,
467
+ default: undefined
468
+ },
469
+ error: {
470
+ type: [String, Boolean],
471
+ default: undefined
472
+ },
473
+ required: {
474
+ type: Boolean,
475
+ default: false
476
+ },
477
+ readonly: {
478
+ type: Boolean,
479
+ default: false
480
+ },
481
+ disabled: {
482
+ type: Boolean,
483
+ default: false
484
+ },
485
+ disableDefaultStyles: {
486
+ type: Boolean,
487
+ default: false
488
+ }
489
+ },
490
+ emits: ['update:modelValue', 'keydown', 'keyup', 'focus', 'blur'],
491
+ expose: ['root', 'focus', 'blur'],
492
+ setup(props, context) {
493
+ // Refs
494
+ const root = ref();
495
+ const inputBox = ref();
496
+ const inputBoxRoot = computed(() => {
497
+ var _a;
498
+ return (_a = inputBox.value) === null || _a === void 0 ? void 0 : _a.root;
499
+ });
500
+ const datePopover = ref();
501
+ const datePopoverState = computed(() => {
502
+ var _a;
503
+ return (_a = datePopover.value) === null || _a === void 0 ? void 0 : _a.state;
504
+ });
505
+ const timePopover = ref();
506
+ const timePopoverState = computed(() => {
507
+ var _a;
508
+ return (_a = timePopover.value) === null || _a === void 0 ? void 0 : _a.state;
509
+ });
510
+ // Styles
511
+ const rootStyles = computed(() => ['or-date-time-picker-v3', ...DateTimePicker]);
512
+ const datePopoverStyles = computed(() => [...DateTimePickerDatePopover]);
513
+ const timePopoverStyles = computed(() => [...DateTimePickerTimePopover]);
514
+ // State
515
+ const initialModelValue = useCurrentDate();
516
+ const proxyModelValue = computed({
517
+ get: () => props.modelValue,
518
+ set: value => {
519
+ context.emit('update:modelValue', value);
520
+ }
521
+ });
522
+ const draftModelValue = ref();
523
+ watch(proxyModelValue, value => {
524
+ draftModelValue.value = value;
525
+ }, {
526
+ immediate: true
527
+ });
528
+ const isInvalidDraftModelValue = computed(() => {
529
+ if (draftModelValue.value) {
530
+ if (props.yearFilter && !props.yearFilter(draftModelValue.value)) {
531
+ return true;
532
+ }
533
+ if (props.monthFilter && !props.monthFilter(draftModelValue.value)) {
534
+ return true;
535
+ }
536
+ if (props.dateFilter && !props.dateFilter(draftModelValue.value)) {
537
+ return true;
538
+ }
539
+ if (props.hoursFilter && !props.hoursFilter(draftModelValue.value)) {
540
+ return true;
541
+ }
542
+ if (props.minutesFilter && !props.minutesFilter(draftModelValue.value)) {
543
+ return true;
544
+ }
545
+ }
546
+ return false;
547
+ });
548
+ // Methods
549
+ function apply() {
550
+ var _a;
551
+ proxyModelValue.value = (_a = draftModelValue.value) !== null && _a !== void 0 ? _a : initialModelValue;
552
+ }
553
+ function reset() {
554
+ draftModelValue.value = proxyModelValue.value;
555
+ }
556
+ function toggleDatePopover() {
557
+ if (!props.readonly && !props.disabled) {
558
+ const popoverInstance = datePopover.value;
559
+ if (popoverInstance) {
560
+ if (datePopoverState.value === 'open') {
561
+ popoverInstance.close();
562
+ } else {
563
+ popoverInstance.open();
564
+ }
565
+ }
566
+ closeTimePopover();
567
+ }
568
+ }
569
+ function toggleTimePopover() {
570
+ if (!props.readonly && !props.disabled) {
571
+ const popoverInstance = timePopover.value;
572
+ if (popoverInstance) {
573
+ if (timePopoverState.value === 'open') {
574
+ popoverInstance.close();
575
+ } else {
576
+ popoverInstance.open();
577
+ }
578
+ }
579
+ closeDatePopover();
580
+ }
581
+ }
582
+ function closeDatePopover() {
583
+ const popoverInstance = datePopover.value;
584
+ if (popoverInstance) {
585
+ popoverInstance.close();
586
+ }
587
+ }
588
+ function closeTimePopover() {
589
+ const popoverInstance = timePopover.value;
590
+ if (popoverInstance) {
591
+ popoverInstance.close();
592
+ }
593
+ }
594
+ function formatDateAlt(value) {
595
+ var _a;
596
+ return (_a = value === null || value === void 0 ? void 0 : value.toLocaleString(navigator.language, {
597
+ dateStyle: 'medium',
598
+ timeZone: 'UTC'
599
+ })) !== null && _a !== void 0 ? _a : '--';
600
+ }
601
+ function formatTimeAlt(value) {
602
+ var _a;
603
+ return (_a = value === null || value === void 0 ? void 0 : value.toLocaleString(navigator.language, {
604
+ timeStyle: 'short',
605
+ hourCycle: props.timeFormat !== DateTimePickerTimeFormat.Auto ? props.timeFormat : undefined,
606
+ timeZone: 'UTC'
607
+ })) !== null && _a !== void 0 ? _a : '--';
608
+ }
609
+ return {
610
+ root,
611
+ inputBox,
612
+ inputBoxRoot,
613
+ datePopover,
614
+ datePopoverState,
615
+ timePopover,
616
+ timePopoverState,
617
+ rootStyles,
618
+ datePopoverStyles,
619
+ timePopoverStyles,
620
+ initialModelValue,
621
+ proxyModelValue,
622
+ draftModelValue,
623
+ isInvalidDraftModelValue,
624
+ apply,
625
+ reset,
626
+ toggleDatePopover,
627
+ toggleTimePopover,
628
+ closeDatePopover,
629
+ closeTimePopover,
630
+ formatDateAlt,
631
+ formatTimeAlt
632
+ };
633
+ }
634
+ });
635
+
636
+ export { DateTimePickerTimeFormat as D, __vue_component__$1 as _, __vue_component__ as a, script as s };