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,1537 +0,0 @@
1
- <template>
2
- <div class="mono-datepicker-range">
3
- <VariantButton
4
- v-if="datePickerVariant.button"
5
- :id="id"
6
- :title="title"
7
- :data-cy="`${dataCy}-variant-button`"
8
- @clickShiftRange="onClickShiftRange"
9
- @clickRangeSet="onClickRangeSet"
10
- @blur="onBlur"
11
- />
12
-
13
- <VariantInput
14
- v-if="datePickerVariant.input"
15
- :id="id"
16
- :model-value="title"
17
- :placeholder="placeholder"
18
- :label="label"
19
- :data-cy="`${dataCy}-variant-input`"
20
- @clickRangeSet="onClickRangeSet"
21
- @blur="onBlur"
22
- >
23
- <template #right>
24
- <!-- @slot Use it to add something right. -->
25
- <slot name="right" />
26
- </template>
27
- </VariantInput>
28
-
29
- <div
30
- v-if="isOpenedMenu"
31
- class="mono-datepicker-range-menu"
32
- @mousedown.prevent="onMouseDownDateMenu"
33
- >
34
- <div class="mono-datepicker-range-menu-wrapper">
35
- <div
36
- v-for="(datePeriod, index) in datePeriods"
37
- :key="index"
38
- class="mono-datepicker-range-menu-button"
39
- :data-cy="`${dataCy}-button-${datePeriod.name}`"
40
- :class="setActiveButton(datePeriod.name)"
41
- @mousedown="onClickChangePeriodType(datePeriod.name)"
42
- >
43
- {{ datePeriod.title }}
44
- </div>
45
- </div>
46
-
47
- <div class="mono-datepicker-range-menu-wrapper">
48
- <div
49
- class="mono-datepicker-range-menu-button"
50
- :class="setActiveButton('lastThirtyDays')"
51
- :data-cy="`${dataCy}-button-last-thirty-days`"
52
- @mousedown="onClickSelectLastThirtyDays"
53
- v-html="i18n.lastThirtyDays"
54
- />
55
-
56
- <div
57
- class="mono-datepicker-range-menu-button"
58
- :class="setActiveButton('ownPeriod')"
59
- :data-cy="`${dataCy}-button-own-period`"
60
- @mousedown.prevent="onClickChangePeriodType('ownPeriod')"
61
- >
62
- <UIcon name="apps" size="xs" />
63
-
64
- {{ i18n.ownRange }}
65
- </div>
66
- </div>
67
-
68
- <div v-if="isShownDateMenu">
69
- <div v-if="isShownOwnRange">
70
- <div class="mono-datepicker-range-menu-datepicker-wrapper">
71
- <UInput
72
- v-model="ownRangeStart"
73
- :error="ownRangeStartError"
74
- class="mono-datepicker-range-menu-input"
75
- :class="getInputFocusClass('ownRangeStart')"
76
- :data-cy="`${dataCy}-input-own-range-start`"
77
- @change="onChangeOwnRangeInput"
78
- @mousedown="onMouseDownInput"
79
- @blur="onBlurInput"
80
- @click="onClickInput('ownRangeStart')"
81
- @keydown.enter="onChangeOwnRangeInput"
82
- />
83
-
84
- <UInput
85
- v-model="ownRangeEnd"
86
- :error="ownRangeEndError"
87
- class="mono-datepicker-range-menu-input"
88
- :class="getInputFocusClass('ownRangeEnd')"
89
- :data-cy="`${dataCy}-input-own-range-end`"
90
- @change="onChangeOwnRangeInput"
91
- @mousedown="onMouseDownInput"
92
- @blur="onBlurInput"
93
- @click="onClickInput('ownRangeEnd')"
94
- @keydown.enter="onChangeOwnRangeInput"
95
- />
96
- </div>
97
-
98
- <t-datepicker
99
- ref="datepicker"
100
- :value="ownRange"
101
- date-format="d.m.Y"
102
- :week-start="1"
103
- :clearable="false"
104
- :close-on-select="false"
105
- show
106
- range
107
- class="own-range"
108
- :classes="ownRangeClasses"
109
- :locale="activeDatepickerLanguage"
110
- :min-date="minDate"
111
- :max-date="maxDate"
112
- :data-cy="`${dataCy}-own-range`"
113
- @input="handleDate"
114
- >
115
- <template
116
- #day="{ dayFormatted, isInRange, isFirstDayOfRange, isLastDayOfRange, isToday }"
117
- >
118
- <span @mouseover="onMouseover" @mouseleave="onMouseleave">
119
- <span v-if="isToday" class="own-today"> {{ dayFormatted }}</span>
120
-
121
- <span v-else-if="isInRange" class="own-range-day">{{ dayFormatted }}</span>
122
-
123
- <div v-else-if="isFirstDayOfRange" class="first-own-range-day-block">
124
- <span class="first-own-range-day">{{ dayFormatted }}</span>
125
- </div>
126
-
127
- <div v-else-if="isLastDayOfRange" class="last-own-range-day-block">
128
- <span class="last-own-range-day">{{ dayFormatted }}</span>
129
- </div>
130
-
131
- <span v-else class="own-range-days">{{ dayFormatted }}</span>
132
- </span>
133
- </template>
134
- </t-datepicker>
135
- </div>
136
-
137
- <div v-else>
138
- <div class="mono-datepicker-range-menu-range">
139
- <UIcon
140
- class="icon"
141
- size="sm"
142
- name="arrow_back_ios_new"
143
- :data-cy="`${dataCy}-prev`"
144
- @mousedown.prevent="onClickShiftDatesList('prev')"
145
- />
146
-
147
- <div class="mono-datepicker-range-menu-range-value">
148
- <span v-if="shownMenuRangeMonth">{{ selectedDate.monthName }} </span>
149
-
150
- <span v-if="yearPeriodTitle">{{ yearPeriodTitle }}</span>
151
-
152
- <span v-else class="mono-datepicker-range-menu-range-value-year">{{
153
- selectedDate.year
154
- }}</span>
155
- </div>
156
- <UIcon
157
- class="icon"
158
- size="sm"
159
- name="arrow_forward_ios"
160
- :data-cy="`${dataCy}-next`"
161
- @mousedown.prevent="onClickShiftDatesList('next')"
162
- />
163
- </div>
164
-
165
- <div class="mono-datepicker-range-menu-list" :class="menuTypeClass">
166
- <div
167
- v-for="(date, index) in datesList"
168
- :key="index"
169
- class="mono-datepicker-range-menu-list-item"
170
- :class="setActiveSelectedDate(date)"
171
- :data-cy="`${dataCy}-list-item-${index}`"
172
- @mousedown="onClickSelectValue(index)"
173
- >
174
- {{ date.title }}
175
- </div>
176
- </div>
177
- </div>
178
- </div>
179
- </div>
180
- </div>
181
- </template>
182
-
183
- <script>
184
- import {
185
- fromUnixTime,
186
- startOfWeek,
187
- endOfWeek,
188
- getMonth,
189
- getYear,
190
- getUnixTime,
191
- addMonths,
192
- addYears,
193
- subDays,
194
- addDays,
195
- startOfDay,
196
- endOfDay,
197
- parse,
198
- differenceInDays,
199
- startOfYear,
200
- endOfYear,
201
- startOfMonth,
202
- endOfMonth,
203
- startOfQuarter,
204
- endOfQuarter,
205
- getDate,
206
- format,
207
- } from "date-fns";
208
- import { utcToZonedTime, zonedTimeToUtc } from "date-fns-tz";
209
- import English from "vueless/library.vue-tailwind-3/l10n/default";
210
- import Russian from "vueless/library.vue-tailwind-3/l10n/ru";
211
- import Ukrainian from "vueless/library.vue-tailwind-3/l10n/uk";
212
- import I18nServiceDefault from "vueless/service.i18n";
213
- import DateServiceDefault from "vueless/service.date";
214
- import ValidationServiceDefault from "vueless/service.validation";
215
- import {
216
- createYears,
217
- createQuarters,
218
- createMonthsList,
219
- createWeeksList,
220
- prepareOwnRangeDate,
221
- prepareRangeFormat,
222
- } from "./services/dateRange.service";
223
- import { getRandomId } from "vueless/service.ui";
224
- import { mapGetters } from "vuex";
225
-
226
- import UIcon from "vueless/ui.image-icon";
227
- import UInput from "vueless/ui.form-input";
228
- import TDatepicker from "vueless/library.vue-tailwind-3/TDatepicker";
229
- import VariantButton from "./components/VariantButton.vue";
230
- import VariantInput from "./components/VariantInput.vue";
231
-
232
- import { useI18n } from "vue-i18n";
233
- import { useVuelidate } from "@vuelidate/core";
234
-
235
- const { dateFormat, wrongDayNumber, wrongMonthNumber } = new ValidationServiceDefault();
236
-
237
- const MONTHS = [
238
- "january",
239
- "february",
240
- "march",
241
- "april",
242
- "may",
243
- "june",
244
- "july",
245
- "august",
246
- "september",
247
- "october",
248
- "november",
249
- "december",
250
- ];
251
-
252
- const DATE_PICKER_BUTTON_TYPE = "button";
253
- const DATE_PICKER_INPUT_TYPE = "input";
254
- const GRID_MENU_CLASS = "grid-menu";
255
- const BLOCK_MENU_CLASS = "block-menu";
256
-
257
- const WEEK_PERIOD = "week";
258
- const MONTH_PERIOD = "month";
259
- const QUARTER_PERIOD = "quarter";
260
- const YEAR_PERIOD = "year";
261
- const LAST_THIRTY_DAYS_PERIOD = "lastThirtyDays";
262
- const OWN_PERIOD = "ownPeriod";
263
- const OWN_RANGE_START = "ownRangeStart";
264
- const OWN_RANGE_END = "ownRangeEnd";
265
-
266
- export default {
267
- name: "UDatePickerRange",
268
-
269
- components: {
270
- VariantInput,
271
- VariantButton,
272
- UInput,
273
- UIcon,
274
- TDatepicker,
275
- },
276
-
277
- props: {
278
- /**
279
- * The variant of the date picker.
280
- * @values button, input
281
- */
282
- variant: {
283
- type: String,
284
- default: "button",
285
- },
286
-
287
- /**
288
- * Set date picker value (timestamp).
289
- */
290
- modelValue: {
291
- type: Object,
292
- default: () => {},
293
- },
294
-
295
- /**
296
- * Set picker min date in format d.m.Y.
297
- */
298
- minDate: {
299
- type: String,
300
- default: "",
301
- },
302
-
303
- /**
304
- * Set picker max date in format d.m.Y.
305
- */
306
- maxDate: {
307
- type: String,
308
- default: "",
309
- },
310
-
311
- /**
312
- * Set label text.
313
- */
314
- label: {
315
- type: String,
316
- default: "",
317
- },
318
-
319
- /**
320
- * Set input placeholder.
321
- */
322
- placeholder: {
323
- type: String,
324
- default: "",
325
- },
326
-
327
- /**
328
- * Generates unique element id.
329
- * @ignore
330
- */
331
- id: {
332
- type: String,
333
- default: () => getRandomId(),
334
- },
335
-
336
- /**
337
- * Sets data-cy attribute for automated testing.
338
- */
339
- dataCy: {
340
- type: String,
341
- default: "",
342
- },
343
- },
344
-
345
- emits: ["update:modelValue"],
346
-
347
- setup() {
348
- const { rt } = useI18n();
349
- const { getTranslation } = new I18nServiceDefault();
350
- const v$ = useVuelidate();
351
-
352
- return { rt, getTranslation, v$ };
353
- },
354
-
355
- data() {
356
- return {
357
- emitValue: false,
358
- menuTypeClass: BLOCK_MENU_CLASS,
359
- period: WEEK_PERIOD,
360
- currentTimestamp: 0,
361
- datesList: [],
362
- dateRange: {
363
- from: 0,
364
- to: 0,
365
- },
366
- ownRange: [],
367
- ownRangeStart: "",
368
- ownRangeEnd: "",
369
- selectedRange: "",
370
- selectedInputFocus: "",
371
- isOpenedMenu: false,
372
- isShownDateMenu: true,
373
- isShownOwnRange: false,
374
- isClickedInDateMenu: false,
375
- isFocusedInput: false,
376
- isCheckDateFormat: false,
377
- };
378
- },
379
-
380
- validations: () => ({
381
- ownRangeStart: { dateFormat, wrongMonthNumber, wrongDayNumber },
382
- ownRangeEnd: { dateFormat, wrongMonthNumber, wrongDayNumber },
383
- }),
384
-
385
- computed: {
386
- ...mapGetters("breakpoint", ["isMobileDevice"]),
387
-
388
- datePickerVariant() {
389
- return {
390
- button: this.variant === DATE_PICKER_BUTTON_TYPE,
391
- input: this.variant === DATE_PICKER_INPUT_TYPE,
392
- };
393
- },
394
-
395
- datePeriods() {
396
- return [
397
- {
398
- name: WEEK_PERIOD,
399
- title: this.i18n.week,
400
- },
401
- {
402
- name: MONTH_PERIOD,
403
- title: this.i18n.month,
404
- },
405
- {
406
- name: QUARTER_PERIOD,
407
- title: this.i18n.quarter,
408
- },
409
- {
410
- name: YEAR_PERIOD,
411
- title: this.i18n.year,
412
- },
413
- ];
414
- },
415
-
416
- ownRangeStartError() {
417
- const isDirty = this.v$.ownRangeStart.$dirty;
418
- const isInvalidDateFormat = this.v$.ownRangeStart.dateFormat.$invalid;
419
- const isInvalidMonthNumber = this.v$.ownRangeStart.wrongMonthNumber.$invalid;
420
- const isInvalidDayNumber = this.v$.ownRangeStart.wrongDayNumber.$invalid;
421
-
422
- let error = "";
423
-
424
- if (isDirty && this.isCheckDateFormat && isInvalidDateFormat && this.ownRangeStart) {
425
- error = this.i18n.dateFormatWithDot;
426
- } else if (isDirty && isInvalidMonthNumber && this.ownRangeStart) {
427
- error = this.i18n.notCorrectMonthNumber;
428
- } else if (isDirty && isInvalidDayNumber && this.ownRangeStart) {
429
- error = this.i18n.notCorrectDayNumber;
430
- }
431
-
432
- return error;
433
- },
434
-
435
- ownRangeEndError() {
436
- const isDirty = this.v$.ownRangeEnd.$dirty;
437
- const isInvalidDateFormat = this.v$.ownRangeEnd.dateFormat.$invalid;
438
- const isInvalidMonthNumber = this.v$.ownRangeEnd.wrongMonthNumber.$invalid;
439
- const isInvalidDayNumber = this.v$.ownRangeEnd.wrongDayNumber.$invalid;
440
-
441
- let error = "";
442
-
443
- if (isDirty && this.isCheckDateFormat && isInvalidDateFormat && this.ownRangeEnd) {
444
- error = this.i18n.dateFormatWithDot;
445
- } else if (isDirty && isInvalidMonthNumber && this.ownRangeEnd) {
446
- error = this.i18n.notCorrectMonthNumber;
447
- } else if (isDirty && isInvalidDayNumber && this.ownRangeEnd) {
448
- error = this.i18n.notCorrectDayNumber;
449
- }
450
-
451
- return error;
452
- },
453
-
454
- ownRangeClasses() {
455
- return {
456
- wrapper: "flex flex-col",
457
- dropdownWrapper: "relative z-40",
458
- dropdown: "overflow-hidden bg-white",
459
- enterClass: "opacity-0 scale-95",
460
- enterActiveClass: "transition transform ease-out duration-100",
461
- enterToClass: "opacity-100 scale-100",
462
- leaveClass: "opacity-100 scale-100",
463
- leaveActiveClass: "transition transform ease-in duration-75",
464
- leaveToClass: "opacity-0 scale-95",
465
- inlineWrapper: "",
466
- inlineViews: "rounded bg-white border mt-1 inline-flex",
467
- inputWrapper: "hidden",
468
- viewGroup: "inline-flex flex-wrap w-full",
469
- view: "!w-full",
470
- input: `input w-full`,
471
- navigator: "px-2.5 items-center justify-between",
472
- navigatorViewButton: `navigator-button order-1 w-full justify-center cursor-pointer text-sm
473
- font-medium text-gray-900`,
474
- navigatorViewButtonIcon: "hidden",
475
- navigatorViewButtonBackIcon: "hidden",
476
- navigatorViewButtonMonth: "text-gray-700 font-semibold",
477
- navigatorViewButtonYear: "ml-1",
478
- navigatorViewButtonYearRange: "ml-1",
479
- navigatorLabel: "py-1",
480
- navigatorLabelMonth: "text-gray-700 font-semibold",
481
- navigatorLabelYear: "text-gray-500 ml-1",
482
- navigatorPrevButton: `order-0 transition ease-in-out duration-100 inline-flex cursor-pointer
483
- rounded-full disabled:opacity-50 disabled:cursor-not-allowed`,
484
- navigatorNextButton: `order-2 transition ease-in-out duration-100 inline-flex
485
- cursor-pointer rounded-full disabled:opacity-50 disabled:cursor-not-allowed`,
486
- navigatorPrevButtonIcon: "text-gray-900 !w-4 !h-4 navigation-btn-icon",
487
- navigatorNextButtonIcon: "text-gray-900 !w-4 !h-4 navigation-btn-icon",
488
- calendarWrapper: "mt-2.5",
489
- calendarHeaderWrapper: "",
490
- calendarHeaderWeekDay:
491
- "uppercase text-sm text-gray-500 h-10 flex items-center justify-center",
492
- calendarDaysWrapper: "",
493
- calendarDaysDayWrapper:
494
- "w-full mb-0.5 h-10 flex flex-shrink-0 items-center calendar-day-button",
495
- otherMonthDay: `text-sm font-medium w-full h-10 mx-auto hover:bg-gray-100 text-gray-400
496
- disabled:opacity-50 disabled:cursor-not-allowed`,
497
- emptyDay: "",
498
- inRangeFirstDay: "text-sm font-medium text-gray-900 w-full h-10",
499
- inRangeLastDay:
500
- "text-sm font-medium bg-gray-900 bg-opacity-10 text-gray-900 w-full h-10 rounded-r-lg hover:bg-gray-100",
501
- inRangeDay: `text-sm font-medium text-gray-900 w-full h-10 hover:bg-gray-100
502
- disabled:opacity-50 disabled:cursor-not-allowed`,
503
- selectedDay: `text-sm rounded-lg w-full h-10 mx-auto bg-gray-900 text-white disabled:opacity-50
504
- disabled:cursor-not-allowed`,
505
- activeDay:
506
- "text-sm rounded-lg bg-gray-100 w-full h-10 mx-auto disabled:opacity-50 disabled:cursor-not-allowed",
507
- highlightedDay:
508
- "text-sm rounded-lg bg-gray-200 w-full h-10 mx-auto disabled:opacity-50 disabled:cursor-not-allowed",
509
- day: `text-sm font-medium text-gray-900 w-full h-10 mx-auto hover:bg-gray-100 disabled:opacity-50
510
- disabled:cursor-not-allowed`,
511
- today: `text-sm font-medium text-gray-900 rounded-lg w-full h-10 mx-auto hover:bg-gray-100 disabled:opacity-50
512
- disabled:cursor-not-allowed border-gray-900`,
513
- monthWrapper: "px-3 pt-2",
514
- selectedMonth:
515
- "text-sm font-medium rounded-lg w-full h-12 mx-auto bg-gray-900 bg-opacity-10 text-gray-900",
516
- activeMonth: "text-sm font-medium rounded-lg w-full h-12 mx-auto bg-gray-200",
517
- month: "text-sm font-medium rounded-lg w-full h-12 mx-auto hover:bg-gray-100",
518
- yearWrapper: "px-3 pt-2",
519
- year: "text-sm font-medium rounded-lg w-full h-12 mx-auto hover:bg-gray-100",
520
- selectedYear: "text-sm font-medium rounded-lg w-full h-12 mx-auto bg-gray-900 text-white",
521
- activeYear: "text-sm font-medium rounded-lg w-full h-12 mx-auto bg-gray-200",
522
- };
523
- },
524
-
525
- i18n() {
526
- return {
527
- lastThirtyDays: this.getTranslation("lastThirtyDays"),
528
- ownRange: this.getTranslation("ownRange"),
529
- week: this.getTranslation("week"),
530
- month: this.getTranslation("month"),
531
- quarter: this.getTranslation("quarter"),
532
- year: this.getTranslation("year"),
533
- dateFormatWithDot: this.getTranslation("dateFormatWithDot"),
534
- notCorrectMonthNumber: this.getTranslation("notCorrectMonthNumber"),
535
- notCorrectDayNumber: this.getTranslation("notCorrectDayNumber"),
536
- monthShort: this.getTranslation("monthShort", { isNested: true }),
537
- declinedMonth: this.getTranslation("declinedMonth", { isNested: true }),
538
- monthList: this.getTranslation("monthList", { isNested: true }),
539
- };
540
- },
541
-
542
- activeDatepickerLanguage() {
543
- const language = {
544
- en: English,
545
- ru: Russian,
546
- ua: Ukrainian,
547
- };
548
-
549
- const activeLanguage = new I18nServiceDefault().getActiveLanguage();
550
-
551
- return language[activeLanguage];
552
- },
553
-
554
- isValue() {
555
- return this.modelValue ? Object.values(this?.modelValue).length : this?.modelValue;
556
- },
557
-
558
- shownMenuRangeMonth() {
559
- return this.period === WEEK_PERIOD;
560
- },
561
-
562
- monthShortLocales() {
563
- return MONTHS.map((month) => this.rt(this.i18n.monthShort[month]));
564
- },
565
-
566
- declinedMonthFullLocales() {
567
- return MONTHS.map((month) => this.rt(this.i18n.declinedMonth[month]));
568
- },
569
-
570
- monthFullLocales() {
571
- return MONTHS.map((month) => this.rt(this.i18n.monthList[month]));
572
- },
573
-
574
- yearPeriodTitle() {
575
- let title = "";
576
-
577
- if (this.period === YEAR_PERIOD) {
578
- const startRange = this.datesList[0].startRange;
579
- const endRange = this.datesList[this.datesList.length - 1].endRange;
580
-
581
- const startYear = getYear(fromUnixTime(startRange));
582
- const endYear = getYear(fromUnixTime(endRange));
583
-
584
- title = `${startYear} – ${endYear}`;
585
- }
586
-
587
- return title;
588
- },
589
-
590
- selectedDate() {
591
- return this.getDateFromTimeStamp(this.currentTimestamp, this.monthFullLocales);
592
- },
593
-
594
- title() {
595
- let startRange = this.dateRange.from
596
- ? this.getDateFromTimeStamp(this.dateRange.from, this.declinedMonthFullLocales)
597
- : "";
598
- let endRange = this.dateRange.to
599
- ? this.getDateFromTimeStamp(this.dateRange.to, this.declinedMonthFullLocales)
600
- : "";
601
-
602
- let title = "";
603
-
604
- if (!startRange && !endRange) return title;
605
-
606
- const isDefaultTitle =
607
- this.period === WEEK_PERIOD ||
608
- this.period === LAST_THIRTY_DAYS_PERIOD ||
609
- this.period === OWN_PERIOD;
610
-
611
- if (isDefaultTitle) {
612
- let startMonthName = startRange.monthName;
613
- let startYear = startRange.year;
614
-
615
- if (startRange.month === endRange.month && startRange.year === endRange.year) {
616
- startMonthName = "";
617
- }
618
-
619
- if (startRange.year === endRange.year) {
620
- startYear = "";
621
- }
622
-
623
- title = startRange
624
- ? `${startRange.day} ${startMonthName} ${startYear} –
625
- ${endRange.day || ""} ${endRange.monthName || ""} ${endRange.year || ""}
626
- `
627
- : "";
628
- }
629
-
630
- if (this.period === MONTH_PERIOD) {
631
- const startRange = this.getDateFromTimeStamp(this.dateRange.from, this.monthFullLocales);
632
-
633
- title = `${startRange.monthName} ${startRange.year}`;
634
- }
635
-
636
- if (this.period === QUARTER_PERIOD || this.period === YEAR_PERIOD) {
637
- title = `${startRange.day} ${startRange.monthName} – ${endRange.day} ${endRange.monthName} ${endRange.year}`;
638
- }
639
-
640
- if (this.isMobileDevice && this.period !== MONTH_PERIOD && this.datePickerVariant.button) {
641
- startRange = Object.fromEntries(Object.entries(startRange).map(this.padDate));
642
- endRange = Object.fromEntries(Object.entries(endRange).map(this.padDate));
643
-
644
- title = `${startRange.day}.${startRange.month} – ${endRange.day}.${endRange.month} / ${endRange.year}`;
645
- }
646
-
647
- return this.isValue ? title : "";
648
- },
649
- },
650
-
651
- watch: {
652
- isOpenedMenu: {
653
- handler: "onChangeOpenedMenu",
654
- },
655
-
656
- ownRange: "onChangeOwnRange",
657
-
658
- dateRange: {
659
- handler: "onChangeDateRange",
660
- immediate: true,
661
- },
662
-
663
- modelValue: {
664
- handler: "onChangeValue",
665
- immediate: true,
666
- deep: true,
667
- },
668
-
669
- emitValue: "onChangeEmitValue",
670
-
671
- period: {
672
- handler: "changePeriodType",
673
- },
674
- },
675
-
676
- created() {
677
- this.currentTimestamp = getUnixTime(new Date());
678
-
679
- if (!this.modelValue) {
680
- this.datesList = createWeeksList(this.selectedDate, this.monthShortLocales);
681
- } else {
682
- this.setDefaultPeriodForButton();
683
- }
684
- },
685
-
686
- updated() {
687
- const navigatorButton = document.querySelector(".navigator-button");
688
-
689
- if (this.period === OWN_PERIOD && navigatorButton) {
690
- navigatorButton.onclick = () => {
691
- document.querySelector(`#${this.id}`).focus();
692
- };
693
- }
694
- },
695
-
696
- methods: {
697
- onMouseover() {
698
- if (!this.selectedInputFocus) this.handleDate(this.$refs.datepicker.formatedDate);
699
- },
700
-
701
- onMouseleave() {
702
- if (!this.selectedRange) this.selectedInputFocus = "";
703
- },
704
-
705
- padDate(dateRangeEntry) {
706
- let [dateRangeEntryKey, dateRangeEntryValue] = dateRangeEntry;
707
-
708
- if (dateRangeEntryValue.length > 1 && Number(dateRangeEntryValue) > 0) return dateRangeEntry;
709
-
710
- dateRangeEntryValue =
711
- dateRangeEntryKey === "month" ? Number(dateRangeEntryValue) + 1 : dateRangeEntryValue;
712
-
713
- dateRangeEntryValue = String(dateRangeEntryValue).padStart(2, 0);
714
-
715
- return [dateRangeEntryKey, dateRangeEntryValue];
716
- },
717
-
718
- onBlur() {
719
- this.emitValue = true;
720
-
721
- if (this.period === OWN_PERIOD) {
722
- this.isOpenedMenu = false;
723
- this.isClickedInDateMenu = false;
724
-
725
- if (this.isOpenedMenu && !this.isFocusedInput) {
726
- document.querySelector(`#${this.id}`).focus();
727
- }
728
- } else if (this.period === LAST_THIRTY_DAYS_PERIOD) {
729
- this.isOpenedMenu = false;
730
- } else {
731
- this.isOpenedMenu = false;
732
-
733
- if (this.isOpenedMenu && !this.isFocusedInput) {
734
- document.querySelector(`#${this.id}`).focus();
735
- }
736
- }
737
- },
738
-
739
- onMouseDownDateMenu() {
740
- this.isClickedInDateMenu = true;
741
- },
742
-
743
- onMouseDownInput() {
744
- this.isFocusedInput = true;
745
- },
746
-
747
- onClickInput(range) {
748
- this.selectedRange = range;
749
- this.selectedInputFocus = range;
750
- this.isClickedInDateMenu = true;
751
- this.isFocusedInput = true;
752
- this.isClickedInDateMenu = false;
753
- },
754
-
755
- onBlurInput() {
756
- this.isFocusedInput = false;
757
- this.isOpenedMenu = this.isClickedInDateMenu;
758
- this.isClickedInDateMenu = false;
759
-
760
- document.querySelector(`#${this.id}`).focus();
761
- },
762
-
763
- setActiveButton(buttonPeriod) {
764
- return buttonPeriod === this.period ? "mono-datepicker-range-menu-button-active" : "";
765
- },
766
-
767
- setActiveSelectedDate(date) {
768
- return this.dateRange.from === date.startRange && this.dateRange.to === date.endRange
769
- ? "mono-datepicker-range-menu-list-item-active"
770
- : "";
771
- },
772
-
773
- getParseDate(date) {
774
- return parse(date, "dd.MM.yyyy", new Date());
775
- },
776
-
777
- getInputFocusClass(range) {
778
- return this.selectedInputFocus === range ? "focus-input" : "";
779
- },
780
-
781
- handleDate(selectedDate) {
782
- const [startDate, endDate] = selectedDate;
783
- const [ownRangeStart, ownRangeEnd] = this.ownRange;
784
- const rangeEnd = endDate ? endDate : startDate;
785
-
786
- if (this.selectedRange === OWN_RANGE_START) {
787
- if (this.getParseDate(startDate) < this.getParseDate(ownRangeEnd)) {
788
- this.ownRange = [startDate, ownRangeEnd];
789
- this.selectedRange = OWN_RANGE_END;
790
- this.selectedInputFocus = OWN_RANGE_END;
791
- } else {
792
- this.ownRange = [startDate];
793
- this.cleanSelectedValues();
794
- }
795
- } else if (this.selectedRange === OWN_RANGE_END) {
796
- if (this.getParseDate(rangeEnd) > this.getParseDate(ownRangeStart)) {
797
- this.ownRange = [ownRangeStart, rangeEnd];
798
-
799
- if (!endDate || endDate !== ownRangeEnd) {
800
- this.cleanSelectedValues();
801
- }
802
- } else {
803
- this.ownRange = [rangeEnd];
804
- this.cleanSelectedValues();
805
- }
806
- } else {
807
- this.ownRange = selectedDate;
808
-
809
- if (!this.ownRangeEnd) this.selectedInputFocus = OWN_RANGE_END;
810
-
811
- if ((startDate && endDate) || !this.ownRangeStart) {
812
- this.selectedInputFocus = OWN_RANGE_START;
813
- }
814
- }
815
- },
816
-
817
- onChangeOpenedMenu() {
818
- this.cleanSelectedValues();
819
- },
820
-
821
- cleanSelectedValues() {
822
- this.selectedInputFocus = "";
823
- this.selectedRange = "";
824
- },
825
-
826
- onChangeDateRange() {
827
- this.getDateFromTimeStamp(this.dateRange.from, this.declinedMonthFullLocales);
828
-
829
- const dateRangeInUtc = {
830
- from: Number(this.dateRange.from),
831
- to: Number(this.dateRange.to),
832
- };
833
-
834
- if (this.checkValue(dateRangeInUtc) && this.emitValue) {
835
- this.$emit("update:modelValue", dateRangeInUtc);
836
- }
837
- },
838
-
839
- checkValue(dateRangeInUtc) {
840
- return (
841
- (this.dateRange.from && dateRangeInUtc.from !== this.modelValue.from) ||
842
- (this.dateRange.to && dateRangeInUtc.to !== this.modelValue.to)
843
- );
844
- },
845
-
846
- onChangeValue() {
847
- if (this.isValue) {
848
- this.emitValue = true;
849
- }
850
-
851
- if (!this.modelValue.from && !this.modelValue.to) {
852
- this.dateRange = {
853
- from: null,
854
- to: null,
855
- };
856
- } else {
857
- this.dateRange = {
858
- from: Number(this.modelValue?.from),
859
- to: Number(this.modelValue?.to),
860
- };
861
- }
862
- },
863
-
864
- onChangeEmitValue() {
865
- if (this.emitValue) {
866
- this.onChangeDateRange();
867
- }
868
- },
869
-
870
- onChangeOwnRange() {
871
- let [ownRangeStart, ownRangeEnd] = this.ownRange;
872
-
873
- if (ownRangeStart) {
874
- const startRangeDate = this.getParseDate(ownRangeStart);
875
-
876
- this.ownRangeStart = ownRangeStart;
877
- this.ownRangeEnd = "";
878
-
879
- const startDayInUtc = zonedTimeToUtc(startOfDay(startRangeDate), "UTC");
880
-
881
- this.dateRange.from = parseInt(format(startDayInUtc, "t", { timeZone: "UTC" }));
882
- }
883
-
884
- if (ownRangeEnd) {
885
- const startRangeDate = this.getParseDate(ownRangeStart);
886
- const endRangeDate = this.getParseDate(ownRangeEnd);
887
-
888
- if (endRangeDate < startRangeDate) {
889
- this.ownRangeEnd = ownRangeStart;
890
- this.dateRange.to = getUnixTime(endOfDay(startRangeDate));
891
- } else {
892
- this.ownRangeEnd = ownRangeEnd;
893
-
894
- const endOfDayInUtc = zonedTimeToUtc(endOfDay(endRangeDate), "UTC");
895
-
896
- this.dateRange.to = parseInt(format(endOfDayInUtc, "t", { timeZone: "UTC" }));
897
- }
898
- }
899
-
900
- this.dateRange = {
901
- ...this.dateRange,
902
- };
903
- },
904
-
905
- getDateFromTimeStamp(timestamp, monthList) {
906
- const date = fromUnixTime(timestamp);
907
- const timeZone = "GMT";
908
-
909
- const zonedDate = utcToZonedTime(date, timeZone);
910
-
911
- const day = getDate(zonedDate);
912
- const startOfWeekDate = startOfWeek(zonedDate, { weekStartsOn: 1 });
913
- const endOfWeekDate = endOfWeek(zonedDate, { weekStartsOn: 1 });
914
- const month = getMonth(zonedDate);
915
- const monthName = monthList?.[month];
916
- const year = getYear(zonedDate);
917
-
918
- return {
919
- date: zonedDate,
920
- day,
921
- startOfWeekDate,
922
- endOfWeekDate,
923
- month,
924
- monthName,
925
- year,
926
- };
927
- },
928
-
929
- onClickShiftDatesList(action) {
930
- const defaultRange = action === "prev" ? -1 : 1;
931
- const yearRange = action === "prev" ? -12 : 12;
932
-
933
- if (this.period === WEEK_PERIOD) {
934
- this.currentTimestamp = getUnixTime(addMonths(this.selectedDate.date, defaultRange));
935
-
936
- this.datesList = createWeeksList(this.selectedDate, this.monthShortLocales);
937
- }
938
-
939
- if (this.period === MONTH_PERIOD) {
940
- this.currentTimestamp = getUnixTime(addYears(this.selectedDate.date, defaultRange));
941
-
942
- this.datesList = createMonthsList(this.selectedDate, this.monthFullLocales);
943
- }
944
-
945
- if (this.period === QUARTER_PERIOD) {
946
- this.currentTimestamp = getUnixTime(addYears(this.selectedDate.date, defaultRange));
947
-
948
- this.datesList = createQuarters(this.selectedDate, { i18n: this.i18n });
949
- }
950
-
951
- if (this.period === YEAR_PERIOD) {
952
- this.currentTimestamp = getUnixTime(addYears(this.selectedDate.date, yearRange));
953
-
954
- this.datesList = createYears(this.selectedDate);
955
- }
956
- },
957
-
958
- changePeriodType(period) {
959
- this.currentTimestamp = this.modelValue.from || getUnixTime(new Date());
960
-
961
- if (period === WEEK_PERIOD) {
962
- this.datesList = createWeeksList(this.selectedDate, this.monthShortLocales);
963
-
964
- this.menuTypeClass = BLOCK_MENU_CLASS;
965
- }
966
-
967
- if (period === MONTH_PERIOD) {
968
- this.datesList = createMonthsList(this.selectedDate, this.monthFullLocales);
969
-
970
- this.menuTypeClass = GRID_MENU_CLASS;
971
- }
972
-
973
- if (period === QUARTER_PERIOD) {
974
- this.datesList = createQuarters(this.selectedDate, { i18n: this.i18n });
975
-
976
- this.menuTypeClass = BLOCK_MENU_CLASS;
977
- }
978
-
979
- if (period === YEAR_PERIOD) {
980
- this.datesList = createYears(this.selectedDate);
981
-
982
- this.menuTypeClass = GRID_MENU_CLASS;
983
- }
984
-
985
- if (period === OWN_PERIOD) {
986
- const startRange = this.getDateFromTimeStamp(
987
- this.dateRange.from,
988
- this.declinedMonthFullLocales,
989
- );
990
- const endRange = this.getDateFromTimeStamp(
991
- this.dateRange.to,
992
- this.declinedMonthFullLocales,
993
- );
994
- const defaultStartRange = this.getDateFromTimeStamp(
995
- getUnixTime(startOfMonth(new Date())),
996
- this.declinedMonthFullLocales,
997
- );
998
- const defaultEndRange = this.getDateFromTimeStamp(
999
- getUnixTime(endOfMonth(new Date())),
1000
- this.declinedMonthFullLocales,
1001
- );
1002
-
1003
- this.ownRangeStart = this.dateRange.from
1004
- ? prepareOwnRangeDate(startRange)
1005
- : prepareOwnRangeDate(defaultStartRange);
1006
- this.ownRangeEnd = this.dateRange.to
1007
- ? prepareOwnRangeDate(endRange)
1008
- : prepareOwnRangeDate(defaultEndRange);
1009
-
1010
- if (this.dateRange.from && this.dateRange.to) {
1011
- this.ownRange = [this.ownRangeStart, this.ownRangeEnd];
1012
- }
1013
- } else {
1014
- const currentDate = this.datesList.find(
1015
- (item) =>
1016
- item.startRange <= this.currentTimestamp && item.endRange >= this.currentTimestamp,
1017
- );
1018
-
1019
- if (period !== LAST_THIRTY_DAYS_PERIOD) {
1020
- this.selectValue(currentDate.index);
1021
- }
1022
- }
1023
-
1024
- this.period = period;
1025
- this.isShownOwnRange = period === OWN_PERIOD;
1026
-
1027
- if (this.period !== LAST_THIRTY_DAYS_PERIOD) {
1028
- this.isShownDateMenu = true;
1029
- }
1030
- },
1031
-
1032
- onClickChangePeriodType(period) {
1033
- this.changePeriodType(period);
1034
- this.isOpenedMenu = true;
1035
- },
1036
-
1037
- selectValue(index) {
1038
- const selectedItem = this.datesList[index];
1039
-
1040
- this.dateRange = {
1041
- from: selectedItem.startRange,
1042
- to: selectedItem.endRange,
1043
- };
1044
-
1045
- if (this.period !== WEEK_PERIOD) {
1046
- this.currentTimestamp = this.dateRange.from;
1047
- }
1048
- },
1049
-
1050
- onClickSelectValue(index) {
1051
- this.selectValue(index);
1052
- this.isOpenedMenu = false;
1053
- },
1054
-
1055
- selectLastThirtyDays() {
1056
- this.currentTimestamp = getUnixTime(new Date());
1057
-
1058
- const DateService = new DateServiceDefault();
1059
-
1060
- this.dateRange = {
1061
- from: DateService.thirtyDaysAgo(),
1062
- to: DateService.nextTwoWeek(),
1063
- };
1064
-
1065
- this.period = LAST_THIRTY_DAYS_PERIOD;
1066
- this.isShownDateMenu = false;
1067
- },
1068
-
1069
- onClickSelectLastThirtyDays() {
1070
- this.selectLastThirtyDays();
1071
-
1072
- this.isOpenedMenu = false;
1073
- },
1074
-
1075
- onChangeOwnRangeInput() {
1076
- this.setCorrectDateFormat();
1077
- this.isCheckDateFormat = true;
1078
-
1079
- if (this.v$.$invalid) {
1080
- this.v$.$touch();
1081
- this.isCheckDateFormat = false;
1082
-
1083
- return;
1084
- }
1085
-
1086
- this.ownRange = [this.ownRangeStart, this.ownRangeEnd];
1087
- this.isCheckDateFormat = false;
1088
- },
1089
-
1090
- setCorrectDateFormat() {
1091
- this.ownRangeStart = prepareRangeFormat(this.ownRangeStart);
1092
- this.ownRangeEnd = prepareRangeFormat(this.ownRangeEnd);
1093
- },
1094
-
1095
- onClickRangeSet() {
1096
- this.isOpenedMenu = !this.isOpenedMenu;
1097
- },
1098
-
1099
- onClickShiftRange(action) {
1100
- if (this.period === LAST_THIRTY_DAYS_PERIOD) {
1101
- this.changePeriodType(OWN_PERIOD);
1102
- }
1103
-
1104
- const numberForIncludeNextDay = 1;
1105
- const numberForIncludeBeforeDay = 2;
1106
- const startRangeDate = this.getParseDate(this.ownRangeStart);
1107
- const endRangeDate = this.getParseDate(this.ownRangeEnd);
1108
- const daysDifference = differenceInDays(endRangeDate, startRangeDate);
1109
-
1110
- if (action === "next") {
1111
- if (this.period === OWN_PERIOD) {
1112
- this.ownRangeStart = format(addDays(endRangeDate, numberForIncludeNextDay), "dd.MM.yyyy");
1113
-
1114
- this.ownRangeEnd = format(addDays(endRangeDate, daysDifference), "dd.MM.yyyy");
1115
-
1116
- this.setCorrectDateFormat();
1117
-
1118
- this.ownRange = [this.ownRangeStart, this.ownRangeEnd];
1119
- } else {
1120
- let nextDate = this.datesList.find((item) => item.endRange > this.dateRange.to);
1121
-
1122
- if (!nextDate) {
1123
- this.onClickShiftDatesList(action);
1124
-
1125
- nextDate = this.datesList.find((item) => item.endRange > this.dateRange.to);
1126
- }
1127
-
1128
- this.dateRange = {
1129
- from: nextDate.startRange,
1130
- to: nextDate.endRange,
1131
- };
1132
- }
1133
- } else {
1134
- if (this.period === OWN_PERIOD) {
1135
- this.ownRangeStart = format(
1136
- subDays(startRangeDate, daysDifference + numberForIncludeBeforeDay),
1137
- "dd.MM.yyyy",
1138
- );
1139
- this.ownRangeEnd = format(
1140
- subDays(endRangeDate, daysDifference + numberForIncludeNextDay),
1141
- "dd.MM.yyyy",
1142
- );
1143
-
1144
- this.setCorrectDateFormat();
1145
-
1146
- this.ownRange = [this.ownRangeStart, this.ownRangeEnd];
1147
- } else {
1148
- const reverseDatesList = [...this.datesList].reverse();
1149
-
1150
- let previousDate = reverseDatesList.find((item) => item.endRange < this.dateRange.to);
1151
-
1152
- if (!previousDate) {
1153
- this.onClickShiftDatesList(action);
1154
-
1155
- const reverseDatesList = [...this.datesList].reverse();
1156
-
1157
- previousDate = reverseDatesList.find((item) => item.endRange < this.dateRange.to);
1158
- }
1159
-
1160
- this.dateRange = {
1161
- from: previousDate.startRange,
1162
- to: previousDate.endRange,
1163
- };
1164
- }
1165
- }
1166
- },
1167
-
1168
- setDefaultPeriodForButton() {
1169
- const DateService = new DateServiceDefault();
1170
- const timeZone = "GMT";
1171
- const from = utcToZonedTime(fromUnixTime(this.dateRange.from), timeZone);
1172
- const to = utcToZonedTime(fromUnixTime(this.dateRange.to), timeZone);
1173
-
1174
- const isWeekPeriod =
1175
- String(from) === String(startOfWeek(from, { weekStartsOn: 1 })) &&
1176
- String(to) === String(endOfWeek(to, { weekStartsOn: 1 }));
1177
- const isMonthPeriod =
1178
- String(from) === String(startOfMonth(from)) &&
1179
- String(to) === String(endOfMonth(to)) &&
1180
- getMonth(from) === getMonth(to);
1181
- const isQuarterPeriod =
1182
- String(from) === String(startOfQuarter(from)) && String(to) === String(endOfQuarter(to));
1183
- const isYearPeriod =
1184
- String(from) === String(startOfYear(from)) && String(to) === String(endOfYear(to));
1185
- const isLastThirtyDaysPeriod =
1186
- String(to) === String(utcToZonedTime(fromUnixTime(DateService.nextTwoWeek(), timeZone))) &&
1187
- String(from) ===
1188
- String(utcToZonedTime(fromUnixTime(DateService.thirtyDaysAgo(), timeZone)));
1189
-
1190
- if (!this.modelValue.from && !this.modelValue.to) {
1191
- this.period = OWN_PERIOD;
1192
- } else if (isLastThirtyDaysPeriod) {
1193
- this.period = LAST_THIRTY_DAYS_PERIOD;
1194
- this.isShownDateMenu = false;
1195
- } else if (isYearPeriod) {
1196
- this.period = YEAR_PERIOD;
1197
- } else if (isMonthPeriod) {
1198
- this.period = MONTH_PERIOD;
1199
- } else if (isQuarterPeriod) {
1200
- this.period = QUARTER_PERIOD;
1201
- } else if (isWeekPeriod) {
1202
- this.period = WEEK_PERIOD;
1203
- } else {
1204
- this.period = OWN_PERIOD;
1205
-
1206
- if (this.dateRange.from && this.dateRange.to) {
1207
- this.ownRange = [this.dateRange.from, this.dateRange.to];
1208
-
1209
- this.changePeriodType(this.period);
1210
- }
1211
- }
1212
- },
1213
- },
1214
- };
1215
- </script>
1216
-
1217
- <i18n>
1218
- en:
1219
- lastThirtyDays: "Last 30 days <span> and 2 next two weeks </span>"
1220
- ownRange: "Own range"
1221
- week: "Week"
1222
- month: "Month"
1223
- quarter: "Quarter"
1224
- year: "Year"
1225
- dateFormatWithDot: Date should be in format 'dd.mm.yyyy'.
1226
- notCorrectMonthNumber: Wrong month number.
1227
- notCorrectDayNumber: Wrong day in month.
1228
- monthShort:
1229
- january: Jan
1230
- february: Feb
1231
- march: Mar
1232
- april: Apr
1233
- may: May
1234
- june: Jun
1235
- july: Jul
1236
- august: Aug
1237
- september: Sep
1238
- october: Oct
1239
- november: Nov
1240
- december: Dec
1241
- declinedMonth:
1242
- january: January
1243
- february: February
1244
- march: March
1245
- april: April
1246
- may: May
1247
- june: June
1248
- july: July
1249
- august: August
1250
- september: September
1251
- october: October
1252
- november: November
1253
- december: December
1254
- monthList:
1255
- january: January
1256
- february: February
1257
- march: March
1258
- april: April
1259
- may: May
1260
- june: June
1261
- july: July
1262
- august: August
1263
- september: September
1264
- october: October
1265
- november: November
1266
- december: December
1267
- ru:
1268
- lastThirtyDays: "Последние 30 дней <span> и 2 неделе вперед </span>"
1269
- ownRange: "Свой диапазон"
1270
- week: "Неделя"
1271
- month: "Месяц"
1272
- quarter: "Квартал"
1273
- year: "Год"
1274
- dateFormatWithDot: Дата должна быть в формате 'dd.mm.yyyy'.
1275
- notCorrectMonthNumber: Неверный номер месяца.
1276
- notCorrectDayNumber: Неверный день месяца.
1277
- monthShort:
1278
- january: Янв
1279
- february: Фев
1280
- march: Мар
1281
- april: Апр
1282
- may: Май
1283
- june: Июнь
1284
- july: Июль
1285
- august: Авг
1286
- september: Сен
1287
- october: Окт
1288
- november: Ноя
1289
- december: Дек
1290
- declinedMonth:
1291
- january: Января
1292
- february: Февраля
1293
- march: Марта
1294
- april: Апреля
1295
- may: Мая
1296
- june: Июня
1297
- july: Июля
1298
- august: Августа
1299
- september: Сентября
1300
- october: Октября
1301
- november: Ноября
1302
- december: Декабря
1303
- monthList:
1304
- january: Январь
1305
- february: Февраль
1306
- march: Март
1307
- april: Апрель
1308
- may: Май
1309
- june: Июн
1310
- july: Июл
1311
- august: Август
1312
- september: Сентябрь
1313
- october: Октябрь
1314
- november: Ноябрь
1315
- december: Декабрь
1316
- ua:
1317
- lastThirtyDays: "Останніх 30 днів <span> і 2 тижні вперед </span>"
1318
- ownRange: "Свій діапазон"
1319
- week: "Тиждень"
1320
- month: "Місяць"
1321
- quarter: "Квартал"
1322
- year: "Рік"
1323
- dateFormatWithDot: Дата повинна бути в форматі 'dd.mm.yyyy'.
1324
- notCorrectMonthNumber: Невірний номер місяця.
1325
- notCorrectDayNumber: Невірний день місяця.
1326
- monthShort:
1327
- january: Січ
1328
- february: Лют
1329
- march: Бер
1330
- april: Кві
1331
- may: Тра
1332
- june: Чер
1333
- july: Лип
1334
- august: Сер
1335
- september: Вер
1336
- october: Жов
1337
- november: Лис
1338
- december: Гру
1339
- declinedMonth:
1340
- january: Січня
1341
- february: Лютого
1342
- march: Березня
1343
- april: Квітня
1344
- may: Травня
1345
- june: Червня
1346
- july: Липня
1347
- august: Серпня
1348
- september: Вересня
1349
- october: Жовтня
1350
- november: Листопада
1351
- december: Грудня
1352
- monthList:
1353
- january: Січень
1354
- february: Лютий
1355
- march: Березень
1356
- april: Квітень
1357
- may: Травень
1358
- june: Червень
1359
- july: Липень
1360
- august: Серпень
1361
- september: Вересень
1362
- october: Жовтень
1363
- november: Листопад
1364
- december: Грудень
1365
- </i18n>
1366
-
1367
- <style lang="postcss" scoped>
1368
- .mono-datepicker-range {
1369
- @apply shrink-0;
1370
-
1371
- &-menu {
1372
- @apply absolute mt-2;
1373
- @apply rounded-xl border border-gray-300 bg-white shadow;
1374
- @apply z-20 w-80 p-2;
1375
-
1376
- &-wrapper {
1377
- @apply flex;
1378
- @apply space-x-1;
1379
- @apply mb-1;
1380
-
1381
- &:last-child {
1382
- @apply mb-0;
1383
- }
1384
- }
1385
-
1386
- &-datepicker-wrapper {
1387
- @apply flex space-x-1;
1388
- @apply mt-4;
1389
- }
1390
-
1391
- .focus-input {
1392
- :deep(.mono-input-block) {
1393
- @apply border-gray-500 ring-4 ring-gray-600 ring-opacity-15;
1394
- @apply z-10;
1395
- }
1396
- }
1397
-
1398
- &-input {
1399
- &:first-child {
1400
- :deep(.mono-input-block) {
1401
- @apply rounded-r-none;
1402
-
1403
- &:focus-within {
1404
- @apply z-10;
1405
- }
1406
- }
1407
- }
1408
-
1409
- &:last-child {
1410
- @apply ml-0 !important;
1411
-
1412
- :deep(.mono-input-block) {
1413
- @apply rounded-l-none;
1414
- }
1415
- }
1416
-
1417
- :deep(.mono-input) {
1418
- @apply text-sm;
1419
- @apply border-gray-100;
1420
- @apply px-4 py-2.5;
1421
- }
1422
- }
1423
-
1424
- &-button {
1425
- @apply flex flex-col items-center justify-center;
1426
- @apply text-center text-xs font-medium text-gray-900;
1427
- @apply rounded-lg bg-gray-900 bg-opacity-5;
1428
- @apply px-1.5 py-2.5;
1429
- @apply h-[3.125rem] w-full cursor-pointer;
1430
-
1431
- &:hover {
1432
- @apply bg-opacity-10;
1433
- }
1434
-
1435
- &:deep(span) {
1436
- @apply block font-normal text-gray-500;
1437
- }
1438
-
1439
- &-active {
1440
- @apply bg-opacity-15;
1441
- }
1442
- }
1443
-
1444
- &-range {
1445
- @apply flex items-center justify-between;
1446
- @apply mb-2.5 mt-4 px-2.5 py-2;
1447
-
1448
- &-value {
1449
- @apply text-sm font-medium text-gray-900;
1450
-
1451
- &-year {
1452
- @apply ml-1;
1453
- }
1454
- }
1455
- }
1456
-
1457
- &-list {
1458
- &-item {
1459
- @apply text-center text-sm font-medium text-gray-900;
1460
- @apply py-3;
1461
- @apply cursor-pointer;
1462
-
1463
- &:hover {
1464
- @apply rounded-lg bg-gray-50;
1465
- }
1466
-
1467
- &-active {
1468
- @apply rounded-lg bg-gray-900 bg-opacity-5;
1469
- @apply py-3;
1470
- }
1471
- }
1472
- }
1473
- }
1474
- }
1475
-
1476
- .icon {
1477
- @apply cursor-pointer;
1478
-
1479
- &:deep(g [fill]) {
1480
- @apply fill-current text-gray-900;
1481
- }
1482
- }
1483
-
1484
- .grid-menu {
1485
- @apply grid grid-cols-3 grid-rows-1 gap-0.5;
1486
-
1487
- .mono-datepicker-range-menu-list-item {
1488
- @apply py-3;
1489
- }
1490
- }
1491
-
1492
- .own-today {
1493
- @apply flex items-center justify-center;
1494
- @apply h-full rounded-lg bg-gray-900;
1495
- @apply text-white;
1496
- }
1497
-
1498
- .own-range {
1499
- @apply mt-6 pt-0.5;
1500
-
1501
- &-day {
1502
- @apply flex items-center justify-center;
1503
- @apply h-full bg-gray-900 bg-opacity-5;
1504
- }
1505
-
1506
- &-days {
1507
- @apply flex items-center justify-center;
1508
- @apply h-full;
1509
- }
1510
- }
1511
-
1512
- .first-own-range-day {
1513
- @apply flex items-center justify-center;
1514
- @apply h-full rounded-l-lg bg-gray-900 bg-opacity-10 font-medium;
1515
-
1516
- &:hover {
1517
- @apply bg-gray-100;
1518
- }
1519
-
1520
- &-block {
1521
- @apply h-full bg-white;
1522
- }
1523
- }
1524
-
1525
- .last-own-range-day {
1526
- @apply flex items-center justify-center;
1527
- @apply h-full rounded-r-lg bg-gray-900 bg-opacity-10 font-medium;
1528
-
1529
- &:hover {
1530
- @apply bg-gray-100;
1531
- }
1532
-
1533
- &-block {
1534
- @apply h-full bg-white;
1535
- }
1536
- }
1537
- </style>