vueless 0.0.2 → 0.0.3

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 (436) hide show
  1. package/_readme/README.md +5 -75
  2. package/_readme/UNotify.md +1 -1
  3. package/_readme/UTopLoader.md +2 -2
  4. package/_readme/customization.md +347 -0
  5. package/_readme/installation.md +139 -0
  6. package/_readme/storybook-pages/Customisation.mdx +6 -0
  7. package/_readme/storybook-pages/Installation.mdx +7 -0
  8. package/composable.ui/index.js +341 -30
  9. package/library.vue-tailwind-3/index.js +0 -5
  10. package/library.web-types-gen/lib/build.js +35 -9
  11. package/library.web-types-gen/lib/config.js +10 -4
  12. package/package.json +37 -4
  13. package/plugin.vite/index.js +59 -0
  14. package/plugin.vite/services/iconResolver.service.js +291 -0
  15. package/plugin.vite/services/svgLoader.service.js +76 -0
  16. package/plugin.vite/services/tailwindSafelist.service.js +197 -0
  17. package/plugin.vite/services/unpluginComponentsResolver.js +172 -0
  18. package/service.storybook/index.js +53 -80
  19. package/service.tailwind/index.js +112 -0
  20. package/service.ui/index.js +69 -50
  21. package/ui.button/Docs.mdx +16 -0
  22. package/ui.button/composables/attrs.composable.js +41 -0
  23. package/ui.button/configs/default.config.js +164 -0
  24. package/ui.button/constants/index.js +5 -0
  25. package/ui.button/index.stories.js +8 -7
  26. package/ui.button/index.vue +116 -981
  27. package/ui.button-link/Docs.mdx +16 -0
  28. package/ui.button-link/composables/attrs.composable.js +99 -0
  29. package/ui.button-link/configs/default.config.js +80 -0
  30. package/ui.button-link/constants/index.js +5 -0
  31. package/ui.button-link/index.stories.js +56 -19
  32. package/ui.button-link/index.vue +178 -493
  33. package/ui.button-toggle/Docs.mdx +16 -0
  34. package/ui.button-toggle/composables/attrs.composable.js +16 -0
  35. package/ui.button-toggle/configs/default.config.js +12 -0
  36. package/ui.button-toggle/constants/index.js +7 -0
  37. package/{ui.button-group → ui.button-toggle}/index.stories.js +79 -28
  38. package/ui.button-toggle/index.vue +128 -0
  39. package/ui.button-toggle-item/Docs.mdx +16 -0
  40. package/ui.button-toggle-item/composables/attrs.composable.js +53 -0
  41. package/ui.button-toggle-item/configs/default.config.js +58 -0
  42. package/ui.button-toggle-item/constants/index.js +5 -0
  43. package/{ui.button-group-item → ui.button-toggle-item}/index.stories.js +16 -13
  44. package/ui.button-toggle-item/index.vue +147 -0
  45. package/ui.container-accordion/composables/attrs.composable.js +45 -0
  46. package/ui.container-accordion/configs/default.config.js +32 -0
  47. package/ui.container-accordion/constants/index.js +5 -0
  48. package/ui.container-accordion/index.stories.js +3 -2
  49. package/ui.container-accordion/index.vue +71 -143
  50. package/ui.container-card/Docs.mdx +16 -0
  51. package/ui.container-card/composable/attrs.composable.js +56 -0
  52. package/ui.container-card/configs/default.config.js +31 -0
  53. package/ui.container-card/constants/index.js +5 -0
  54. package/ui.container-card/index.stories.js +51 -9
  55. package/ui.container-card/index.vue +108 -169
  56. package/ui.container-divider/Docs.mdx +16 -0
  57. package/ui.container-divider/composables/attrs.composable.js +65 -0
  58. package/ui.container-divider/configs/default.config.js +79 -0
  59. package/ui.container-divider/constants/index.js +5 -0
  60. package/ui.container-divider/index.stories.js +41 -8
  61. package/ui.container-divider/index.vue +126 -189
  62. package/ui.container-group/Docs.mdx +16 -0
  63. package/ui.container-group/composables/attrs.composable.js +44 -0
  64. package/ui.container-group/configs/default.config.js +29 -0
  65. package/ui.container-group/constants/index.js +5 -0
  66. package/ui.container-group/index.stories.js +7 -6
  67. package/ui.container-group/index.vue +76 -142
  68. package/ui.container-groups/Docs.mdx +16 -0
  69. package/ui.container-groups/composables/attrs.composable.js +12 -0
  70. package/ui.container-groups/configs/default.config.js +3 -0
  71. package/ui.container-groups/index.stories.js +4 -3
  72. package/ui.container-groups/index.vue +26 -11
  73. package/ui.container-modal/Docs.mdx +16 -0
  74. package/ui.container-modal/composables/attrs.composable.js +90 -0
  75. package/ui.container-modal/configs/default.config.js +69 -0
  76. package/ui.container-modal/constants/index.js +5 -0
  77. package/ui.container-modal/index.stories.js +8 -7
  78. package/ui.container-modal/index.vue +289 -370
  79. package/ui.container-modal-confirm/Docs.mdx +16 -0
  80. package/ui.container-modal-confirm/composable/attrs.composable.js +19 -0
  81. package/ui.container-modal-confirm/configs/default.config.js +12 -0
  82. package/ui.container-modal-confirm/constants/index.js +5 -0
  83. package/ui.container-modal-confirm/index.stories.js +66 -7
  84. package/ui.container-modal-confirm/index.vue +126 -116
  85. package/ui.container-page/Docs.mdx +16 -0
  86. package/ui.container-page/composables/attrs.composable.js +96 -0
  87. package/ui.container-page/configs/default.config.js +71 -0
  88. package/ui.container-page/constants/index.js +5 -0
  89. package/ui.container-page/index.stories.js +7 -34
  90. package/ui.container-page/index.vue +193 -408
  91. package/ui.container-row/Docs.mdx +16 -0
  92. package/ui.container-row/composables/attrs.composable.js +23 -0
  93. package/ui.container-row/configs/default.config.js +14 -0
  94. package/ui.container-row/constants/index.js +5 -0
  95. package/ui.container-row/index.stories.js +10 -0
  96. package/ui.container-row/index.vue +32 -39
  97. package/ui.data-list/composables/attrs.composable.js +45 -0
  98. package/ui.data-list/configs/default.config.js +32 -0
  99. package/ui.data-list/constants/index.js +5 -0
  100. package/ui.data-list/index.stories.js +1 -0
  101. package/ui.data-list/index.vue +156 -265
  102. package/ui.data-table/Docs.mdx +16 -0
  103. package/ui.data-table/composables/attrs.composable.js +188 -0
  104. package/ui.data-table/configs/default.config.js +82 -0
  105. package/ui.data-table/constants/index.js +5 -0
  106. package/ui.data-table/index.stories.js +73 -43
  107. package/ui.data-table/index.vue +600 -961
  108. package/ui.data-table/services/table.service.js +15 -0
  109. package/ui.data-table-cell/composables/attrs.composable.js +24 -0
  110. package/ui.data-table-cell/configs/default.config.js +19 -0
  111. package/ui.data-table-cell/constants/index.js +5 -0
  112. package/ui.data-table-cell/index.vue +44 -0
  113. package/ui.dropdown-badge/Docs.mdx +16 -0
  114. package/ui.dropdown-badge/composables/attrs.composable.js +63 -0
  115. package/ui.dropdown-badge/configs/default.config.js +34 -0
  116. package/ui.dropdown-badge/constants/index.js +5 -0
  117. package/{ui.dropdown-tag → ui.dropdown-badge}/index.stories.js +26 -25
  118. package/ui.dropdown-badge/index.vue +233 -0
  119. package/ui.dropdown-button/Docs.mdx +16 -0
  120. package/ui.dropdown-button/composables/attrs.composable.js +63 -0
  121. package/ui.dropdown-button/configs/default.config.js +37 -0
  122. package/ui.dropdown-button/constants/index.js +14 -0
  123. package/ui.dropdown-button/index.stories.js +12 -11
  124. package/ui.dropdown-button/index.vue +231 -291
  125. package/ui.dropdown-item/Docs.mdx +16 -0
  126. package/ui.dropdown-item/composables/attrs.composable.js +13 -0
  127. package/ui.dropdown-item/configs/default.config.js +16 -0
  128. package/ui.dropdown-item/index.stories.js +2 -1
  129. package/ui.dropdown-item/index.vue +38 -55
  130. package/ui.dropdown-link/Docs.mdx +16 -0
  131. package/ui.dropdown-link/composables/attrs.composable.js +65 -0
  132. package/ui.dropdown-link/configs/default.config.js +37 -0
  133. package/ui.dropdown-link/constants/index.js +5 -0
  134. package/ui.dropdown-link/index.stories.js +11 -11
  135. package/ui.dropdown-link/index.vue +217 -287
  136. package/ui.dropdown-list/Docs.mdx +16 -0
  137. package/ui.dropdown-list/composables/attrs.composable.js +91 -0
  138. package/ui.dropdown-list/composables/usePointer.js +77 -0
  139. package/ui.dropdown-list/configs/default.config.js +68 -0
  140. package/ui.dropdown-list/constants/index.js +5 -0
  141. package/ui.dropdown-list/index.stories.js +33 -3
  142. package/ui.dropdown-list/index.vue +271 -112
  143. package/ui.form-calendar/Docs.mdx +52 -0
  144. package/ui.form-calendar/components/DayView.vue +230 -0
  145. package/ui.form-calendar/components/MonthView.vue +114 -0
  146. package/ui.form-calendar/components/YearView.vue +118 -0
  147. package/ui.form-calendar/composables/attrs.composable.js +87 -0
  148. package/ui.form-calendar/configs/default.config.js +115 -0
  149. package/ui.form-calendar/constants/index.js +69 -0
  150. package/ui.form-calendar/index.stories.js +50 -0
  151. package/ui.form-calendar/index.vue +628 -0
  152. package/ui.form-calendar/services/calendar.service.js +201 -0
  153. package/ui.form-calendar/services/date.service.js +121 -0
  154. package/ui.form-calendar/services/formatting.service.js +180 -0
  155. package/ui.form-checkbox/Docs.mdx +16 -0
  156. package/ui.form-checkbox/composables/attrs.composable.js +57 -0
  157. package/ui.form-checkbox/configs/default.config.js +69 -0
  158. package/ui.form-checkbox/constants/index.js +5 -0
  159. package/ui.form-checkbox/index.stories.js +75 -26
  160. package/ui.form-checkbox/index.vue +201 -261
  161. package/ui.form-checkbox-group/Docs.mdx +16 -0
  162. package/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
  163. package/ui.form-checkbox-group/configs/default.config.js +5 -0
  164. package/ui.form-checkbox-group/constants/index.js +5 -0
  165. package/ui.form-checkbox-group/index.stories.js +7 -1
  166. package/ui.form-checkbox-group/index.vue +104 -177
  167. package/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  168. package/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
  169. package/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
  170. package/ui.form-checkbox-multi-state/constants/index.js +5 -0
  171. package/ui.form-checkbox-multi-state/index.stories.js +8 -11
  172. package/ui.form-checkbox-multi-state/index.vue +109 -220
  173. package/ui.form-color-picker/composables/attrs.composable.js +44 -0
  174. package/ui.form-color-picker/configs/default.config.js +52 -0
  175. package/ui.form-color-picker/constants/index.js +5 -0
  176. package/ui.form-color-picker/index.stories.js +63 -0
  177. package/ui.form-color-picker/index.vue +147 -329
  178. package/ui.form-date-picker/Docs.mdx +52 -0
  179. package/ui.form-date-picker/composables/attrs.composable.js +22 -0
  180. package/ui.form-date-picker/configs/default.config.js +27 -0
  181. package/ui.form-date-picker/constants/index.js +5 -0
  182. package/ui.form-date-picker/index.stories.js +21 -8
  183. package/ui.form-date-picker/index.vue +205 -802
  184. package/ui.form-input/Docs.mdx +16 -0
  185. package/ui.form-input/composables/attrs.composable.js +66 -0
  186. package/ui.form-input/configs/default.config.js +72 -0
  187. package/{constant.component-names → ui.form-input/constants}/index.js +1 -2
  188. package/ui.form-input/index.stories.js +46 -12
  189. package/ui.form-input/index.vue +320 -459
  190. package/ui.form-input-file/composables/attrs.composable.js +82 -0
  191. package/ui.form-input-file/configs/default.config.js +51 -0
  192. package/ui.form-input-file/constants/index.js +5 -0
  193. package/ui.form-input-file/index.stories.js +3 -2
  194. package/ui.form-input-file/index.vue +332 -498
  195. package/ui.form-input-money/Docs.mdx +16 -0
  196. package/ui.form-input-money/composables/attrs.composable.js +13 -0
  197. package/ui.form-input-money/composables/useFormatCurrency.js +82 -0
  198. package/ui.form-input-money/configs/default.config.js +16 -0
  199. package/ui.form-input-money/constants/index.js +5 -0
  200. package/ui.form-input-money/index.stories.js +71 -43
  201. package/ui.form-input-money/index.vue +241 -237
  202. package/ui.form-input-money/services/format.service.js +72 -0
  203. package/ui.form-input-number/Docs.mdx +16 -0
  204. package/ui.form-input-number/composables/attrs.composable.js +47 -0
  205. package/ui.form-input-number/configs/default.config.js +33 -0
  206. package/ui.form-input-number/constants/index.js +5 -0
  207. package/ui.form-input-number/index.stories.js +73 -3
  208. package/ui.form-input-number/index.vue +138 -106
  209. package/ui.form-input-rating/composables/attrs.composable.js +34 -0
  210. package/ui.form-input-rating/configs/default.config.js +25 -0
  211. package/ui.form-input-rating/constants/index.js +5 -0
  212. package/ui.form-input-rating/index.stories.js +3 -2
  213. package/ui.form-input-rating/index.vue +152 -209
  214. package/ui.form-input-search/composables/attrs.composable.js +21 -0
  215. package/ui.form-input-search/configs/default.config.js +20 -0
  216. package/ui.form-input-search/constants/index.js +5 -0
  217. package/ui.form-input-search/index.stories.js +8 -4
  218. package/ui.form-input-search/index.vue +192 -189
  219. package/ui.form-label/Docs.mdx +16 -0
  220. package/ui.form-label/composables/attrs.composable.js +65 -0
  221. package/ui.form-label/configs/default.config.js +95 -0
  222. package/ui.form-label/constants/index.js +13 -0
  223. package/ui.form-label/index.stories.js +107 -0
  224. package/ui.form-label/index.vue +170 -0
  225. package/ui.form-radio/Docs.mdx +16 -0
  226. package/ui.form-radio/composables/attrs.composable.js +34 -0
  227. package/ui.form-radio/configs/default.config.js +47 -0
  228. package/ui.form-radio/constants/index.js +5 -0
  229. package/ui.form-radio/index.stories.js +12 -10
  230. package/ui.form-radio/index.vue +141 -148
  231. package/ui.form-radio-card/Docs.mdx +16 -0
  232. package/ui.form-radio-card/composables/attrs.composable.js +30 -0
  233. package/ui.form-radio-card/configs/default.config.js +25 -0
  234. package/ui.form-radio-card/constants/index.js +5 -0
  235. package/ui.form-radio-card/index.stories.js +19 -10
  236. package/ui.form-radio-card/index.vue +132 -146
  237. package/ui.form-radio-card/services/variant.service.js +15 -0
  238. package/ui.form-radio-group/Docs.mdx +16 -0
  239. package/ui.form-radio-group/composables/attrs.composable.js +27 -0
  240. package/ui.form-radio-group/configs/default.config.js +18 -0
  241. package/ui.form-radio-group/constants/index.js +5 -0
  242. package/ui.form-radio-group/index.stories.js +1 -0
  243. package/ui.form-radio-group/index.vue +114 -85
  244. package/ui.form-select/Docs.mdx +16 -0
  245. package/ui.form-select/composables/attrs.composable.js +172 -0
  246. package/ui.form-select/configs/default.config.js +131 -0
  247. package/ui.form-select/constants/index.js +19 -0
  248. package/ui.form-select/index.stories.js +194 -38
  249. package/ui.form-select/index.vue +638 -910
  250. package/ui.form-select/services/select.service.js +98 -0
  251. package/ui.form-switch/composables/attrs.composable.js +77 -0
  252. package/ui.form-switch/configs/default.config.js +72 -0
  253. package/ui.form-switch/constants/index.js +5 -0
  254. package/ui.form-switch/index.stories.js +9 -42
  255. package/ui.form-switch/index.vue +177 -632
  256. package/ui.form-switch/services/variant.service.js +31 -0
  257. package/ui.form-textarea/Docs.mdx +16 -0
  258. package/ui.form-textarea/composables/attrs.composable.js +52 -0
  259. package/ui.form-textarea/configs/default.config.js +68 -0
  260. package/ui.form-textarea/constants/index.js +5 -0
  261. package/ui.form-textarea/index.stories.js +47 -5
  262. package/ui.form-textarea/index.vue +238 -353
  263. package/ui.image-avatar/composables/attrs.composable.js +34 -0
  264. package/ui.image-avatar/configs/default.config.js +42 -0
  265. package/ui.image-avatar/constants/index.js +5 -0
  266. package/ui.image-avatar/index.stories.js +7 -6
  267. package/ui.image-avatar/index.vue +94 -226
  268. package/ui.image-icon/Docs.mdx +16 -0
  269. package/ui.image-icon/composables/attrs.composable.js +65 -0
  270. package/ui.image-icon/configs/default.config.js +90 -0
  271. package/ui.image-icon/constants/index.js +5 -0
  272. package/ui.image-icon/index.stories.js +16 -35
  273. package/ui.image-icon/index.vue +165 -453
  274. package/ui.image-logo/composables/attrs.composable.js +41 -0
  275. package/ui.image-logo/configs/default.config.js +38 -0
  276. package/ui.image-logo/constants/index.js +5 -0
  277. package/ui.image-logo/index.stories.js +8 -8
  278. package/ui.image-logo/index.vue +80 -166
  279. package/ui.navigation-pagination/composables/attrs.composable.js +41 -0
  280. package/ui.navigation-pagination/configs/default.config.js +24 -0
  281. package/ui.navigation-pagination/constants/index.js +8 -0
  282. package/ui.navigation-pagination/index.stories.js +23 -6
  283. package/ui.navigation-pagination/index.vue +262 -102
  284. package/ui.navigation-stepper/composables/attrs.composable.js +25 -0
  285. package/ui.navigation-stepper/configs/default.config.js +13 -0
  286. package/ui.navigation-stepper/constants/index.js +5 -0
  287. package/ui.navigation-stepper/index.stories.js +1 -0
  288. package/ui.navigation-stepper/index.vue +87 -88
  289. package/ui.navigation-tab/composables/attrs.composable.js +30 -0
  290. package/ui.navigation-tab/configs/default.config.js +22 -0
  291. package/ui.navigation-tab/constants/index.js +5 -0
  292. package/ui.navigation-tab/index.stories.js +7 -11
  293. package/ui.navigation-tab/index.vue +58 -85
  294. package/ui.navigation-tabs/composables/attrs.composable.js +24 -0
  295. package/ui.navigation-tabs/configs/default.config.js +14 -0
  296. package/ui.navigation-tabs/constants/index.js +5 -0
  297. package/ui.navigation-tabs/index.stories.js +7 -11
  298. package/ui.navigation-tabs/index.vue +68 -88
  299. package/ui.other-dot/composables/attrs.composable.js +32 -0
  300. package/ui.other-dot/configs/default.config.js +21 -0
  301. package/ui.other-dot/constants/index.js +5 -0
  302. package/ui.other-dot/index.stories.js +5 -5
  303. package/ui.other-dot/index.vue +41 -89
  304. package/ui.other-loader/composables/attrs.composable.js +51 -0
  305. package/ui.other-loader/configs/default.config.js +47 -0
  306. package/ui.other-loader/constants/index.js +5 -0
  307. package/ui.other-loader/index.stories.js +14 -13
  308. package/ui.other-loader/index.vue +58 -107
  309. package/ui.text-alert/composables/attrs.composable.js +48 -0
  310. package/ui.text-alert/configs/default.config.js +51 -0
  311. package/ui.text-alert/constatns/index.js +5 -0
  312. package/ui.text-alert/index.stories.js +39 -6
  313. package/ui.text-alert/index.vue +95 -210
  314. package/ui.text-badge/Docs.mdx +16 -0
  315. package/ui.text-badge/composables/attrs.composable.js +49 -0
  316. package/ui.text-badge/configs/default.config.js +51 -0
  317. package/ui.text-badge/constants/index.js +5 -0
  318. package/ui.text-badge/index.stories.js +190 -0
  319. package/ui.text-badge/index.vue +120 -0
  320. package/ui.text-block/composables/attrs.composable.js +31 -0
  321. package/ui.text-block/configs/default.config.js +35 -0
  322. package/ui.text-block/constatns/index.js +5 -0
  323. package/ui.text-block/index.stories.js +2 -1
  324. package/ui.text-block/index.vue +55 -116
  325. package/ui.text-empty/Docs.mdx +16 -0
  326. package/ui.text-empty/composables/attrs.composable.js +43 -0
  327. package/ui.text-empty/configs/default.config.js +4 -2
  328. package/ui.text-empty/constants/index.js +5 -0
  329. package/ui.text-empty/index.stories.js +3 -3
  330. package/ui.text-empty/index.vue +13 -14
  331. package/ui.text-file/composables/attrs.composable.js +37 -0
  332. package/ui.text-file/configs/default.config.js +15 -0
  333. package/ui.text-file/index.stories.js +2 -1
  334. package/ui.text-file/index.vue +63 -72
  335. package/ui.text-files/composables/attrs.composable.js +19 -0
  336. package/ui.text-files/configs/default.config.js +9 -0
  337. package/ui.text-files/constants/index.js +5 -0
  338. package/ui.text-files/index.stories.js +1 -0
  339. package/ui.text-files/index.vue +73 -50
  340. package/ui.text-header/Docs.mdx +16 -0
  341. package/ui.text-header/composables/attrs.composable.js +34 -0
  342. package/ui.text-header/configs/default.config.js +45 -0
  343. package/ui.text-header/constants/index.js +5 -0
  344. package/ui.text-header/index.stories.js +34 -38
  345. package/ui.text-header/index.vue +67 -221
  346. package/ui.text-money/Docs.mdx +16 -0
  347. package/ui.text-money/composables/attrs.composable.js +65 -0
  348. package/ui.text-money/configs/default.config.js +69 -0
  349. package/ui.text-money/constants/index.js +7 -0
  350. package/ui.text-money/index.stories.js +24 -22
  351. package/ui.text-money/index.vue +187 -506
  352. package/ui.text-money/services/money.services.js +24 -0
  353. package/_readme/layoutAdmin.md +0 -703
  354. package/_readme/layoutApp.md +0 -153
  355. package/_readme/layoutAuth.md +0 -190
  356. package/config.rollup-plugin-visualizer/index.js +0 -11
  357. package/config.unplugin-vue-i18n/index.js +0 -9
  358. package/config.vite-plugin-pwa/index.js +0 -132
  359. package/config.vite-svg-loader/index.js +0 -22
  360. package/index.js +0 -151
  361. package/layout-ui.loader/index.vue +0 -61
  362. package/layout-ui.loader/store/index.js +0 -17
  363. package/layout-ui.loader-top/components/TopProgress.vue +0 -277
  364. package/layout-ui.loader-top/index.vue +0 -218
  365. package/layout-ui.loader-top/store/index.js +0 -55
  366. package/layout-ui.notify/index.stories.js +0 -102
  367. package/layout-ui.notify/index.vue +0 -254
  368. package/layout-ui.viewport/index.vue +0 -78
  369. package/layout-ui.viewport/store/index.js +0 -47
  370. package/layout.admin/AsideBlock.vue +0 -534
  371. package/layout.admin/AsideInfoBlock.vue +0 -85
  372. package/layout.admin/BrandBlock.vue +0 -380
  373. package/layout.admin/ChangeThemeModal.vue +0 -179
  374. package/layout.admin/HelperBlock.vue +0 -132
  375. package/layout.admin/MainMenu.vue +0 -234
  376. package/layout.admin/MainSubMenu.vue +0 -196
  377. package/layout.admin/MobileMainMenu.vue +0 -197
  378. package/layout.admin/MobileSubBlock.vue +0 -171
  379. package/layout.admin/RightInfoBlock.vue +0 -166
  380. package/layout.admin/UserBlock.vue +0 -290
  381. package/layout.admin/images/abstract-01.jpg +0 -0
  382. package/layout.admin/images/abstract-01_preview.jpg +0 -0
  383. package/layout.admin/index.vue +0 -544
  384. package/layout.admin/mixins/index.js +0 -54
  385. package/layout.admin/store/index.js +0 -167
  386. package/layout.auth/FeaturesBlock.vue +0 -57
  387. package/layout.auth/FooterMenu.vue +0 -90
  388. package/layout.auth/LanguageSwitcher.vue +0 -90
  389. package/layout.auth/index.vue +0 -237
  390. package/library.vue-tailwind-3/t-input.js +0 -68
  391. package/library.vue-tailwind-3/t-modal.js +0 -409
  392. package/library.vue-tailwind-3/t-pagination.js +0 -309
  393. package/library.vue-tailwind-3/t-table.js +0 -362
  394. package/library.vue-tailwind-3/t-textarea.js +0 -84
  395. package/resolver.unplugin-vue-components/index.js +0 -94
  396. package/service.api/index.js +0 -275
  397. package/service.data/index.js +0 -75
  398. package/service.date/index.js +0 -222
  399. package/service.i18n/index.js +0 -145
  400. package/service.idb-keyval/index.js +0 -37
  401. package/service.jwt/index.js +0 -27
  402. package/service.money/index.js +0 -86
  403. package/service.notify/index.js +0 -87
  404. package/service.redirect/index.js +0 -20
  405. package/service.validation/index.js +0 -55
  406. package/service.worker/index.js +0 -26
  407. package/ui.button-expand/index.stories.js +0 -44
  408. package/ui.button-expand/index.vue +0 -22
  409. package/ui.button-expand-item/index.stories.js +0 -69
  410. package/ui.button-expand-item/index.vue +0 -154
  411. package/ui.button-group/index.vue +0 -165
  412. package/ui.button-group-item/index.vue +0 -283
  413. package/ui.container-modal/components/ArrowLink.vue +0 -87
  414. package/ui.container-page/components/ArrowLink.vue +0 -87
  415. package/ui.data-table/components/DateSeparator.vue +0 -99
  416. package/ui.data-table/components/EmptyTableMsg.vue +0 -46
  417. package/ui.data-table/components/TableCheckbox.vue +0 -109
  418. package/ui.dropdown-tag/index.vue +0 -285
  419. package/ui.form-date-picker-range/components/VariantButton.vue +0 -136
  420. package/ui.form-date-picker-range/components/VariantInput.vue +0 -101
  421. package/ui.form-date-picker-range/index.stories.js +0 -93
  422. package/ui.form-date-picker-range/index.vue +0 -1537
  423. package/ui.form-date-picker-range/services/dateRange.service.js +0 -178
  424. package/ui.form-input-money/_components/ConvertibleInput.vue +0 -773
  425. package/ui.form-input-money/_components/RangeInput.vue +0 -356
  426. package/ui.form-input-money/_components/SingleInput.vue +0 -378
  427. package/ui.form-select-multi/index.stories.js +0 -131
  428. package/ui.form-select-multi/index.vue +0 -882
  429. package/ui.image-icon/cli.mjs +0 -159
  430. package/ui.text-empty/services/variant.service.js +0 -22
  431. package/ui.text-field/index.stories.js +0 -60
  432. package/ui.text-field/index.vue +0 -109
  433. package/ui.text-tag/index.stories.js +0 -90
  434. package/ui.text-tag/index.vue +0 -178
  435. package/web-types.json +0 -6320
  436. /package/ui.form-input/{text-security-disc.woff → assets/fonts/text-security-disc.woff} +0 -0
