@onereach/ui-components 3.0.3-beta.2484.0 → 3.0.4-beta.2486.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 (179) hide show
  1. package/dist/bundled/v2/{OrCardCollection-6e29db50.js → OrCardCollection-ad2240ac.js} +1 -1
  2. package/dist/bundled/v2/{OrConfirm-98d9a7b0.js → OrConfirm-d548aac0.js} +1 -1
  3. package/dist/bundled/v2/OrDateTimePicker-60e1a7ee.js +1083 -0
  4. package/dist/bundled/v2/{OrInput-900df60c.js → OrInput-ae333c94.js} +2 -2
  5. package/dist/bundled/v2/{OrInputBox-4d265915.js → OrInputBox-11b6ac9f.js} +1 -1
  6. package/dist/bundled/v2/{OrSearch-22e60302.js → OrSearch-86a009af.js} +2 -2
  7. package/dist/bundled/v2/{OrSelect-0675a404.js → OrSelect-2834d2bc.js} +4 -4
  8. package/dist/bundled/v2/{OrTextarea-5027c642.js → OrTextarea-8d35e641.js} +2 -2
  9. package/dist/bundled/v2/components/index.d.ts +4 -3
  10. package/dist/bundled/v2/components/index.js +13 -12
  11. package/dist/bundled/v2/components/or-card-collection-v3/index.js +5 -5
  12. package/dist/bundled/v2/components/or-combined-input-v3/index.js +2 -2
  13. package/dist/bundled/v2/components/or-confirm-v3/index.js +4 -4
  14. package/dist/bundled/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +184 -0
  15. package/dist/bundled/v2/components/or-date-time-picker-v3/index.d.ts +2 -0
  16. package/dist/bundled/v2/components/or-date-time-picker-v3/index.js +30 -0
  17. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue.d.ts +30 -0
  18. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/styles.d.ts +1 -0
  19. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue.d.ts +24 -0
  20. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/styles.d.ts +2 -0
  21. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +98 -0
  22. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/styles.d.ts +1 -0
  23. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +12 -0
  24. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/styles.d.ts +1 -0
  25. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue.d.ts +8 -0
  26. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/styles.d.ts +1 -0
  27. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +54 -0
  28. package/dist/bundled/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/styles.d.ts +3 -0
  29. package/dist/bundled/v2/components/or-date-time-picker-v3/props.d.ts +1 -0
  30. package/dist/bundled/v2/components/or-date-time-picker-v3/styles.d.ts +2 -0
  31. package/dist/bundled/v2/components/or-input-box-v3/index.js +2 -2
  32. package/dist/bundled/v2/components/or-input-v3/index.js +3 -3
  33. package/dist/bundled/v2/components/or-search-v3/index.js +4 -4
  34. package/dist/bundled/v2/components/or-select-v3/index.js +5 -5
  35. package/dist/bundled/v2/components/or-textarea-v3/index.js +3 -3
  36. package/dist/bundled/v2/directives/index.js +1 -1
  37. package/dist/bundled/v2/{dropdown-open-e2a93aaf.js → dropdown-open-10460fec.js} +7 -1
  38. package/dist/bundled/v2/index.js +13 -12
  39. package/dist/bundled/v2/{props-78496a2d.js → props-c966ae5f.js} +1 -1
  40. package/dist/bundled/v3/{OrCardCollection.vue_vue_type_script_lang-518bff34.js → OrCardCollection.vue_vue_type_script_lang-61f92c57.js} +1 -1
  41. package/dist/bundled/v3/{OrConfirm.vue_vue_type_script_lang-9bfe8cdd.js → OrConfirm.vue_vue_type_script_lang-6bf48817.js} +2 -2
  42. package/dist/bundled/v3/OrDateTimePicker.vue_vue_type_script_lang-fb197c2f.js +718 -0
  43. package/dist/bundled/v3/{OrInput-d23f9223.js → OrInput-8171968f.js} +1 -1
  44. package/dist/bundled/v3/{OrInput.vue_vue_type_script_lang-fde0f78f.js → OrInput.vue_vue_type_script_lang-862ecd79.js} +3 -3
  45. package/dist/bundled/v3/{OrInputBox-66241142.js → OrInputBox-688eb48b.js} +1 -1
  46. package/dist/bundled/v3/{OrInputBox.vue_vue_type_script_lang-d07fa3ad.js → OrInputBox.vue_vue_type_script_lang-0e3ff329.js} +1 -1
  47. package/dist/bundled/v3/{OrSearch.vue_vue_type_script_lang-2ac19dad.js → OrSearch.vue_vue_type_script_lang-b6e99b50.js} +3 -3
  48. package/dist/bundled/v3/{OrSelect.vue_vue_type_script_lang-ee304265.js → OrSelect.vue_vue_type_script_lang-e497af2d.js} +6 -6
  49. package/dist/bundled/v3/{OrTextarea.vue_vue_type_script_lang-0ae5cda3.js → OrTextarea.vue_vue_type_script_lang-e5ae9a33.js} +3 -3
  50. package/dist/bundled/v3/components/index.d.ts +4 -3
  51. package/dist/bundled/v3/components/index.js +17 -16
  52. package/dist/bundled/v3/components/or-card-collection-v3/index.js +7 -7
  53. package/dist/bundled/v3/components/or-combined-input-v3/index.js +2 -2
  54. package/dist/bundled/v3/components/or-confirm-v3/index.js +6 -6
  55. package/dist/bundled/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +184 -0
  56. package/dist/bundled/v3/components/or-date-time-picker-v3/index.d.ts +2 -0
  57. package/dist/bundled/v3/components/or-date-time-picker-v3/index.js +35 -0
  58. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue.d.ts +30 -0
  59. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/styles.d.ts +1 -0
  60. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue.d.ts +24 -0
  61. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/styles.d.ts +2 -0
  62. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +98 -0
  63. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/styles.d.ts +1 -0
  64. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +12 -0
  65. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/styles.d.ts +1 -0
  66. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue.d.ts +8 -0
  67. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/styles.d.ts +1 -0
  68. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +54 -0
  69. package/dist/bundled/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/styles.d.ts +3 -0
  70. package/dist/bundled/v3/components/or-date-time-picker-v3/props.d.ts +1 -0
  71. package/dist/bundled/v3/components/or-date-time-picker-v3/styles.d.ts +2 -0
  72. package/dist/bundled/v3/components/or-input-box-v3/index.js +2 -2
  73. package/dist/bundled/v3/components/or-input-v3/index.js +4 -4
  74. package/dist/bundled/v3/components/or-search-v3/index.js +6 -6
  75. package/dist/bundled/v3/components/or-select-v3/index.js +7 -7
  76. package/dist/bundled/v3/components/or-textarea-v3/index.js +4 -4
  77. package/dist/bundled/v3/directives/index.js +1 -1
  78. package/dist/bundled/v3/{dropdown-open-293d2de2.js → dropdown-open-0a494cc1.js} +7 -1
  79. package/dist/bundled/v3/index.js +478 -324
  80. package/dist/bundled/v3/{props-78496a2d.js → props-c966ae5f.js} +1 -1
  81. package/dist/esm/v2/{OrCardCollection-708ac4b5.js → OrCardCollection-662d5727.js} +2 -2
  82. package/dist/esm/v2/{OrConfirm-7eee1481.js → OrConfirm-1be17f86.js} +1 -1
  83. package/dist/esm/v2/OrDateTimePicker-4b650aca.js +1076 -0
  84. package/dist/esm/v2/{OrInput-a7903c0f.js → OrInput-5efcb134.js} +2 -2
  85. package/dist/esm/v2/{OrInputBox-6b1aec08.js → OrInputBox-0f4e8500.js} +1 -1
  86. package/dist/esm/v2/{OrInputBox.vue_rollup-plugin-vue_script-23426690.js → OrInputBox.vue_rollup-plugin-vue_script-b2d0c353.js} +1 -1
  87. package/dist/esm/v2/{OrSearch-97a701b0.js → OrSearch-12782f78.js} +2 -2
  88. package/dist/esm/v2/{OrSelect-2d48ddee.js → OrSelect-78c2adc6.js} +4 -4
  89. package/dist/esm/v2/{OrTextarea-2d5d0be6.js → OrTextarea-839a422d.js} +2 -2
  90. package/dist/esm/v2/components/index.d.ts +4 -3
  91. package/dist/esm/v2/components/index.js +13 -12
  92. package/dist/esm/v2/components/or-card-collection-v3/index.js +5 -5
  93. package/dist/esm/v2/components/or-combined-input-v3/index.js +2 -2
  94. package/dist/esm/v2/components/or-confirm-v3/index.js +4 -4
  95. package/dist/esm/v2/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +184 -0
  96. package/dist/esm/v2/components/or-date-time-picker-v3/index.d.ts +2 -0
  97. package/dist/esm/v2/components/or-date-time-picker-v3/index.js +28 -0
  98. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue.d.ts +30 -0
  99. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/styles.d.ts +1 -0
  100. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue.d.ts +24 -0
  101. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/styles.d.ts +2 -0
  102. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +98 -0
  103. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/styles.d.ts +1 -0
  104. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +12 -0
  105. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/styles.d.ts +1 -0
  106. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue.d.ts +8 -0
  107. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/styles.d.ts +1 -0
  108. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +54 -0
  109. package/dist/esm/v2/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/styles.d.ts +3 -0
  110. package/dist/esm/v2/components/or-date-time-picker-v3/props.d.ts +1 -0
  111. package/dist/esm/v2/components/or-date-time-picker-v3/styles.d.ts +2 -0
  112. package/dist/esm/v2/components/or-input-box-v3/index.js +2 -2
  113. package/dist/esm/v2/components/or-input-v3/index.js +3 -3
  114. package/dist/esm/v2/components/or-search-v3/index.js +4 -4
  115. package/dist/esm/v2/components/or-select-v3/index.js +5 -5
  116. package/dist/esm/v2/components/or-textarea-v3/index.js +3 -3
  117. package/dist/esm/v2/directives/index.js +1 -1
  118. package/dist/esm/v2/{dropdown-open-0d314aa4.js → dropdown-open-e1f90e0a.js} +7 -1
  119. package/dist/esm/v2/index.js +12 -11
  120. package/dist/esm/v3/{OrCardCollection-62d1d8d5.js → OrCardCollection-aa7f0c81.js} +2 -2
  121. package/dist/esm/v3/{OrConfirm-b74191d6.js → OrConfirm-ecb8c576.js} +1 -1
  122. package/dist/esm/v3/OrDateTimePicker-3e2dc067.js +863 -0
  123. package/dist/esm/v3/{OrInput-f0748c95.js → OrInput-dae6e478.js} +1 -1
  124. package/dist/esm/v3/{OrInputBox-11389afd.js → OrInputBox-901887a1.js} +1 -1
  125. package/dist/esm/v3/{OrSearch-81b75244.js → OrSearch-9989bb31.js} +2 -2
  126. package/dist/esm/v3/{OrSelect-b9d45ab4.js → OrSelect-bb3c30ec.js} +3 -3
  127. package/dist/esm/v3/{OrTextarea-08b22d36.js → OrTextarea-2002e190.js} +1 -1
  128. package/dist/esm/v3/components/index.d.ts +4 -3
  129. package/dist/esm/v3/components/index.js +12 -11
  130. package/dist/esm/v3/components/or-card-collection-v3/index.js +4 -4
  131. package/dist/esm/v3/components/or-combined-input-v3/index.js +2 -2
  132. package/dist/esm/v3/components/or-confirm-v3/index.js +3 -3
  133. package/dist/esm/v3/components/or-date-time-picker-v3/OrDateTimePicker.vue.d.ts +184 -0
  134. package/dist/esm/v3/components/or-date-time-picker-v3/index.d.ts +2 -0
  135. package/dist/esm/v3/components/or-date-time-picker-v3/index.js +26 -0
  136. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue.d.ts +30 -0
  137. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/styles.d.ts +1 -0
  138. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue.d.ts +24 -0
  139. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/styles.d.ts +2 -0
  140. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue.d.ts +98 -0
  141. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/styles.d.ts +1 -0
  142. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue.d.ts +12 -0
  143. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/styles.d.ts +1 -0
  144. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue.d.ts +8 -0
  145. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/styles.d.ts +1 -0
  146. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue.d.ts +54 -0
  147. package/dist/esm/v3/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/styles.d.ts +3 -0
  148. package/dist/esm/v3/components/or-date-time-picker-v3/props.d.ts +1 -0
  149. package/dist/esm/v3/components/or-date-time-picker-v3/styles.d.ts +2 -0
  150. package/dist/esm/v3/components/or-input-box-v3/index.js +1 -1
  151. package/dist/esm/v3/components/or-input-v3/index.js +2 -2
  152. package/dist/esm/v3/components/or-search-v3/index.js +3 -3
  153. package/dist/esm/v3/components/or-select-v3/index.js +4 -4
  154. package/dist/esm/v3/components/or-textarea-v3/index.js +2 -2
  155. package/dist/esm/v3/directives/index.js +1 -1
  156. package/dist/esm/v3/{dropdown-open-0d314aa4.js → dropdown-open-e1f90e0a.js} +7 -1
  157. package/dist/esm/v3/index.js +11 -10
  158. package/package.json +2 -2
  159. package/src/components/index.ts +4 -3
  160. package/src/components/or-date-time-picker-v3/OrDateTimePicker.docs.mdx +7 -0
  161. package/src/components/or-date-time-picker-v3/OrDateTimePicker.stories3.ts +156 -0
  162. package/src/components/or-date-time-picker-v3/OrDateTimePicker.vue +373 -0
  163. package/src/components/or-date-time-picker-v3/index.ts +2 -0
  164. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue +63 -0
  165. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-date-select/styles.ts +10 -0
  166. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue +58 -0
  167. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-mobile-control/styles.ts +16 -0
  168. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue +210 -0
  169. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-month-select/styles.ts +10 -0
  170. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue +59 -0
  171. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-footer/styles.ts +13 -0
  172. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue +37 -0
  173. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-popover-header/styles.ts +10 -0
  174. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue +146 -0
  175. package/src/components/or-date-time-picker-v3/partials/or-date-time-picker-time-select/styles.ts +34 -0
  176. package/src/components/or-date-time-picker-v3/props.ts +1 -0
  177. package/src/components/or-date-time-picker-v3/styles.ts +16 -0
  178. package/src/directives/dropdown-close.ts +1 -0
  179. package/src/directives/dropdown-open.ts +7 -1
