vueless 0.0.2 → 0.0.4

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 (666) 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/{library.web-types-gen → .web-types-gen}/lib/build.js +35 -9
  15. package/{library.web-types-gen → .web-types-gen}/lib/config.js +9 -3
  16. package/LICENSE +21 -0
  17. package/README.md +174 -0
  18. package/index.pcss +3 -0
  19. package/package.json +56 -6
  20. package/postcss.config.js +9 -0
  21. package/public/images/logo.png +0 -0
  22. package/readme/README.md +8 -0
  23. package/{_readme → readme}/UNotify.md +1 -1
  24. package/{_readme → readme}/UTopLoader.md +2 -2
  25. package/readme/customization.md +347 -0
  26. package/readme/installation.md +139 -0
  27. package/readme/storybook-pages/Customisation.mdx +6 -0
  28. package/readme/storybook-pages/Installation.mdx +7 -0
  29. package/src/composable.ui/index.js +395 -0
  30. package/src/service.storybook/index.js +0 -0
  31. package/src/service.tailwind/index.js +114 -0
  32. package/{service.ui → src/service.ui}/index.js +70 -51
  33. package/src/ui.button/Docs.mdx +0 -0
  34. package/src/ui.button/composables/attrs.composable.js +0 -0
  35. package/src/ui.button/configs/default.config.js +0 -0
  36. package/src/ui.button/constants/index.js +0 -0
  37. package/src/ui.button/index.stories.js +0 -0
  38. package/src/ui.button/index.vue +0 -0
  39. package/src/ui.button-link/Docs.mdx +0 -0
  40. package/src/ui.button-link/composables/attrs.composable.js +0 -0
  41. package/src/ui.button-link/configs/default.config.js +0 -0
  42. package/src/ui.button-link/constants/index.js +0 -0
  43. package/src/ui.button-link/index.stories.js +0 -0
  44. package/src/ui.button-link/index.vue +0 -0
  45. package/src/ui.button-toggle/Docs.mdx +0 -0
  46. package/src/ui.button-toggle/composables/attrs.composable.js +0 -0
  47. package/src/ui.button-toggle/configs/default.config.js +0 -0
  48. package/src/ui.button-toggle/constants/index.js +0 -0
  49. package/src/ui.button-toggle/index.stories.js +0 -0
  50. package/src/ui.button-toggle/index.vue +0 -0
  51. package/src/ui.button-toggle-item/Docs.mdx +0 -0
  52. package/src/ui.button-toggle-item/composables/attrs.composable.js +0 -0
  53. package/src/ui.button-toggle-item/configs/default.config.js +0 -0
  54. package/src/ui.button-toggle-item/constants/index.js +0 -0
  55. package/src/ui.button-toggle-item/index.stories.js +0 -0
  56. package/src/ui.button-toggle-item/index.vue +0 -0
  57. package/src/ui.container-accordion/composables/attrs.composable.js +0 -0
  58. package/src/ui.container-accordion/configs/default.config.js +0 -0
  59. package/src/ui.container-accordion/constants/index.js +0 -0
  60. package/src/ui.container-accordion/index.stories.js +0 -0
  61. package/src/ui.container-accordion/index.vue +0 -0
  62. package/src/ui.container-card/Docs.mdx +0 -0
  63. package/src/ui.container-card/composable/attrs.composable.js +0 -0
  64. package/src/ui.container-card/configs/default.config.js +0 -0
  65. package/src/ui.container-card/constants/index.js +0 -0
  66. package/src/ui.container-card/index.stories.js +0 -0
  67. package/src/ui.container-card/index.vue +0 -0
  68. package/src/ui.container-divider/Docs.mdx +0 -0
  69. package/src/ui.container-divider/composables/attrs.composable.js +65 -0
  70. package/src/ui.container-divider/configs/default.config.js +0 -0
  71. package/src/ui.container-divider/constants/index.js +5 -0
  72. package/src/ui.container-divider/index.stories.js +0 -0
  73. package/src/ui.container-divider/index.vue +138 -0
  74. package/src/ui.container-group/Docs.mdx +0 -0
  75. package/src/ui.container-group/composables/attrs.composable.js +0 -0
  76. package/src/ui.container-group/configs/default.config.js +0 -0
  77. package/src/ui.container-group/constants/index.js +0 -0
  78. package/src/ui.container-group/index.stories.js +0 -0
  79. package/src/ui.container-group/index.vue +0 -0
  80. package/src/ui.container-groups/Docs.mdx +0 -0
  81. package/src/ui.container-groups/composables/attrs.composable.js +0 -0
  82. package/src/ui.container-groups/configs/default.config.js +0 -0
  83. package/src/ui.container-groups/index.stories.js +0 -0
  84. package/src/ui.container-groups/index.vue +0 -0
  85. package/src/ui.container-modal/Docs.mdx +0 -0
  86. package/src/ui.container-modal/composables/attrs.composable.js +0 -0
  87. package/src/ui.container-modal/configs/default.config.js +0 -0
  88. package/src/ui.container-modal/constants/index.js +0 -0
  89. package/src/ui.container-modal/index.stories.js +0 -0
  90. package/src/ui.container-modal/index.vue +0 -0
  91. package/src/ui.container-modal-confirm/Docs.mdx +0 -0
  92. package/src/ui.container-modal-confirm/composable/attrs.composable.js +0 -0
  93. package/src/ui.container-modal-confirm/configs/default.config.js +0 -0
  94. package/src/ui.container-modal-confirm/constants/index.js +0 -0
  95. package/src/ui.container-modal-confirm/index.stories.js +0 -0
  96. package/src/ui.container-modal-confirm/index.vue +0 -0
  97. package/src/ui.container-page/Docs.mdx +0 -0
  98. package/src/ui.container-page/composables/attrs.composable.js +0 -0
  99. package/src/ui.container-page/configs/default.config.js +0 -0
  100. package/src/ui.container-page/constants/index.js +0 -0
  101. package/src/ui.container-page/index.stories.js +0 -0
  102. package/src/ui.container-page/index.vue +0 -0
  103. package/src/ui.container-row/Docs.mdx +0 -0
  104. package/src/ui.container-row/composables/attrs.composable.js +0 -0
  105. package/src/ui.container-row/configs/default.config.js +0 -0
  106. package/src/ui.container-row/constants/index.js +0 -0
  107. package/src/ui.container-row/index.stories.js +0 -0
  108. package/src/ui.container-row/index.vue +0 -0
  109. package/src/ui.data-list/composables/attrs.composable.js +0 -0
  110. package/src/ui.data-list/configs/default.config.js +0 -0
  111. package/src/ui.data-list/constants/index.js +0 -0
  112. package/src/ui.data-list/index.stories.js +0 -0
  113. package/src/ui.data-list/index.vue +0 -0
  114. package/src/ui.data-table/Docs.mdx +0 -0
  115. package/src/ui.data-table/composables/attrs.composable.js +188 -0
  116. package/src/ui.data-table/configs/default.config.js +88 -0
  117. package/src/ui.data-table/constants/index.js +5 -0
  118. package/{ui.data-table → src/ui.data-table}/index.stories.js +76 -46
  119. package/src/ui.data-table/index.vue +725 -0
  120. package/src/ui.data-table/services/table.service.js +15 -0
  121. package/src/ui.data-table-cell/composables/attrs.composable.js +24 -0
  122. package/src/ui.data-table-cell/configs/default.config.js +0 -0
  123. package/src/ui.data-table-cell/constants/index.js +5 -0
  124. package/src/ui.data-table-cell/index.vue +44 -0
  125. package/src/ui.dropdown-badge/Docs.mdx +0 -0
  126. package/src/ui.dropdown-badge/composables/attrs.composable.js +0 -0
  127. package/src/ui.dropdown-badge/configs/default.config.js +0 -0
  128. package/src/ui.dropdown-badge/constants/index.js +0 -0
  129. package/src/ui.dropdown-badge/index.stories.js +0 -0
  130. package/src/ui.dropdown-badge/index.vue +0 -0
  131. package/src/ui.dropdown-button/Docs.mdx +0 -0
  132. package/src/ui.dropdown-button/composables/attrs.composable.js +0 -0
  133. package/src/ui.dropdown-button/configs/default.config.js +0 -0
  134. package/src/ui.dropdown-button/constants/index.js +0 -0
  135. package/src/ui.dropdown-button/index.stories.js +0 -0
  136. package/src/ui.dropdown-button/index.vue +0 -0
  137. package/src/ui.dropdown-item/Docs.mdx +0 -0
  138. package/src/ui.dropdown-item/composables/attrs.composable.js +0 -0
  139. package/src/ui.dropdown-item/configs/default.config.js +0 -0
  140. package/src/ui.dropdown-item/index.stories.js +0 -0
  141. package/src/ui.dropdown-item/index.vue +0 -0
  142. package/src/ui.dropdown-link/Docs.mdx +0 -0
  143. package/src/ui.dropdown-link/composables/attrs.composable.js +0 -0
  144. package/src/ui.dropdown-link/configs/default.config.js +0 -0
  145. package/src/ui.dropdown-link/constants/index.js +0 -0
  146. package/src/ui.dropdown-link/index.stories.js +0 -0
  147. package/src/ui.dropdown-link/index.vue +0 -0
  148. package/src/ui.dropdown-list/Docs.mdx +0 -0
  149. package/src/ui.dropdown-list/composables/attrs.composable.js +0 -0
  150. package/src/ui.dropdown-list/composables/usePointer.js +0 -0
  151. package/src/ui.dropdown-list/configs/default.config.js +0 -0
  152. package/src/ui.dropdown-list/constants/index.js +0 -0
  153. package/src/ui.dropdown-list/index.stories.js +0 -0
  154. package/src/ui.dropdown-list/index.vue +0 -0
  155. package/src/ui.form-calendar/Docs.mdx +0 -0
  156. package/src/ui.form-calendar/components/DayView.vue +0 -0
  157. package/src/ui.form-calendar/components/MonthView.vue +0 -0
  158. package/src/ui.form-calendar/components/YearView.vue +0 -0
  159. package/src/ui.form-calendar/composables/attrs.composable.js +106 -0
  160. package/src/ui.form-calendar/configs/default.config.js +125 -0
  161. package/src/ui.form-calendar/constants/index.js +0 -0
  162. package/src/ui.form-calendar/index.stories.js +0 -0
  163. package/src/ui.form-calendar/index.vue +0 -0
  164. package/src/ui.form-calendar/services/calendar.service.js +0 -0
  165. package/src/ui.form-calendar/services/date.service.js +282 -0
  166. package/src/ui.form-calendar/services/formatting.service.js +0 -0
  167. package/src/ui.form-checkbox/Docs.mdx +0 -0
  168. package/src/ui.form-checkbox/composables/attrs.composable.js +57 -0
  169. package/src/ui.form-checkbox/configs/default.config.js +0 -0
  170. package/src/ui.form-checkbox/constants/index.js +5 -0
  171. package/src/ui.form-checkbox/index.stories.js +0 -0
  172. package/src/ui.form-checkbox/index.vue +241 -0
  173. package/src/ui.form-checkbox-group/Docs.mdx +0 -0
  174. package/src/ui.form-checkbox-group/composables/attrs.composable.js +0 -0
  175. package/src/ui.form-checkbox-group/configs/default.config.js +0 -0
  176. package/src/ui.form-checkbox-group/constants/index.js +0 -0
  177. package/src/ui.form-checkbox-group/index.stories.js +0 -0
  178. package/src/ui.form-checkbox-group/index.vue +0 -0
  179. package/src/ui.form-checkbox-multi-state/Docs.mdx +0 -0
  180. package/src/ui.form-checkbox-multi-state/composables/attrs.composable.js +0 -0
  181. package/src/ui.form-checkbox-multi-state/configs/default.config.js +0 -0
  182. package/src/ui.form-checkbox-multi-state/constants/index.js +0 -0
  183. package/src/ui.form-checkbox-multi-state/index.stories.js +0 -0
  184. package/src/ui.form-checkbox-multi-state/index.vue +0 -0
  185. package/src/ui.form-color-picker/composables/attrs.composable.js +0 -0
  186. package/src/ui.form-color-picker/configs/default.config.js +0 -0
  187. package/src/ui.form-color-picker/constants/index.js +0 -0
  188. package/src/ui.form-color-picker/index.stories.js +0 -0
  189. package/src/ui.form-color-picker/index.vue +0 -0
  190. package/src/ui.form-date-picker/Docs.mdx +0 -0
  191. package/src/ui.form-date-picker/composables/attrs.composable.js +0 -0
  192. package/src/ui.form-date-picker/configs/default.config.js +0 -0
  193. package/src/ui.form-date-picker/constants/index.js +0 -0
  194. package/src/ui.form-date-picker/index.stories.js +0 -0
  195. package/src/ui.form-date-picker/index.vue +0 -0
  196. package/src/ui.form-date-picker-range/composables/attrs.composable.js +100 -0
  197. package/src/ui.form-date-picker-range/configs/default.config.js +172 -0
  198. package/src/ui.form-date-picker-range/constants/index.js +0 -0
  199. package/src/ui.form-date-picker-range/index.stories.js +0 -0
  200. package/src/ui.form-date-picker-range/index.vue +0 -0
  201. package/src/ui.form-date-picker-range/services/dateRange.service.js +0 -0
  202. package/src/ui.form-date-picker-range/services/validation.service.js +22 -0
  203. package/src/ui.form-input/Docs.mdx +0 -0
  204. package/src/ui.form-input/assets/fonts/text-security-disc.woff +0 -0
  205. package/src/ui.form-input/composables/attrs.composable.js +0 -0
  206. package/src/ui.form-input/configs/default.config.js +0 -0
  207. package/src/ui.form-input/constants/index.js +0 -0
  208. package/src/ui.form-input/index.stories.js +0 -0
  209. package/src/ui.form-input/index.vue +0 -0
  210. package/src/ui.form-input-file/composables/attrs.composable.js +0 -0
  211. package/src/ui.form-input-file/configs/default.config.js +0 -0
  212. package/src/ui.form-input-file/constants/index.js +0 -0
  213. package/src/ui.form-input-file/index.stories.js +0 -0
  214. package/src/ui.form-input-file/index.vue +0 -0
  215. package/src/ui.form-input-money/Docs.mdx +0 -0
  216. package/src/ui.form-input-money/composables/attrs.composable.js +0 -0
  217. package/src/ui.form-input-money/composables/useFormatCurrency.js +0 -0
  218. package/src/ui.form-input-money/configs/default.config.js +0 -0
  219. package/src/ui.form-input-money/constants/index.js +0 -0
  220. package/src/ui.form-input-money/index.stories.js +0 -0
  221. package/src/ui.form-input-money/index.vue +0 -0
  222. package/src/ui.form-input-money/services/format.service.js +0 -0
  223. package/src/ui.form-input-number/Docs.mdx +0 -0
  224. package/src/ui.form-input-number/composables/attrs.composable.js +0 -0
  225. package/src/ui.form-input-number/configs/default.config.js +0 -0
  226. package/src/ui.form-input-number/constants/index.js +0 -0
  227. package/src/ui.form-input-number/index.stories.js +0 -0
  228. package/src/ui.form-input-number/index.vue +0 -0
  229. package/src/ui.form-input-rating/composables/attrs.composable.js +0 -0
  230. package/src/ui.form-input-rating/configs/default.config.js +25 -0
  231. package/src/ui.form-input-rating/constants/index.js +0 -0
  232. package/{ui.form-input-rating → src/ui.form-input-rating}/index.stories.js +6 -5
  233. package/src/ui.form-input-rating/index.vue +185 -0
  234. package/src/ui.form-input-search/composables/attrs.composable.js +0 -0
  235. package/src/ui.form-input-search/configs/default.config.js +0 -0
  236. package/src/ui.form-input-search/constants/index.js +0 -0
  237. package/src/ui.form-input-search/index.stories.js +0 -0
  238. package/src/ui.form-input-search/index.vue +0 -0
  239. package/src/ui.form-label/Docs.mdx +0 -0
  240. package/src/ui.form-label/composables/attrs.composable.js +0 -0
  241. package/src/ui.form-label/configs/default.config.js +0 -0
  242. package/src/ui.form-label/constants/index.js +0 -0
  243. package/src/ui.form-label/index.stories.js +0 -0
  244. package/src/ui.form-label/index.vue +0 -0
  245. package/src/ui.form-radio/Docs.mdx +0 -0
  246. package/src/ui.form-radio/composables/attrs.composable.js +0 -0
  247. package/src/ui.form-radio/configs/default.config.js +0 -0
  248. package/src/ui.form-radio/constants/index.js +0 -0
  249. package/src/ui.form-radio/index.stories.js +0 -0
  250. package/src/ui.form-radio/index.vue +0 -0
  251. package/src/ui.form-radio-card/Docs.mdx +0 -0
  252. package/src/ui.form-radio-card/composables/attrs.composable.js +35 -0
  253. package/src/ui.form-radio-card/configs/default.config.js +25 -0
  254. package/src/ui.form-radio-card/constants/index.js +0 -0
  255. package/src/ui.form-radio-card/index.stories.js +0 -0
  256. package/src/ui.form-radio-card/index.vue +159 -0
  257. package/src/ui.form-radio-card/services/variant.service.js +0 -0
  258. package/src/ui.form-radio-group/Docs.mdx +0 -0
  259. package/src/ui.form-radio-group/composables/attrs.composable.js +0 -0
  260. package/src/ui.form-radio-group/configs/default.config.js +0 -0
  261. package/src/ui.form-radio-group/constants/index.js +0 -0
  262. package/src/ui.form-radio-group/index.stories.js +0 -0
  263. package/src/ui.form-radio-group/index.vue +0 -0
  264. package/src/ui.form-select/Docs.mdx +0 -0
  265. package/src/ui.form-select/composables/attrs.composable.js +0 -0
  266. package/src/ui.form-select/configs/default.config.js +0 -0
  267. package/src/ui.form-select/constants/index.js +0 -0
  268. package/src/ui.form-select/index.stories.js +0 -0
  269. package/src/ui.form-select/index.vue +0 -0
  270. package/src/ui.form-select/services/select.service.js +0 -0
  271. package/src/ui.form-switch/composables/attrs.composable.js +0 -0
  272. package/src/ui.form-switch/configs/default.config.js +0 -0
  273. package/src/ui.form-switch/constants/index.js +0 -0
  274. package/src/ui.form-switch/index.stories.js +0 -0
  275. package/src/ui.form-switch/index.vue +0 -0
  276. package/src/ui.form-switch/services/variant.service.js +0 -0
  277. package/src/ui.form-textarea/Docs.mdx +0 -0
  278. package/src/ui.form-textarea/composables/attrs.composable.js +0 -0
  279. package/src/ui.form-textarea/configs/default.config.js +0 -0
  280. package/src/ui.form-textarea/constants/index.js +0 -0
  281. package/src/ui.form-textarea/index.stories.js +0 -0
  282. package/src/ui.form-textarea/index.vue +0 -0
  283. package/src/ui.image-avatar/composables/attrs.composable.js +0 -0
  284. package/src/ui.image-avatar/configs/default.config.js +0 -0
  285. package/src/ui.image-avatar/constants/index.js +0 -0
  286. package/src/ui.image-avatar/default-avatar.png +0 -0
  287. package/src/ui.image-avatar/index.stories.js +0 -0
  288. package/src/ui.image-avatar/index.vue +0 -0
  289. package/src/ui.image-icon/Docs.mdx +0 -0
  290. package/src/ui.image-icon/composables/attrs.composable.js +65 -0
  291. package/src/ui.image-icon/configs/default.config.js +90 -0
  292. package/src/ui.image-icon/constants/index.js +5 -0
  293. package/src/ui.image-icon/index.stories.js +0 -0
  294. package/src/ui.image-icon/index.vue +223 -0
  295. package/src/ui.image-logo/composables/attrs.composable.js +41 -0
  296. package/src/ui.image-logo/configs/default.config.js +0 -0
  297. package/src/ui.image-logo/constants/index.js +5 -0
  298. package/src/ui.image-logo/index.stories.js +0 -0
  299. package/src/ui.image-logo/index.vue +98 -0
  300. package/{layout-ui.loader → src/ui.loader-rendering}/index.vue +16 -5
  301. package/src/ui.loader-top/components/TopProgress.vue +0 -0
  302. package/{layout-ui.loader-top → src/ui.loader-top}/index.vue +20 -17
  303. package/{layout-ui.loader-top → src/ui.loader-top}/store/index.js +11 -7
  304. package/src/ui.navigation-pagination/composables/attrs.composable.js +0 -0
  305. package/src/ui.navigation-pagination/configs/default.config.js +0 -0
  306. package/src/ui.navigation-pagination/constants/index.js +0 -0
  307. package/src/ui.navigation-pagination/index.stories.js +0 -0
  308. package/src/ui.navigation-pagination/index.vue +0 -0
  309. package/src/ui.navigation-stepper/composables/attrs.composable.js +0 -0
  310. package/src/ui.navigation-stepper/configs/default.config.js +0 -0
  311. package/src/ui.navigation-stepper/constants/index.js +0 -0
  312. package/src/ui.navigation-stepper/index.stories.js +0 -0
  313. package/src/ui.navigation-stepper/index.vue +0 -0
  314. package/src/ui.navigation-tab/composables/attrs.composable.js +0 -0
  315. package/src/ui.navigation-tab/configs/default.config.js +0 -0
  316. package/src/ui.navigation-tab/constants/index.js +0 -0
  317. package/src/ui.navigation-tab/index.stories.js +0 -0
  318. package/src/ui.navigation-tab/index.vue +0 -0
  319. package/src/ui.navigation-tabs/composables/attrs.composable.js +0 -0
  320. package/src/ui.navigation-tabs/configs/default.config.js +0 -0
  321. package/src/ui.navigation-tabs/constants/index.js +0 -0
  322. package/src/ui.navigation-tabs/index.stories.js +0 -0
  323. package/src/ui.navigation-tabs/index.vue +0 -0
  324. package/src/ui.notify/index.stories.js +0 -0
  325. package/{layout-ui.notify → src/ui.notify}/index.vue +14 -20
  326. package/{service.notify → src/ui.notify/services}/index.js +1 -1
  327. package/src/ui.other-dot/composables/attrs.composable.js +0 -0
  328. package/src/ui.other-dot/configs/default.config.js +0 -0
  329. package/src/ui.other-dot/constants/index.js +0 -0
  330. package/src/ui.other-dot/index.stories.js +0 -0
  331. package/src/ui.other-dot/index.vue +0 -0
  332. package/src/ui.other-loader/composables/attrs.composable.js +0 -0
  333. package/src/ui.other-loader/configs/default.config.js +0 -0
  334. package/src/ui.other-loader/constants/index.js +0 -0
  335. package/src/ui.other-loader/index.stories.js +0 -0
  336. package/src/ui.other-loader/index.vue +0 -0
  337. package/src/ui.text-alert/composables/attrs.composable.js +0 -0
  338. package/src/ui.text-alert/configs/default.config.js +0 -0
  339. package/src/ui.text-alert/constatns/index.js +0 -0
  340. package/src/ui.text-alert/index.stories.js +0 -0
  341. package/src/ui.text-alert/index.vue +0 -0
  342. package/src/ui.text-badge/Docs.mdx +0 -0
  343. package/src/ui.text-badge/composables/attrs.composable.js +0 -0
  344. package/src/ui.text-badge/configs/default.config.js +0 -0
  345. package/src/ui.text-badge/constants/index.js +0 -0
  346. package/src/ui.text-badge/index.stories.js +0 -0
  347. package/src/ui.text-badge/index.vue +0 -0
  348. package/src/ui.text-block/composables/attrs.composable.js +0 -0
  349. package/src/ui.text-block/configs/default.config.js +0 -0
  350. package/src/ui.text-block/constatns/index.js +0 -0
  351. package/src/ui.text-block/index.stories.js +0 -0
  352. package/src/ui.text-block/index.vue +0 -0
  353. package/src/ui.text-empty/Docs.mdx +0 -0
  354. package/src/ui.text-empty/composables/attrs.composable.js +43 -0
  355. package/src/ui.text-empty/configs/default.config.js +0 -0
  356. package/{constant.component-names → src/ui.text-empty/constants}/index.js +1 -2
  357. package/src/ui.text-empty/index.stories.js +0 -0
  358. package/{ui.text-empty → src/ui.text-empty}/index.vue +14 -15
  359. package/src/ui.text-file/composables/attrs.composable.js +0 -0
  360. package/src/ui.text-file/configs/default.config.js +0 -0
  361. package/src/ui.text-file/index.stories.js +0 -0
  362. package/src/ui.text-file/index.vue +0 -0
  363. package/src/ui.text-files/composables/attrs.composable.js +0 -0
  364. package/src/ui.text-files/configs/default.config.js +0 -0
  365. package/src/ui.text-files/constants/index.js +0 -0
  366. package/src/ui.text-files/index.stories.js +0 -0
  367. package/src/ui.text-files/index.vue +0 -0
  368. package/src/ui.text-header/Docs.mdx +0 -0
  369. package/src/ui.text-header/composables/attrs.composable.js +0 -0
  370. package/src/ui.text-header/configs/default.config.js +45 -0
  371. package/src/ui.text-header/constants/index.js +0 -0
  372. package/src/ui.text-header/index.stories.js +0 -0
  373. package/src/ui.text-header/index.vue +0 -0
  374. package/src/ui.text-money/Docs.mdx +0 -0
  375. package/src/ui.text-money/assets/credit.svg +0 -0
  376. package/src/ui.text-money/assets/debit.svg +0 -0
  377. package/src/ui.text-money/composables/attrs.composable.js +0 -0
  378. package/src/ui.text-money/configs/default.config.js +69 -0
  379. package/src/ui.text-money/constants/index.js +0 -0
  380. package/src/ui.text-money/index.stories.js +0 -0
  381. package/src/ui.text-money/index.vue +0 -0
  382. package/src/ui.text-money/services/money.services.js +0 -0
  383. package/src/ui.viewport/index.vue +0 -0
  384. package/tailwind.config.js +69 -0
  385. package/vite.config.mjs +39 -0
  386. package/vueless.config.js +7 -0
  387. package/web-types.json +3110 -2243
  388. package/_readme/README.md +0 -78
  389. package/_readme/layoutAdmin.md +0 -703
  390. package/_readme/layoutApp.md +0 -153
  391. package/_readme/layoutAuth.md +0 -190
  392. package/composable.ui/index.js +0 -81
  393. package/config.rollup-plugin-visualizer/index.js +0 -11
  394. package/config.unplugin-vue-i18n/index.js +0 -9
  395. package/config.vite-plugin-pwa/index.js +0 -132
  396. package/config.vite-svg-loader/index.js +0 -22
  397. package/index.js +0 -151
  398. package/layout-ui.loader-top/components/TopProgress.vue +0 -277
  399. package/layout-ui.notify/index.stories.js +0 -102
  400. package/layout-ui.viewport/index.vue +0 -78
  401. package/layout.admin/AsideBlock.vue +0 -534
  402. package/layout.admin/AsideInfoBlock.vue +0 -85
  403. package/layout.admin/BrandBlock.vue +0 -380
  404. package/layout.admin/ChangeThemeModal.vue +0 -179
  405. package/layout.admin/HelperBlock.vue +0 -132
  406. package/layout.admin/MainMenu.vue +0 -234
  407. package/layout.admin/MainSubMenu.vue +0 -196
  408. package/layout.admin/MobileMainMenu.vue +0 -197
  409. package/layout.admin/MobileSubBlock.vue +0 -171
  410. package/layout.admin/RightInfoBlock.vue +0 -166
  411. package/layout.admin/UserBlock.vue +0 -290
  412. package/layout.admin/images/abstract-01.jpg +0 -0
  413. package/layout.admin/images/abstract-01_preview.jpg +0 -0
  414. package/layout.admin/index.vue +0 -544
  415. package/layout.admin/mixins/index.js +0 -54
  416. package/layout.admin/store/index.js +0 -167
  417. package/layout.auth/FeaturesBlock.vue +0 -57
  418. package/layout.auth/FooterMenu.vue +0 -90
  419. package/layout.auth/LanguageSwitcher.vue +0 -90
  420. package/layout.auth/index.vue +0 -237
  421. package/library.vue-tailwind-3/TDatepicker/components/t-date-trigger.js +0 -257
  422. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-navigator.js +0 -600
  423. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-time-selector.js +0 -522
  424. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days-day.js +0 -289
  425. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days.js +0 -236
  426. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-headers.js +0 -64
  427. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar.js +0 -159
  428. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months-month.js +0 -106
  429. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months.js +0 -97
  430. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years-year.js +0 -117
  431. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years.js +0 -104
  432. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view.js +0 -294
  433. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views.js +0 -212
  434. package/library.vue-tailwind-3/TDatepicker/components/t-toggle.js +0 -323
  435. package/library.vue-tailwind-3/TDatepicker/index.js +0 -1051
  436. package/library.vue-tailwind-3/base/Component.js +0 -126
  437. package/library.vue-tailwind-3/base/HtmlInput.js +0 -38
  438. package/library.vue-tailwind-3/base/TextInput.js +0 -102
  439. package/library.vue-tailwind-3/index.js +0 -12
  440. package/library.vue-tailwind-3/l10n/ar.js +0 -27
  441. package/library.vue-tailwind-3/l10n/at.js +0 -29
  442. package/library.vue-tailwind-3/l10n/az.js +0 -40
  443. package/library.vue-tailwind-3/l10n/be.js +0 -35
  444. package/library.vue-tailwind-3/l10n/bg.js +0 -41
  445. package/library.vue-tailwind-3/l10n/bn.js +0 -39
  446. package/library.vue-tailwind-3/l10n/bs.js +0 -28
  447. package/library.vue-tailwind-3/l10n/cat.js +0 -59
  448. package/library.vue-tailwind-3/l10n/cs.js +0 -35
  449. package/library.vue-tailwind-3/l10n/cy.js +0 -68
  450. package/library.vue-tailwind-3/l10n/da.js +0 -31
  451. package/library.vue-tailwind-3/l10n/de.js +0 -30
  452. package/library.vue-tailwind-3/l10n/default.js +0 -54
  453. package/library.vue-tailwind-3/l10n/eo.js +0 -31
  454. package/library.vue-tailwind-3/l10n/es.js +0 -32
  455. package/library.vue-tailwind-3/l10n/et.js +0 -46
  456. package/library.vue-tailwind-3/l10n/fa.js +0 -41
  457. package/library.vue-tailwind-3/l10n/fi.js +0 -50
  458. package/library.vue-tailwind-3/l10n/fo.js +0 -40
  459. package/library.vue-tailwind-3/l10n/fr.js +0 -48
  460. package/library.vue-tailwind-3/l10n/ga.js +0 -36
  461. package/library.vue-tailwind-3/l10n/gr.js +0 -33
  462. package/library.vue-tailwind-3/l10n/he.js +0 -41
  463. package/library.vue-tailwind-3/l10n/hi.js +0 -39
  464. package/library.vue-tailwind-3/l10n/hr.js +0 -41
  465. package/library.vue-tailwind-3/l10n/hu.js +0 -46
  466. package/library.vue-tailwind-3/l10n/id.js +0 -30
  467. package/library.vue-tailwind-3/l10n/index.js +0 -127
  468. package/library.vue-tailwind-3/l10n/is.js +0 -40
  469. package/library.vue-tailwind-3/l10n/it.js +0 -31
  470. package/library.vue-tailwind-3/l10n/ja.js +0 -42
  471. package/library.vue-tailwind-3/l10n/ka.js +0 -35
  472. package/library.vue-tailwind-3/l10n/km.js +0 -45
  473. package/library.vue-tailwind-3/l10n/ko.js +0 -41
  474. package/library.vue-tailwind-3/l10n/kz.js +0 -34
  475. package/library.vue-tailwind-3/l10n/lt.js +0 -41
  476. package/library.vue-tailwind-3/l10n/lv.js +0 -37
  477. package/library.vue-tailwind-3/l10n/mk.js +0 -30
  478. package/library.vue-tailwind-3/l10n/mn.js +0 -42
  479. package/library.vue-tailwind-3/l10n/ms.js +0 -28
  480. package/library.vue-tailwind-3/l10n/my.js +0 -42
  481. package/library.vue-tailwind-3/l10n/nl.js +0 -48
  482. package/library.vue-tailwind-3/l10n/no.js +0 -31
  483. package/library.vue-tailwind-3/l10n/pa.js +0 -27
  484. package/library.vue-tailwind-3/l10n/pl.js +0 -31
  485. package/library.vue-tailwind-3/l10n/pt.js +0 -36
  486. package/library.vue-tailwind-3/l10n/ro.js +0 -29
  487. package/library.vue-tailwind-3/l10n/ru.js +0 -48
  488. package/library.vue-tailwind-3/l10n/si.js +0 -40
  489. package/library.vue-tailwind-3/l10n/sk.js +0 -32
  490. package/library.vue-tailwind-3/l10n/sl.js +0 -32
  491. package/library.vue-tailwind-3/l10n/sq.js +0 -27
  492. package/library.vue-tailwind-3/l10n/sr-cyr.js +0 -29
  493. package/library.vue-tailwind-3/l10n/sr.js +0 -30
  494. package/library.vue-tailwind-3/l10n/sv.js +0 -30
  495. package/library.vue-tailwind-3/l10n/th.js +0 -43
  496. package/library.vue-tailwind-3/l10n/tr.js +0 -32
  497. package/library.vue-tailwind-3/l10n/uk.js +0 -28
  498. package/library.vue-tailwind-3/l10n/uz.js +0 -35
  499. package/library.vue-tailwind-3/l10n/uz_latn.js +0 -48
  500. package/library.vue-tailwind-3/l10n/vn.js +0 -41
  501. package/library.vue-tailwind-3/l10n/zh-tw.js +0 -41
  502. package/library.vue-tailwind-3/l10n/zh.js +0 -41
  503. package/library.vue-tailwind-3/services/date.service.js +0 -294
  504. package/library.vue-tailwind-3/services/formatting.service.js +0 -205
  505. package/library.vue-tailwind-3/services/vueTailwind.service.js +0 -41
  506. package/library.vue-tailwind-3/t-alert.js +0 -151
  507. package/library.vue-tailwind-3/t-button.js +0 -243
  508. package/library.vue-tailwind-3/t-card.js +0 -98
  509. package/library.vue-tailwind-3/t-checkbox.js +0 -292
  510. package/library.vue-tailwind-3/t-dropdown.js +0 -322
  511. package/library.vue-tailwind-3/t-input.js +0 -68
  512. package/library.vue-tailwind-3/t-modal.js +0 -409
  513. package/library.vue-tailwind-3/t-pagination.js +0 -309
  514. package/library.vue-tailwind-3/t-radio.js +0 -301
  515. package/library.vue-tailwind-3/t-table.js +0 -362
  516. package/library.vue-tailwind-3/t-textarea.js +0 -84
  517. package/resolver.unplugin-vue-components/index.js +0 -94
  518. package/service.api/index.js +0 -275
  519. package/service.data/index.js +0 -75
  520. package/service.date/index.js +0 -222
  521. package/service.i18n/index.js +0 -145
  522. package/service.idb-keyval/index.js +0 -37
  523. package/service.jwt/index.js +0 -27
  524. package/service.money/index.js +0 -86
  525. package/service.redirect/index.js +0 -20
  526. package/service.storybook/index.js +0 -118
  527. package/service.validation/index.js +0 -55
  528. package/service.worker/index.js +0 -26
  529. package/ui.button/index.stories.js +0 -165
  530. package/ui.button/index.vue +0 -1018
  531. package/ui.button-expand/index.stories.js +0 -44
  532. package/ui.button-expand/index.vue +0 -22
  533. package/ui.button-expand-item/index.stories.js +0 -69
  534. package/ui.button-expand-item/index.vue +0 -154
  535. package/ui.button-group/index.stories.js +0 -104
  536. package/ui.button-group/index.vue +0 -165
  537. package/ui.button-group-item/index.stories.js +0 -74
  538. package/ui.button-group-item/index.vue +0 -283
  539. package/ui.button-link/index.stories.js +0 -121
  540. package/ui.button-link/index.vue +0 -541
  541. package/ui.container-accordion/index.stories.js +0 -88
  542. package/ui.container-accordion/index.vue +0 -167
  543. package/ui.container-card/index.stories.js +0 -128
  544. package/ui.container-card/index.vue +0 -207
  545. package/ui.container-divider/index.stories.js +0 -91
  546. package/ui.container-divider/index.vue +0 -201
  547. package/ui.container-group/index.stories.js +0 -87
  548. package/ui.container-group/index.vue +0 -172
  549. package/ui.container-groups/index.stories.js +0 -44
  550. package/ui.container-groups/index.vue +0 -18
  551. package/ui.container-modal/components/ArrowLink.vue +0 -87
  552. package/ui.container-modal/index.stories.js +0 -169
  553. package/ui.container-modal/index.vue +0 -416
  554. package/ui.container-modal-confirm/index.stories.js +0 -150
  555. package/ui.container-modal-confirm/index.vue +0 -186
  556. package/ui.container-page/components/ArrowLink.vue +0 -87
  557. package/ui.container-page/index.stories.js +0 -174
  558. package/ui.container-page/index.vue +0 -486
  559. package/ui.container-row/index.stories.js +0 -71
  560. package/ui.container-row/index.vue +0 -52
  561. package/ui.data-list/index.stories.js +0 -90
  562. package/ui.data-list/index.vue +0 -367
  563. package/ui.data-table/components/DateSeparator.vue +0 -99
  564. package/ui.data-table/components/EmptyTableMsg.vue +0 -46
  565. package/ui.data-table/components/TableCheckbox.vue +0 -109
  566. package/ui.data-table/index.vue +0 -1101
  567. package/ui.dropdown-button/index.stories.js +0 -157
  568. package/ui.dropdown-button/index.vue +0 -331
  569. package/ui.dropdown-item/index.stories.js +0 -29
  570. package/ui.dropdown-item/index.vue +0 -70
  571. package/ui.dropdown-link/index.stories.js +0 -127
  572. package/ui.dropdown-link/index.vue +0 -330
  573. package/ui.dropdown-list/index.stories.js +0 -46
  574. package/ui.dropdown-list/index.vue +0 -139
  575. package/ui.dropdown-tag/index.stories.js +0 -125
  576. package/ui.dropdown-tag/index.vue +0 -285
  577. package/ui.form-checkbox/index.stories.js +0 -98
  578. package/ui.form-checkbox/index.vue +0 -301
  579. package/ui.form-checkbox-group/index.stories.js +0 -39
  580. package/ui.form-checkbox-group/index.vue +0 -216
  581. package/ui.form-checkbox-multi-state/index.stories.js +0 -62
  582. package/ui.form-checkbox-multi-state/index.vue +0 -244
  583. package/ui.form-color-picker/index.vue +0 -350
  584. package/ui.form-date-picker/index.stories.js +0 -119
  585. package/ui.form-date-picker/index.vue +0 -851
  586. package/ui.form-date-picker-range/components/VariantButton.vue +0 -136
  587. package/ui.form-date-picker-range/components/VariantInput.vue +0 -101
  588. package/ui.form-date-picker-range/index.stories.js +0 -93
  589. package/ui.form-date-picker-range/index.vue +0 -1537
  590. package/ui.form-date-picker-range/services/dateRange.service.js +0 -178
  591. package/ui.form-input/index.stories.js +0 -132
  592. package/ui.form-input/index.vue +0 -524
  593. package/ui.form-input/text-security-disc.woff +0 -0
  594. package/ui.form-input-file/index.stories.js +0 -85
  595. package/ui.form-input-file/index.vue +0 -584
  596. package/ui.form-input-money/_components/ConvertibleInput.vue +0 -773
  597. package/ui.form-input-money/_components/RangeInput.vue +0 -356
  598. package/ui.form-input-money/_components/SingleInput.vue +0 -378
  599. package/ui.form-input-money/index.stories.js +0 -98
  600. package/ui.form-input-money/index.vue +0 -260
  601. package/ui.form-input-number/index.stories.js +0 -33
  602. package/ui.form-input-number/index.vue +0 -127
  603. package/ui.form-input-rating/index.vue +0 -242
  604. package/ui.form-input-search/index.stories.js +0 -86
  605. package/ui.form-input-search/index.vue +0 -210
  606. package/ui.form-radio/index.stories.js +0 -69
  607. package/ui.form-radio/index.vue +0 -176
  608. package/ui.form-radio-card/index.stories.js +0 -140
  609. package/ui.form-radio-card/index.vue +0 -183
  610. package/ui.form-radio-group/index.stories.js +0 -41
  611. package/ui.form-radio-group/index.vue +0 -98
  612. package/ui.form-select/index.stories.js +0 -183
  613. package/ui.form-select/index.vue +0 -1025
  614. package/ui.form-select-multi/index.stories.js +0 -131
  615. package/ui.form-select-multi/index.vue +0 -882
  616. package/ui.form-switch/index.stories.js +0 -126
  617. package/ui.form-switch/index.vue +0 -673
  618. package/ui.form-textarea/index.stories.js +0 -109
  619. package/ui.form-textarea/index.vue +0 -399
  620. package/ui.image-avatar/default-avatar.png +0 -0
  621. package/ui.image-avatar/index.stories.js +0 -106
  622. package/ui.image-avatar/index.vue +0 -253
  623. package/ui.image-icon/cli.mjs +0 -159
  624. package/ui.image-icon/index.stories.js +0 -129
  625. package/ui.image-icon/index.vue +0 -511
  626. package/ui.image-logo/index.stories.js +0 -84
  627. package/ui.image-logo/index.vue +0 -184
  628. package/ui.navigation-pagination/index.stories.js +0 -35
  629. package/ui.navigation-pagination/index.vue +0 -115
  630. package/ui.navigation-stepper/index.stories.js +0 -29
  631. package/ui.navigation-stepper/index.vue +0 -129
  632. package/ui.navigation-tab/index.stories.js +0 -61
  633. package/ui.navigation-tab/index.vue +0 -112
  634. package/ui.navigation-tabs/index.stories.js +0 -73
  635. package/ui.navigation-tabs/index.vue +0 -119
  636. package/ui.other-dot/index.stories.js +0 -77
  637. package/ui.other-dot/index.vue +0 -100
  638. package/ui.other-loader/index.stories.js +0 -77
  639. package/ui.other-loader/index.vue +0 -185
  640. package/ui.text-alert/index.stories.js +0 -124
  641. package/ui.text-alert/index.vue +0 -236
  642. package/ui.text-block/index.stories.js +0 -111
  643. package/ui.text-block/index.vue +0 -137
  644. package/ui.text-empty/configs/default.config.js +0 -28
  645. package/ui.text-empty/index.stories.js +0 -106
  646. package/ui.text-empty/services/variant.service.js +0 -22
  647. package/ui.text-field/index.stories.js +0 -60
  648. package/ui.text-field/index.vue +0 -109
  649. package/ui.text-file/index.stories.js +0 -28
  650. package/ui.text-file/index.vue +0 -102
  651. package/ui.text-files/index.stories.js +0 -31
  652. package/ui.text-files/index.vue +0 -64
  653. package/ui.text-header/index.stories.js +0 -110
  654. package/ui.text-header/index.vue +0 -237
  655. package/ui.text-money/assets/credit.svg +0 -7
  656. package/ui.text-money/assets/debit.svg +0 -12
  657. package/ui.text-money/index.stories.js +0 -263
  658. package/ui.text-money/index.vue +0 -523
  659. package/ui.text-tag/index.stories.js +0 -90
  660. package/ui.text-tag/index.vue +0 -178
  661. /package/{library.web-types-gen → .web-types-gen}/index.js +0 -0
  662. /package/{library.web-types-gen → .web-types-gen}/package.json +0 -0
  663. /package/{_readme → readme}/UGroup.md +0 -0
  664. /package/{_readme → readme}/UPage.md +0 -0
  665. /package/{layout-ui.loader → src/ui.loader-rendering}/store/index.js +0 -0
  666. /package/{layout-ui.viewport → src/ui.viewport}/store/index.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;