vueless 0.0.3 → 0.0.5

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 (525) hide show
  1. package/.browserslistrc +4 -0
  2. package/.editorconfig +12 -0
  3. package/.eslintignore +7 -0
  4. package/.eslintrc.js +59 -0
  5. package/.storybook/configs/main.config.js +20 -0
  6. package/.storybook/decorators/vue3SourceDecorator.js +119 -0
  7. package/.storybook/main.js +20 -0
  8. package/.storybook/manager-head.html +10 -0
  9. package/.storybook/manager.js +6 -0
  10. package/.storybook/preview-head.html +72 -0
  11. package/.storybook/preview.js +50 -0
  12. package/.storybook/themes/vueless.docs.theme.js +41 -0
  13. package/.storybook/themes/vueless.theme.js +45 -0
  14. package/.web-types-gen/lib/config.js +32 -0
  15. package/LICENSE +21 -0
  16. package/README.md +174 -0
  17. package/index.pcss +3 -0
  18. package/package.json +53 -36
  19. package/postcss.config.js +9 -0
  20. package/public/images/logo.png +0 -0
  21. package/{composable.ui → src/composable.ui}/index.js +4 -1
  22. package/src/library.web-types-gen/index.js +17 -0
  23. package/src/library.web-types-gen/lib/build.js +252 -0
  24. package/src/library.web-types-gen/package.json +3 -0
  25. package/{plugin.vite → src/plugin.vite}/services/iconResolver.service.js +1 -1
  26. package/{plugin.vite → src/plugin.vite}/services/tailwindSafelist.service.js +0 -2
  27. package/{service.tailwind → src/service.tailwind}/index.js +2 -0
  28. package/{service.ui → src/service.ui}/index.js +1 -1
  29. package/{ui.button-toggle-item → src/ui.button}/Docs.mdx +1 -1
  30. package/{ui.button → src/ui.button}/composables/attrs.composable.js +2 -2
  31. package/{ui.button → src/ui.button}/configs/default.config.js +1 -0
  32. package/{ui.button → src/ui.button}/index.stories.js +5 -5
  33. package/{ui.button → src/ui.button}/index.vue +3 -4
  34. package/{ui.button-toggle → src/ui.button-link}/Docs.mdx +1 -1
  35. package/{ui.button-link → src/ui.button-link}/composables/attrs.composable.js +2 -2
  36. package/{ui.button-link → src/ui.button-link}/configs/default.config.js +2 -2
  37. package/{ui.button-link → src/ui.button-link}/index.stories.js +4 -4
  38. package/{ui.button-link → src/ui.button-link}/index.vue +3 -3
  39. package/{ui.button-link → src/ui.button-toggle}/Docs.mdx +1 -1
  40. package/{ui.button-toggle → src/ui.button-toggle}/composables/attrs.composable.js +1 -1
  41. package/{ui.button-toggle → src/ui.button-toggle}/index.stories.js +5 -5
  42. package/{ui.button-toggle → src/ui.button-toggle}/index.vue +2 -2
  43. package/{ui.button → src/ui.button-toggle-item}/Docs.mdx +1 -1
  44. package/{ui.button-toggle-item → src/ui.button-toggle-item}/composables/attrs.composable.js +2 -2
  45. package/{ui.button-toggle-item → src/ui.button-toggle-item}/index.stories.js +3 -3
  46. package/{ui.button-toggle-item → src/ui.button-toggle-item}/index.vue +2 -2
  47. package/{ui.container-accordion → src/ui.container-accordion}/composables/attrs.composable.js +2 -2
  48. package/{ui.container-accordion → src/ui.container-accordion}/index.stories.js +4 -4
  49. package/{ui.container-accordion → src/ui.container-accordion}/index.vue +2 -2
  50. package/src/ui.container-card/Docs.mdx +16 -0
  51. package/{ui.container-card → src/ui.container-card}/composable/attrs.composable.js +2 -2
  52. package/{ui.container-card → src/ui.container-card}/index.stories.js +7 -7
  53. package/{ui.container-card → src/ui.container-card}/index.vue +3 -3
  54. package/src/ui.container-divider/Docs.mdx +16 -0
  55. package/{ui.container-divider → src/ui.container-divider}/composables/attrs.composable.js +2 -2
  56. package/{ui.container-divider → src/ui.container-divider}/index.stories.js +3 -3
  57. package/{ui.container-divider → src/ui.container-divider}/index.vue +1 -1
  58. package/src/ui.container-group/Docs.mdx +16 -0
  59. package/{ui.container-group → src/ui.container-group}/composables/attrs.composable.js +2 -2
  60. package/{ui.container-group → src/ui.container-group}/index.stories.js +4 -4
  61. package/{ui.container-group → src/ui.container-group}/index.vue +3 -3
  62. package/src/ui.container-groups/Docs.mdx +16 -0
  63. package/{ui.container-groups → src/ui.container-groups}/composables/attrs.composable.js +1 -1
  64. package/{ui.container-groups → src/ui.container-groups}/index.stories.js +4 -4
  65. package/src/ui.container-modal/Docs.mdx +16 -0
  66. package/{ui.container-modal → src/ui.container-modal}/composables/attrs.composable.js +2 -2
  67. package/{ui.container-modal → src/ui.container-modal}/index.stories.js +9 -9
  68. package/{ui.container-modal → src/ui.container-modal}/index.vue +4 -4
  69. package/src/ui.container-modal-confirm/Docs.mdx +16 -0
  70. package/{ui.container-modal-confirm → src/ui.container-modal-confirm}/composable/attrs.composable.js +3 -2
  71. package/{ui.container-modal-confirm → src/ui.container-modal-confirm}/configs/default.config.js +3 -0
  72. package/{ui.container-modal-confirm → src/ui.container-modal-confirm}/index.stories.js +6 -6
  73. package/{ui.container-modal-confirm → src/ui.container-modal-confirm}/index.vue +5 -19
  74. package/src/ui.container-page/Docs.mdx +16 -0
  75. package/{ui.container-page → src/ui.container-page}/composables/attrs.composable.js +2 -2
  76. package/{ui.container-page → src/ui.container-page}/index.stories.js +10 -10
  77. package/{ui.container-page → src/ui.container-page}/index.vue +1 -1
  78. package/src/ui.container-row/Docs.mdx +16 -0
  79. package/{ui.container-row → src/ui.container-row}/composables/attrs.composable.js +2 -2
  80. package/{ui.container-row → src/ui.container-row}/index.stories.js +3 -3
  81. package/{ui.container-row → src/ui.container-row}/index.vue +1 -1
  82. package/{ui.data-list → src/ui.data-list}/composables/attrs.composable.js +2 -2
  83. package/{ui.data-list → src/ui.data-list}/index.stories.js +3 -3
  84. package/{ui.data-list → src/ui.data-list}/index.vue +3 -3
  85. package/src/ui.data-table/Docs.mdx +16 -0
  86. package/{ui.data-table → src/ui.data-table}/composables/attrs.composable.js +10 -10
  87. package/{ui.data-table → src/ui.data-table}/configs/default.config.js +6 -0
  88. package/{ui.data-table → src/ui.data-table}/index.stories.js +8 -8
  89. package/{ui.data-table → src/ui.data-table}/index.vue +20 -35
  90. package/{ui.data-table-cell → src/ui.data-table-cell}/composables/attrs.composable.js +2 -2
  91. package/{ui.data-table-cell → src/ui.data-table-cell}/index.vue +1 -1
  92. package/src/ui.dropdown-badge/Docs.mdx +16 -0
  93. package/{ui.dropdown-badge → src/ui.dropdown-badge}/composables/attrs.composable.js +2 -2
  94. package/{ui.dropdown-badge → src/ui.dropdown-badge}/index.stories.js +4 -4
  95. package/{ui.dropdown-badge → src/ui.dropdown-badge}/index.vue +4 -4
  96. package/src/ui.dropdown-button/Docs.mdx +16 -0
  97. package/{ui.dropdown-button → src/ui.dropdown-button}/composables/attrs.composable.js +2 -2
  98. package/{ui.dropdown-button → src/ui.dropdown-button}/index.stories.js +5 -5
  99. package/{ui.dropdown-button → src/ui.dropdown-button}/index.vue +5 -5
  100. package/src/ui.dropdown-item/Docs.mdx +16 -0
  101. package/{ui.dropdown-item → src/ui.dropdown-item}/composables/attrs.composable.js +1 -1
  102. package/{ui.dropdown-item → src/ui.dropdown-item}/index.stories.js +2 -2
  103. package/src/ui.dropdown-link/Docs.mdx +16 -0
  104. package/{ui.dropdown-link → src/ui.dropdown-link}/composables/attrs.composable.js +2 -2
  105. package/{ui.dropdown-link → src/ui.dropdown-link}/index.stories.js +4 -4
  106. package/{ui.dropdown-link → src/ui.dropdown-link}/index.vue +4 -4
  107. package/src/ui.dropdown-list/Docs.mdx +16 -0
  108. package/{ui.dropdown-list → src/ui.dropdown-list}/composables/attrs.composable.js +4 -2
  109. package/{ui.dropdown-list → src/ui.dropdown-list}/configs/default.config.js +6 -0
  110. package/{ui.dropdown-list → src/ui.dropdown-list}/index.stories.js +3 -3
  111. package/{ui.dropdown-list → src/ui.dropdown-list}/index.vue +9 -25
  112. package/{ui.form-calendar → src/ui.form-calendar}/Docs.mdx +2 -2
  113. package/{ui.form-calendar → src/ui.form-calendar}/components/DayView.vue +39 -1
  114. package/{ui.form-calendar → src/ui.form-calendar}/composables/attrs.composable.js +21 -2
  115. package/{ui.form-calendar → src/ui.form-calendar}/configs/default.config.js +12 -2
  116. package/{ui.form-calendar → src/ui.form-calendar}/constants/index.js +2 -0
  117. package/{ui.form-calendar → src/ui.form-calendar}/index.stories.js +11 -2
  118. package/{ui.form-calendar → src/ui.form-calendar}/index.vue +155 -45
  119. package/{ui.form-calendar → src/ui.form-calendar}/services/calendar.service.js +3 -15
  120. package/src/ui.form-calendar/services/date.service.js +282 -0
  121. package/src/ui.form-checkbox/Docs.mdx +16 -0
  122. package/{ui.form-checkbox → src/ui.form-checkbox}/composables/attrs.composable.js +2 -2
  123. package/{ui.form-checkbox → src/ui.form-checkbox}/configs/default.config.js +1 -1
  124. package/{ui.form-checkbox → src/ui.form-checkbox}/index.stories.js +5 -5
  125. package/{ui.form-checkbox → src/ui.form-checkbox}/index.vue +3 -3
  126. package/src/ui.form-checkbox-group/Docs.mdx +16 -0
  127. package/{ui.form-checkbox-group → src/ui.form-checkbox-group}/composables/attrs.composable.js +1 -1
  128. package/{ui.form-checkbox-group → src/ui.form-checkbox-group}/index.stories.js +2 -2
  129. package/{ui.form-checkbox-group → src/ui.form-checkbox-group}/index.vue +3 -3
  130. package/src/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  131. package/{ui.form-checkbox-multi-state → src/ui.form-checkbox-multi-state}/composables/attrs.composable.js +1 -1
  132. package/{ui.form-checkbox-multi-state → src/ui.form-checkbox-multi-state}/index.stories.js +3 -3
  133. package/{ui.form-checkbox-multi-state → src/ui.form-checkbox-multi-state}/index.vue +1 -1
  134. package/{ui.form-color-picker → src/ui.form-color-picker}/composables/attrs.composable.js +2 -2
  135. package/{ui.form-color-picker → src/ui.form-color-picker}/index.stories.js +3 -3
  136. package/{ui.form-color-picker → src/ui.form-color-picker}/index.vue +1 -1
  137. package/{ui.form-date-picker → src/ui.form-date-picker}/Docs.mdx +3 -3
  138. package/{ui.form-date-picker → src/ui.form-date-picker}/composables/attrs.composable.js +1 -1
  139. package/{ui.form-date-picker → src/ui.form-date-picker}/configs/default.config.js +0 -1
  140. package/{ui.form-date-picker → src/ui.form-date-picker}/index.stories.js +4 -4
  141. package/{ui.form-date-picker → src/ui.form-date-picker}/index.vue +2 -3
  142. package/src/ui.form-date-picker-range/composables/attrs.composable.js +100 -0
  143. package/src/ui.form-date-picker-range/configs/default.config.js +172 -0
  144. package/src/ui.form-date-picker-range/constants/index.js +23 -0
  145. package/src/ui.form-date-picker-range/index.stories.js +135 -0
  146. package/src/ui.form-date-picker-range/index.vue +929 -0
  147. package/src/ui.form-date-picker-range/services/dateRange.service.js +116 -0
  148. package/src/ui.form-date-picker-range/services/validation.service.js +22 -0
  149. package/src/ui.form-input/Docs.mdx +16 -0
  150. package/{ui.form-input → src/ui.form-input}/composables/attrs.composable.js +2 -2
  151. package/{ui.form-input → src/ui.form-input}/index.stories.js +5 -5
  152. package/{ui.form-input → src/ui.form-input}/index.vue +2 -2
  153. package/{ui.form-input-file → src/ui.form-input-file}/composables/attrs.composable.js +2 -2
  154. package/{ui.form-input-file → src/ui.form-input-file}/configs/default.config.js +9 -1
  155. package/{ui.form-input-file → src/ui.form-input-file}/index.stories.js +4 -4
  156. package/{ui.form-input-file → src/ui.form-input-file}/index.vue +14 -47
  157. package/src/ui.form-input-money/Docs.mdx +16 -0
  158. package/{ui.form-input-money → src/ui.form-input-money}/composables/attrs.composable.js +1 -1
  159. package/{ui.form-input-money → src/ui.form-input-money}/index.stories.js +4 -4
  160. package/{ui.form-input-money → src/ui.form-input-money}/index.vue +2 -2
  161. package/src/ui.form-input-number/Docs.mdx +16 -0
  162. package/{ui.form-input-number → src/ui.form-input-number}/composables/attrs.composable.js +2 -2
  163. package/{ui.form-input-number → src/ui.form-input-number}/index.stories.js +3 -3
  164. package/{ui.form-input-number → src/ui.form-input-number}/index.vue +1 -1
  165. package/{ui.form-input-rating → src/ui.form-input-rating}/composables/attrs.composable.js +2 -2
  166. package/{ui.form-input-rating → src/ui.form-input-rating}/index.stories.js +3 -3
  167. package/{ui.form-input-rating → src/ui.form-input-rating}/index.vue +2 -2
  168. package/{ui.form-input-search → src/ui.form-input-search}/composables/attrs.composable.js +1 -1
  169. package/{ui.form-input-search → src/ui.form-input-search}/index.stories.js +4 -4
  170. package/{ui.form-input-search → src/ui.form-input-search}/index.vue +1 -2
  171. package/src/ui.form-label/Docs.mdx +16 -0
  172. package/{ui.form-label → src/ui.form-label}/composables/attrs.composable.js +2 -2
  173. package/{ui.form-label → src/ui.form-label}/index.stories.js +5 -5
  174. package/{ui.form-label → src/ui.form-label}/index.vue +1 -1
  175. package/src/ui.form-radio/Docs.mdx +16 -0
  176. package/{ui.form-radio → src/ui.form-radio}/composables/attrs.composable.js +2 -2
  177. package/{ui.form-radio → src/ui.form-radio}/index.stories.js +3 -3
  178. package/{ui.form-radio → src/ui.form-radio}/index.vue +1 -1
  179. package/src/ui.form-radio-card/Docs.mdx +16 -0
  180. package/{ui.form-radio-card → src/ui.form-radio-card}/composables/attrs.composable.js +8 -3
  181. package/{ui.form-radio-card → src/ui.form-radio-card}/configs/default.config.js +1 -1
  182. package/{ui.form-radio-card → src/ui.form-radio-card}/index.stories.js +3 -3
  183. package/{ui.form-radio-card → src/ui.form-radio-card}/index.vue +11 -21
  184. package/{ui.form-radio-card → src/ui.form-radio-card}/services/variant.service.js +1 -1
  185. package/src/ui.form-radio-group/Docs.mdx +16 -0
  186. package/{ui.form-radio-group → src/ui.form-radio-group}/composables/attrs.composable.js +2 -2
  187. package/{ui.form-radio-group → src/ui.form-radio-group}/index.stories.js +3 -3
  188. package/{ui.form-radio-group → src/ui.form-radio-group}/index.vue +1 -1
  189. package/src/ui.form-select/Docs.mdx +16 -0
  190. package/{ui.form-select → src/ui.form-select}/composables/attrs.composable.js +2 -2
  191. package/{ui.form-select → src/ui.form-select}/configs/default.config.js +7 -0
  192. package/{ui.form-select → src/ui.form-select}/index.stories.js +4 -4
  193. package/{ui.form-select → src/ui.form-select}/index.vue +38 -72
  194. package/{ui.form-switch → src/ui.form-switch}/composables/attrs.composable.js +2 -2
  195. package/{ui.form-switch → src/ui.form-switch}/configs/default.config.js +4 -0
  196. package/{ui.form-switch → src/ui.form-switch}/index.stories.js +4 -4
  197. package/{ui.form-switch → src/ui.form-switch}/index.vue +3 -23
  198. package/{ui.form-switch → src/ui.form-switch}/services/variant.service.js +1 -1
  199. package/src/ui.form-textarea/Docs.mdx +16 -0
  200. package/{ui.form-textarea → src/ui.form-textarea}/composables/attrs.composable.js +2 -2
  201. package/{ui.form-textarea → src/ui.form-textarea}/index.stories.js +5 -5
  202. package/{ui.form-textarea → src/ui.form-textarea}/index.vue +2 -2
  203. package/{ui.image-avatar → src/ui.image-avatar}/composables/attrs.composable.js +2 -2
  204. package/{ui.image-avatar → src/ui.image-avatar}/index.stories.js +3 -3
  205. package/{ui.image-avatar → src/ui.image-avatar}/index.vue +1 -1
  206. package/src/ui.image-icon/Docs.mdx +16 -0
  207. package/{ui.image-icon → src/ui.image-icon}/composables/attrs.composable.js +2 -2
  208. package/{ui.image-icon → src/ui.image-icon}/index.stories.js +3 -3
  209. package/{ui.image-icon → src/ui.image-icon}/index.vue +1 -1
  210. package/{ui.image-logo → src/ui.image-logo}/composables/attrs.composable.js +2 -2
  211. package/{ui.image-logo → src/ui.image-logo}/index.stories.js +3 -3
  212. package/{ui.image-logo → src/ui.image-logo}/index.vue +1 -1
  213. package/src/ui.loader-rendering/index.vue +72 -0
  214. package/src/ui.loader-rendering/store/index.js +17 -0
  215. package/src/ui.loader-top/components/TopProgress.vue +277 -0
  216. package/src/ui.loader-top/index.vue +221 -0
  217. package/src/ui.loader-top/store/index.js +59 -0
  218. package/{ui.navigation-pagination → src/ui.navigation-pagination}/composables/attrs.composable.js +2 -2
  219. package/{ui.navigation-pagination → src/ui.navigation-pagination}/index.stories.js +2 -2
  220. package/{ui.navigation-pagination → src/ui.navigation-pagination}/index.vue +2 -2
  221. package/{ui.navigation-stepper → src/ui.navigation-stepper}/composables/attrs.composable.js +1 -1
  222. package/{ui.navigation-stepper → src/ui.navigation-stepper}/index.stories.js +2 -2
  223. package/{ui.navigation-stepper → src/ui.navigation-stepper}/index.vue +2 -2
  224. package/{ui.navigation-tab → src/ui.navigation-tab}/composables/attrs.composable.js +2 -2
  225. package/{ui.navigation-tab → src/ui.navigation-tab}/index.stories.js +3 -3
  226. package/{ui.navigation-tab → src/ui.navigation-tab}/index.vue +1 -1
  227. package/{ui.navigation-tabs → src/ui.navigation-tabs}/composables/attrs.composable.js +2 -2
  228. package/{ui.navigation-tabs → src/ui.navigation-tabs}/index.stories.js +2 -2
  229. package/{ui.navigation-tabs → src/ui.navigation-tabs}/index.vue +2 -2
  230. package/src/ui.notify/index.stories.js +102 -0
  231. package/src/ui.notify/index.vue +248 -0
  232. package/src/ui.notify/services/index.js +87 -0
  233. package/{ui.other-dot → src/ui.other-dot}/composables/attrs.composable.js +2 -2
  234. package/{ui.other-dot → src/ui.other-dot}/index.stories.js +3 -3
  235. package/{ui.other-dot → src/ui.other-dot}/index.vue +1 -1
  236. package/{ui.other-loader → src/ui.other-loader}/composables/attrs.composable.js +2 -2
  237. package/{ui.other-loader → src/ui.other-loader}/index.stories.js +3 -3
  238. package/{ui.other-loader → src/ui.other-loader}/index.vue +1 -1
  239. package/{ui.text-alert → src/ui.text-alert}/composables/attrs.composable.js +2 -2
  240. package/{ui.text-alert → src/ui.text-alert}/configs/default.config.js +1 -1
  241. package/{ui.text-alert → src/ui.text-alert}/index.stories.js +3 -3
  242. package/{ui.text-alert → src/ui.text-alert}/index.vue +2 -2
  243. package/src/ui.text-badge/Docs.mdx +16 -0
  244. package/{ui.text-badge → src/ui.text-badge}/composables/attrs.composable.js +2 -2
  245. package/{ui.text-badge → src/ui.text-badge}/index.stories.js +5 -5
  246. package/{ui.text-badge → src/ui.text-badge}/index.vue +1 -1
  247. package/{ui.text-block → src/ui.text-block}/composables/attrs.composable.js +2 -2
  248. package/{ui.text-block → src/ui.text-block}/index.stories.js +3 -3
  249. package/{ui.text-block → src/ui.text-block}/index.vue +1 -1
  250. package/src/ui.text-empty/Docs.mdx +16 -0
  251. package/{ui.text-empty → src/ui.text-empty}/composables/attrs.composable.js +2 -2
  252. package/{ui.text-empty → src/ui.text-empty}/index.stories.js +5 -5
  253. package/{ui.text-empty → src/ui.text-empty}/index.vue +1 -1
  254. package/{ui.text-file → src/ui.text-file}/composables/attrs.composable.js +2 -2
  255. package/{ui.text-file → src/ui.text-file}/index.stories.js +2 -2
  256. package/{ui.text-file → src/ui.text-file}/index.vue +3 -3
  257. package/{ui.text-files → src/ui.text-files}/composables/attrs.composable.js +1 -1
  258. package/{ui.text-files → src/ui.text-files}/index.stories.js +2 -2
  259. package/{ui.text-files → src/ui.text-files}/index.vue +2 -2
  260. package/src/ui.text-header/Docs.mdx +16 -0
  261. package/{ui.text-header → src/ui.text-header}/composables/attrs.composable.js +2 -2
  262. package/{ui.text-header → src/ui.text-header}/index.stories.js +3 -3
  263. package/{ui.text-header → src/ui.text-header}/index.vue +1 -1
  264. package/src/ui.text-money/Docs.mdx +16 -0
  265. package/{ui.text-money → src/ui.text-money}/composables/attrs.composable.js +2 -2
  266. package/{ui.text-money → src/ui.text-money}/index.stories.js +6 -6
  267. package/{ui.text-money → src/ui.text-money}/index.vue +1 -1
  268. package/src/ui.viewport/index.vue +78 -0
  269. package/src/ui.viewport/store/index.js +47 -0
  270. package/tailwind.config.js +69 -0
  271. package/vite.config.mjs +39 -0
  272. package/vueless.config.js +7 -0
  273. package/web-types.json +7187 -0
  274. package/library.vue-tailwind-3/TDatepicker/components/t-date-trigger.js +0 -257
  275. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-navigator.js +0 -600
  276. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-time-selector.js +0 -522
  277. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days-day.js +0 -289
  278. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days.js +0 -236
  279. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-headers.js +0 -64
  280. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar.js +0 -159
  281. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months-month.js +0 -106
  282. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months.js +0 -97
  283. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years-year.js +0 -117
  284. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years.js +0 -104
  285. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view.js +0 -294
  286. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views.js +0 -212
  287. package/library.vue-tailwind-3/TDatepicker/components/t-toggle.js +0 -323
  288. package/library.vue-tailwind-3/TDatepicker/index.js +0 -1051
  289. package/library.vue-tailwind-3/base/Component.js +0 -126
  290. package/library.vue-tailwind-3/base/HtmlInput.js +0 -38
  291. package/library.vue-tailwind-3/base/TextInput.js +0 -102
  292. package/library.vue-tailwind-3/index.js +0 -7
  293. package/library.vue-tailwind-3/l10n/ar.js +0 -27
  294. package/library.vue-tailwind-3/l10n/at.js +0 -29
  295. package/library.vue-tailwind-3/l10n/az.js +0 -40
  296. package/library.vue-tailwind-3/l10n/be.js +0 -35
  297. package/library.vue-tailwind-3/l10n/bg.js +0 -41
  298. package/library.vue-tailwind-3/l10n/bn.js +0 -39
  299. package/library.vue-tailwind-3/l10n/bs.js +0 -28
  300. package/library.vue-tailwind-3/l10n/cat.js +0 -59
  301. package/library.vue-tailwind-3/l10n/cs.js +0 -35
  302. package/library.vue-tailwind-3/l10n/cy.js +0 -68
  303. package/library.vue-tailwind-3/l10n/da.js +0 -31
  304. package/library.vue-tailwind-3/l10n/de.js +0 -30
  305. package/library.vue-tailwind-3/l10n/default.js +0 -54
  306. package/library.vue-tailwind-3/l10n/eo.js +0 -31
  307. package/library.vue-tailwind-3/l10n/es.js +0 -32
  308. package/library.vue-tailwind-3/l10n/et.js +0 -46
  309. package/library.vue-tailwind-3/l10n/fa.js +0 -41
  310. package/library.vue-tailwind-3/l10n/fi.js +0 -50
  311. package/library.vue-tailwind-3/l10n/fo.js +0 -40
  312. package/library.vue-tailwind-3/l10n/fr.js +0 -48
  313. package/library.vue-tailwind-3/l10n/ga.js +0 -36
  314. package/library.vue-tailwind-3/l10n/gr.js +0 -33
  315. package/library.vue-tailwind-3/l10n/he.js +0 -41
  316. package/library.vue-tailwind-3/l10n/hi.js +0 -39
  317. package/library.vue-tailwind-3/l10n/hr.js +0 -41
  318. package/library.vue-tailwind-3/l10n/hu.js +0 -46
  319. package/library.vue-tailwind-3/l10n/id.js +0 -30
  320. package/library.vue-tailwind-3/l10n/index.js +0 -127
  321. package/library.vue-tailwind-3/l10n/is.js +0 -40
  322. package/library.vue-tailwind-3/l10n/it.js +0 -31
  323. package/library.vue-tailwind-3/l10n/ja.js +0 -42
  324. package/library.vue-tailwind-3/l10n/ka.js +0 -35
  325. package/library.vue-tailwind-3/l10n/km.js +0 -45
  326. package/library.vue-tailwind-3/l10n/ko.js +0 -41
  327. package/library.vue-tailwind-3/l10n/kz.js +0 -34
  328. package/library.vue-tailwind-3/l10n/lt.js +0 -41
  329. package/library.vue-tailwind-3/l10n/lv.js +0 -37
  330. package/library.vue-tailwind-3/l10n/mk.js +0 -30
  331. package/library.vue-tailwind-3/l10n/mn.js +0 -42
  332. package/library.vue-tailwind-3/l10n/ms.js +0 -28
  333. package/library.vue-tailwind-3/l10n/my.js +0 -42
  334. package/library.vue-tailwind-3/l10n/nl.js +0 -48
  335. package/library.vue-tailwind-3/l10n/no.js +0 -31
  336. package/library.vue-tailwind-3/l10n/pa.js +0 -27
  337. package/library.vue-tailwind-3/l10n/pl.js +0 -31
  338. package/library.vue-tailwind-3/l10n/pt.js +0 -36
  339. package/library.vue-tailwind-3/l10n/ro.js +0 -29
  340. package/library.vue-tailwind-3/l10n/ru.js +0 -48
  341. package/library.vue-tailwind-3/l10n/si.js +0 -40
  342. package/library.vue-tailwind-3/l10n/sk.js +0 -32
  343. package/library.vue-tailwind-3/l10n/sl.js +0 -32
  344. package/library.vue-tailwind-3/l10n/sq.js +0 -27
  345. package/library.vue-tailwind-3/l10n/sr-cyr.js +0 -29
  346. package/library.vue-tailwind-3/l10n/sr.js +0 -30
  347. package/library.vue-tailwind-3/l10n/sv.js +0 -30
  348. package/library.vue-tailwind-3/l10n/th.js +0 -43
  349. package/library.vue-tailwind-3/l10n/tr.js +0 -32
  350. package/library.vue-tailwind-3/l10n/uk.js +0 -28
  351. package/library.vue-tailwind-3/l10n/uz.js +0 -35
  352. package/library.vue-tailwind-3/l10n/uz_latn.js +0 -48
  353. package/library.vue-tailwind-3/l10n/vn.js +0 -41
  354. package/library.vue-tailwind-3/l10n/zh-tw.js +0 -41
  355. package/library.vue-tailwind-3/l10n/zh.js +0 -41
  356. package/library.vue-tailwind-3/services/date.service.js +0 -294
  357. package/library.vue-tailwind-3/services/formatting.service.js +0 -205
  358. package/library.vue-tailwind-3/services/vueTailwind.service.js +0 -41
  359. package/library.vue-tailwind-3/t-alert.js +0 -151
  360. package/library.vue-tailwind-3/t-button.js +0 -243
  361. package/library.vue-tailwind-3/t-card.js +0 -98
  362. package/library.vue-tailwind-3/t-checkbox.js +0 -292
  363. package/library.vue-tailwind-3/t-dropdown.js +0 -322
  364. package/library.vue-tailwind-3/t-radio.js +0 -301
  365. package/ui.container-card/Docs.mdx +0 -16
  366. package/ui.container-divider/Docs.mdx +0 -16
  367. package/ui.container-group/Docs.mdx +0 -16
  368. package/ui.container-groups/Docs.mdx +0 -16
  369. package/ui.container-modal/Docs.mdx +0 -16
  370. package/ui.container-modal-confirm/Docs.mdx +0 -16
  371. package/ui.container-page/Docs.mdx +0 -16
  372. package/ui.container-row/Docs.mdx +0 -16
  373. package/ui.data-table/Docs.mdx +0 -16
  374. package/ui.dropdown-badge/Docs.mdx +0 -16
  375. package/ui.dropdown-button/Docs.mdx +0 -16
  376. package/ui.dropdown-item/Docs.mdx +0 -16
  377. package/ui.dropdown-link/Docs.mdx +0 -16
  378. package/ui.dropdown-list/Docs.mdx +0 -16
  379. package/ui.form-calendar/services/date.service.js +0 -121
  380. package/ui.form-checkbox/Docs.mdx +0 -16
  381. package/ui.form-checkbox-group/Docs.mdx +0 -16
  382. package/ui.form-checkbox-multi-state/Docs.mdx +0 -16
  383. package/ui.form-input/Docs.mdx +0 -16
  384. package/ui.form-input-money/Docs.mdx +0 -16
  385. package/ui.form-input-number/Docs.mdx +0 -16
  386. package/ui.form-label/Docs.mdx +0 -16
  387. package/ui.form-radio/Docs.mdx +0 -16
  388. package/ui.form-radio-card/Docs.mdx +0 -16
  389. package/ui.form-radio-group/Docs.mdx +0 -16
  390. package/ui.form-select/Docs.mdx +0 -16
  391. package/ui.form-textarea/Docs.mdx +0 -16
  392. package/ui.image-icon/Docs.mdx +0 -16
  393. package/ui.text-badge/Docs.mdx +0 -16
  394. package/ui.text-empty/Docs.mdx +0 -16
  395. package/ui.text-header/Docs.mdx +0 -16
  396. package/ui.text-money/Docs.mdx +0 -16
  397. /package/{library.web-types-gen → .web-types-gen}/index.js +0 -0
  398. /package/{library.web-types-gen → .web-types-gen}/lib/build.js +0 -0
  399. /package/{library.web-types-gen → .web-types-gen}/package.json +0 -0
  400. /package/{_readme → readme}/README.md +0 -0
  401. /package/{_readme → readme}/UGroup.md +0 -0
  402. /package/{_readme → readme}/UNotify.md +0 -0
  403. /package/{_readme → readme}/UPage.md +0 -0
  404. /package/{_readme → readme}/UTopLoader.md +0 -0
  405. /package/{_readme → readme}/customization.md +0 -0
  406. /package/{_readme → readme}/installation.md +0 -0
  407. /package/{_readme → readme}/storybook-pages/Customisation.mdx +0 -0
  408. /package/{_readme → readme}/storybook-pages/Installation.mdx +0 -0
  409. /package/{library.web-types-gen → src/library.web-types-gen}/lib/config.js +0 -0
  410. /package/{plugin.vite → src/plugin.vite}/index.js +0 -0
  411. /package/{plugin.vite → src/plugin.vite}/services/svgLoader.service.js +0 -0
  412. /package/{plugin.vite → src/plugin.vite}/services/unpluginComponentsResolver.js +0 -0
  413. /package/{service.storybook → src/service.storybook}/index.js +0 -0
  414. /package/{ui.button → src/ui.button}/constants/index.js +0 -0
  415. /package/{ui.button-link → src/ui.button-link}/constants/index.js +0 -0
  416. /package/{ui.button-toggle → src/ui.button-toggle}/configs/default.config.js +0 -0
  417. /package/{ui.button-toggle → src/ui.button-toggle}/constants/index.js +0 -0
  418. /package/{ui.button-toggle-item → src/ui.button-toggle-item}/configs/default.config.js +0 -0
  419. /package/{ui.button-toggle-item → src/ui.button-toggle-item}/constants/index.js +0 -0
  420. /package/{ui.container-accordion → src/ui.container-accordion}/configs/default.config.js +0 -0
  421. /package/{ui.container-accordion → src/ui.container-accordion}/constants/index.js +0 -0
  422. /package/{ui.container-card → src/ui.container-card}/configs/default.config.js +0 -0
  423. /package/{ui.container-card → src/ui.container-card}/constants/index.js +0 -0
  424. /package/{ui.container-divider → src/ui.container-divider}/configs/default.config.js +0 -0
  425. /package/{ui.container-divider → src/ui.container-divider}/constants/index.js +0 -0
  426. /package/{ui.container-group → src/ui.container-group}/configs/default.config.js +0 -0
  427. /package/{ui.container-group → src/ui.container-group}/constants/index.js +0 -0
  428. /package/{ui.container-groups → src/ui.container-groups}/configs/default.config.js +0 -0
  429. /package/{ui.container-groups → src/ui.container-groups}/index.vue +0 -0
  430. /package/{ui.container-modal → src/ui.container-modal}/configs/default.config.js +0 -0
  431. /package/{ui.container-modal → src/ui.container-modal}/constants/index.js +0 -0
  432. /package/{ui.container-modal-confirm → src/ui.container-modal-confirm}/constants/index.js +0 -0
  433. /package/{ui.container-page → src/ui.container-page}/configs/default.config.js +0 -0
  434. /package/{ui.container-page → src/ui.container-page}/constants/index.js +0 -0
  435. /package/{ui.container-row → src/ui.container-row}/configs/default.config.js +0 -0
  436. /package/{ui.container-row → src/ui.container-row}/constants/index.js +0 -0
  437. /package/{ui.data-list → src/ui.data-list}/configs/default.config.js +0 -0
  438. /package/{ui.data-list → src/ui.data-list}/constants/index.js +0 -0
  439. /package/{ui.data-table → src/ui.data-table}/constants/index.js +0 -0
  440. /package/{ui.data-table → src/ui.data-table}/services/table.service.js +0 -0
  441. /package/{ui.data-table-cell → src/ui.data-table-cell}/configs/default.config.js +0 -0
  442. /package/{ui.data-table-cell → src/ui.data-table-cell}/constants/index.js +0 -0
  443. /package/{ui.dropdown-badge → src/ui.dropdown-badge}/configs/default.config.js +0 -0
  444. /package/{ui.dropdown-badge → src/ui.dropdown-badge}/constants/index.js +0 -0
  445. /package/{ui.dropdown-button → src/ui.dropdown-button}/configs/default.config.js +0 -0
  446. /package/{ui.dropdown-button → src/ui.dropdown-button}/constants/index.js +0 -0
  447. /package/{ui.dropdown-item → src/ui.dropdown-item}/configs/default.config.js +0 -0
  448. /package/{ui.dropdown-item → src/ui.dropdown-item}/index.vue +0 -0
  449. /package/{ui.dropdown-link → src/ui.dropdown-link}/configs/default.config.js +0 -0
  450. /package/{ui.dropdown-link → src/ui.dropdown-link}/constants/index.js +0 -0
  451. /package/{ui.dropdown-list → src/ui.dropdown-list}/composables/usePointer.js +0 -0
  452. /package/{ui.dropdown-list → src/ui.dropdown-list}/constants/index.js +0 -0
  453. /package/{ui.form-calendar → src/ui.form-calendar}/components/MonthView.vue +0 -0
  454. /package/{ui.form-calendar → src/ui.form-calendar}/components/YearView.vue +0 -0
  455. /package/{ui.form-calendar → src/ui.form-calendar}/services/formatting.service.js +0 -0
  456. /package/{ui.form-checkbox → src/ui.form-checkbox}/constants/index.js +0 -0
  457. /package/{ui.form-checkbox-group → src/ui.form-checkbox-group}/configs/default.config.js +0 -0
  458. /package/{ui.form-checkbox-group → src/ui.form-checkbox-group}/constants/index.js +0 -0
  459. /package/{ui.form-checkbox-multi-state → src/ui.form-checkbox-multi-state}/configs/default.config.js +0 -0
  460. /package/{ui.form-checkbox-multi-state → src/ui.form-checkbox-multi-state}/constants/index.js +0 -0
  461. /package/{ui.form-color-picker → src/ui.form-color-picker}/configs/default.config.js +0 -0
  462. /package/{ui.form-color-picker → src/ui.form-color-picker}/constants/index.js +0 -0
  463. /package/{ui.form-date-picker → src/ui.form-date-picker}/constants/index.js +0 -0
  464. /package/{ui.form-input → src/ui.form-input}/assets/fonts/text-security-disc.woff +0 -0
  465. /package/{ui.form-input → src/ui.form-input}/configs/default.config.js +0 -0
  466. /package/{ui.form-input → src/ui.form-input}/constants/index.js +0 -0
  467. /package/{ui.form-input-file → src/ui.form-input-file}/constants/index.js +0 -0
  468. /package/{ui.form-input-money → src/ui.form-input-money}/composables/useFormatCurrency.js +0 -0
  469. /package/{ui.form-input-money → src/ui.form-input-money}/configs/default.config.js +0 -0
  470. /package/{ui.form-input-money → src/ui.form-input-money}/constants/index.js +0 -0
  471. /package/{ui.form-input-money → src/ui.form-input-money}/services/format.service.js +0 -0
  472. /package/{ui.form-input-number → src/ui.form-input-number}/configs/default.config.js +0 -0
  473. /package/{ui.form-input-number → src/ui.form-input-number}/constants/index.js +0 -0
  474. /package/{ui.form-input-rating → src/ui.form-input-rating}/configs/default.config.js +0 -0
  475. /package/{ui.form-input-rating → src/ui.form-input-rating}/constants/index.js +0 -0
  476. /package/{ui.form-input-search → src/ui.form-input-search}/configs/default.config.js +0 -0
  477. /package/{ui.form-input-search → src/ui.form-input-search}/constants/index.js +0 -0
  478. /package/{ui.form-label → src/ui.form-label}/configs/default.config.js +0 -0
  479. /package/{ui.form-label → src/ui.form-label}/constants/index.js +0 -0
  480. /package/{ui.form-radio → src/ui.form-radio}/configs/default.config.js +0 -0
  481. /package/{ui.form-radio → src/ui.form-radio}/constants/index.js +0 -0
  482. /package/{ui.form-radio-card → src/ui.form-radio-card}/constants/index.js +0 -0
  483. /package/{ui.form-radio-group → src/ui.form-radio-group}/configs/default.config.js +0 -0
  484. /package/{ui.form-radio-group → src/ui.form-radio-group}/constants/index.js +0 -0
  485. /package/{ui.form-select → src/ui.form-select}/constants/index.js +0 -0
  486. /package/{ui.form-select → src/ui.form-select}/services/select.service.js +0 -0
  487. /package/{ui.form-switch → src/ui.form-switch}/constants/index.js +0 -0
  488. /package/{ui.form-textarea → src/ui.form-textarea}/configs/default.config.js +0 -0
  489. /package/{ui.form-textarea → src/ui.form-textarea}/constants/index.js +0 -0
  490. /package/{ui.image-avatar → src/ui.image-avatar}/configs/default.config.js +0 -0
  491. /package/{ui.image-avatar → src/ui.image-avatar}/constants/index.js +0 -0
  492. /package/{ui.image-avatar → src/ui.image-avatar}/default-avatar.png +0 -0
  493. /package/{ui.image-icon → src/ui.image-icon}/configs/default.config.js +0 -0
  494. /package/{ui.image-icon → src/ui.image-icon}/constants/index.js +0 -0
  495. /package/{ui.image-logo → src/ui.image-logo}/configs/default.config.js +0 -0
  496. /package/{ui.image-logo → src/ui.image-logo}/constants/index.js +0 -0
  497. /package/{ui.navigation-pagination → src/ui.navigation-pagination}/configs/default.config.js +0 -0
  498. /package/{ui.navigation-pagination → src/ui.navigation-pagination}/constants/index.js +0 -0
  499. /package/{ui.navigation-stepper → src/ui.navigation-stepper}/configs/default.config.js +0 -0
  500. /package/{ui.navigation-stepper → src/ui.navigation-stepper}/constants/index.js +0 -0
  501. /package/{ui.navigation-tab → src/ui.navigation-tab}/configs/default.config.js +0 -0
  502. /package/{ui.navigation-tab → src/ui.navigation-tab}/constants/index.js +0 -0
  503. /package/{ui.navigation-tabs → src/ui.navigation-tabs}/configs/default.config.js +0 -0
  504. /package/{ui.navigation-tabs → src/ui.navigation-tabs}/constants/index.js +0 -0
  505. /package/{ui.other-dot → src/ui.other-dot}/configs/default.config.js +0 -0
  506. /package/{ui.other-dot → src/ui.other-dot}/constants/index.js +0 -0
  507. /package/{ui.other-loader → src/ui.other-loader}/configs/default.config.js +0 -0
  508. /package/{ui.other-loader → src/ui.other-loader}/constants/index.js +0 -0
  509. /package/{ui.text-alert → src/ui.text-alert}/constatns/index.js +0 -0
  510. /package/{ui.text-badge → src/ui.text-badge}/configs/default.config.js +0 -0
  511. /package/{ui.text-badge → src/ui.text-badge}/constants/index.js +0 -0
  512. /package/{ui.text-block → src/ui.text-block}/configs/default.config.js +0 -0
  513. /package/{ui.text-block → src/ui.text-block}/constatns/index.js +0 -0
  514. /package/{ui.text-empty → src/ui.text-empty}/configs/default.config.js +0 -0
  515. /package/{ui.text-empty → src/ui.text-empty}/constants/index.js +0 -0
  516. /package/{ui.text-file → src/ui.text-file}/configs/default.config.js +0 -0
  517. /package/{ui.text-files → src/ui.text-files}/configs/default.config.js +0 -0
  518. /package/{ui.text-files → src/ui.text-files}/constants/index.js +0 -0
  519. /package/{ui.text-header → src/ui.text-header}/configs/default.config.js +0 -0
  520. /package/{ui.text-header → src/ui.text-header}/constants/index.js +0 -0
  521. /package/{ui.text-money → src/ui.text-money}/assets/credit.svg +0 -0
  522. /package/{ui.text-money → src/ui.text-money}/assets/debit.svg +0 -0
  523. /package/{ui.text-money → src/ui.text-money}/configs/default.config.js +0 -0
  524. /package/{ui.text-money → src/ui.text-money}/constants/index.js +0 -0
  525. /package/{ui.text-money → src/ui.text-money}/services/money.services.js +0 -0