@@ -0,0 +1,373 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ >
6
+ <template v-if="label">
7
+ <OrLabel
8
+ :control-id="controlAttributes.id"
9
+ :variant="'input'"
10
+ :required="required"
11
+ :disabled="disabled"
12
+ >
13
+ {{ label }}
14
+
15
+ <template v-slot:addon>
16
+ <slot name="addon" />
17
+ </template>
18
+ </OrLabel>
19
+ </template>
20
+
21
+ <OrInputBox
22
+ v-dropdown-open="toggleDatePopover"
23
+ v-dropdown-close="closeDatePopover"
24
+ :variant="disableDefaultStyles ? 'unstyled' : 'styled'"
25
+ :size="size"
26
+ :invalid="!!error"
27
+ :readonly="readonly"
28
+ :disabled="disabled"
29
+ >
30
+ <input
31
+ ref="dateControl"
32
+ v-dropdown-open="toggleDatePopover"
33
+ v-dropdown-close="closeDatePopover"
34
+ v-bind="controlAttributes"
35
+ :class="controlStyles"
36
+ :type="'date'"
37
+ :required="required"
38
+ :readonly="readonly"
39
+ :disabled="disabled"
40
+ >
41
+
42
+ <input
43
+ ref="timeControl"
44
+ v-dropdown-open="toggleTimePopover"
45
+ v-dropdown-close="closeTimePopover"
46
+ v-bind="controlAttributes"
47
+ :class="controlStyles"
48
+ :type="'time'"
49
+ :required="required"
50
+ :readonly="readonly"
51
+ :disabled="disabled"
52
+ >
53
+
54
+ <OrPopover
55
+ ref="datePopover"
56
+ :variant="'auto'"
57
+ :trigger="dateControl"
58
+ :placement="'bottom'"
59
+ >
60
+ <OrDateTimePickerPopoverHeader>
61
+ <OrDateTimePickerMobileControl label="Date">
62
+ Sep 12
63
+ </OrDateTimePickerMobileControl>
64
+
65
+ <OrDateTimePickerMobileControl label="Time">
66
+ 9:07
67
+ </OrDateTimePickerMobileControl>
68
+ </OrDateTimePickerPopoverHeader>
69
+
70
+ <OrDateTimePickerMonthSelect v-model="proxyModelValue" />
71
+ <OrDateTimePickerDateSelect v-model="proxyModelValue" />
72
+
73
+ <OrDateTimePickerPopoverFooter
74
+ @reject="closeDatePopover()"
75
+ />
76
+ </OrPopover>
77
+
78
+ <OrPopover
79
+ ref="timePopover"
80
+ :variant="'auto'"
81
+ :trigger="timeControl"
82
+ :placement="'bottom'"
83
+ >
84
+ <OrDateTimePickerPopoverHeader>
85
+ <OrDateTimePickerMobileControl label="Date">
86
+ Sep 12
87
+ </OrDateTimePickerMobileControl>
88
+
89
+ <OrDateTimePickerMobileControl label="Time">
90
+ 9:07
91
+ </OrDateTimePickerMobileControl>
92
+ </OrDateTimePickerPopoverHeader>
93
+
94
+ <OrDateTimePickerTimeSelect v-model="proxyModelValue" />
95
+
96
+ <OrDateTimePickerPopoverFooter
97
+ @reject="closeTimePopover()"
98
+ />
99
+ </OrPopover>
100
+
101
+ <div :class="['grow']" />
102
+
103
+ <div :class="['layout-inline-row']">
104
+ <template v-if="modelValue">
105
+ <OrIconButton
106
+ :icon="'close'"
107
+ :color="'inherit'"
108
+ :disabled="readonly || disabled"
109
+ @click.stop="$emit('update:modelValue', undefined)"
110
+ />
111
+ </template>
112
+ </div>
113
+ </OrInputBox>
114
+
115
+ <template v-if="!error">
116
+ <template v-if="hint">
117
+ <OrHint :disabled="disabled">
118
+ {{ hint }}
119
+ </OrHint>
120
+ </template>
121
+ </template>
122
+
123
+ <template v-if="typeof error === 'string'">
124
+ <OrError :disabled="disabled">
125
+ {{ error }}
126
+ </OrError>
127
+ </template>
128
+ </div>
129
+ </template>
130
+
131
+ <script lang="ts">
132
+ import { computed, defineComponent, PropType, reactive, ref } from 'vue-demi';
133
+ import { DateTimePickerSize } from '.';
134
+ import { DropdownClose, DropdownOpen } from '../../directives';
135
+ import { useControlAttributes, useIdAttribute, useValidationAttributes } from '../../hooks';
136
+ import { OrErrorV3 as OrError } from '../or-error-v3';
137
+ import { OrHintV3 as OrHint } from '../or-hint-v3';
138
+ import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
139
+ import { OrInputBoxV3 as OrInputBox } from '../or-input-box-v3';
140
+ import { OrLabelV3 as OrLabel } from '../or-label-v3';
141
+ import { OrPopoverV3 as OrPopover } from '../or-popover-v3';
142
+ import OrDateTimePickerDateSelect from './partials/or-date-time-picker-date-select/OrDateTimePickerDateSelect.vue';
143
+ import OrDateTimePickerMobileControl from './partials/or-date-time-picker-mobile-control/OrDateTimePickerMobileControl.vue';
144
+ import OrDateTimePickerMonthSelect from './partials/or-date-time-picker-month-select/OrDateTimePickerMonthSelect.vue';
145
+ import OrDateTimePickerPopoverFooter from './partials/or-date-time-picker-popover-footer/OrDateTimePickerPopoverFooter.vue';
146
+ import OrDateTimePickerPopoverHeader from './partials/or-date-time-picker-popover-header/OrDateTimePickerPopoverHeader.vue';
147
+ import OrDateTimePickerTimeSelect from './partials/or-date-time-picker-time-select/OrDateTimePickerTimeSelect.vue';
148
+ import { DateTimePicker, DateTimePickerControl } from './styles';
149
+
150
+ export default defineComponent({
151
+ name: 'OrDateTimePicker',
152
+
153
+ components: {
154
+ OrDateTimePickerDateSelect,
155
+ OrDateTimePickerMobileControl,
156
+ OrDateTimePickerMonthSelect,
157
+ OrDateTimePickerPopoverFooter,
158
+ OrDateTimePickerPopoverHeader,
159
+ OrDateTimePickerTimeSelect,
160
+ OrError,
161
+ OrHint,
162
+ OrIconButton,
163
+ OrInputBox,
164
+ OrLabel,
165
+ OrPopover,
166
+ },
167
+
168
+ directives: {
169
+ DropdownClose,
170
+ DropdownOpen,
171
+ },
172
+
173
+ model: {
174
+ prop: 'modelValue',
175
+ event: 'update:modelValue',
176
+ },
177
+
178
+ props: {
179
+ modelValue: {
180
+ type: Date,
181
+ default: undefined,
182
+ },
183
+
184
+ size: {
185
+ type: String as PropType<DateTimePickerSize>,
186
+ default: DateTimePickerSize.M,
187
+ },
188
+
189
+ label: {
190
+ type: String,
191
+ default: undefined,
192
+ },
193
+
194
+ hint: {
195
+ type: String,
196
+ default: undefined,
197
+ },
198
+
199
+ error: {
200
+ type: [String, Boolean],
201
+ default: undefined,
202
+ },
203
+
204
+ required: {
205
+ type: Boolean,
206
+ default: false,
207
+ },
208
+
209
+ readonly: {
210
+ type: Boolean,
211
+ default: false,
212
+ },
213
+
214
+ disabled: {
215
+ type: Boolean,
216
+ default: false,
217
+ },
218
+
219
+ disableDefaultStyles: {
220
+ type: Boolean,
221
+ default: false,
222
+ },
223
+ },
224
+
225
+ emits: [
226
+ 'update:modelValue',
227
+
228
+ 'keydown',
229
+ 'keyup',
230
+ 'focus',
231
+ 'blur',
232
+ ],
233
+
234
+ expose: [
235
+ 'root',
236
+
237
+ 'focus',
238
+ 'blur',
239
+ ],
240
+
241
+ setup(props, context) {
242
+ // Refs
243
+ const root = ref<HTMLElement>();
244
+
245
+ const dateControl = ref<HTMLInputElement>();
246
+ const timeControl = ref<HTMLInputElement>();
247
+
248
+ const datePopover = ref<InstanceType<typeof OrPopover>>();
249
+ const timePopover = ref<InstanceType<typeof OrPopover>>();
250
+
251
+ const datePopoverState = computed(() => datePopover.value?.state);
252
+ const timePopoverState = computed(() => timePopover.value?.state);
253
+
254
+ // Styles
255
+ const rootStyles = computed(() => [
256
+ 'or-date-time-picker',
257
+ ...DateTimePicker,
258
+ ]);
259
+
260
+ const controlStyles = computed(() => [
261
+ ...DateTimePickerControl,
262
+ ]);
263
+
264
+ // State
265
+ const controlAttributes = reactive({
266
+ id: useIdAttribute(),
267
+ ...useControlAttributes(),
268
+ ...useValidationAttributes(),
269
+ });
270
+
271
+ const proxyModelValue = computed({
272
+ get: () => props.modelValue,
273
+
274
+ set: (value) => {
275
+ context.emit('update:modelValue', value);
276
+ },
277
+ });
278
+
279
+ // Methods
280
+ function toggleDatePopover(): void {
281
+ if (!props.readonly && !props.disabled) {
282
+ const popoverInstance = datePopover.value;
283
+
284
+ if (popoverInstance) {
285
+ if (datePopoverState.value === 'open') {
286
+ (popoverInstance.close as () => void)();
287
+ } else {
288
+ (popoverInstance.open as () => void)();
289
+ }
290
+ }
291
+ }
292
+ }
293
+
294
+ function toggleTimePopover(): void {
295
+ if (!props.readonly && !props.disabled) {
296
+ const popoverInstance = timePopover.value;
297
+
298
+ if (popoverInstance) {
299
+ if (timePopoverState.value === 'open') {
300
+ (popoverInstance.close as () => void)();
301
+ } else {
302
+ (popoverInstance.open as () => void)();
303
+ }
304
+ }
305
+ }
306
+ }
307
+
308
+ function closeDatePopover(): void {
309
+ const popoverInstance = datePopover.value;
310
+
311
+ if (popoverInstance) {
312
+ (popoverInstance.close as () => void)();
313
+ }
314
+ }
315
+
316
+ function closeTimePopover(): void {
317
+ const popoverInstance = timePopover.value;
318
+
319
+ if (popoverInstance) {
320
+ (popoverInstance.close as () => void)();
321
+ }
322
+ }
323
+
324
+ return {
325
+ root,
326
+ dateControl,
327
+ timeControl,
328
+ datePopover,
329
+ timePopover,
330
+ datePopoverState,
331
+ timePopoverState,
332
+ rootStyles,
333
+ controlStyles,
334
+ controlAttributes,
335
+ proxyModelValue,
336
+ toggleDatePopover,
337
+ toggleTimePopover,
338
+ closeDatePopover,
339
+ closeTimePopover,
340
+ };
341
+ },
342
+ });
343
+ </script>
344
+
345
+ <style scoped>
346
+ input {
347
+ min-width: 0;
348
+ background: none;
349
+ outline: none;
350
+ }
351
+
352
+ input[type="date"]::-webkit-datetime-edit-day-field,
353
+ input[type="date"]::-webkit-datetime-edit-month-field,
354
+ input[type="date"]::-webkit-datetime-edit-year-field {
355
+ display: none;
356
+ }
357
+
358
+ input[type="time"]::-webkit-datetime-edit-hour-field,
359
+ input[type="time"]::-webkit-datetime-edit-minute-field,
360
+ input[type="time"]::-webkit-datetime-edit-ampm-field {
361
+ display: none;
362
+ }
363
+
364
+ input[type="date"]::-webkit-datetime-edit-text,
365
+ input[type="time"]::-webkit-datetime-edit-text {
366
+ display: none;
367
+ }
368
+
369
+ input[type="date"]::-webkit-calendar-picker-indicator,
370
+ input[type="time"]::-webkit-calendar-picker-indicator {
371
+ display: none;
372
+ }
373
+ </style>
@@ -0,0 +1,2 @@
1
+ export { default as OrDateTimePickerV3 } from './OrDateTimePicker.vue';
2
+ export * from './props';
@@ -0,0 +1,63 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ >
6
+ Calendar
7
+ </div>
8
+ </template>
9
+
10
+ <script lang="ts">
11
+ import { computed, defineComponent, ref } from 'vue-demi';
12
+ import { DateTimePickerDateSelect } from './styles';
13
+
14
+ export default defineComponent({
15
+ name: 'OrDateTimePickerDateSelect',
16
+
17
+ model: {
18
+ prop: 'modelValue',
19
+ event: 'update:modelValue',
20
+ },
21
+
22
+ props: {
23
+ modelValue: {
24
+ type: Date,
25
+ default: undefined,
26
+ },
27
+ },
28
+
29
+ emits: [
30
+ 'update:modelValue',
31
+ ],
32
+
33
+ expose: [
34
+ 'root',
35
+ ],
36
+
37
+ setup(props, context) {
38
+ // Refs
39
+ const root = ref<HTMLElement>();
40
+
41
+ // Styles
42
+ const rootStyles = computed(() => [
43
+ 'or-date-time-picker-date-select',
44
+ ...DateTimePickerDateSelect,
45
+ ]);
46
+
47
+ // State
48
+ const proxyModelValue = computed({
49
+ get: () => props.modelValue,
50
+
51
+ set: (value) => {
52
+ context.emit('update:modelValue', value);
53
+ },
54
+ });
55
+
56
+ return {
57
+ root,
58
+ rootStyles,
59
+ proxyModelValue,
60
+ };
61
+ },
62
+ });
63
+ </script>
@@ -0,0 +1,10 @@
1
+ export const DateTimePickerDateSelect: string[] = [
2
+ // Layout
3
+ 'layout-column',
4
+
5
+ // Spacing
6
+ 'px-md',
7
+ 'py-md',
8
+
9
+ 'gap-sm',
10
+ ];
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ >
6
+ <OrLabel>{{ label }}</OrLabel>
7
+
8
+ <div :class="contentStyles">
9
+ <slot />
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <script lang="ts">
15
+ import { computed, defineComponent, ref } from 'vue-demi';
16
+ import { OrLabelV3 as OrLabel } from '../../../or-label-v3';
17
+ import { DateTimePickerMobileControl, DateTimePickerMobileControlContent } from './styles';
18
+
19
+ export default defineComponent({
20
+ name: 'OrDateTimePickerMobileControl',
21
+
22
+ components: {
23
+ OrLabel,
24
+ },
25
+
26
+ props: {
27
+ label: {
28
+ type: String,
29
+ required: true,
30
+ },
31
+ },
32
+
33
+ expose: [
34
+ 'root',
35
+ ],
36
+
37
+ setup() {
38
+ // Refs
39
+ const root = ref<HTMLElement>();
40
+
41
+ // Styles
42
+ const rootStyles = computed(() => [
43
+ 'or-date-time-picker-mobile-control',
44
+ ...DateTimePickerMobileControl,
45
+ ]);
46
+
47
+ const contentStyles = computed(() => [
48
+ ...DateTimePickerMobileControlContent,
49
+ ]);
50
+
51
+ return {
52
+ root,
53
+ rootStyles,
54
+ contentStyles,
55
+ };
56
+ },
57
+ });
58
+ </script>
@@ -0,0 +1,16 @@
1
+ export const DateTimePickerMobileControl: string[] = [
2
+ // Layout
3
+ 'layout-column',
4
+
5
+ // Spacing
6
+ 'gap-xs',
7
+ ];
8
+
9
+ export const DateTimePickerMobileControlContent: string[] = [
10
+ // Typography
11
+ 'typography-headline-1',
12
+
13
+ // Theme
14
+ 'theme-foreground-outline',
15
+ 'dark:theme-foreground-outline-dark',
16
+ ];