@@ -0,0 +1,628 @@
1
+ <template>
2
+ <div ref="wrapperRef" tabindex="1" v-bind="wrapperAttrs" @keydown="onKeydown">
3
+ <div v-bind="navigationAttrs">
4
+ <UButton
5
+ size="sm"
6
+ color="gray"
7
+ pill
8
+ square
9
+ variant="thirdary"
10
+ v-bind="navigationSwitchViewButtonAttrs"
11
+ @click="onClickViewSwitch"
12
+ @mousedown.prevent.capture
13
+ >
14
+ <span v-if="isCurrentView.day" v-bind="dayViewSwitchLabelAttrs">
15
+ <span v-bind="dayViewSwitchLabelMonthAttrs" v-text="viewSwitchLabel.month" />
16
+ <span v-text="viewSwitchLabel.year" />
17
+ </span>
18
+ <span v-if="isCurrentView.month" v-text="viewSwitchLabel.year" />
19
+ <span v-if="isCurrentView.year" v-text="viewSwitchLabel.yearsRange" />
20
+
21
+ <template #right>
22
+ <UIcon
23
+ size="sm"
24
+ color="gray"
25
+ variant="light"
26
+ :name="config.dayViewSwitchLabelIconName"
27
+ v-bind="dayViewSwitchLabelIconAttrs"
28
+ />
29
+ </template>
30
+ </UButton>
31
+
32
+ <div v-bind="nextPrevWrapperAttrs">
33
+ <UButton
34
+ pill
35
+ size="sm"
36
+ square
37
+ variant="thirdary"
38
+ v-bind="nextPrevButtonAttrs"
39
+ @mousedown.prevent.capture
40
+ @click="onClickPrevButton"
41
+ >
42
+ <UIcon
43
+ size="sm"
44
+ color="gray"
45
+ variant="light"
46
+ :name="config.prevIconName"
47
+ v-bind="prevIconAttrs"
48
+ />
49
+ </UButton>
50
+
51
+ <UButton
52
+ pill
53
+ size="sm"
54
+ square
55
+ variant="thirdary"
56
+ v-bind="nextPrevButtonAttrs"
57
+ @mousedown.prevent.capture
58
+ @click="onClickNextButton"
59
+ >
60
+ <UIcon
61
+ size="sm"
62
+ color="gray"
63
+ variant="light"
64
+ :name="config.nextIconName"
65
+ v-bind="nextIconAttrs"
66
+ />
67
+ </UButton>
68
+ </div>
69
+ </div>
70
+
71
+ <DayView
72
+ v-if="isCurrentView.day"
73
+ :selected-date="selectedDate"
74
+ :active-month="activeMonth"
75
+ :active-date="activeDate"
76
+ :min-date="minDate"
77
+ :max-date="maxDate"
78
+ :date-format="dateFormat"
79
+ :locale="locale"
80
+ :config="config"
81
+ @input="onInputDate"
82
+ />
83
+
84
+ <MonthView
85
+ v-if="isCurrentView.month"
86
+ :selected-date="selectedDate"
87
+ :active-month="activeMonth"
88
+ :active-date="activeDate"
89
+ :min-date="minDate"
90
+ :max-date="maxDate"
91
+ :date-format="dateFormat"
92
+ :locale="locale"
93
+ :config="config"
94
+ @input="onInput"
95
+ />
96
+
97
+ <YearView
98
+ v-if="isCurrentView.year"
99
+ :selected-date="selectedDate"
100
+ :active-month="activeMonth"
101
+ :active-date="activeDate"
102
+ :min-date="minDate"
103
+ :max-date="maxDate"
104
+ :date-format="dateFormat"
105
+ :locale="locale"
106
+ :config="config"
107
+ @input="onInput"
108
+ />
109
+
110
+ <div v-if="timepicker" v-bind="timepickerWrapperAttrs">
111
+ <span v-bind="timepickerLabelAttrs" v-text="localValue.timeLabel" />
112
+
113
+ <div v-bind="timepickerInputWrapperAttrs">
114
+ <input
115
+ ref="hoursRef"
116
+ type="text"
117
+ v-bind="timepickerLeftInputAttrs"
118
+ @input.prevent="onTimeInput($event, INPUT_TYPE.hours, MAX_HOURS, MIN_HOURS)"
119
+ @keydown="onTimeKeydown"
120
+ />
121
+ &#8282;
122
+ <input
123
+ ref="minutesRef"
124
+ type="text"
125
+ v-bind="timepickerRightInputAttrs"
126
+ @input.prevent="onTimeInput($event, INPUT_TYPE.minutes, MAX_MINUTES, MIN_MINUTES)"
127
+ @keydown="onTimeKeydown"
128
+ />
129
+ </div>
130
+
131
+ <UButton v-bind="submitButtonAttrs" @click="onClickSubmit">
132
+ {{ locale.okLabel }}
133
+ </UButton>
134
+ </div>
135
+ </div>
136
+ </template>
137
+
138
+ <script setup>
139
+ import { computed, onMounted, ref, watch } from "vue";
140
+
141
+ import {
142
+ parseDate,
143
+ formatDate,
144
+ getYearsRange,
145
+ dateIsOutOfRange,
146
+ isNumeric,
147
+ } from "./services/calendar.service";
148
+ import {
149
+ getUnixTimestampFromDate,
150
+ getDateWithoutTime,
151
+ addMonths,
152
+ addDays,
153
+ addYears,
154
+ getSortedLocale,
155
+ } from "./services/date.service";
156
+ import UIService from "vueless/service.ui";
157
+
158
+ import useAttrs from "./composables/attrs.composable";
159
+
160
+ import {
161
+ UCalendar,
162
+ VIEW,
163
+ KEY_CODE,
164
+ YEARS_PER_VIEW,
165
+ MAX_HOURS,
166
+ MIN_HOURS,
167
+ MAX_MINUTES,
168
+ MIN_MINUTES,
169
+ SEPARATOR,
170
+ INPUT_TYPE,
171
+ LOCALE_TYPE,
172
+ } from "./constants";
173
+
174
+ import defaultConfig from "./configs/default.config";
175
+
176
+ import DayView from "./components/DayView.vue";
177
+ import MonthView from "./components/MonthView.vue";
178
+ import YearView from "./components/YearView.vue";
179
+
180
+ defineOptions({ name: "UCalendar" });
181
+
182
+ const props = defineProps({
183
+ /**
184
+ * Calendar value (timestamp).
185
+ */
186
+ modelValue: {
187
+ type: Number,
188
+ default: null,
189
+ },
190
+
191
+ /**
192
+ * Calendar view.
193
+ * @values day, month, year
194
+ */
195
+ view: {
196
+ type: String,
197
+ default: VIEW.day,
198
+ },
199
+
200
+ /**
201
+ * Enable range selection.
202
+ * TODO: Make it work
203
+ */
204
+ range: {
205
+ type: Boolean,
206
+ default: UIService.get(defaultConfig, UCalendar).default.range,
207
+ },
208
+
209
+ /**
210
+ * Enable timepicker.
211
+ */
212
+ timepicker: {
213
+ type: Boolean,
214
+ default: UIService.get(defaultConfig, UCalendar).default.timepicker,
215
+ },
216
+
217
+ /**
218
+ * Date format.
219
+ */
220
+ dateFormat: {
221
+ type: String,
222
+ default: UIService.get(defaultConfig, UCalendar).default.dateFormat,
223
+ },
224
+
225
+ /**
226
+ * User friendly date format.
227
+ */
228
+ userFormat: {
229
+ type: String,
230
+ default: UIService.get(defaultConfig, UCalendar).default.userFormat,
231
+ },
232
+
233
+ /**
234
+ * Min date in format date string or Date.
235
+ */
236
+ minDate: {
237
+ type: [Date, String],
238
+ default: UIService.get(defaultConfig, UCalendar).default.minDate,
239
+ },
240
+
241
+ /**
242
+ * Max date in format date string or Date.
243
+ */
244
+ maxDate: {
245
+ type: [Date, String],
246
+ default: UIService.get(defaultConfig, UCalendar).default.maxDate,
247
+ },
248
+
249
+ /**
250
+ * Component ui config object.
251
+ */
252
+ config: {
253
+ type: Object,
254
+ default: () => ({}),
255
+ },
256
+
257
+ /**
258
+ * Data-cy attribute for automated testing.
259
+ */
260
+ dataCy: {
261
+ type: String,
262
+ default: "",
263
+ },
264
+ });
265
+
266
+ const emit = defineEmits([
267
+ "update:modelValue",
268
+ "update:view",
269
+ "input",
270
+ "submit",
271
+ "keydown",
272
+ "userDateChange",
273
+ "formattedDateChange",
274
+ ]);
275
+
276
+ const {
277
+ config,
278
+ wrapperAttrs,
279
+ navigationAttrs,
280
+ navigationSwitchViewButtonAttrs,
281
+ dayViewSwitchLabelAttrs,
282
+ dayViewSwitchLabelMonthAttrs,
283
+ dayViewSwitchLabelIconAttrs,
284
+ nextIconAttrs,
285
+ nextPrevButtonAttrs,
286
+ prevIconAttrs,
287
+ timepickerWrapperAttrs,
288
+ timepickerLabelAttrs,
289
+ timepickerInputWrapperAttrs,
290
+ timepickerLeftInputAttrs,
291
+ timepickerRightInputAttrs,
292
+ submitButtonAttrs,
293
+ nextPrevWrapperAttrs,
294
+ } = useAttrs(props);
295
+
296
+ const wrapperRef = ref(null);
297
+ const hoursRef = ref(null);
298
+ const minutesRef = ref(null);
299
+
300
+ const activeDate = ref(null);
301
+ const activeMonth = ref(null);
302
+
303
+ defineExpose({ wrapperRef });
304
+
305
+ const currentView = computed({
306
+ get: () => props.view,
307
+ set: (value) => emit("update:view", value),
308
+ });
309
+
310
+ const isCurrentView = computed(() => ({
311
+ day: currentView.value === VIEW.day,
312
+ month: currentView.value === VIEW.month,
313
+ year: currentView.value === VIEW.year,
314
+ }));
315
+
316
+ const locale = computed(() => {
317
+ const currentLocale = props.config.i18n || config.value.i18n;
318
+ const formattedLocale = {
319
+ ...currentLocale,
320
+ months: {
321
+ shorthand: getSortedLocale(currentLocale.months.shorthand, LOCALE_TYPE.month),
322
+ longhand: getSortedLocale(currentLocale.months.longhand, LOCALE_TYPE.month),
323
+ },
324
+ weekdays: {
325
+ shorthand: getSortedLocale(currentLocale.weekdays.shorthand, LOCALE_TYPE.day),
326
+ longhand: getSortedLocale(currentLocale.weekdays.longhand, LOCALE_TYPE.day),
327
+ },
328
+ };
329
+
330
+ return formattedLocale;
331
+ });
332
+
333
+ const localValue = computed({
334
+ get: () => props.modelValue,
335
+ set(value) {
336
+ const parsedDate = parseDate(value, props.dateFormat, locale.value);
337
+
338
+ if (parsedDate && props.timepicker) {
339
+ parsedDate.setHours(Number(hoursRef.value.value));
340
+ parsedDate.setMinutes(Number(minutesRef.value.value));
341
+ }
342
+
343
+ const timestamp = parsedDate ? getUnixTimestampFromDate(parsedDate) : null;
344
+
345
+ const isOutOfRange = dateIsOutOfRange(
346
+ parsedDate || new Date(),
347
+ props.minDate,
348
+ props.maxDate,
349
+ locale.value,
350
+ props.dateFormat,
351
+ );
352
+
353
+ if (isOutOfRange) {
354
+ return;
355
+ }
356
+
357
+ emit("update:modelValue", timestamp);
358
+
359
+ if (parsedDate === null && props.timepicker) {
360
+ const currentDate = new Date();
361
+
362
+ hoursRef.value.value = String(currentDate.getHours()).padStart(2, "0");
363
+ minutesRef.value.value = String(currentDate.getMinutes()).padStart(2, "0");
364
+ }
365
+ },
366
+ });
367
+
368
+ const selectedDate = computed(() => {
369
+ return parseDate(props.modelValue, props.dateFormat, locale.value);
370
+ });
371
+
372
+ const formattedDate = computed(() => {
373
+ return formatDate(selectedDate.value, props.dateFormat, locale.value);
374
+ });
375
+
376
+ const formattedTime = computed(() => {
377
+ const hours = String(selectedDate.value?.getHours()).padStart(2, "0");
378
+ const minutes = String(selectedDate.value?.getMinutes()).padStart(2, "0");
379
+
380
+ return selectedDate.value ? `${hours}:${minutes}` : "";
381
+ });
382
+
383
+ const userFormattedDate = computed(() => {
384
+ const date = formatDate(selectedDate.value, props.userFormat, locale.value);
385
+
386
+ return props.timepicker && selectedDate.value
387
+ ? `${date} ${SEPARATOR} ${formattedTime.value}`
388
+ : date;
389
+ });
390
+
391
+ const viewSwitchLabel = computed(() => {
392
+ const localValue =
393
+ activeDate.value || activeMonth.value || selectedDate.value || getDateWithoutTime();
394
+
395
+ return {
396
+ year: formatDate(localValue, "Y", locale.value),
397
+ month: formatDate(localValue, "F", locale.value),
398
+ yearsRange: getYearsRange(localValue || getDateWithoutTime()).join(` ${SEPARATOR} `),
399
+ };
400
+ });
401
+
402
+ watch(userFormattedDate, () => {
403
+ emit("userDateChange", userFormattedDate.value);
404
+ });
405
+
406
+ watch(formattedDate, () => {
407
+ emit("formattedDateChange", userFormattedDate.value);
408
+ });
409
+
410
+ onMounted(() => {
411
+ if (selectedDate.value && props.timepicker) {
412
+ hoursRef.value.value = String(selectedDate.value.getHours()).padStart(2, "0");
413
+ minutesRef.value.value = String(selectedDate.value.getMinutes()).padStart(2, "0");
414
+ }
415
+
416
+ emit("userDateChange", userFormattedDate.value);
417
+ emit("formattedDateChange", userFormattedDate.value);
418
+ });
419
+
420
+ function onInputDate(newDate) {
421
+ if (newDate === null) {
422
+ localValue.value = newDate;
423
+
424
+ activeDate.value = null;
425
+ activeMonth.value = null;
426
+
427
+ emit("input", localValue.value);
428
+
429
+ return;
430
+ }
431
+
432
+ const date = new Date(newDate.valueOf());
433
+
434
+ localValue.value = date;
435
+
436
+ activeDate.value = null;
437
+ activeMonth.value = null;
438
+
439
+ emit("input", localValue.value);
440
+
441
+ wrapperRef.value.focus();
442
+ }
443
+
444
+ function onKeydown(event) {
445
+ if ([KEY_CODE.left, KEY_CODE.up, KEY_CODE.right, KEY_CODE.down].includes(event.keyCode)) {
446
+ arrowKeyHandler(event);
447
+
448
+ minutesRef.value?.blur();
449
+ hoursRef.value?.blur();
450
+ }
451
+
452
+ if (event.keyCode === KEY_CODE.enter) {
453
+ enterKeyHandler(event);
454
+ }
455
+
456
+ if (isNumeric(event.key) && document.activeElement !== minutesRef.value) {
457
+ hoursRef.value?.focus();
458
+ }
459
+
460
+ emit("keydown", event);
461
+ }
462
+
463
+ function onInput(date) {
464
+ activeDate.value = null;
465
+ activeMonth.value = date;
466
+
467
+ if (isCurrentView.value.month) currentView.value = VIEW.day;
468
+ if (isCurrentView.value.year) currentView.value = VIEW.month;
469
+ }
470
+
471
+ function arrowKeyHandler(event) {
472
+ const currentActiveDate =
473
+ activeDate.value || activeMonth.value || selectedDate.value || getDateWithoutTime();
474
+
475
+ let newActiveDate;
476
+
477
+ if (currentView.value === VIEW.day) {
478
+ if (event.keyCode === KEY_CODE.down) {
479
+ newActiveDate = addDays(currentActiveDate, 7);
480
+ } else if (event.keyCode === KEY_CODE.left) {
481
+ newActiveDate = addDays(currentActiveDate, -1);
482
+ } else if (event.keyCode === KEY_CODE.up) {
483
+ newActiveDate = addDays(currentActiveDate, -7);
484
+ } else if (event.keyCode === KEY_CODE.right) {
485
+ newActiveDate = addDays(currentActiveDate, 1);
486
+ }
487
+ } else if (currentView.value === VIEW.month) {
488
+ if (event.keyCode === KEY_CODE.down) {
489
+ newActiveDate = addMonths(currentActiveDate, 4);
490
+ } else if (event.keyCode === KEY_CODE.left) {
491
+ newActiveDate = addMonths(currentActiveDate, -1);
492
+ } else if (event.keyCode === KEY_CODE.up) {
493
+ newActiveDate = addMonths(currentActiveDate, -4);
494
+ } else if (event.keyCode === KEY_CODE.right) {
495
+ newActiveDate = addMonths(currentActiveDate, 1);
496
+ }
497
+ } else if (currentView.value === VIEW.year) {
498
+ if (event.keyCode === KEY_CODE.down) {
499
+ newActiveDate = addYears(currentActiveDate, 4);
500
+ } else if (event.keyCode === KEY_CODE.left) {
501
+ newActiveDate = addYears(currentActiveDate, -1);
502
+ } else if (event.keyCode === KEY_CODE.up) {
503
+ newActiveDate = addYears(currentActiveDate, -4);
504
+ } else if (event.keyCode === KEY_CODE.right) {
505
+ newActiveDate = addYears(currentActiveDate, 1);
506
+ }
507
+ }
508
+
509
+ const isOutOfRange = dateIsOutOfRange(
510
+ newActiveDate,
511
+ props.minDate,
512
+ props.maxDate,
513
+ locale.value,
514
+ props.dateFormat,
515
+ );
516
+
517
+ if (newActiveDate && !isOutOfRange) {
518
+ activeDate.value = newActiveDate;
519
+ activeMonth.value = newActiveDate;
520
+ }
521
+ }
522
+
523
+ function addActiveMonth(amount) {
524
+ const currentActiveMonth = activeMonth.value || selectedDate.value || getDateWithoutTime();
525
+ const newActiveMonth = addMonths(currentActiveMonth, amount);
526
+
527
+ activeMonth.value = newActiveMonth;
528
+ }
529
+
530
+ function addActiveYear(amount) {
531
+ const currentActiveMonth = activeMonth.value || selectedDate.value || getDateWithoutTime();
532
+ const newActiveMonth = addYears(currentActiveMonth, amount);
533
+
534
+ activeMonth.value = newActiveMonth;
535
+ }
536
+
537
+ function onClickNextButton() {
538
+ activeDate.value = null;
539
+
540
+ if (isCurrentView.value.day) addActiveMonth(1);
541
+ if (isCurrentView.value.month) addActiveYear(1);
542
+ if (isCurrentView.value.year) addActiveYear(YEARS_PER_VIEW);
543
+ }
544
+
545
+ function onClickPrevButton() {
546
+ activeDate.value = null;
547
+
548
+ if (isCurrentView.value.day) addActiveMonth(-1);
549
+ if (isCurrentView.value.month) addActiveYear(-1);
550
+ if (isCurrentView.value.year) addActiveYear(YEARS_PER_VIEW * -1);
551
+ }
552
+
553
+ function enterKeyHandler() {
554
+ if (activeDate.value !== null && isCurrentView.value.day) {
555
+ localValue.value = activeDate.value;
556
+
557
+ activeDate.value = null;
558
+ activeMonth.value = null;
559
+
560
+ emit("input", localValue.value);
561
+ }
562
+
563
+ if (isCurrentView.value.month) currentView.value = VIEW.day;
564
+ if (isCurrentView.value.year) currentView.value = VIEW.month;
565
+ }
566
+
567
+ function onClickViewSwitch() {
568
+ const views = Object.values(VIEW);
569
+ const currentViewIndex = views.indexOf(currentView.value);
570
+ const nextViewIndex = currentViewIndex + 1;
571
+
572
+ activeDate.value = null;
573
+
574
+ currentView.value = views[nextViewIndex] || views.at(0);
575
+ }
576
+
577
+ let lastValidHourValue = "";
578
+ let lastValidMinuteValue = "";
579
+
580
+ function onTimeKeydown(event) {
581
+ if ([KEY_CODE.left, KEY_CODE.up, KEY_CODE.right, KEY_CODE.down].includes(event.keyCode)) {
582
+ wrapperRef.value.focus();
583
+
584
+ return;
585
+ }
586
+
587
+ if (event.keyCode === KEY_CODE.enter) {
588
+ enterKeyHandler(event);
589
+
590
+ emit("submit");
591
+ }
592
+ }
593
+
594
+ function onClickSubmit() {
595
+ emit("submit");
596
+ }
597
+
598
+ function onTimeInput(event, type, maxValue, minValue) {
599
+ const input = event.target;
600
+ const value = input.value;
601
+ const numericValue = Number(value);
602
+
603
+ const isHours = type === INPUT_TYPE.hours;
604
+
605
+ if (!isNumeric(event.data)) {
606
+ input.value = isHours ? lastValidHourValue : lastValidMinuteValue;
607
+
608
+ return;
609
+ }
610
+
611
+ if (numericValue > maxValue || numericValue < minValue) {
612
+ input.value = "0".padStart(2, "0");
613
+
614
+ return;
615
+ }
616
+
617
+ isHours ? (lastValidHourValue = numericValue) : (lastValidMinuteValue = numericValue);
618
+
619
+ if (selectedDate.value) {
620
+ const date = new Date(selectedDate.value.valueOf());
621
+
622
+ date.setHours(lastValidHourValue, lastValidMinuteValue);
623
+ localValue.value = date;
624
+ }
625
+
626
+ input.value = String(numericValue).padStart(2, "0");
627
+ }
628
+ </script>