@@ -1,1051 +0,0 @@
1
- import { h } from "vue";
2
- import isEqual from "lodash.isequal";
3
- import cloneDeep from "lodash.clonedeep";
4
-
5
- import TDropdown from "../t-dropdown";
6
- import {
7
- buildDateParser,
8
- buildDateFormatter,
9
- compareDates,
10
- addDays,
11
- addMonths,
12
- addYears,
13
- dayIsPartOfTheConditions,
14
- dateIsOutOfRange,
15
- isSameDay,
16
- extractLocaleFromProps,
17
- } from "../services/date.service";
18
- import HtmlInput from "../base/HtmlInput";
19
- import { English } from "../l10n/default";
20
- import TDatepickerTrigger from "./components/t-date-trigger";
21
- import TDatepickerViews from "./components/t-datepicker-views";
22
- import TDatepickerTimeSelector from "./components/t-datepicker-time-selector";
23
- import VueTailwindService from "../services/vueTailwind.service";
24
-
25
- const { isNumeric } = VueTailwindService;
26
-
27
- var CalendarView;
28
-
29
- (function (CalendarView) {
30
- CalendarView["Day"] = "day";
31
- CalendarView["Month"] = "month";
32
- CalendarView["Year"] = "year";
33
- })(CalendarView || (CalendarView = {}));
34
-
35
- var Key;
36
-
37
- (function (Key) {
38
- Key[(Key["LEFT"] = 37)] = "LEFT";
39
- Key[(Key["UP"] = 38)] = "UP";
40
- Key[(Key["RIGHT"] = 39)] = "RIGHT";
41
- Key[(Key["DOWN"] = 40)] = "DOWN";
42
- Key[(Key["ENTER"] = 13)] = "ENTER";
43
- Key[(Key["ESC"] = 27)] = "ESC";
44
- Key[(Key["SPACE"] = 32)] = "SPACE";
45
- Key[(Key["BACKSPACE"] = 8)] = "BACKSPACE";
46
- })(Key || (Key = {}));
47
-
48
- const getInitialActiveDate = (localValue, initialDate, dateFormat, parse, amPm, initialTime) => {
49
- if (Array.isArray(localValue) && localValue.length) {
50
- return localValue[localValue.length - 1];
51
- }
52
-
53
- if (localValue instanceof Date) {
54
- return localValue;
55
- }
56
-
57
- const activeDate = parse(initialDate, dateFormat) || new Date();
58
-
59
- if (initialTime) {
60
- const parsedDateWithTime = parse(initialTime, amPm ? "G:i:S K" : "H:i:S");
61
-
62
- if (parsedDateWithTime) {
63
- activeDate.setHours(parsedDateWithTime.getHours());
64
- activeDate.setMinutes(parsedDateWithTime.getMinutes());
65
- activeDate.setSeconds(parsedDateWithTime.getSeconds());
66
- }
67
- }
68
-
69
- return activeDate;
70
- };
71
-
72
- const TDatepicker = {
73
- name: "TDatepicker",
74
- mixins: [HtmlInput],
75
- emits: [
76
- "shown",
77
- "hidden",
78
- "keydown",
79
- "blur",
80
- "focus",
81
- "user-date-changed",
82
- "change",
83
- "input",
84
- "active-change",
85
- "update:show",
86
- "update:modelValue",
87
- ],
88
- props: {
89
- modelValue: {
90
- type: [Date, String, Number, Array],
91
- default: null,
92
- },
93
- value: {
94
- type: [Date, String, Number, Array],
95
- default: null,
96
- },
97
- placeholder: {
98
- type: String,
99
- default: undefined,
100
- },
101
- inputName: {
102
- type: String,
103
- default: undefined,
104
- },
105
- weekStart: {
106
- type: Number,
107
- default: 0,
108
- },
109
- monthsPerView: {
110
- type: Number,
111
- default: 1,
112
- validator(value) {
113
- return value >= 1;
114
- },
115
- },
116
- lang: {
117
- type: String,
118
- default: "en",
119
- },
120
- locale: {
121
- type: Object,
122
- default: () => English,
123
- },
124
- locales: {
125
- type: Object,
126
- default: () => ({}),
127
- },
128
- dateFormat: {
129
- type: String,
130
- default: "Y-m-d",
131
- },
132
- userFormat: {
133
- type: String,
134
- default: "F j, Y",
135
- },
136
- dateFormatter: {
137
- type: Function,
138
- default: undefined,
139
- },
140
- dateParser: {
141
- type: Function,
142
- default: undefined,
143
- },
144
- closeOnSelect: {
145
- type: Boolean,
146
- default: true,
147
- },
148
- showDaysForOtherMonth: {
149
- type: Boolean,
150
- default: true,
151
- },
152
- show: {
153
- type: Boolean,
154
- default: false,
155
- },
156
- inline: {
157
- type: Boolean,
158
- default: false,
159
- },
160
- initialView: {
161
- type: String,
162
- default: CalendarView.Day,
163
- validator(value) {
164
- return [CalendarView.Day, CalendarView.Month, CalendarView.Year].includes(value);
165
- },
166
- },
167
- yearsPerView: {
168
- type: Number,
169
- default: 12,
170
- },
171
- disabledDates: {
172
- type: [Date, Array, Function, String],
173
- default: undefined,
174
- },
175
- highlightDates: {
176
- type: [Date, Array, Function, String],
177
- default: undefined,
178
- },
179
- maxDate: {
180
- type: [Date, String],
181
- default: undefined,
182
- },
183
- minDate: {
184
- type: [Date, String],
185
- default: undefined,
186
- },
187
- initialDate: {
188
- type: [Date, String],
189
- default: undefined,
190
- },
191
- initialTime: {
192
- type: String,
193
- default: undefined,
194
- },
195
- conjunction: {
196
- type: String,
197
- default: ",",
198
- },
199
- multiple: {
200
- type: Boolean,
201
- default: false,
202
- },
203
- range: {
204
- type: Boolean,
205
- default: false,
206
- },
207
- clearable: {
208
- type: Boolean,
209
- default: true,
210
- },
211
- datepicker: {
212
- type: Boolean,
213
- default: true,
214
- },
215
- timepicker: {
216
- type: Boolean,
217
- default: false,
218
- },
219
- amPm: {
220
- type: Boolean,
221
- default: false,
222
- },
223
- showSeconds: {
224
- type: Boolean,
225
- default: false,
226
- },
227
- dataCy: {
228
- type: String,
229
- default: "",
230
- },
231
- classes: {
232
- type: Object,
233
- default: () => ({
234
- wrapper: "flex flex-col",
235
- dropdownWrapper: "relative z-10",
236
-
237
- // Dropdown related classes
238
- dropdown: "origin-top-left absolute rounded shadow bg-white overflow-hidden mt-1",
239
- enterFromClass: "opacity-0 scale-95",
240
- enterActiveClass: "transition transform ease-out duration-100",
241
- enterToClass: "opacity-100 scale-100",
242
- leaveFrom: "opacity-100 scale-100",
243
- leaveActiveClass: "transition transform ease-in duration-75",
244
- leaveToClass: "opacity-0 scale-95",
245
-
246
- // Wrapper for inline calendar
247
- inlineWrapper: "",
248
- inlineViews: "rounded bg-white border mt-1 inline-flex flex-col",
249
-
250
- // Text input related classes
251
- inputWrapper: "",
252
- input: `block w-full px-3 py-2 text-black placeholder-gray-400 transition duration-100 ease-in-out
253
- bg-white border border-gray-300 rounded shadow-sm focus:border-blue-500 focus:ring-2
254
- focus:ring-blue-500 focus:outline-none focus:ring-opacity-50 disabled:opacity-50
255
- disabled:cursor-not-allowed`,
256
- clearButton: "hover:bg-gray-100 rounded transition duration-100 ease-in-out text-gray-600",
257
- clearButtonIcon: "",
258
-
259
- // Picker views
260
- viewGroup: "",
261
- view: "",
262
-
263
- // Navigator
264
- navigator: "pt-2 px-3",
265
- navigatorViewButton: `transition ease-in-out duration-100 inline-flex cursor-pointer
266
- rounded-full px-2 py-1 -ml-1 hover:bg-gray-100`,
267
- navigatorViewButtonIcon: "fill-current text-gray-400",
268
- navigatorViewButtonBackIcon: "fill-current text-gray-400",
269
- navigatorViewButtonMonth: "text-gray-700 font-semibold",
270
- navigatorViewButtonYear: "text-gray-500 ml-1",
271
- navigatorViewButtonYearRange: "text-gray-500 ml-1",
272
- navigatorLabel: "py-1",
273
- navigatorLabelMonth: "text-gray-700 font-semibold",
274
- navigatorLabelYear: "text-gray-500 ml-1",
275
- navigatorPrevButton: `transition ease-in-out duration-100 inline-flex cursor-pointer
276
- hover:bg-gray-100 rounded-full p-1 ml-2 ml-auto disabled:opacity-50 disabled:cursor-not-allowed`,
277
- navigatorNextButton: `transition ease-in-out duration-100 inline-flex cursor-pointer
278
- hover:bg-gray-100 rounded-full p-1 -mr-1 disabled:opacity-50 disabled:cursor-not-allowed`,
279
- navigatorPrevButtonIcon: "text-gray-400",
280
- navigatorNextButtonIcon: "text-gray-400",
281
-
282
- // Calendar View
283
- calendarWrapper: "px-3 py-2",
284
- calendarHeaderWrapper: "",
285
- calendarHeaderWeekDay:
286
- "uppercase text-xs text-gray-500 w-8 h-8 flex items-center justify-center",
287
- calendarDaysWrapper: "",
288
- calendarDaysDayWrapper: "w-full h-8 flex flex-shrink-0 items-center",
289
-
290
- // Day item
291
- otherMonthDay: `text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 text-gray-400
292
- disabled:opacity-50 disabled:cursor-not-allowed`,
293
- emptyDay: "",
294
- inRangeFirstDay: "text-sm bg-blue-500 text-white w-full h-8 rounded-l-full",
295
- inRangeLastDay: "text-sm bg-blue-500 text-white w-full h-8 rounded-r-full",
296
- inRangeDay:
297
- "text-sm bg-blue-200 w-full h-8 disabled:opacity-50 disabled:cursor-not-allowed",
298
- selectedDay:
299
- "text-sm rounded-full w-8 h-8 mx-auto bg-blue-500 text-white disabled:opacity-50 disabled:cursor-not-allowed",
300
- activeDay:
301
- "text-sm rounded-full bg-blue-100 w-8 h-8 mx-auto disabled:opacity-50 disabled:cursor-not-allowed",
302
- highlightedDay:
303
- "text-sm rounded-full bg-blue-200 w-8 h-8 mx-auto disabled:opacity-50 disabled:cursor-not-allowed",
304
- day: "text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 disabled:opacity-50 disabled:cursor-not-allowed",
305
- today: `text-sm rounded-full w-8 h-8 mx-auto hover:bg-blue-100 disabled:opacity-50 disabled:cursor-not-allowed
306
- border border-blue-500`,
307
-
308
- // Months View
309
- monthWrapper: "px-3 py-2",
310
- selectedMonth: "text-sm rounded w-full h-12 mx-auto bg-blue-500 text-white",
311
- activeMonth: "text-sm rounded w-full h-12 mx-auto bg-blue-100",
312
- month: "text-sm rounded w-full h-12 mx-auto hover:bg-blue-100",
313
-
314
- // Years View
315
- yearWrapper: "px-3 py-2",
316
- year: "text-sm rounded w-full h-12 mx-auto hover:bg-blue-100",
317
- selectedYear: "text-sm rounded w-full h-12 mx-auto bg-blue-500 text-white",
318
- activeYear: "text-sm rounded w-full h-12 mx-auto bg-blue-100",
319
-
320
- // Time selector
321
- timepickerWrapper: "flex items-center px-4 py-2 space-x-2",
322
- timepickerTimeWrapper: "flex items-center space-x-2",
323
- timepickerTimeFieldsWrapper: `bg-gray-100 rounded-md w-full text-right flex items-center
324
- border border-gray-100 focus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none
325
- focus:ring-opacity-50`,
326
- timepickerOkButton: `text-blue-600 text-sm uppercase font-semibold transition duration-100 ease-in-out
327
- border border-transparentfocus:border-blue-500 focus:ring-2 focus:ring-blue-500 focus:outline-none
328
- focus:ring-opacity-50 rounded cursor-pointer`,
329
- timepickerInput: `text-center w-8 border-transparent bg-transparent p-0 h-6 text-sm transition duration-100
330
- ease-in-out border border-transparent focus:border-blue-500 focus:ring-2 focus:ring-blue-500
331
- focus:outline-none focus:ring-opacity-50 rounded`,
332
- timepickerTimeLabel: "flex-grow text-sm text-gray-500",
333
- timepickerAmPmWrapper: `relative inline-flex flex-shrink-0 transition duration-200 ease-in-out bg-gray-100
334
- border border-transparent rounded cursor-pointer focus:border-blue-500 focus:ring-2 focus:ring-blue-500
335
- focus:outline-none focus:ring-opacity-50`,
336
- timepickerAmPmWrapperChecked: `relative inline-flex flex-shrink-0 transition duration-200 ease-in-out
337
- bg-gray-100 border border-transparent rounded cursor-pointer focus:border-blue-500 focus:ring-2
338
- focus:ring-blue-500 focus:outline-none focus:ring-opacity-50`,
339
- timepickerAmPmWrapperDisabled:
340
- "relative inline-flex flex-shrink-0 transition duration-200 ease-in-out opacity-50 cursor-not-allowed",
341
- timepickerAmPmWrapperCheckedDisabled:
342
- "relative inline-flex flex-shrink-0 transition duration-200 ease-in-out opacity-50 cursor-not-allowed",
343
- timepickerAmPmButton: `absolute flex items-center justify-center w-6 h-6 text-xs text-gray-800
344
- transition duration-200 ease-in-out transform translate-x-0 bg-white rounded shadow`,
345
- timepickerAmPmButtonChecked: `absolute flex items-center justify-center w-6 h-6 text-xs text-gray-800
346
- transition duration-200 ease-in-out transform translate-x-full bg-white rounded shadow`,
347
- timepickerAmPmCheckedPlaceholder:
348
- "flex items-center justify-center w-6 h-6 text-xs text-gray-500 rounded-sm",
349
- timepickerAmPmUncheckedPlaceholder:
350
- "flex items-center justify-center w-6 h-6 text-xs text-gray-500 rounded-sm",
351
- }),
352
- },
353
- fixedClasses: {
354
- type: Object,
355
- default: () => ({
356
- navigator: "flex",
357
- navigatorViewButton: "flex items-center",
358
- navigatorViewButtonIcon: "flex-shrink-0 h-5 w-5",
359
- navigatorViewButtonBackIcon: "flex-shrink-0 h-5 w-5",
360
- navigatorLabel: "flex items-center py-1",
361
- navigatorPrevButtonIcon: "h-6 w-6 inline-flex",
362
- navigatorNextButtonIcon: "h-6 w-6 inline-flex",
363
-
364
- inputWrapper: "relative",
365
- viewGroup: "inline-flex flex-wrap",
366
- view: "w-64",
367
- calendarDaysWrapper: "grid grid-cols-7",
368
- calendarHeaderWrapper: "grid grid-cols-7",
369
- monthWrapper: "grid grid-cols-4",
370
- yearWrapper: "grid grid-cols-4",
371
-
372
- clearButton:
373
- "flex flex-shrink-0 items-center justify-center absolute right-0 top-0 m-2 h-6 w-6",
374
- clearButtonIcon: "fill-current h-3 w-3",
375
- }),
376
- },
377
- },
378
-
379
- data() {
380
- const currentLocale = extractLocaleFromProps(this.lang, this.locales, this.locale);
381
- const dateFormatter = this.dateFormatter;
382
- const parse = buildDateParser(currentLocale, this.dateParser);
383
- const format = buildDateFormatter(currentLocale, dateFormatter);
384
- // Keep a native formatter for the different views
385
- const formatNative = !dateFormatter ? format : buildDateFormatter(currentLocale);
386
-
387
- let localValue = this.multiple || this.range ? [] : null;
388
-
389
- if (this.modelValue) {
390
- if (Array.isArray(this.modelValue)) {
391
- localValue = this.modelValue
392
- .map((value) => parse(value, this.dateFormat) || null)
393
- .filter((value) => !!value);
394
- } else {
395
- localValue = parse(this.modelValue, this.dateFormat) || localValue;
396
- }
397
- } else {
398
- if (Array.isArray(this.value)) {
399
- localValue = this.value
400
- .map((value) => parse(value, this.dateFormat) || null)
401
- .filter((value) => !!value);
402
- } else {
403
- localValue = parse(this.value, this.dateFormat) || localValue;
404
- }
405
- }
406
-
407
- const formatedDate = Array.isArray(localValue)
408
- ? localValue.map((d) => format(d, this.dateFormat))
409
- : format(localValue, this.dateFormat);
410
-
411
- const userFormatedDate = Array.isArray(localValue)
412
- ? localValue.map((d) => format(d, this.userFormat))
413
- : format(localValue, this.userFormat);
414
-
415
- const activeDate = getInitialActiveDate(
416
- localValue,
417
- this.initialDate,
418
- this.dateFormat,
419
- parse,
420
- this.amPm,
421
- this.initialTime,
422
- );
423
-
424
- // Used to show the selected month/year
425
- const currentView = this.initialView;
426
-
427
- let dateWithoutTime = null;
428
-
429
- if (this.timepicker) {
430
- dateWithoutTime = Array.isArray(localValue) ? localValue[0] : localValue;
431
- }
432
-
433
- return {
434
- localValue,
435
- formatedDate,
436
- userFormatedDate,
437
- activeDate,
438
- shown: this.show,
439
- showActiveDate: false,
440
- currentView,
441
- parse,
442
- format,
443
- formatNative,
444
- currentLocale,
445
- hasFocus: false,
446
- dateWithoutTime,
447
- timeWithoutDate: null,
448
- };
449
- },
450
-
451
- computed: {
452
- visibleRange() {
453
- const start = new Date(this.activeDate.valueOf());
454
- const end = new Date(this.activeDate.valueOf());
455
-
456
- start.setDate(1);
457
- end.setMonth(end.getMonth() + this.monthsPerView, 0);
458
-
459
- return [start, end];
460
- },
461
- latestDate() {
462
- if (Array.isArray(this.localValue)) {
463
- if (this.localValue.length) {
464
- return this.localValue[this.localValue.length - 1] || null;
465
- }
466
-
467
- return null;
468
- }
469
-
470
- return this.localValue;
471
- },
472
- currentValueIsInTheView() {
473
- // eslint-disable-next-line no-restricted-globals
474
- if (this.latestDate) {
475
- const [start, end] = this.visibleRange;
476
-
477
- return compareDates(end, this.latestDate) >= 0 && compareDates(this.latestDate, start) >= 0;
478
- }
479
-
480
- return true;
481
- },
482
- },
483
-
484
- watch: {
485
- shown(shown) {
486
- this.$emit("update:show", shown);
487
- },
488
- activeDate(activeDate) {
489
- this.$emit("active-change", activeDate);
490
- },
491
- formatedDate(formatedDate) {
492
- this.$emit("update:modelValue", formatedDate);
493
- this.$emit("input", formatedDate);
494
- this.$emit("change", formatedDate);
495
- },
496
- userFormatedDate(userFormatedDate) {
497
- this.$emit("user-date-changed", userFormatedDate);
498
- },
499
- localValue(localValue) {
500
- if (this.monthsPerView === 1 || !this.currentValueIsInTheView) {
501
- this.resetActiveDate(localValue);
502
- }
503
-
504
- this.refreshFormattedDate();
505
- },
506
- value(value) {
507
- if (Array.isArray(value)) {
508
- const localValue = value
509
- .map((v) => this.parse(v, this.dateFormat) || null)
510
- .filter((v) => !!v);
511
-
512
- if (!isEqual(localValue, this.localValue)) {
513
- this.localValue = localValue;
514
- }
515
- } else {
516
- this.localValue =
517
- this.parse(value, this.dateFormat) || (this.multiple || this.range ? [] : null);
518
- }
519
- },
520
- modelValue(value) {
521
- if (Array.isArray(value)) {
522
- const localValue = value
523
- .map((v) => this.parse(v, this.dateFormat) || null)
524
- .filter((v) => !!v);
525
-
526
- if (!isEqual(localValue, this.localValue)) {
527
- this.localValue = localValue;
528
- }
529
- } else {
530
- this.localValue =
531
- this.parse(value, this.dateFormat) || (this.multiple || this.range ? [] : null);
532
- }
533
- },
534
- dateParser() {
535
- this.refreshParser();
536
- },
537
- dateFormatter() {
538
- this.refreshFormatter();
539
- },
540
- lang() {
541
- this.refreshCurrentLocale();
542
- },
543
- locale() {
544
- this.refreshCurrentLocale();
545
- },
546
- locales: {
547
- handler() {
548
- this.refreshCurrentLocale();
549
- },
550
- deep: true,
551
- },
552
- },
553
-
554
- methods: {
555
- refreshFormattedDate() {
556
- const formatedDate = Array.isArray(this.localValue)
557
- ? this.localValue.map((d) => this.format(d, this.dateFormat))
558
- : this.format(this.localValue, this.dateFormat);
559
-
560
- const userFormatedDate = Array.isArray(this.localValue)
561
- ? this.localValue.map((d) => this.format(d, this.userFormat))
562
- : this.format(this.localValue, this.userFormat);
563
-
564
- this.formatedDate = formatedDate;
565
- this.userFormatedDate = userFormatedDate;
566
- },
567
- refreshCurrentLocale() {
568
- this.currentLocale = extractLocaleFromProps(this.lang, this.locales, this.locale);
569
- this.refreshParser();
570
- this.refreshFormatter();
571
- this.refreshFormattedDate();
572
- },
573
- refreshParser() {
574
- const parse = buildDateParser(this.currentLocale, this.dateParser);
575
-
576
- this.parse = parse;
577
- },
578
- refreshFormatter() {
579
- const dateFormatter = this.dateFormatter;
580
- const format = buildDateFormatter(this.currentLocale, dateFormatter);
581
- // Keep a native formatter for the different views
582
- const formatNative = !dateFormatter ? format : buildDateFormatter(this.currentLocale);
583
-
584
- this.format = format;
585
- this.formatNative = formatNative;
586
- },
587
- focus(options) {
588
- const wrapper = this.$el;
589
- const input = wrapper.querySelector("input[type=text]");
590
-
591
- if (!input) {
592
- throw new Error("Input not found");
593
- }
594
-
595
- input.focus(options);
596
- },
597
- doHide() {
598
- const dropdown = this.getDropdown();
599
-
600
- if (dropdown) {
601
- dropdown.doHide();
602
- }
603
- },
604
- doShow() {
605
- const dropdown = this.getDropdown();
606
-
607
- if (dropdown) {
608
- dropdown.doShow();
609
- }
610
- },
611
- toggle() {
612
- const dropdown = this.getDropdown();
613
-
614
- if (dropdown) {
615
- dropdown.doToggle();
616
- }
617
- },
618
- arrowKeyHandler(e) {
619
- e.preventDefault();
620
-
621
- this.showActiveDate = true;
622
-
623
- if (!this.inline && !this.shown) {
624
- this.doShow();
625
-
626
- return;
627
- }
628
-
629
- let newActiveDate;
630
-
631
- if (this.currentView === CalendarView.Day) {
632
- if (e.keyCode === Key.DOWN) {
633
- newActiveDate = addDays(this.activeDate, 7);
634
- } else if (e.keyCode === Key.LEFT) {
635
- newActiveDate = addDays(this.activeDate, -1);
636
- } else if (e.keyCode === Key.UP) {
637
- newActiveDate = addDays(this.activeDate, -7);
638
- } else if (e.keyCode === Key.RIGHT) {
639
- newActiveDate = addDays(this.activeDate, 1);
640
- }
641
- } else if (this.currentView === CalendarView.Month) {
642
- if (e.keyCode === Key.DOWN) {
643
- newActiveDate = addMonths(this.activeDate, 4);
644
- } else if (e.keyCode === Key.LEFT) {
645
- newActiveDate = addMonths(this.activeDate, -1);
646
- } else if (e.keyCode === Key.UP) {
647
- newActiveDate = addMonths(this.activeDate, -4);
648
- } else if (e.keyCode === Key.RIGHT) {
649
- newActiveDate = addMonths(this.activeDate, 1);
650
- }
651
- } else if (this.currentView === CalendarView.Year) {
652
- if (e.keyCode === Key.DOWN) {
653
- newActiveDate = addYears(this.activeDate, 4);
654
- } else if (e.keyCode === Key.LEFT) {
655
- newActiveDate = addYears(this.activeDate, -1);
656
- } else if (e.keyCode === Key.UP) {
657
- newActiveDate = addYears(this.activeDate, -4);
658
- } else if (e.keyCode === Key.RIGHT) {
659
- newActiveDate = addYears(this.activeDate, 1);
660
- }
661
- }
662
-
663
- if (
664
- newActiveDate &&
665
- !dateIsOutOfRange(newActiveDate, this.minDate, this.maxDate, this.parse, this.dateFormat)
666
- ) {
667
- this.activeDate = newActiveDate;
668
- }
669
- },
670
- focusTimePicker() {
671
- this.$refs.timePicker.focus();
672
- },
673
- inputDateHandler(date) {
674
- this.dateWithoutTime = date;
675
-
676
- this.dateTimeInputHandler();
677
- },
678
- inputTimeHandler(date) {
679
- this.timeWithoutDate = date;
680
-
681
- if (this.datepicker) {
682
- this.dateTimeInputHandler();
683
- } else {
684
- this.inputHandler(date);
685
- }
686
- },
687
- dateTimeInputHandler() {
688
- if (this.dateWithoutTime === null || this.timeWithoutDate === null) {
689
- if (this.timeWithoutDate === null) {
690
- this.focusTimePicker();
691
- } else if (this.dateWithoutTime === null) {
692
- this.focus();
693
- }
694
-
695
- return;
696
- }
697
-
698
- const { dateWithoutTime, timeWithoutDate } = this;
699
-
700
- const dateTime = new Date(
701
- dateWithoutTime.getFullYear(),
702
- dateWithoutTime.getMonth(),
703
- dateWithoutTime.getDate(),
704
- timeWithoutDate.getHours(),
705
- timeWithoutDate.getMinutes(),
706
- timeWithoutDate.getSeconds(),
707
- );
708
-
709
- this.inputHandler(dateTime);
710
- },
711
- inputHandler(newDate) {
712
- const date = new Date(newDate.valueOf());
713
- const disabledDates = this.disabledDates;
714
-
715
- if (
716
- dayIsPartOfTheConditions(date, disabledDates, this.parse, this.dateFormat) ||
717
- dateIsOutOfRange(date, this.minDate, this.maxDate, this.parse, this.dateFormat)
718
- ) {
719
- return;
720
- }
721
-
722
- if (this.range) {
723
- let range = [];
724
-
725
- // Reset the range when
726
- // 1. Is not an array
727
- // 2. The range already have both values
728
- // 3. The range has the first value and the second value is before
729
- if (
730
- !this.localValue ||
731
- !Array.isArray(this.localValue) ||
732
- (Array.isArray(this.localValue) &&
733
- (this.localValue.length === 0 || this.localValue.length === 2)) ||
734
- (Array.isArray(this.localValue) &&
735
- this.localValue.length === 1 &&
736
- this.localValue[0] &&
737
- this.localValue[0].getTime() > date.getTime())
738
- ) {
739
- range = [date];
740
- } else if (this.localValue.length === 1) {
741
- range = [this.localValue[0], date];
742
- }
743
-
744
- this.localValue = range;
745
-
746
- // Range is complete
747
- if (!this.inline && this.localValue.length === 2 && this.closeOnSelect) {
748
- this.doHide();
749
- }
750
- } else if (Array.isArray(this.localValue)) {
751
- const index = this.localValue.findIndex((d) => isSameDay(d, date));
752
-
753
- if (index >= 0) {
754
- this.localValue.splice(index, 1);
755
- } else {
756
- this.localValue.push(date);
757
- }
758
- } else {
759
- this.focus();
760
- this.localValue = date;
761
- }
762
-
763
- if (!this.inline && this.closeOnSelect && !Array.isArray(this.localValue)) {
764
- this.doHide();
765
- }
766
- },
767
- inputActiveDateHandler(newDate) {
768
- this.activeDate = new Date(newDate.valueOf());
769
- },
770
- setView(newView) {
771
- this.currentView = newView;
772
- this.focus();
773
- },
774
- resetView() {
775
- if (this.currentView === CalendarView.Month) {
776
- this.setView(CalendarView.Day);
777
- } else if (this.currentView === CalendarView.Year) {
778
- this.setView(CalendarView.Month);
779
- } else {
780
- this.setView(CalendarView.Day);
781
- }
782
- },
783
- enterHandler(e) {
784
- e.preventDefault();
785
-
786
- if (!this.inline && !this.shown) {
787
- this.doShow();
788
- } else if (this.showActiveDate) {
789
- if (this.currentView === CalendarView.Day) {
790
- if (this.timepicker) {
791
- this.inputDateHandler(new Date(this.activeDate.valueOf()));
792
- } else {
793
- this.inputHandler(new Date(this.activeDate.valueOf()));
794
- }
795
- } else {
796
- this.resetView();
797
- }
798
- }
799
- },
800
- escapeHandler(e) {
801
- e.preventDefault();
802
-
803
- const dropdown = this.getDropdown();
804
-
805
- if (dropdown) {
806
- dropdown.escapeHandler(e);
807
- }
808
- },
809
- spaceHandler(e) {
810
- e.preventDefault();
811
-
812
- this.toggle();
813
- },
814
- getDropdown() {
815
- return this.$refs.dropdown;
816
- },
817
- resetInitialState() {
818
- this.shown = false;
819
- this.currentView = this.initialView;
820
- this.showActiveDate = false;
821
-
822
- if (this.timepicker) {
823
- this.dateWithoutTime = Array.isArray(this.localValue)
824
- ? this.localValue[0]
825
- : this.localValue;
826
- } else {
827
- this.dateWithoutTime = null;
828
- }
829
-
830
- this.timeWithoutDate = null;
831
-
832
- this.resetActiveDate(this.localValue);
833
- },
834
- resetActiveDate(localValue) {
835
- this.activeDate = getInitialActiveDate(
836
- localValue,
837
- this.initialDate,
838
- this.dateFormat,
839
- this.parse,
840
- this.amPm,
841
- this.initialTime,
842
- );
843
- },
844
- clearHandler() {
845
- if (this.multiple || this.range) {
846
- this.localValue = [];
847
- } else {
848
- this.localValue = null;
849
- }
850
-
851
- this.resetActiveDate(this.localValue);
852
- },
853
- focusHandler(e) {
854
- this.hasFocus = true;
855
- this.$emit("focus", e);
856
- },
857
- blurHandler(e) {
858
- this.hasFocus = false;
859
- this.$emit("blur", e);
860
- },
861
- hideIfFocusOutside(e) {
862
- const dropdown = this.getDropdown();
863
-
864
- if (dropdown) {
865
- dropdown.hideIfFocusOutside(e);
866
- }
867
- },
868
- },
869
-
870
- render() {
871
- const views = [];
872
-
873
- if (this.datepicker) {
874
- views.push(
875
- h(
876
- TDatepickerViews,
877
- {
878
- ref: "views",
879
- value: this.localValue,
880
- activeDate: this.activeDate,
881
- weekStart: this.weekStart,
882
- monthsPerView: this.monthsPerView,
883
- lang: this.lang,
884
- locale: this.currentLocale,
885
- getElementCssClass: this.getElementCssClass,
886
- parse: this.parse,
887
- format: this.format,
888
- formatNative: this.formatNative,
889
- dateFormat: this.dateFormat,
890
- userFormat: this.userFormat,
891
- initialView: this.initialView,
892
- currentView: this.currentView,
893
- yearsPerView: this.yearsPerView,
894
- showActiveDate: this.showActiveDate,
895
- disabledDates: this.disabledDates,
896
- highlightDates: this.highlightDates,
897
- minDate: this.minDate,
898
- maxDate: this.maxDate,
899
- range: this.range,
900
- showDaysForOtherMonth: this.showDaysForOtherMonth,
901
- datepicker: this.datepicker,
902
- timepicker: this.timepicker,
903
- dateWithoutTime: this.dateWithoutTime,
904
- dataCy: this.dataCy,
905
- onInput: this.inputHandler,
906
- "onInput-date": this.inputDateHandler,
907
- "onInput-time": this.inputTimeHandler,
908
- "onInput-active-date": this.inputActiveDateHandler,
909
- "onUpdate-view": this.setView,
910
- "onReset-view": this.resetView,
911
- "onReset-focus": this.focus,
912
- },
913
- {
914
- ...this.$slots,
915
- },
916
- ),
917
- );
918
- }
919
-
920
- if (this.timepicker && this.currentView === CalendarView.Day) {
921
- views.push(
922
- h(TDatepickerTimeSelector, {
923
- ref: "timePicker",
924
- parse: this.parse,
925
- format: this.format,
926
- amPm: this.amPm,
927
- showSeconds: this.showSeconds,
928
- activeDate: this.activeDate,
929
- locale: this.currentLocale,
930
- getElementCssClass: this.getElementCssClass,
931
- onInput: this.inputActiveDateHandler,
932
- onSubmit: this.inputTimeHandler,
933
- onBlur: this.hideIfFocusOutside,
934
- }),
935
- );
936
- }
937
-
938
- const triggerSettings = {
939
- ref: "trigger",
940
- id: this.id,
941
- name: this.name,
942
- inputName: this.inputName,
943
- disabled: this.disabled,
944
- readonly: this.readonly,
945
- autofocus: this.autofocus,
946
- required: this.required,
947
- placeholder: this.placeholder,
948
- tabindex: this.tabindex,
949
- userFormatedDate: this.userFormatedDate,
950
- formatedDate: this.formatedDate,
951
- conjunction: this.conjunction,
952
- multiple: this.multiple,
953
- range: this.range,
954
- clearable: this.clearable,
955
- locale: this.currentLocale,
956
- value: this.localValue,
957
- activeDate: this.activeDate,
958
- hasFocus: this.hasFocus,
959
- getElementCssClass: this.getElementCssClass,
960
- onClear: this.clearHandler,
961
- onFocus: this.focusHandler,
962
- onBlur: this.blurHandler,
963
- onKeydown: (e) => {
964
- if ([Key.LEFT, Key.UP, Key.RIGHT, Key.DOWN].includes(e.keyCode) && this.datepicker) {
965
- this.arrowKeyHandler(e);
966
- } else if (e.keyCode === Key.ENTER) {
967
- this.enterHandler(e);
968
- } else if (e.keyCode === Key.ESC) {
969
- this.escapeHandler(e);
970
- } else if (e.keyCode === Key.SPACE) {
971
- this.spaceHandler(e);
972
- }
973
-
974
- if (isNumeric(e.key)) {
975
- this.focusTimePicker();
976
- }
977
-
978
- this.$emit("keydown", e);
979
- },
980
- };
981
-
982
- if (this.inline) {
983
- return h(
984
- "div",
985
- {
986
- class: this.getElementCssClass("inlineWrapper"),
987
- },
988
- [
989
- h(TDatepickerTrigger, triggerSettings),
990
- h(
991
- "div",
992
- {
993
- class: this.getElementCssClass("inlineViews"),
994
- },
995
- views,
996
- ),
997
- ],
998
- );
999
- }
1000
-
1001
- return h(
1002
- TDropdown,
1003
- {
1004
- ref: "dropdown",
1005
- fixedClasses: undefined,
1006
- classes: {
1007
- wrapper: this.getElementCssClass("wrapper"),
1008
- dropdownWrapper: this.getElementCssClass("dropdownWrapper"),
1009
- dropdown: this.getElementCssClass("dropdown"),
1010
- enterFromClass: this.getElementCssClass("enterFromClass"),
1011
- enterActiveClass: this.getElementCssClass("enterActiveClass"),
1012
- enterToClass: this.getElementCssClass("enterToClass"),
1013
- leaveFromClass: this.getElementCssClass("leaveFrom"),
1014
- leaveActiveClass: this.getElementCssClass("leaveActiveClass"),
1015
- leaveToClass: this.getElementCssClass("leaveToClass"),
1016
- },
1017
- "data-cy": this.dataCy,
1018
- show: this.show,
1019
- onHidden: () => {
1020
- this.$emit("hidden");
1021
- this.resetInitialState();
1022
- },
1023
- onShown: () => {
1024
- this.$emit("shown");
1025
- this.shown = true;
1026
-
1027
- if (this.timepicker && !this.datepicker) {
1028
- this.$nextTick(() => {
1029
- this.focusTimePicker();
1030
- });
1031
- }
1032
- },
1033
- },
1034
- {
1035
- default: () => views,
1036
- trigger: () =>
1037
- h(
1038
- TDatepickerTrigger,
1039
- {
1040
- ...cloneDeep(triggerSettings),
1041
- hideIfFocusOutside: this.hideIfFocusOutside,
1042
- show: this.doShow,
1043
- },
1044
- { ...this.$slots },
1045
- ),
1046
- },
1047
- );
1048
- },
1049
- };
1050
-
1051
- export default TDatepicker;