vueless 0.0.1

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 (938) hide show
  1. package/_readme/README.md +78 -0
  2. package/_readme/UGroup.md +25 -0
  3. package/_readme/UNotify.md +53 -0
  4. package/_readme/UPage.md +37 -0
  5. package/_readme/UTopLoader.md +27 -0
  6. package/_readme/layoutAdmin.md +703 -0
  7. package/_readme/layoutApp.md +153 -0
  8. package/_readme/layoutAuth.md +190 -0
  9. package/composable.ui/index.js +81 -0
  10. package/config.rollup-plugin-visualizer/index.js +11 -0
  11. package/config.unplugin-vue-i18n/index.js +9 -0
  12. package/config.vite-plugin-pwa/index.js +132 -0
  13. package/config.vite-svg-loader/index.js +22 -0
  14. package/constant.component-names/index.js +6 -0
  15. package/index.js +151 -0
  16. package/layout-ui.loader/index.vue +61 -0
  17. package/layout-ui.loader/store/index.js +17 -0
  18. package/layout-ui.loader-top/components/TopProgress.vue +277 -0
  19. package/layout-ui.loader-top/index.vue +218 -0
  20. package/layout-ui.loader-top/store/index.js +55 -0
  21. package/layout-ui.notify/index.stories.js +102 -0
  22. package/layout-ui.notify/index.vue +254 -0
  23. package/layout-ui.viewport/index.vue +78 -0
  24. package/layout-ui.viewport/store/index.js +47 -0
  25. package/layout.admin/AsideBlock.vue +534 -0
  26. package/layout.admin/AsideInfoBlock.vue +85 -0
  27. package/layout.admin/BrandBlock.vue +380 -0
  28. package/layout.admin/ChangeThemeModal.vue +179 -0
  29. package/layout.admin/HelperBlock.vue +132 -0
  30. package/layout.admin/MainMenu.vue +234 -0
  31. package/layout.admin/MainSubMenu.vue +196 -0
  32. package/layout.admin/MobileMainMenu.vue +197 -0
  33. package/layout.admin/MobileSubBlock.vue +171 -0
  34. package/layout.admin/RightInfoBlock.vue +166 -0
  35. package/layout.admin/UserBlock.vue +290 -0
  36. package/layout.admin/images/abstract-01.jpg +0 -0
  37. package/layout.admin/images/abstract-01_preview.jpg +0 -0
  38. package/layout.admin/index.vue +544 -0
  39. package/layout.admin/mixins/index.js +54 -0
  40. package/layout.admin/store/index.js +167 -0
  41. package/layout.auth/FeaturesBlock.vue +57 -0
  42. package/layout.auth/FooterMenu.vue +90 -0
  43. package/layout.auth/LanguageSwitcher.vue +90 -0
  44. package/layout.auth/index.vue +237 -0
  45. package/library.vue-tailwind-3/TDatepicker/components/t-date-trigger.js +257 -0
  46. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-navigator.js +600 -0
  47. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-time-selector.js +522 -0
  48. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days-day.js +289 -0
  49. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days.js +236 -0
  50. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-headers.js +64 -0
  51. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar.js +159 -0
  52. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months-month.js +106 -0
  53. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months.js +97 -0
  54. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years-year.js +117 -0
  55. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years.js +104 -0
  56. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view.js +294 -0
  57. package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views.js +212 -0
  58. package/library.vue-tailwind-3/TDatepicker/components/t-toggle.js +323 -0
  59. package/library.vue-tailwind-3/TDatepicker/index.js +1051 -0
  60. package/library.vue-tailwind-3/base/Component.js +126 -0
  61. package/library.vue-tailwind-3/base/HtmlInput.js +38 -0
  62. package/library.vue-tailwind-3/base/TextInput.js +102 -0
  63. package/library.vue-tailwind-3/index.js +12 -0
  64. package/library.vue-tailwind-3/l10n/ar.js +27 -0
  65. package/library.vue-tailwind-3/l10n/at.js +29 -0
  66. package/library.vue-tailwind-3/l10n/az.js +40 -0
  67. package/library.vue-tailwind-3/l10n/be.js +35 -0
  68. package/library.vue-tailwind-3/l10n/bg.js +41 -0
  69. package/library.vue-tailwind-3/l10n/bn.js +39 -0
  70. package/library.vue-tailwind-3/l10n/bs.js +28 -0
  71. package/library.vue-tailwind-3/l10n/cat.js +59 -0
  72. package/library.vue-tailwind-3/l10n/cs.js +35 -0
  73. package/library.vue-tailwind-3/l10n/cy.js +68 -0
  74. package/library.vue-tailwind-3/l10n/da.js +31 -0
  75. package/library.vue-tailwind-3/l10n/de.js +30 -0
  76. package/library.vue-tailwind-3/l10n/default.js +54 -0
  77. package/library.vue-tailwind-3/l10n/eo.js +31 -0
  78. package/library.vue-tailwind-3/l10n/es.js +32 -0
  79. package/library.vue-tailwind-3/l10n/et.js +46 -0
  80. package/library.vue-tailwind-3/l10n/fa.js +41 -0
  81. package/library.vue-tailwind-3/l10n/fi.js +50 -0
  82. package/library.vue-tailwind-3/l10n/fo.js +40 -0
  83. package/library.vue-tailwind-3/l10n/fr.js +48 -0
  84. package/library.vue-tailwind-3/l10n/ga.js +36 -0
  85. package/library.vue-tailwind-3/l10n/gr.js +33 -0
  86. package/library.vue-tailwind-3/l10n/he.js +41 -0
  87. package/library.vue-tailwind-3/l10n/hi.js +39 -0
  88. package/library.vue-tailwind-3/l10n/hr.js +41 -0
  89. package/library.vue-tailwind-3/l10n/hu.js +46 -0
  90. package/library.vue-tailwind-3/l10n/id.js +30 -0
  91. package/library.vue-tailwind-3/l10n/index.js +127 -0
  92. package/library.vue-tailwind-3/l10n/is.js +40 -0
  93. package/library.vue-tailwind-3/l10n/it.js +31 -0
  94. package/library.vue-tailwind-3/l10n/ja.js +42 -0
  95. package/library.vue-tailwind-3/l10n/ka.js +35 -0
  96. package/library.vue-tailwind-3/l10n/km.js +45 -0
  97. package/library.vue-tailwind-3/l10n/ko.js +41 -0
  98. package/library.vue-tailwind-3/l10n/kz.js +34 -0
  99. package/library.vue-tailwind-3/l10n/lt.js +41 -0
  100. package/library.vue-tailwind-3/l10n/lv.js +37 -0
  101. package/library.vue-tailwind-3/l10n/mk.js +30 -0
  102. package/library.vue-tailwind-3/l10n/mn.js +42 -0
  103. package/library.vue-tailwind-3/l10n/ms.js +28 -0
  104. package/library.vue-tailwind-3/l10n/my.js +42 -0
  105. package/library.vue-tailwind-3/l10n/nl.js +48 -0
  106. package/library.vue-tailwind-3/l10n/no.js +31 -0
  107. package/library.vue-tailwind-3/l10n/pa.js +27 -0
  108. package/library.vue-tailwind-3/l10n/pl.js +31 -0
  109. package/library.vue-tailwind-3/l10n/pt.js +36 -0
  110. package/library.vue-tailwind-3/l10n/ro.js +29 -0
  111. package/library.vue-tailwind-3/l10n/ru.js +48 -0
  112. package/library.vue-tailwind-3/l10n/si.js +40 -0
  113. package/library.vue-tailwind-3/l10n/sk.js +32 -0
  114. package/library.vue-tailwind-3/l10n/sl.js +32 -0
  115. package/library.vue-tailwind-3/l10n/sq.js +27 -0
  116. package/library.vue-tailwind-3/l10n/sr-cyr.js +29 -0
  117. package/library.vue-tailwind-3/l10n/sr.js +30 -0
  118. package/library.vue-tailwind-3/l10n/sv.js +30 -0
  119. package/library.vue-tailwind-3/l10n/th.js +43 -0
  120. package/library.vue-tailwind-3/l10n/tr.js +32 -0
  121. package/library.vue-tailwind-3/l10n/uk.js +28 -0
  122. package/library.vue-tailwind-3/l10n/uz.js +35 -0
  123. package/library.vue-tailwind-3/l10n/uz_latn.js +48 -0
  124. package/library.vue-tailwind-3/l10n/vn.js +41 -0
  125. package/library.vue-tailwind-3/l10n/zh-tw.js +41 -0
  126. package/library.vue-tailwind-3/l10n/zh.js +41 -0
  127. package/library.vue-tailwind-3/services/date.service.js +294 -0
  128. package/library.vue-tailwind-3/services/formatting.service.js +205 -0
  129. package/library.vue-tailwind-3/services/vueTailwind.service.js +41 -0
  130. package/library.vue-tailwind-3/t-alert.js +151 -0
  131. package/library.vue-tailwind-3/t-button.js +243 -0
  132. package/library.vue-tailwind-3/t-card.js +98 -0
  133. package/library.vue-tailwind-3/t-checkbox.js +292 -0
  134. package/library.vue-tailwind-3/t-dropdown.js +322 -0
  135. package/library.vue-tailwind-3/t-input.js +68 -0
  136. package/library.vue-tailwind-3/t-modal.js +409 -0
  137. package/library.vue-tailwind-3/t-pagination.js +309 -0
  138. package/library.vue-tailwind-3/t-radio.js +301 -0
  139. package/library.vue-tailwind-3/t-table.js +362 -0
  140. package/library.vue-tailwind-3/t-textarea.js +84 -0
  141. package/library.web-types-gen/index.js +17 -0
  142. package/library.web-types-gen/lib/build.js +226 -0
  143. package/library.web-types-gen/lib/config.js +26 -0
  144. package/library.web-types-gen/package.json +3 -0
  145. package/package.json +20 -0
  146. package/resolver.unplugin-vue-components/index.js +94 -0
  147. package/service.api/index.js +275 -0
  148. package/service.data/index.js +75 -0
  149. package/service.date/index.js +222 -0
  150. package/service.i18n/index.js +145 -0
  151. package/service.idb-keyval/index.js +37 -0
  152. package/service.jwt/index.js +27 -0
  153. package/service.money/index.js +86 -0
  154. package/service.notify/index.js +87 -0
  155. package/service.redirect/index.js +20 -0
  156. package/service.storybook/index.js +118 -0
  157. package/service.ui/index.js +174 -0
  158. package/service.validation/index.js +55 -0
  159. package/service.worker/index.js +26 -0
  160. package/ui.button/index.stories.js +165 -0
  161. package/ui.button/index.vue +1018 -0
  162. package/ui.button-expand/index.stories.js +44 -0
  163. package/ui.button-expand/index.vue +22 -0
  164. package/ui.button-expand-item/index.stories.js +69 -0
  165. package/ui.button-expand-item/index.vue +154 -0
  166. package/ui.button-group/index.stories.js +104 -0
  167. package/ui.button-group/index.vue +165 -0
  168. package/ui.button-group-item/index.stories.js +74 -0
  169. package/ui.button-group-item/index.vue +283 -0
  170. package/ui.button-link/index.stories.js +121 -0
  171. package/ui.button-link/index.vue +541 -0
  172. package/ui.container-accordion/index.stories.js +88 -0
  173. package/ui.container-accordion/index.vue +167 -0
  174. package/ui.container-card/index.stories.js +128 -0
  175. package/ui.container-card/index.vue +207 -0
  176. package/ui.container-divider/index.stories.js +91 -0
  177. package/ui.container-divider/index.vue +201 -0
  178. package/ui.container-group/index.stories.js +87 -0
  179. package/ui.container-group/index.vue +172 -0
  180. package/ui.container-groups/index.stories.js +44 -0
  181. package/ui.container-groups/index.vue +18 -0
  182. package/ui.container-modal/components/ArrowLink.vue +87 -0
  183. package/ui.container-modal/index.stories.js +169 -0
  184. package/ui.container-modal/index.vue +416 -0
  185. package/ui.container-modal-confirm/index.stories.js +150 -0
  186. package/ui.container-modal-confirm/index.vue +186 -0
  187. package/ui.container-page/components/ArrowLink.vue +87 -0
  188. package/ui.container-page/index.stories.js +174 -0
  189. package/ui.container-page/index.vue +486 -0
  190. package/ui.container-row/index.stories.js +71 -0
  191. package/ui.container-row/index.vue +52 -0
  192. package/ui.data-list/index.stories.js +90 -0
  193. package/ui.data-list/index.vue +367 -0
  194. package/ui.data-table/components/DateSeparator.vue +99 -0
  195. package/ui.data-table/components/EmptyTableMsg.vue +46 -0
  196. package/ui.data-table/components/TableCheckbox.vue +109 -0
  197. package/ui.data-table/index.stories.js +231 -0
  198. package/ui.data-table/index.vue +1101 -0
  199. package/ui.dropdown-button/index.stories.js +157 -0
  200. package/ui.dropdown-button/index.vue +331 -0
  201. package/ui.dropdown-item/index.stories.js +29 -0
  202. package/ui.dropdown-item/index.vue +70 -0
  203. package/ui.dropdown-link/index.stories.js +127 -0
  204. package/ui.dropdown-link/index.vue +330 -0
  205. package/ui.dropdown-list/index.stories.js +46 -0
  206. package/ui.dropdown-list/index.vue +139 -0
  207. package/ui.dropdown-tag/index.stories.js +125 -0
  208. package/ui.dropdown-tag/index.vue +285 -0
  209. package/ui.form-checkbox/index.stories.js +98 -0
  210. package/ui.form-checkbox/index.vue +301 -0
  211. package/ui.form-checkbox-group/index.stories.js +39 -0
  212. package/ui.form-checkbox-group/index.vue +216 -0
  213. package/ui.form-checkbox-multi-state/index.stories.js +62 -0
  214. package/ui.form-checkbox-multi-state/index.vue +244 -0
  215. package/ui.form-color-picker/index.vue +350 -0
  216. package/ui.form-date-picker/index.stories.js +119 -0
  217. package/ui.form-date-picker/index.vue +851 -0
  218. package/ui.form-date-picker-range/components/VariantButton.vue +136 -0
  219. package/ui.form-date-picker-range/components/VariantInput.vue +101 -0
  220. package/ui.form-date-picker-range/index.stories.js +93 -0
  221. package/ui.form-date-picker-range/index.vue +1537 -0
  222. package/ui.form-date-picker-range/services/dateRange.service.js +178 -0
  223. package/ui.form-input/index.stories.js +132 -0
  224. package/ui.form-input/index.vue +524 -0
  225. package/ui.form-input/text-security-disc.woff +0 -0
  226. package/ui.form-input-file/index.stories.js +85 -0
  227. package/ui.form-input-file/index.vue +584 -0
  228. package/ui.form-input-money/_components/ConvertibleInput.vue +773 -0
  229. package/ui.form-input-money/_components/RangeInput.vue +356 -0
  230. package/ui.form-input-money/_components/SingleInput.vue +378 -0
  231. package/ui.form-input-money/index.stories.js +98 -0
  232. package/ui.form-input-money/index.vue +260 -0
  233. package/ui.form-input-number/index.stories.js +33 -0
  234. package/ui.form-input-number/index.vue +127 -0
  235. package/ui.form-input-rating/index.stories.js +107 -0
  236. package/ui.form-input-rating/index.vue +242 -0
  237. package/ui.form-input-search/index.stories.js +86 -0
  238. package/ui.form-input-search/index.vue +210 -0
  239. package/ui.form-radio/index.stories.js +69 -0
  240. package/ui.form-radio/index.vue +176 -0
  241. package/ui.form-radio-card/index.stories.js +140 -0
  242. package/ui.form-radio-card/index.vue +183 -0
  243. package/ui.form-radio-group/index.stories.js +41 -0
  244. package/ui.form-radio-group/index.vue +98 -0
  245. package/ui.form-select/index.stories.js +183 -0
  246. package/ui.form-select/index.vue +1025 -0
  247. package/ui.form-select-multi/index.stories.js +131 -0
  248. package/ui.form-select-multi/index.vue +882 -0
  249. package/ui.form-switch/index.stories.js +126 -0
  250. package/ui.form-switch/index.vue +673 -0
  251. package/ui.form-textarea/index.stories.js +109 -0
  252. package/ui.form-textarea/index.vue +399 -0
  253. package/ui.icons-metronic/ATM.svg +8 -0
  254. package/ui.icons-metronic/Active-call.svg +8 -0
  255. package/ui.icons-metronic/Add-music.svg +8 -0
  256. package/ui.icons-metronic/Add-user.svg +8 -0
  257. package/ui.icons-metronic/Address-card.svg +7 -0
  258. package/ui.icons-metronic/Adjust.svg +7 -0
  259. package/ui.icons-metronic/Adress-book1.svg +8 -0
  260. package/ui.icons-metronic/Adress-book2.svg +8 -0
  261. package/ui.icons-metronic/Air-ballon.svg +8 -0
  262. package/ui.icons-metronic/Air-conditioning.svg +8 -0
  263. package/ui.icons-metronic/Airplay-video.svg +8 -0
  264. package/ui.icons-metronic/Airplay.svg +8 -0
  265. package/ui.icons-metronic/Airpods.svg +10 -0
  266. package/ui.icons-metronic/Alarm-clock.svg +9 -0
  267. package/ui.icons-metronic/Align-auto.svg +8 -0
  268. package/ui.icons-metronic/Align-center.svg +8 -0
  269. package/ui.icons-metronic/Align-justify.svg +8 -0
  270. package/ui.icons-metronic/Align-left.svg +9 -0
  271. package/ui.icons-metronic/Align-right.svg +8 -0
  272. package/ui.icons-metronic/Anchor-center-down.svg +11 -0
  273. package/ui.icons-metronic/Anchor-center-up.svg +11 -0
  274. package/ui.icons-metronic/Anchor-center.svg +8 -0
  275. package/ui.icons-metronic/Anchor-left-down.svg +11 -0
  276. package/ui.icons-metronic/Anchor-left-up.svg +11 -0
  277. package/ui.icons-metronic/Anchor-left.svg +11 -0
  278. package/ui.icons-metronic/Anchor-right-down.svg +11 -0
  279. package/ui.icons-metronic/Anchor-right-up.svg +11 -0
  280. package/ui.icons-metronic/Anchor-right.svg +11 -0
  281. package/ui.icons-metronic/Android.svg +8 -0
  282. package/ui.icons-metronic/Angle Grinder.svg +9 -0
  283. package/ui.icons-metronic/Angle-double-down.svg +8 -0
  284. package/ui.icons-metronic/Angle-double-left.svg +8 -0
  285. package/ui.icons-metronic/Angle-double-right.svg +8 -0
  286. package/ui.icons-metronic/Angle-double-up.svg +8 -0
  287. package/ui.icons-metronic/Angle-down.svg +7 -0
  288. package/ui.icons-metronic/Angle-left.svg +7 -0
  289. package/ui.icons-metronic/Angle-right.svg +7 -0
  290. package/ui.icons-metronic/Angle-up.svg +7 -0
  291. package/ui.icons-metronic/Apple-Watch.svg +8 -0
  292. package/ui.icons-metronic/Archive.svg +7 -0
  293. package/ui.icons-metronic/Armchair.svg +8 -0
  294. package/ui.icons-metronic/Arrow-down.svg +8 -0
  295. package/ui.icons-metronic/Arrow-from-bottom.svg +9 -0
  296. package/ui.icons-metronic/Arrow-from-left.svg +9 -0
  297. package/ui.icons-metronic/Arrow-from-right.svg +9 -0
  298. package/ui.icons-metronic/Arrow-from-top.svg +9 -0
  299. package/ui.icons-metronic/Arrow-left.svg +8 -0
  300. package/ui.icons-metronic/Arrow-right.svg +8 -0
  301. package/ui.icons-metronic/Arrow-to-bottom.svg +9 -0
  302. package/ui.icons-metronic/Arrow-to-left.svg +9 -0
  303. package/ui.icons-metronic/Arrow-to-right.svg +9 -0
  304. package/ui.icons-metronic/Arrow-to-up.svg +9 -0
  305. package/ui.icons-metronic/Arrow-up.svg +8 -0
  306. package/ui.icons-metronic/Arrows-h.svg +9 -0
  307. package/ui.icons-metronic/Arrows-v.svg +9 -0
  308. package/ui.icons-metronic/Arrows.svg +8 -0
  309. package/ui.icons-metronic/Article.svg +8 -0
  310. package/ui.icons-metronic/Attachment1.svg +8 -0
  311. package/ui.icons-metronic/Attachment2.svg +10 -0
  312. package/ui.icons-metronic/Axe.svg +8 -0
  313. package/ui.icons-metronic/Back.svg +8 -0
  314. package/ui.icons-metronic/Backspace.svg +8 -0
  315. package/ui.icons-metronic/Backward.svg +8 -0
  316. package/ui.icons-metronic/Bag-chair.svg +8 -0
  317. package/ui.icons-metronic/Bag1.svg +8 -0
  318. package/ui.icons-metronic/Bag2.svg +8 -0
  319. package/ui.icons-metronic/Baking-glove.svg +8 -0
  320. package/ui.icons-metronic/Barcode-read.svg +8 -0
  321. package/ui.icons-metronic/Barcode-scan.svg +9 -0
  322. package/ui.icons-metronic/Barcode.svg +8 -0
  323. package/ui.icons-metronic/Bath.svg +8 -0
  324. package/ui.icons-metronic/Battery-charging.svg +9 -0
  325. package/ui.icons-metronic/Battery-empty.svg +8 -0
  326. package/ui.icons-metronic/Battery-full.svg +8 -0
  327. package/ui.icons-metronic/Battery-half.svg +8 -0
  328. package/ui.icons-metronic/Bed.svg +9 -0
  329. package/ui.icons-metronic/Beer.svg +11 -0
  330. package/ui.icons-metronic/Bezier-curve.svg +8 -0
  331. package/ui.icons-metronic/Binocular.svg +7 -0
  332. package/ui.icons-metronic/Bitcoin.svg +9 -0
  333. package/ui.icons-metronic/Blender.svg +7 -0
  334. package/ui.icons-metronic/Bluetooth.svg +8 -0
  335. package/ui.icons-metronic/Bold.svg +7 -0
  336. package/ui.icons-metronic/Book-open.svg +8 -0
  337. package/ui.icons-metronic/Book.svg +13 -0
  338. package/ui.icons-metronic/Bookmark.svg +7 -0
  339. package/ui.icons-metronic/Border.svg +7 -0
  340. package/ui.icons-metronic/Bottle1.svg +8 -0
  341. package/ui.icons-metronic/Bottle2.svg +8 -0
  342. package/ui.icons-metronic/Bowl.svg +8 -0
  343. package/ui.icons-metronic/Box.svg +8 -0
  344. package/ui.icons-metronic/Box1.svg +8 -0
  345. package/ui.icons-metronic/Box2.svg +8 -0
  346. package/ui.icons-metronic/Box3.svg +8 -0
  347. package/ui.icons-metronic/Brassiere.svg +7 -0
  348. package/ui.icons-metronic/Bread.svg +8 -0
  349. package/ui.icons-metronic/Briefcase.svg +8 -0
  350. package/ui.icons-metronic/Broom.svg +8 -0
  351. package/ui.icons-metronic/Brush.svg +8 -0
  352. package/ui.icons-metronic/Brush2.svg +8 -0
  353. package/ui.icons-metronic/Bucket.svg +8 -0
  354. package/ui.icons-metronic/Bucket2.svg +8 -0
  355. package/ui.icons-metronic/Building.svg +9 -0
  356. package/ui.icons-metronic/Bulb1.svg +10 -0
  357. package/ui.icons-metronic/Bulb2.svg +10 -0
  358. package/ui.icons-metronic/Bullet-list.svg +8 -0
  359. package/ui.icons-metronic/Burger.svg +9 -0
  360. package/ui.icons-metronic/CD.svg +8 -0
  361. package/ui.icons-metronic/CMD.svg +7 -0
  362. package/ui.icons-metronic/CPU1.svg +14 -0
  363. package/ui.icons-metronic/CPU2.svg +20 -0
  364. package/ui.icons-metronic/Cake.svg +9 -0
  365. package/ui.icons-metronic/Calculator.svg +8 -0
  366. package/ui.icons-metronic/Call#1.svg +7 -0
  367. package/ui.icons-metronic/Call.svg +7 -0
  368. package/ui.icons-metronic/Camera.svg +9 -0
  369. package/ui.icons-metronic/Cap-1.svg +8 -0
  370. package/ui.icons-metronic/Cap-2.svg +7 -0
  371. package/ui.icons-metronic/Cap-3.svg +8 -0
  372. package/ui.icons-metronic/Cap.svg +8 -0
  373. package/ui.icons-metronic/Cardboard-vr.svg +8 -0
  374. package/ui.icons-metronic/Carrot.svg +10 -0
  375. package/ui.icons-metronic/Cart1.svg +8 -0
  376. package/ui.icons-metronic/Cart2.svg +8 -0
  377. package/ui.icons-metronic/Cart3.svg +8 -0
  378. package/ui.icons-metronic/Cassete.svg +9 -0
  379. package/ui.icons-metronic/Celcium.svg +8 -0
  380. package/ui.icons-metronic/Chair1.svg +8 -0
  381. package/ui.icons-metronic/Chair2.svg +8 -0
  382. package/ui.icons-metronic/Chart-bar1.svg +10 -0
  383. package/ui.icons-metronic/Chart-bar2.svg +10 -0
  384. package/ui.icons-metronic/Chart-bar3.svg +10 -0
  385. package/ui.icons-metronic/Chart-line1.svg +8 -0
  386. package/ui.icons-metronic/Chart-line2.svg +8 -0
  387. package/ui.icons-metronic/Chart-pie.svg +8 -0
  388. package/ui.icons-metronic/Chat-check.svg +8 -0
  389. package/ui.icons-metronic/Chat-error.svg +8 -0
  390. package/ui.icons-metronic/Chat-locked.svg +8 -0
  391. package/ui.icons-metronic/Chat-smile.svg +8 -0
  392. package/ui.icons-metronic/Chat1.svg +8 -0
  393. package/ui.icons-metronic/Chat2.svg +8 -0
  394. package/ui.icons-metronic/Chat4.svg +7 -0
  395. package/ui.icons-metronic/Chat5.svg +8 -0
  396. package/ui.icons-metronic/Chat6.svg +8 -0
  397. package/ui.icons-metronic/Check.svg +7 -0
  398. package/ui.icons-metronic/Cheese.svg +8 -0
  399. package/ui.icons-metronic/Chef.svg +8 -0
  400. package/ui.icons-metronic/Chicken.svg +10 -0
  401. package/ui.icons-metronic/Circle.svg +7 -0
  402. package/ui.icons-metronic/Clip.svg +7 -0
  403. package/ui.icons-metronic/Clipboard-check.svg +9 -0
  404. package/ui.icons-metronic/Clipboard-list.svg +14 -0
  405. package/ui.icons-metronic/Clipboard.svg +10 -0
  406. package/ui.icons-metronic/Clock.svg +8 -0
  407. package/ui.icons-metronic/Close.svg +9 -0
  408. package/ui.icons-metronic/Cloud-download.svg +8 -0
  409. package/ui.icons-metronic/Cloud-fog.svg +8 -0
  410. package/ui.icons-metronic/Cloud-sun.svg +8 -0
  411. package/ui.icons-metronic/Cloud-upload.svg +8 -0
  412. package/ui.icons-metronic/Cloud-wind.svg +9 -0
  413. package/ui.icons-metronic/Cloud1.svg +7 -0
  414. package/ui.icons-metronic/Cloud2.svg +8 -0
  415. package/ui.icons-metronic/Cloudy-night.svg +8 -0
  416. package/ui.icons-metronic/Cloudy.svg +8 -0
  417. package/ui.icons-metronic/Code.svg +8 -0
  418. package/ui.icons-metronic/Code2.svg +7 -0
  419. package/ui.icons-metronic/Coffee1.svg +11 -0
  420. package/ui.icons-metronic/Coffee2.svg +9 -0
  421. package/ui.icons-metronic/Color-profile.svg +8 -0
  422. package/ui.icons-metronic/Color.svg +7 -0
  423. package/ui.icons-metronic/Commit.svg +8 -0
  424. package/ui.icons-metronic/Commode1.svg +8 -0
  425. package/ui.icons-metronic/Commode2.svg +8 -0
  426. package/ui.icons-metronic/Compass.svg +7 -0
  427. package/ui.icons-metronic/Compass2.svg +8 -0
  428. package/ui.icons-metronic/Compilation.svg +11 -0
  429. package/ui.icons-metronic/Compiled-file.svg +11 -0
  430. package/ui.icons-metronic/Compiling.svg +8 -0
  431. package/ui.icons-metronic/Component.svg +7 -0
  432. package/ui.icons-metronic/Contact1.svg +8 -0
  433. package/ui.icons-metronic/Control.svg +7 -0
  434. package/ui.icons-metronic/Cookie.svg +10 -0
  435. package/ui.icons-metronic/Cooking-book.svg +14 -0
  436. package/ui.icons-metronic/Cooking-pot.svg +8 -0
  437. package/ui.icons-metronic/Couch.svg +8 -0
  438. package/ui.icons-metronic/Credit-card.svg +9 -0
  439. package/ui.icons-metronic/Crop.svg +8 -0
  440. package/ui.icons-metronic/Crown.svg +8 -0
  441. package/ui.icons-metronic/Cupboard.svg +8 -0
  442. package/ui.icons-metronic/Cursor.svg +7 -0
  443. package/ui.icons-metronic/Curtains.svg +8 -0
  444. package/ui.icons-metronic/Cutting board.svg +8 -0
  445. package/ui.icons-metronic/DVD.svg +8 -0
  446. package/ui.icons-metronic/Day-rain.svg +8 -0
  447. package/ui.icons-metronic/Deer.svg +8 -0
  448. package/ui.icons-metronic/Delete-user.svg +8 -0
  449. package/ui.icons-metronic/Deleted-file.svg +8 -0
  450. package/ui.icons-metronic/Deleted-folder.svg +8 -0
  451. package/ui.icons-metronic/Diagnostics.svg +9 -0
  452. package/ui.icons-metronic/Dial-numbers.svg +15 -0
  453. package/ui.icons-metronic/Difference.svg +8 -0
  454. package/ui.icons-metronic/Dinner.svg +11 -0
  455. package/ui.icons-metronic/Dinner2.svg +8 -0
  456. package/ui.icons-metronic/Direction1.svg +7 -0
  457. package/ui.icons-metronic/Direction2.svg +7 -0
  458. package/ui.icons-metronic/Dish.svg +8 -0
  459. package/ui.icons-metronic/Dishes.svg +8 -0
  460. package/ui.icons-metronic/Dislike.svg +8 -0
  461. package/ui.icons-metronic/Display1.svg +8 -0
  462. package/ui.icons-metronic/Display2.svg +9 -0
  463. package/ui.icons-metronic/Display3.svg +9 -0
  464. package/ui.icons-metronic/Dollar.svg +9 -0
  465. package/ui.icons-metronic/Done-circle.svg +8 -0
  466. package/ui.icons-metronic/Door-open.svg +8 -0
  467. package/ui.icons-metronic/Double-check.svg +8 -0
  468. package/ui.icons-metronic/Down-2.svg +8 -0
  469. package/ui.icons-metronic/Down-left.svg +8 -0
  470. package/ui.icons-metronic/Down-right.svg +8 -0
  471. package/ui.icons-metronic/Download.svg +9 -0
  472. package/ui.icons-metronic/DownloadedFile.svg +8 -0
  473. package/ui.icons-metronic/Downloads-folder.svg +8 -0
  474. package/ui.icons-metronic/Dress.svg +8 -0
  475. package/ui.icons-metronic/Duplicate.svg +8 -0
  476. package/ui.icons-metronic/Earth.svg +8 -0
  477. package/ui.icons-metronic/Edit-text.svg +8 -0
  478. package/ui.icons-metronic/Edit.svg +8 -0
  479. package/ui.icons-metronic/Edit2.svg +7 -0
  480. package/ui.icons-metronic/Eject.svg +8 -0
  481. package/ui.icons-metronic/Equalizer.svg +10 -0
  482. package/ui.icons-metronic/Eraser.svg +7 -0
  483. package/ui.icons-metronic/Error-circle.svg +8 -0
  484. package/ui.icons-metronic/Euro.svg +8 -0
  485. package/ui.icons-metronic/Exchange.svg +10 -0
  486. package/ui.icons-metronic/Expand-arrows.svg +8 -0
  487. package/ui.icons-metronic/Export.svg +9 -0
  488. package/ui.icons-metronic/Fahrenheit.svg +8 -0
  489. package/ui.icons-metronic/Fan.svg +9 -0
  490. package/ui.icons-metronic/File-cloud.svg +8 -0
  491. package/ui.icons-metronic/File-done.svg +8 -0
  492. package/ui.icons-metronic/File-minus.svg +8 -0
  493. package/ui.icons-metronic/File-plus.svg +8 -0
  494. package/ui.icons-metronic/File.svg +9 -0
  495. package/ui.icons-metronic/Filter.svg +7 -0
  496. package/ui.icons-metronic/Fire.svg +7 -0
  497. package/ui.icons-metronic/Fireplace.svg +8 -0
  498. package/ui.icons-metronic/Fish.svg +8 -0
  499. package/ui.icons-metronic/Flag.svg +8 -0
  500. package/ui.icons-metronic/Flashlight.svg +8 -0
  501. package/ui.icons-metronic/Flatten.svg +8 -0
  502. package/ui.icons-metronic/Flip-horizontal.svg +9 -0
  503. package/ui.icons-metronic/Flip-vertical.svg +9 -0
  504. package/ui.icons-metronic/Flower1.svg +10 -0
  505. package/ui.icons-metronic/Flower2.svg +11 -0
  506. package/ui.icons-metronic/Flower3.svg +9 -0
  507. package/ui.icons-metronic/Fog.svg +12 -0
  508. package/ui.icons-metronic/Folder-check.svg +8 -0
  509. package/ui.icons-metronic/Folder-cloud.svg +8 -0
  510. package/ui.icons-metronic/Folder-error.svg +8 -0
  511. package/ui.icons-metronic/Folder-heart.svg +8 -0
  512. package/ui.icons-metronic/Folder-minus.svg +8 -0
  513. package/ui.icons-metronic/Folder-plus.svg +8 -0
  514. package/ui.icons-metronic/Folder-solid.svg +7 -0
  515. package/ui.icons-metronic/Folder-star.svg +8 -0
  516. package/ui.icons-metronic/Folder-thunder.svg +8 -0
  517. package/ui.icons-metronic/Folder.svg +7 -0
  518. package/ui.icons-metronic/Folder2.svg +7 -0
  519. package/ui.icons-metronic/Font.svg +8 -0
  520. package/ui.icons-metronic/Fork-spoon-knife.svg +12 -0
  521. package/ui.icons-metronic/Fork-spoon.svg +10 -0
  522. package/ui.icons-metronic/Fork.svg +8 -0
  523. package/ui.icons-metronic/Forward.svg +7 -0
  524. package/ui.icons-metronic/Forward2.svg +8 -0
  525. package/ui.icons-metronic/French Bread.svg +7 -0
  526. package/ui.icons-metronic/Fridge.svg +7 -0
  527. package/ui.icons-metronic/Frying-pan.svg +8 -0
  528. package/ui.icons-metronic/Gameboy.svg +8 -0
  529. package/ui.icons-metronic/Gamepad1.svg +8 -0
  530. package/ui.icons-metronic/Gamepad2.svg +8 -0
  531. package/ui.icons-metronic/Gas-stove.svg +8 -0
  532. package/ui.icons-metronic/Generator.svg +10 -0
  533. package/ui.icons-metronic/Gift.svg +8 -0
  534. package/ui.icons-metronic/Git1.svg +9 -0
  535. package/ui.icons-metronic/Git2.svg +12 -0
  536. package/ui.icons-metronic/Git3.svg +10 -0
  537. package/ui.icons-metronic/Git4.svg +10 -0
  538. package/ui.icons-metronic/Github.svg +8 -0
  539. package/ui.icons-metronic/Glass-martini.svg +8 -0
  540. package/ui.icons-metronic/Globe.svg +8 -0
  541. package/ui.icons-metronic/Grater.svg +8 -0
  542. package/ui.icons-metronic/Group-chat.svg +8 -0
  543. package/ui.icons-metronic/Group-folders.svg +8 -0
  544. package/ui.icons-metronic/Group.svg +8 -0
  545. package/ui.icons-metronic/H1.svg +8 -0
  546. package/ui.icons-metronic/H2.svg +8 -0
  547. package/ui.icons-metronic/Half-heart.svg +8 -0
  548. package/ui.icons-metronic/Half-star.svg +8 -0
  549. package/ui.icons-metronic/Hanger.svg +7 -0
  550. package/ui.icons-metronic/Hard-drive.svg +8 -0
  551. package/ui.icons-metronic/Hat.svg +8 -0
  552. package/ui.icons-metronic/Headphones.svg +8 -0
  553. package/ui.icons-metronic/Heart.svg +7 -0
  554. package/ui.icons-metronic/Hidden.svg +9 -0
  555. package/ui.icons-metronic/Highvoltage.svg +7 -0
  556. package/ui.icons-metronic/Home-heart.svg +8 -0
  557. package/ui.icons-metronic/Home.svg +7 -0
  558. package/ui.icons-metronic/Homepod.svg +8 -0
  559. package/ui.icons-metronic/Horizontal.svg +8 -0
  560. package/ui.icons-metronic/Hummer.svg +8 -0
  561. package/ui.icons-metronic/Hummer2.svg +9 -0
  562. package/ui.icons-metronic/Ice-cream1.svg +8 -0
  563. package/ui.icons-metronic/Ice-cream2.svg +8 -0
  564. package/ui.icons-metronic/Image.svg +7 -0
  565. package/ui.icons-metronic/Import.svg +9 -0
  566. package/ui.icons-metronic/Incoming-box.svg +9 -0
  567. package/ui.icons-metronic/Incoming-call.svg +8 -0
  568. package/ui.icons-metronic/Incoming-mail.svg +8 -0
  569. package/ui.icons-metronic/Info-circle.svg +9 -0
  570. package/ui.icons-metronic/Interselect.svg +8 -0
  571. package/ui.icons-metronic/Iron.svg +8 -0
  572. package/ui.icons-metronic/Itallic.svg +7 -0
  573. package/ui.icons-metronic/Join-1.svg +8 -0
  574. package/ui.icons-metronic/Join-2.svg +8 -0
  575. package/ui.icons-metronic/Join-3.svg +8 -0
  576. package/ui.icons-metronic/Kettle.svg +8 -0
  577. package/ui.icons-metronic/Key.svg +8 -0
  578. package/ui.icons-metronic/Keyboard.svg +8 -0
  579. package/ui.icons-metronic/Kitchen-scale.svg +8 -0
  580. package/ui.icons-metronic/Knife1.svg +8 -0
  581. package/ui.icons-metronic/Knife2.svg +8 -0
  582. package/ui.icons-metronic/KnifeAndFork1.svg +10 -0
  583. package/ui.icons-metronic/KnifeAndFork2.svg +10 -0
  584. package/ui.icons-metronic/LTE1.svg +8 -0
  585. package/ui.icons-metronic/LTE2.svg +8 -0
  586. package/ui.icons-metronic/Ladder.svg +8 -0
  587. package/ui.icons-metronic/Ladle.svg +8 -0
  588. package/ui.icons-metronic/Lamp1.svg +10 -0
  589. package/ui.icons-metronic/Lamp2.svg +9 -0
  590. package/ui.icons-metronic/Laptop-macbook.svg +8 -0
  591. package/ui.icons-metronic/Laptop.svg +8 -0
  592. package/ui.icons-metronic/Layers.svg +8 -0
  593. package/ui.icons-metronic/Layout-3d.svg +8 -0
  594. package/ui.icons-metronic/Layout-4-blocks.svg +8 -0
  595. package/ui.icons-metronic/Layout-arrange.svg +8 -0
  596. package/ui.icons-metronic/Layout-grid.svg +8 -0
  597. package/ui.icons-metronic/Layout-horizontal.svg +8 -0
  598. package/ui.icons-metronic/Layout-left-panel-1.svg +8 -0
  599. package/ui.icons-metronic/Layout-left-panel-2.svg +8 -0
  600. package/ui.icons-metronic/Layout-right-panel-1.svg +8 -0
  601. package/ui.icons-metronic/Layout-right-panel-2.svg +8 -0
  602. package/ui.icons-metronic/Layout-top-panel-1.svg +8 -0
  603. package/ui.icons-metronic/Layout-top-panel-2.svg +8 -0
  604. package/ui.icons-metronic/Layout-top-panel-3.svg +8 -0
  605. package/ui.icons-metronic/Layout-top-panel-4.svg +8 -0
  606. package/ui.icons-metronic/Layout-top-panel-5.svg +8 -0
  607. package/ui.icons-metronic/Layout-top-panel-6.svg +8 -0
  608. package/ui.icons-metronic/Layout-vertical.svg +8 -0
  609. package/ui.icons-metronic/Left 3.svg +8 -0
  610. package/ui.icons-metronic/Left-2.svg +8 -0
  611. package/ui.icons-metronic/Left-circle.svg +8 -0
  612. package/ui.icons-metronic/Library.svg +8 -0
  613. package/ui.icons-metronic/Like.svg +8 -0
  614. package/ui.icons-metronic/Line.svg +9 -0
  615. package/ui.icons-metronic/Loader.svg +9 -0
  616. package/ui.icons-metronic/Loading.svg +9 -0
  617. package/ui.icons-metronic/Location-arrow.svg +7 -0
  618. package/ui.icons-metronic/Lock-circle.svg +8 -0
  619. package/ui.icons-metronic/Lock-overturning.svg +8 -0
  620. package/ui.icons-metronic/Lock.svg +13 -0
  621. package/ui.icons-metronic/Locked-folder.svg +8 -0
  622. package/ui.icons-metronic/MC.svg +8 -0
  623. package/ui.icons-metronic/Magic.svg +8 -0
  624. package/ui.icons-metronic/Mail-at.svg +7 -0
  625. package/ui.icons-metronic/Mail-attachment.svg +8 -0
  626. package/ui.icons-metronic/Mail-box.svg +8 -0
  627. package/ui.icons-metronic/Mail-error.svg +8 -0
  628. package/ui.icons-metronic/Mail-heart.svg +8 -0
  629. package/ui.icons-metronic/Mail-locked.svg +8 -0
  630. package/ui.icons-metronic/Mail-notification.svg +8 -0
  631. package/ui.icons-metronic/Mail-opened.svg +8 -0
  632. package/ui.icons-metronic/Mail-unocked.svg +8 -0
  633. package/ui.icons-metronic/Mail.svg +7 -0
  634. package/ui.icons-metronic/Mailbox.svg +8 -0
  635. package/ui.icons-metronic/Marker1.svg +7 -0
  636. package/ui.icons-metronic/Marker2.svg +7 -0
  637. package/ui.icons-metronic/Mask.svg +8 -0
  638. package/ui.icons-metronic/Media-folder.svg +8 -0
  639. package/ui.icons-metronic/Media-library1.svg +10 -0
  640. package/ui.icons-metronic/Media-library2.svg +8 -0
  641. package/ui.icons-metronic/Media-library3.svg +14 -0
  642. package/ui.icons-metronic/Media.svg +8 -0
  643. package/ui.icons-metronic/Menu.svg +8 -0
  644. package/ui.icons-metronic/Menu2.svg +4 -0
  645. package/ui.icons-metronic/Mic.svg +8 -0
  646. package/ui.icons-metronic/Midi.svg +13 -0
  647. package/ui.icons-metronic/Minus.svg +8 -0
  648. package/ui.icons-metronic/Minus2.svg +6 -0
  649. package/ui.icons-metronic/Mirror.svg +8 -0
  650. package/ui.icons-metronic/Miso-soup.svg +8 -0
  651. package/ui.icons-metronic/Missed-call.svg +8 -0
  652. package/ui.icons-metronic/Mixer.svg +8 -0
  653. package/ui.icons-metronic/Money.svg +8 -0
  654. package/ui.icons-metronic/Moon.svg +7 -0
  655. package/ui.icons-metronic/Mouse.svg +9 -0
  656. package/ui.icons-metronic/Movie-Lane2.svg +8 -0
  657. package/ui.icons-metronic/Movie-lane1.svg +8 -0
  658. package/ui.icons-metronic/Music-cloud.svg +8 -0
  659. package/ui.icons-metronic/Music-note.svg +7 -0
  660. package/ui.icons-metronic/Music.svg +8 -0
  661. package/ui.icons-metronic/Music2.svg +7 -0
  662. package/ui.icons-metronic/Mute.svg +8 -0
  663. package/ui.icons-metronic/Next.svg +8 -0
  664. package/ui.icons-metronic/Night-fog.svg +8 -0
  665. package/ui.icons-metronic/Night-rain.svg +8 -0
  666. package/ui.icons-metronic/Notification2.svg +8 -0
  667. package/ui.icons-metronic/Notifications1.svg +7 -0
  668. package/ui.icons-metronic/Option.svg +8 -0
  669. package/ui.icons-metronic/Orange.svg +8 -0
  670. package/ui.icons-metronic/Other1.svg +9 -0
  671. package/ui.icons-metronic/Other2.svg +9 -0
  672. package/ui.icons-metronic/Outgoing-box.svg +9 -0
  673. package/ui.icons-metronic/Outgoing-call.svg +8 -0
  674. package/ui.icons-metronic/Outgoing-mail.svg +8 -0
  675. package/ui.icons-metronic/Outlet.svg +8 -0
  676. package/ui.icons-metronic/Panties.svg +7 -0
  677. package/ui.icons-metronic/Pantone.svg +9 -0
  678. package/ui.icons-metronic/Paragraph.svg +7 -0
  679. package/ui.icons-metronic/Patch.svg +9 -0
  680. package/ui.icons-metronic/Pause.svg +7 -0
  681. package/ui.icons-metronic/Pen-tool-vector.svg +8 -0
  682. package/ui.icons-metronic/PenAndRuller.svg +8 -0
  683. package/ui.icons-metronic/Pencil.svg +8 -0
  684. package/ui.icons-metronic/Phone.svg +9 -0
  685. package/ui.icons-metronic/Picker.svg +8 -0
  686. package/ui.icons-metronic/Picture.svg +10 -0
  687. package/ui.icons-metronic/Pictures1.svg +10 -0
  688. package/ui.icons-metronic/Pictures2.svg +12 -0
  689. package/ui.icons-metronic/Pixels.svg +12 -0
  690. package/ui.icons-metronic/Pizza.svg +10 -0
  691. package/ui.icons-metronic/Play.svg +7 -0
  692. package/ui.icons-metronic/Playlist1.svg +8 -0
  693. package/ui.icons-metronic/Playlist2.svg +8 -0
  694. package/ui.icons-metronic/Plus.svg +8 -0
  695. package/ui.icons-metronic/Plus2.svg +7 -0
  696. package/ui.icons-metronic/Polygon.svg +7 -0
  697. package/ui.icons-metronic/Position.svg +7 -0
  698. package/ui.icons-metronic/Position2.svg +9 -0
  699. package/ui.icons-metronic/Pound.svg +8 -0
  700. package/ui.icons-metronic/Price1.svg +7 -0
  701. package/ui.icons-metronic/Price2.svg +11 -0
  702. package/ui.icons-metronic/Printer.svg +8 -0
  703. package/ui.icons-metronic/Protected-file.svg +8 -0
  704. package/ui.icons-metronic/Puzzle.svg +7 -0
  705. package/ui.icons-metronic/Question-circle.svg +8 -0
  706. package/ui.icons-metronic/Quote1.svg +8 -0
  707. package/ui.icons-metronic/Quote2.svg +8 -0
  708. package/ui.icons-metronic/RSS.svg +9 -0
  709. package/ui.icons-metronic/Radio.svg +11 -0
  710. package/ui.icons-metronic/Rain1.svg +8 -0
  711. package/ui.icons-metronic/Rain2.svg +8 -0
  712. package/ui.icons-metronic/Rain5.svg +8 -0
  713. package/ui.icons-metronic/Rainbow.svg +9 -0
  714. package/ui.icons-metronic/Range-hood.svg +8 -0
  715. package/ui.icons-metronic/Readed-mail.svg +8 -0
  716. package/ui.icons-metronic/Rec.svg +7 -0
  717. package/ui.icons-metronic/Rectangle.svg +7 -0
  718. package/ui.icons-metronic/Redo.svg +7 -0
  719. package/ui.icons-metronic/Repeat-one.svg +8 -0
  720. package/ui.icons-metronic/Repeat.svg +8 -0
  721. package/ui.icons-metronic/Reply-all.svg +8 -0
  722. package/ui.icons-metronic/Reply.svg +7 -0
  723. package/ui.icons-metronic/Right 3.svg +8 -0
  724. package/ui.icons-metronic/Right-2.svg +8 -0
  725. package/ui.icons-metronic/Right-circle.svg +8 -0
  726. package/ui.icons-metronic/Right.svg +7 -0
  727. package/ui.icons-metronic/Road-Cone.svg +8 -0
  728. package/ui.icons-metronic/Roller.svg +9 -0
  729. package/ui.icons-metronic/Rolling-pin.svg +8 -0
  730. package/ui.icons-metronic/Rouble.svg +8 -0
  731. package/ui.icons-metronic/Roulette.svg +8 -0
  732. package/ui.icons-metronic/Route.svg +9 -0
  733. package/ui.icons-metronic/Router1.svg +8 -0
  734. package/ui.icons-metronic/Router2.svg +8 -0
  735. package/ui.icons-metronic/Ruller.svg +7 -0
  736. package/ui.icons-metronic/SD-card.svg +7 -0
  737. package/ui.icons-metronic/Sad.svg +8 -0
  738. package/ui.icons-metronic/Safe-chat.svg +8 -0
  739. package/ui.icons-metronic/Safe.svg +8 -0
  740. package/ui.icons-metronic/Sale1.svg +8 -0
  741. package/ui.icons-metronic/Sale2.svg +10 -0
  742. package/ui.icons-metronic/Saturation.svg +8 -0
  743. package/ui.icons-metronic/Saucepan.svg +8 -0
  744. package/ui.icons-metronic/Save.svg +8 -0
  745. package/ui.icons-metronic/Scale.svg +8 -0
  746. package/ui.icons-metronic/Scissors.svg +8 -0
  747. package/ui.icons-metronic/Screwdriver.svg +8 -0
  748. package/ui.icons-metronic/Search.svg +8 -0
  749. package/ui.icons-metronic/Select.svg +8 -0
  750. package/ui.icons-metronic/Selected-file.svg +8 -0
  751. package/ui.icons-metronic/Send.svg +7 -0
  752. package/ui.icons-metronic/Sending mail.svg +8 -0
  753. package/ui.icons-metronic/Sending.svg +8 -0
  754. package/ui.icons-metronic/Server.svg +9 -0
  755. package/ui.icons-metronic/Settings#3.svg +8 -0
  756. package/ui.icons-metronic/Settings-1.svg +8 -0
  757. package/ui.icons-metronic/Settings-2.svg +7 -0
  758. package/ui.icons-metronic/Settings.svg +8 -0
  759. package/ui.icons-metronic/Settings4.svg +8 -0
  760. package/ui.icons-metronic/Share.svg +8 -0
  761. package/ui.icons-metronic/Share2.svg +10 -0
  762. package/ui.icons-metronic/Shield-check.svg +8 -0
  763. package/ui.icons-metronic/Shield-disabled.svg +8 -0
  764. package/ui.icons-metronic/Shield-protected.svg +8 -0
  765. package/ui.icons-metronic/Shield-thunder.svg +8 -0
  766. package/ui.icons-metronic/Shield-user.svg +9 -0
  767. package/ui.icons-metronic/Shift.svg +7 -0
  768. package/ui.icons-metronic/Shirt.svg +8 -0
  769. package/ui.icons-metronic/Shoes.svg +8 -0
  770. package/ui.icons-metronic/Shorts.svg +7 -0
  771. package/ui.icons-metronic/Shovel.svg +8 -0
  772. package/ui.icons-metronic/Shovel2.svg +8 -0
  773. package/ui.icons-metronic/Shuffle.svg +8 -0
  774. package/ui.icons-metronic/Shutdown.svg +8 -0
  775. package/ui.icons-metronic/Sieve.svg +8 -0
  776. package/ui.icons-metronic/Sign-in.svg +9 -0
  777. package/ui.icons-metronic/Sign-out.svg +9 -0
  778. package/ui.icons-metronic/Size.svg +8 -0
  779. package/ui.icons-metronic/Sketch.svg +8 -0
  780. package/ui.icons-metronic/Smile.svg +8 -0
  781. package/ui.icons-metronic/Sneakers.svg +8 -0
  782. package/ui.icons-metronic/Snoozed-mail.svg +8 -0
  783. package/ui.icons-metronic/Snow.svg +8 -0
  784. package/ui.icons-metronic/Snow1.svg +8 -0
  785. package/ui.icons-metronic/Snow2.svg +8 -0
  786. package/ui.icons-metronic/Snow3.svg +8 -0
  787. package/ui.icons-metronic/Socket-eu.svg +7 -0
  788. package/ui.icons-metronic/Socket-us.svg +7 -0
  789. package/ui.icons-metronic/Socks.svg +8 -0
  790. package/ui.icons-metronic/Sort1.svg +8 -0
  791. package/ui.icons-metronic/Sort2.svg +7 -0
  792. package/ui.icons-metronic/Sort3.svg +7 -0
  793. package/ui.icons-metronic/Spam.svg +7 -0
  794. package/ui.icons-metronic/Spatula.svg +8 -0
  795. package/ui.icons-metronic/Speaker.svg +8 -0
  796. package/ui.icons-metronic/Spoon.svg +9 -0
  797. package/ui.icons-metronic/Spy.svg +8 -0
  798. package/ui.icons-metronic/Stairs.svg +7 -0
  799. package/ui.icons-metronic/Stamp.svg +8 -0
  800. package/ui.icons-metronic/Star-outlined.svg +6 -0
  801. package/ui.icons-metronic/Star.svg +7 -0
  802. package/ui.icons-metronic/Stop.svg +7 -0
  803. package/ui.icons-metronic/Storm.svg +8 -0
  804. package/ui.icons-metronic/Strikethrough.svg +8 -0
  805. package/ui.icons-metronic/Substract.svg +8 -0
  806. package/ui.icons-metronic/Sun-fog.svg +8 -0
  807. package/ui.icons-metronic/Sun-glasses.svg +8 -0
  808. package/ui.icons-metronic/Sun.svg +8 -0
  809. package/ui.icons-metronic/Suset1.svg +8 -0
  810. package/ui.icons-metronic/Suset2.svg +8 -0
  811. package/ui.icons-metronic/Sushi.svg +8 -0
  812. package/ui.icons-metronic/Swiss-knife.svg +8 -0
  813. package/ui.icons-metronic/T-Shirt.svg +7 -0
  814. package/ui.icons-metronic/TV1.svg +9 -0
  815. package/ui.icons-metronic/TV2.svg +8 -0
  816. package/ui.icons-metronic/Tablet.svg +8 -0
  817. package/ui.icons-metronic/Target.svg +8 -0
  818. package/ui.icons-metronic/Temperature-empty.svg +7 -0
  819. package/ui.icons-metronic/Temperature-full.svg +7 -0
  820. package/ui.icons-metronic/Temperature-half.svg +7 -0
  821. package/ui.icons-metronic/Terminal.svg +8 -0
  822. package/ui.icons-metronic/Text-height.svg +8 -0
  823. package/ui.icons-metronic/Text-width.svg +8 -0
  824. package/ui.icons-metronic/Text.svg +7 -0
  825. package/ui.icons-metronic/Thumbtack.svg +8 -0
  826. package/ui.icons-metronic/Thunder-circle.svg +8 -0
  827. package/ui.icons-metronic/Thunder-move.svg +8 -0
  828. package/ui.icons-metronic/Thunder-night.svg +8 -0
  829. package/ui.icons-metronic/Thunder.svg +7 -0
  830. package/ui.icons-metronic/Thunder2.svg +8 -0
  831. package/ui.icons-metronic/Ticket.svg +7 -0
  832. package/ui.icons-metronic/Tie.svg +8 -0
  833. package/ui.icons-metronic/Time-schedule.svg +8 -0
  834. package/ui.icons-metronic/Timer.svg +10 -0
  835. package/ui.icons-metronic/Toilet.svg +8 -0
  836. package/ui.icons-metronic/Tools.svg +8 -0
  837. package/ui.icons-metronic/Towel.svg +7 -0
  838. package/ui.icons-metronic/Trash.svg +8 -0
  839. package/ui.icons-metronic/Trash2.svg +8 -0
  840. package/ui.icons-metronic/Triangle.svg +7 -0
  841. package/ui.icons-metronic/Two-bottles.svg +8 -0
  842. package/ui.icons-metronic/USB.svg +9 -0
  843. package/ui.icons-metronic/Umbrella.svg +8 -0
  844. package/ui.icons-metronic/Underline.svg +8 -0
  845. package/ui.icons-metronic/Undo.svg +7 -0
  846. package/ui.icons-metronic/Union.svg +7 -0
  847. package/ui.icons-metronic/Unlock.svg +13 -0
  848. package/ui.icons-metronic/Up-2.svg +8 -0
  849. package/ui.icons-metronic/Up-down.svg +10 -0
  850. package/ui.icons-metronic/Up-left.svg +8 -0
  851. package/ui.icons-metronic/Up-right.svg +8 -0
  852. package/ui.icons-metronic/Update.svg +7 -0
  853. package/ui.icons-metronic/Upload-folder.svg +8 -0
  854. package/ui.icons-metronic/Upload.svg +9 -0
  855. package/ui.icons-metronic/Uploaded-file.svg +8 -0
  856. package/ui.icons-metronic/Urgent-mail.svg +8 -0
  857. package/ui.icons-metronic/Usb-storage.svg +8 -0
  858. package/ui.icons-metronic/User-folder.svg +9 -0
  859. package/ui.icons-metronic/User.svg +8 -0
  860. package/ui.icons-metronic/Vertical.svg +8 -0
  861. package/ui.icons-metronic/Video-camera.svg +8 -0
  862. package/ui.icons-metronic/Visible.svg +8 -0
  863. package/ui.icons-metronic/Volume-down.svg +8 -0
  864. package/ui.icons-metronic/Volume-full.svg +8 -0
  865. package/ui.icons-metronic/Volume-half.svg +8 -0
  866. package/ui.icons-metronic/Volume-up.svg +8 -0
  867. package/ui.icons-metronic/Vynil.svg +8 -0
  868. package/ui.icons-metronic/Waiting.svg +7 -0
  869. package/ui.icons-metronic/Wallet.svg +9 -0
  870. package/ui.icons-metronic/Wallet2.svg +8 -0
  871. package/ui.icons-metronic/Wallet3.svg +9 -0
  872. package/ui.icons-metronic/Warning-1-circle.svg +9 -0
  873. package/ui.icons-metronic/Warning-2.svg +9 -0
  874. package/ui.icons-metronic/Washer.svg +8 -0
  875. package/ui.icons-metronic/Watch1.svg +10 -0
  876. package/ui.icons-metronic/Watch2.svg +10 -0
  877. package/ui.icons-metronic/Water-mixer.svg +9 -0
  878. package/ui.icons-metronic/Weight1.svg +8 -0
  879. package/ui.icons-metronic/Weight2.svg +8 -0
  880. package/ui.icons-metronic/Wi-fi.svg +8 -0
  881. package/ui.icons-metronic/Wind.svg +8 -0
  882. package/ui.icons-metronic/Wine.svg +8 -0
  883. package/ui.icons-metronic/Wood-horse.svg +7 -0
  884. package/ui.icons-metronic/Wood1.svg +8 -0
  885. package/ui.icons-metronic/Wood2.svg +8 -0
  886. package/ui.icons-metronic/Write.svg +8 -0
  887. package/ui.icons-metronic/Youtube.svg +8 -0
  888. package/ui.icons-metronic/ZoomMinus.svg +9 -0
  889. package/ui.icons-metronic/ZoomPlus.svg +9 -0
  890. package/ui.icons-metronic/air-dryer.svg +8 -0
  891. package/ui.icons-metronic/iMac.svg +9 -0
  892. package/ui.icons-metronic/iPhone-X.svg +8 -0
  893. package/ui.icons-metronic/iPhone-back.svg +7 -0
  894. package/ui.icons-metronic/iPhone-x-back.svg +7 -0
  895. package/ui.icons-metronic/index.js +4 -0
  896. package/ui.image-avatar/default-avatar.png +0 -0
  897. package/ui.image-avatar/index.stories.js +106 -0
  898. package/ui.image-avatar/index.vue +253 -0
  899. package/ui.image-icon/cli.mjs +159 -0
  900. package/ui.image-icon/index.stories.js +129 -0
  901. package/ui.image-icon/index.vue +511 -0
  902. package/ui.image-logo/index.stories.js +84 -0
  903. package/ui.image-logo/index.vue +184 -0
  904. package/ui.navigation-pagination/index.stories.js +35 -0
  905. package/ui.navigation-pagination/index.vue +115 -0
  906. package/ui.navigation-stepper/index.stories.js +29 -0
  907. package/ui.navigation-stepper/index.vue +129 -0
  908. package/ui.navigation-tab/index.stories.js +61 -0
  909. package/ui.navigation-tab/index.vue +112 -0
  910. package/ui.navigation-tabs/index.stories.js +73 -0
  911. package/ui.navigation-tabs/index.vue +119 -0
  912. package/ui.other-dot/index.stories.js +77 -0
  913. package/ui.other-dot/index.vue +100 -0
  914. package/ui.other-loader/index.stories.js +77 -0
  915. package/ui.other-loader/index.vue +185 -0
  916. package/ui.text-alert/index.stories.js +124 -0
  917. package/ui.text-alert/index.vue +236 -0
  918. package/ui.text-block/index.stories.js +111 -0
  919. package/ui.text-block/index.vue +137 -0
  920. package/ui.text-empty/configs/default.config.js +28 -0
  921. package/ui.text-empty/index.stories.js +106 -0
  922. package/ui.text-empty/index.vue +95 -0
  923. package/ui.text-empty/services/variant.service.js +22 -0
  924. package/ui.text-field/index.stories.js +60 -0
  925. package/ui.text-field/index.vue +109 -0
  926. package/ui.text-file/index.stories.js +28 -0
  927. package/ui.text-file/index.vue +102 -0
  928. package/ui.text-files/index.stories.js +31 -0
  929. package/ui.text-files/index.vue +64 -0
  930. package/ui.text-header/index.stories.js +110 -0
  931. package/ui.text-header/index.vue +237 -0
  932. package/ui.text-money/assets/credit.svg +7 -0
  933. package/ui.text-money/assets/debit.svg +12 -0
  934. package/ui.text-money/index.stories.js +263 -0
  935. package/ui.text-money/index.vue +523 -0
  936. package/ui.text-tag/index.stories.js +90 -0
  937. package/ui.text-tag/index.vue +178 -0
  938. package/web-types.json +6320 -0
@@ -0,0 +1,1537 @@
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>