sprintify-ui 0.4.5 → 0.4.6

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 (417) hide show
  1. package/README.md +258 -258
  2. package/dist/sprintify-ui.es.js +7 -7
  3. package/dist/style.css +1 -1
  4. package/dist/tailwindcss/index.js +306 -306
  5. package/dist/types/src/components/BaseActionItem.vue.d.ts +40 -40
  6. package/dist/types/src/components/BaseActionItemButton.vue.d.ts +25 -25
  7. package/dist/types/src/components/BaseAddressForm.vue.d.ts +84 -84
  8. package/dist/types/src/components/BaseAlert.vue.d.ts +51 -51
  9. package/dist/types/src/components/BaseApp.vue.d.ts +9 -9
  10. package/dist/types/src/components/BaseAppDialogs.vue.d.ts +14 -14
  11. package/dist/types/src/components/BaseAppNotifications.vue.d.ts +2 -2
  12. package/dist/types/src/components/BaseAutocomplete.vue.d.ts +237 -237
  13. package/dist/types/src/components/BaseAutocompleteDrawer.vue.d.ts +91 -91
  14. package/dist/types/src/components/BaseAutocompleteFetch.vue.d.ts +210 -210
  15. package/dist/types/src/components/BaseAvatar.vue.d.ts +52 -52
  16. package/dist/types/src/components/BaseAvatarGroup.vue.d.ts +43 -43
  17. package/dist/types/src/components/BaseBadge.vue.d.ts +60 -60
  18. package/dist/types/src/components/BaseBelongsTo.vue.d.ts +216 -216
  19. package/dist/types/src/components/BaseBoolean.vue.d.ts +10 -10
  20. package/dist/types/src/components/BaseBreadcrumbs.vue.d.ts +24 -24
  21. package/dist/types/src/components/BaseButton.vue.d.ts +23 -23
  22. package/dist/types/src/components/BaseButtonGroup.vue.d.ts +143 -143
  23. package/dist/types/src/components/BaseCalendar.vue.d.ts +124 -124
  24. package/dist/types/src/components/BaseCard.vue.d.ts +21 -21
  25. package/dist/types/src/components/BaseCardRow.vue.d.ts +16 -16
  26. package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +49 -49
  27. package/dist/types/src/components/BaseClickOutside.vue.d.ts +26 -26
  28. package/dist/types/src/components/BaseClipboard.vue.d.ts +22 -22
  29. package/dist/types/src/components/BaseColor.vue.d.ts +80 -80
  30. package/dist/types/src/components/BaseContainer.vue.d.ts +34 -34
  31. package/dist/types/src/components/BaseCounter.vue.d.ts +42 -42
  32. package/dist/types/src/components/BaseCropper.vue.d.ts +76 -76
  33. package/dist/types/src/components/BaseCropperModal.vue.d.ts +28 -28
  34. package/dist/types/src/components/BaseDataIterator.vue.d.ts +227 -227
  35. package/dist/types/src/components/BaseDataIteratorSectionBox.vue.d.ts +20 -20
  36. package/dist/types/src/components/BaseDataIteratorSectionButton.vue.d.ts +25 -25
  37. package/dist/types/src/components/BaseDataIteratorSectionColumns.vue.d.ts +657 -657
  38. package/dist/types/src/components/BaseDataIteratorSectionModal.vue.d.ts +32 -32
  39. package/dist/types/src/components/BaseDataTable.vue.d.ts +406 -406
  40. package/dist/types/src/components/BaseDataTableRowAction.vue.d.ts +31 -31
  41. package/dist/types/src/components/BaseDatePicker.vue.d.ts +124 -124
  42. package/dist/types/src/components/BaseDateSelect.vue.d.ts +79 -79
  43. package/dist/types/src/components/BaseDescriptionList.vue.d.ts +9 -9
  44. package/dist/types/src/components/BaseDescriptionListItem.vue.d.ts +10 -10
  45. package/dist/types/src/components/BaseDialog.vue.d.ts +60 -60
  46. package/dist/types/src/components/BaseDisplayRelativeTime.vue.d.ts +50 -50
  47. package/dist/types/src/components/BaseDraggable.vue.d.ts +49 -49
  48. package/dist/types/src/components/BaseDropdown.vue.d.ts +65 -65
  49. package/dist/types/src/components/BaseDropdownAutocomplete.vue.d.ts +132 -132
  50. package/dist/types/src/components/BaseField.vue.d.ts +58 -58
  51. package/dist/types/src/components/BaseFieldI18n.vue.d.ts +93 -93
  52. package/dist/types/src/components/BaseFilePicker.vue.d.ts +72 -72
  53. package/dist/types/src/components/BaseFilePickerCrop.vue.d.ts +63 -63
  54. package/dist/types/src/components/BaseFileUploader.vue.d.ts +142 -142
  55. package/dist/types/src/components/BaseForm.vue.d.ts +143 -143
  56. package/dist/types/src/components/BaseGantt.vue.d.ts +425 -425
  57. package/dist/types/src/components/BaseHasMany.vue.d.ts +149 -149
  58. package/dist/types/src/components/BaseHeader.vue.d.ts +98 -98
  59. package/dist/types/src/components/BaseIconPicker.vue.d.ts +34 -34
  60. package/dist/types/src/components/BaseInput.vue.d.ts +174 -174
  61. package/dist/types/src/components/BaseInputError.vue.d.ts +9 -9
  62. package/dist/types/src/components/BaseInputLabel.vue.d.ts +42 -42
  63. package/dist/types/src/components/BaseInputPercent.vue.d.ts +138 -138
  64. package/dist/types/src/components/BaseLayoutNotificationDropdown.vue.d.ts +36 -36
  65. package/dist/types/src/components/BaseLayoutNotificationItem.vue.d.ts +16 -16
  66. package/dist/types/src/components/BaseLayoutNotificationItemContent.vue.d.ts +21 -21
  67. package/dist/types/src/components/BaseLayoutSidebar.vue.d.ts +51 -51
  68. package/dist/types/src/components/BaseLayoutSidebarConfigurable.vue.d.ts +87 -87
  69. package/dist/types/src/components/BaseLayoutStacked.vue.d.ts +23 -23
  70. package/dist/types/src/components/BaseLayoutStackedConfigurable.vue.d.ts +78 -78
  71. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +96 -96
  72. package/dist/types/src/components/BaseMediaGallery.vue.d.ts +64 -64
  73. package/dist/types/src/components/BaseMediaGalleryItem.vue.d.ts +45 -45
  74. package/dist/types/src/components/BaseMediaItem.vue.d.ts +27 -27
  75. package/dist/types/src/components/BaseMediaLibrary.vue.d.ts +199 -199
  76. package/dist/types/src/components/BaseMediaList.vue.d.ts +46 -46
  77. package/dist/types/src/components/BaseMediaListItem.vue.d.ts +46 -46
  78. package/dist/types/src/components/BaseMediaPictures.vue.d.ts +55 -55
  79. package/dist/types/src/components/BaseMediaPicturesItem.vue.d.ts +54 -54
  80. package/dist/types/src/components/BaseMediaPreview.vue.d.ts +36 -36
  81. package/dist/types/src/components/BaseMenu.vue.d.ts +68 -68
  82. package/dist/types/src/components/BaseMenuItem.vue.d.ts +61 -61
  83. package/dist/types/src/components/BaseModalCenter.vue.d.ts +80 -80
  84. package/dist/types/src/components/BaseModalSide.vue.d.ts +62 -62
  85. package/dist/types/src/components/BaseNavbar.vue.d.ts +38 -38
  86. package/dist/types/src/components/BaseNavbarItem.vue.d.ts +26 -26
  87. package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +60 -60
  88. package/dist/types/src/components/BaseNavbarSideItem.vue.d.ts +44 -44
  89. package/dist/types/src/components/BaseNavbarSideItemContent.vue.d.ts +60 -60
  90. package/dist/types/src/components/BasePagination.vue.d.ts +35 -35
  91. package/dist/types/src/components/BasePanel.vue.d.ts +31 -31
  92. package/dist/types/src/components/BasePassword.vue.d.ts +67 -67
  93. package/dist/types/src/components/BaseProgressCircle.vue.d.ts +37 -37
  94. package/dist/types/src/components/BaseRadioGroup.vue.d.ts +105 -105
  95. package/dist/types/src/components/BaseReadMore.vue.d.ts +21 -21
  96. package/dist/types/src/components/BaseRichText.vue.d.ts +92 -92
  97. package/dist/types/src/components/BaseSelect.vue.d.ts +98 -98
  98. package/dist/types/src/components/BaseShortcut.vue.d.ts +86 -86
  99. package/dist/types/src/components/BaseSideNavigation.vue.d.ts +21 -21
  100. package/dist/types/src/components/BaseSideNavigationItem.vue.d.ts +41 -41
  101. package/dist/types/src/components/BaseSkeleton.vue.d.ts +31 -31
  102. package/dist/types/src/components/BaseStatistic.vue.d.ts +55 -55
  103. package/dist/types/src/components/BaseStepper.vue.d.ts +16 -16
  104. package/dist/types/src/components/BaseStepperItem.vue.d.ts +51 -51
  105. package/dist/types/src/components/BaseSwitch.vue.d.ts +87 -87
  106. package/dist/types/src/components/BaseSystemAlert.vue.d.ts +52 -52
  107. package/dist/types/src/components/BaseTabItem.vue.d.ts +41 -41
  108. package/dist/types/src/components/BaseTable.vue.d.ts +221 -221
  109. package/dist/types/src/components/BaseTableColumn.vue.d.ts +174 -174
  110. package/dist/types/src/components/BaseTabs.vue.d.ts +21 -21
  111. package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +209 -209
  112. package/dist/types/src/components/BaseTagAutocompleteFetch.vue.d.ts +141 -141
  113. package/dist/types/src/components/BaseTextarea.vue.d.ts +103 -103
  114. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +113 -113
  115. package/dist/types/src/components/BaseTimeline.vue.d.ts +14 -14
  116. package/dist/types/src/components/BaseTimelineItem.vue.d.ts +14 -14
  117. package/dist/types/src/components/BaseToast.vue.d.ts +20 -20
  118. package/dist/types/src/components/BaseUniqueCode.vue.d.ts +33 -33
  119. package/dist/types/src/components/SlotComponent.d.ts +43 -43
  120. package/dist/types/src/components/index.d.ts +97 -97
  121. package/dist/types/src/composables/breakpoints.d.ts +27 -27
  122. package/dist/types/src/composables/clickOutside.d.ts +8 -8
  123. package/dist/types/src/composables/field.d.ts +19 -19
  124. package/dist/types/src/composables/hasOptions.d.ts +7 -7
  125. package/dist/types/src/composables/mediaQuery.d.ts +2 -2
  126. package/dist/types/src/composables/modal.d.ts +6 -6
  127. package/dist/types/src/composables/paginatedData.d.ts +7 -7
  128. package/dist/types/src/constants/MyConstants.d.ts +1 -1
  129. package/dist/types/src/constants/index.d.ts +2 -2
  130. package/dist/types/src/i18n/index.d.ts +1 -1
  131. package/dist/types/src/index.d.ts +236 -236
  132. package/dist/types/src/services/gantt/format.d.ts +24 -24
  133. package/dist/types/src/services/gantt/timescale.d.ts +26 -26
  134. package/dist/types/src/services/gantt/types.d.ts +67 -67
  135. package/dist/types/src/stores/dialogs.d.ts +9 -9
  136. package/dist/types/src/stores/i18n.d.ts +5 -5
  137. package/dist/types/src/stores/notifications.d.ts +10 -10
  138. package/dist/types/src/stores/systemAlerts.d.ts +9 -9
  139. package/dist/types/src/stories/PageShow.vue.d.ts +2 -2
  140. package/dist/types/src/svg/BaseEmptyState.vue.d.ts +2 -2
  141. package/dist/types/src/svg/BaseSpinnerLarge.vue.d.ts +2 -2
  142. package/dist/types/src/svg/BaseSpinnerSmall.vue.d.ts +2 -2
  143. package/dist/types/src/types/CalendarEvent.d.ts +9 -9
  144. package/dist/types/src/types/Color.d.ts +9 -9
  145. package/dist/types/src/types/Country.d.ts +4 -4
  146. package/dist/types/src/types/ImagePickerResult.d.ts +5 -5
  147. package/dist/types/src/types/Media.d.ts +9 -9
  148. package/dist/types/src/types/Notification.d.ts +8 -8
  149. package/dist/types/src/types/Region.d.ts +5 -5
  150. package/dist/types/src/types/Status.d.ts +5 -5
  151. package/dist/types/src/types/StepperItem.d.ts +7 -7
  152. package/dist/types/src/types/TimelineItem.d.ts +9 -9
  153. package/dist/types/src/types/UploadedFile.d.ts +10 -10
  154. package/dist/types/src/types/User.d.ts +6 -6
  155. package/dist/types/src/types/index.d.ts +219 -218
  156. package/dist/types/src/utils/blob.d.ts +3 -3
  157. package/dist/types/src/utils/colors.d.ts +13 -13
  158. package/dist/types/src/utils/cropper/avatar.d.ts +5 -5
  159. package/dist/types/src/utils/cropper/cover.d.ts +5 -5
  160. package/dist/types/src/utils/cropper/presetInterface.d.ts +7 -7
  161. package/dist/types/src/utils/cropper/presets.d.ts +6 -6
  162. package/dist/types/src/utils/fileSizeFormat.d.ts +1 -1
  163. package/dist/types/src/utils/fileValidations.d.ts +2 -2
  164. package/dist/types/src/utils/index.d.ts +6 -6
  165. package/dist/types/src/utils/resizeImageFromURI.d.ts +1 -1
  166. package/dist/types/src/utils/scrollPreventer.d.ts +3 -3
  167. package/dist/types/src/utils/toHumanList.d.ts +1 -1
  168. package/package.json +148 -148
  169. package/src/assets/flatpickr.css +243 -243
  170. package/src/assets/form.css +6 -6
  171. package/src/assets/main.css +36 -36
  172. package/src/assets/tailwind.css +2 -2
  173. package/src/components/BaseActionItem.vue +68 -68
  174. package/src/components/BaseActionItemButton.vue +77 -77
  175. package/src/components/BaseAddressForm.stories.js +103 -103
  176. package/src/components/BaseAddressForm.vue +354 -354
  177. package/src/components/BaseAlert.stories.js +52 -52
  178. package/src/components/BaseAlert.vue +158 -158
  179. package/src/components/BaseApp.vue +16 -16
  180. package/src/components/BaseAppDialogs.vue +123 -123
  181. package/src/components/BaseAppNotifications.vue +40 -40
  182. package/src/components/BaseAutocomplete.stories.js +236 -236
  183. package/src/components/BaseAutocomplete.vue +523 -523
  184. package/src/components/BaseAutocompleteDrawer.vue +372 -372
  185. package/src/components/BaseAutocompleteFetch.stories.js +224 -224
  186. package/src/components/BaseAutocompleteFetch.vue +288 -288
  187. package/src/components/BaseAvatar.stories.js +39 -39
  188. package/src/components/BaseAvatar.vue +120 -120
  189. package/src/components/BaseAvatarGroup.stories.js +71 -71
  190. package/src/components/BaseAvatarGroup.vue +148 -148
  191. package/src/components/BaseBadge.stories.js +124 -124
  192. package/src/components/BaseBadge.vue +87 -87
  193. package/src/components/BaseBelongsTo.stories.js +223 -223
  194. package/src/components/BaseBelongsTo.vue +193 -193
  195. package/src/components/BaseBoolean.stories.js +35 -35
  196. package/src/components/BaseBoolean.vue +26 -26
  197. package/src/components/BaseBreadcrumbs.stories.js +50 -50
  198. package/src/components/BaseBreadcrumbs.vue +109 -109
  199. package/src/components/BaseButton.stories.js +88 -88
  200. package/src/components/BaseButton.vue +46 -46
  201. package/src/components/BaseButtonGroup.stories.js +86 -86
  202. package/src/components/BaseButtonGroup.vue +150 -150
  203. package/src/components/BaseCalendar.stories.js +202 -202
  204. package/src/components/BaseCalendar.vue +215 -215
  205. package/src/components/BaseCard.stories.js +61 -61
  206. package/src/components/BaseCard.vue +49 -49
  207. package/src/components/BaseCardRow.vue +34 -34
  208. package/src/components/BaseCharacterCounter.stories.js +30 -30
  209. package/src/components/BaseCharacterCounter.vue +64 -64
  210. package/src/components/BaseClickOutside.vue +37 -37
  211. package/src/components/BaseClipboard.stories.js +32 -32
  212. package/src/components/BaseClipboard.vue +83 -83
  213. package/src/components/BaseColor.stories.js +46 -46
  214. package/src/components/BaseColor.vue +154 -154
  215. package/src/components/BaseContainer.stories.js +34 -34
  216. package/src/components/BaseContainer.vue +50 -50
  217. package/src/components/BaseCounter.stories.js +47 -47
  218. package/src/components/BaseCounter.vue +82 -82
  219. package/src/components/BaseCropper.stories.js +113 -113
  220. package/src/components/BaseCropper.vue +458 -458
  221. package/src/components/BaseCropperModal.stories.js +54 -54
  222. package/src/components/BaseCropperModal.vue +143 -143
  223. package/src/components/BaseDataIterator.stories.js +197 -197
  224. package/src/components/BaseDataIterator.vue +839 -839
  225. package/src/components/BaseDataIteratorSectionBox.vue +36 -36
  226. package/src/components/BaseDataIteratorSectionButton.vue +53 -53
  227. package/src/components/BaseDataIteratorSectionColumns.vue +70 -70
  228. package/src/components/BaseDataIteratorSectionModal.vue +41 -41
  229. package/src/components/BaseDataTable.stories.js +226 -226
  230. package/src/components/BaseDataTable.vue +779 -779
  231. package/src/components/BaseDataTableRowAction.vue +53 -53
  232. package/src/components/BaseDatePicker.stories.js +130 -130
  233. package/src/components/BaseDatePicker.vue +296 -296
  234. package/src/components/BaseDateSelect.stories.js +47 -47
  235. package/src/components/BaseDateSelect.vue +241 -241
  236. package/src/components/BaseDescriptionList.stories.js +35 -35
  237. package/src/components/BaseDescriptionList.vue +13 -13
  238. package/src/components/BaseDescriptionListItem.vue +47 -47
  239. package/src/components/BaseDialog.stories.js +51 -51
  240. package/src/components/BaseDialog.vue +119 -119
  241. package/src/components/BaseDisplayRelativeTime.stories.js +47 -47
  242. package/src/components/BaseDisplayRelativeTime.vue +122 -122
  243. package/src/components/BaseDraggable.vue +71 -71
  244. package/src/components/BaseDropdown.stories.js +210 -210
  245. package/src/components/BaseDropdown.vue +280 -280
  246. package/src/components/BaseDropdownAutocomplete.stories.js +187 -187
  247. package/src/components/BaseDropdownAutocomplete.vue +235 -235
  248. package/src/components/BaseField.vue +112 -112
  249. package/src/components/BaseFieldI18n.stories.js +38 -38
  250. package/src/components/BaseFieldI18n.vue +170 -170
  251. package/src/components/BaseFilePicker.stories.js +84 -84
  252. package/src/components/BaseFilePicker.vue +163 -163
  253. package/src/components/BaseFilePickerCrop.stories.js +135 -135
  254. package/src/components/BaseFilePickerCrop.vue +130 -130
  255. package/src/components/BaseFileUploader.stories.js +102 -102
  256. package/src/components/BaseFileUploader.vue +185 -185
  257. package/src/components/BaseForm.stories.js +48 -48
  258. package/src/components/BaseForm.vue +335 -335
  259. package/src/components/BaseGantt.stories.js +133 -133
  260. package/src/components/BaseGantt.vue +336 -336
  261. package/src/components/BaseHasMany.stories.js +189 -189
  262. package/src/components/BaseHasMany.vue +137 -137
  263. package/src/components/BaseHeader.stories.js +133 -133
  264. package/src/components/BaseHeader.vue +188 -188
  265. package/src/components/BaseIconPicker.stories.js +22 -22
  266. package/src/components/BaseIconPicker.vue +225 -225
  267. package/src/components/BaseInput.stories.js +167 -167
  268. package/src/components/BaseInput.vue +264 -264
  269. package/src/components/BaseInputError.vue +7 -7
  270. package/src/components/BaseInputLabel.stories.js +36 -36
  271. package/src/components/BaseInputLabel.vue +57 -57
  272. package/src/components/BaseInputPercent.stories.js +65 -65
  273. package/src/components/BaseInputPercent.vue +139 -139
  274. package/src/components/BaseLayoutNotificationDropdown.vue +150 -150
  275. package/src/components/BaseLayoutNotificationItem.vue +53 -53
  276. package/src/components/BaseLayoutNotificationItemContent.vue +30 -30
  277. package/src/components/BaseLayoutSidebar.vue +236 -236
  278. package/src/components/BaseLayoutSidebarConfigurable.stories.js +166 -166
  279. package/src/components/BaseLayoutSidebarConfigurable.vue +181 -181
  280. package/src/components/BaseLayoutStacked.vue +52 -52
  281. package/src/components/BaseLayoutStackedConfigurable.stories.js +109 -109
  282. package/src/components/BaseLayoutStackedConfigurable.vue +158 -158
  283. package/src/components/BaseLoadingCover.stories.js +55 -55
  284. package/src/components/BaseLoadingCover.vue +101 -101
  285. package/src/components/BaseMediaGallery.vue +96 -96
  286. package/src/components/BaseMediaGalleryItem.vue +101 -101
  287. package/src/components/BaseMediaItem.stories.js +41 -41
  288. package/src/components/BaseMediaItem.vue +80 -80
  289. package/src/components/BaseMediaLibrary.stories.js +267 -267
  290. package/src/components/BaseMediaLibrary.vue +342 -342
  291. package/src/components/BaseMediaList.vue +67 -67
  292. package/src/components/BaseMediaListItem.vue +212 -212
  293. package/src/components/BaseMediaPictures.vue +64 -64
  294. package/src/components/BaseMediaPicturesItem.vue +100 -100
  295. package/src/components/BaseMediaPreview.stories.js +72 -72
  296. package/src/components/BaseMediaPreview.vue +106 -106
  297. package/src/components/BaseMenu.stories.js +129 -129
  298. package/src/components/BaseMenu.vue +165 -165
  299. package/src/components/BaseMenuItem.vue +145 -145
  300. package/src/components/BaseModalCenter.stories.js +68 -68
  301. package/src/components/BaseModalCenter.vue +128 -128
  302. package/src/components/BaseModalSide.stories.js +55 -55
  303. package/src/components/BaseModalSide.vue +116 -116
  304. package/src/components/BaseNavbar.stories.js +151 -151
  305. package/src/components/BaseNavbar.vue +91 -91
  306. package/src/components/BaseNavbarItem.vue +49 -49
  307. package/src/components/BaseNavbarItemContent.vue +97 -97
  308. package/src/components/BaseNavbarSideItem.vue +114 -114
  309. package/src/components/BaseNavbarSideItemContent.vue +111 -111
  310. package/src/components/BasePagination.stories.js +35 -35
  311. package/src/components/BasePagination.vue +266 -266
  312. package/src/components/BasePanel.stories.js +56 -56
  313. package/src/components/BasePanel.vue +42 -42
  314. package/src/components/BasePassword.stories.js +57 -57
  315. package/src/components/BasePassword.vue +107 -107
  316. package/src/components/BaseProgressCircle.stories.js +27 -27
  317. package/src/components/BaseProgressCircle.vue +80 -80
  318. package/src/components/BaseRadioGroup.stories.js +88 -88
  319. package/src/components/BaseRadioGroup.vue +125 -125
  320. package/src/components/BaseReadMore.stories.js +30 -30
  321. package/src/components/BaseReadMore.vue +73 -73
  322. package/src/components/BaseRichText.stories.js +102 -102
  323. package/src/components/BaseRichText.vue +198 -198
  324. package/src/components/BaseSelect.stories.js +118 -118
  325. package/src/components/BaseSelect.vue +224 -224
  326. package/src/components/BaseShortcut.stories.js +102 -102
  327. package/src/components/BaseShortcut.vue +112 -112
  328. package/src/components/BaseSideNavigation.stories.js +85 -85
  329. package/src/components/BaseSideNavigation.vue +32 -32
  330. package/src/components/BaseSideNavigationItem.vue +95 -95
  331. package/src/components/BaseSkeleton.stories.js +36 -36
  332. package/src/components/BaseSkeleton.vue +40 -40
  333. package/src/components/BaseStatistic.stories.js +51 -51
  334. package/src/components/BaseStatistic.vue +106 -106
  335. package/src/components/BaseStepper.stories.js +94 -94
  336. package/src/components/BaseStepper.vue +72 -72
  337. package/src/components/BaseStepperItem.stories.js +65 -65
  338. package/src/components/BaseStepperItem.vue +149 -149
  339. package/src/components/BaseSwitch.stories.js +130 -130
  340. package/src/components/BaseSwitch.vue +215 -215
  341. package/src/components/BaseSystemAlert.stories.js +63 -63
  342. package/src/components/BaseSystemAlert.vue +89 -89
  343. package/src/components/BaseTabItem.vue +97 -97
  344. package/src/components/BaseTable.vue +904 -904
  345. package/src/components/BaseTableColumn.vue +124 -124
  346. package/src/components/BaseTabs.stories.js +85 -85
  347. package/src/components/BaseTabs.vue +73 -73
  348. package/src/components/BaseTagAutocomplete.stories.js +258 -258
  349. package/src/components/BaseTagAutocomplete.vue +438 -438
  350. package/src/components/BaseTagAutocompleteFetch.stories.js +185 -185
  351. package/src/components/BaseTagAutocompleteFetch.vue +220 -220
  352. package/src/components/BaseTextarea.stories.js +58 -58
  353. package/src/components/BaseTextarea.vue +103 -103
  354. package/src/components/BaseTextareaAutoresize.stories.js +102 -102
  355. package/src/components/BaseTextareaAutoresize.vue +166 -166
  356. package/src/components/BaseTimeline.stories.js +55 -55
  357. package/src/components/BaseTimeline.vue +38 -38
  358. package/src/components/BaseTimelineItem.stories.js +78 -78
  359. package/src/components/BaseTimelineItem.vue +90 -90
  360. package/src/components/BaseToast.stories.js +50 -50
  361. package/src/components/BaseToast.vue +43 -43
  362. package/src/components/BaseUniqueCode.stories.js +36 -36
  363. package/src/components/BaseUniqueCode.vue +183 -183
  364. package/src/components/SlotComponent.ts +37 -37
  365. package/src/components/index.ts +196 -196
  366. package/src/composables/breakpoints.ts +94 -94
  367. package/src/composables/clickOutside.ts +80 -80
  368. package/src/composables/field.ts +117 -117
  369. package/src/composables/hasOptions.ts +68 -68
  370. package/src/composables/mediaQuery.ts +42 -42
  371. package/src/composables/modal.ts +73 -73
  372. package/src/composables/paginatedData.ts +65 -65
  373. package/src/constants/MyConstants.ts +1 -1
  374. package/src/constants/index.ts +5 -5
  375. package/src/env.d.ts +15 -15
  376. package/src/i18n/index.ts +60 -60
  377. package/src/index.ts +114 -114
  378. package/src/lang/en.json +95 -95
  379. package/src/lang/fr.json +95 -95
  380. package/src/services/gantt/format.ts +113 -113
  381. package/src/services/gantt/timescale.ts +242 -242
  382. package/src/services/gantt/types.ts +74 -74
  383. package/src/stores/dialogs.ts +45 -45
  384. package/src/stores/i18n.ts +14 -14
  385. package/src/stores/notifications.ts +47 -47
  386. package/src/stores/systemAlerts.ts +32 -32
  387. package/src/stories/List.stories.js +132 -132
  388. package/src/stories/PageShow.vue +423 -423
  389. package/src/stories/Show.stories.js +22 -22
  390. package/src/svg/BaseEmptyState.vue +38 -38
  391. package/src/svg/BaseSpinnerLarge.vue +59 -59
  392. package/src/svg/BaseSpinnerSmall.vue +15 -15
  393. package/src/types/CalendarEvent.ts +9 -9
  394. package/src/types/Color.ts +9 -9
  395. package/src/types/Country.ts +4 -4
  396. package/src/types/ImagePickerResult.ts +5 -5
  397. package/src/types/Media.ts +10 -10
  398. package/src/types/Notification.ts +10 -10
  399. package/src/types/Region.ts +5 -5
  400. package/src/types/Status.ts +5 -5
  401. package/src/types/StepperItem.ts +8 -8
  402. package/src/types/TimelineItem.ts +9 -9
  403. package/src/types/UploadedFile.ts +11 -11
  404. package/src/types/User.ts +7 -7
  405. package/src/types/index.ts +268 -267
  406. package/src/utils/blob.ts +30 -30
  407. package/src/utils/colors.ts +210 -210
  408. package/src/utils/cropper/avatar.ts +33 -33
  409. package/src/utils/cropper/cover.ts +41 -41
  410. package/src/utils/cropper/presetInterface.ts +16 -16
  411. package/src/utils/cropper/presets.ts +7 -7
  412. package/src/utils/fileSizeFormat.ts +15 -15
  413. package/src/utils/fileValidations.ts +26 -26
  414. package/src/utils/index.ts +16 -16
  415. package/src/utils/resizeImageFromURI.ts +118 -118
  416. package/src/utils/scrollPreventer.ts +11 -11
  417. package/src/utils/toHumanList.ts +20 -20
package/src/lang/en.json CHANGED
@@ -1,95 +1,95 @@
1
- {
2
- "cancel": "Cancel",
3
- "cropper": "Crop",
4
- "day": "Day",
5
- "drag_to_reposition": "Drag to reposition",
6
- "list": "List",
7
- "month": "Month",
8
- "save": "Save",
9
- "sui": {
10
- "address": "Address",
11
- "address_1_placeholder": "Postal address",
12
- "address_2_description": "Apartment, suite, unit, building",
13
- "and": "and",
14
- "apply": "Apply",
15
- "apply_filters": "Apply filters",
16
- "authentication_code": "Authentication code",
17
- "autocomplete_placeholder": "Type to start your search",
18
- "bulk_actions": "Bulk actions",
19
- "cancel": "Cancel",
20
- "city": "City",
21
- "clear": "Clear",
22
- "click_or_select_date": "Click or select date",
23
- "click_to_copy": "Click to copy",
24
- "columns": "Columns",
25
- "confirm": "Confirm",
26
- "copied": "Copied",
27
- "country": "Country",
28
- "create_new": "Create new",
29
- "day": "Day",
30
- "delete": "Delete",
31
- "delete_record": "Delete the record",
32
- "delete_record_description": "Are you sure to delete this record? This action is irreversible.",
33
- "deselect_all": "Deselect all",
34
- "download": "Download",
35
- "drag_to_reposition": "Drag to reposition",
36
- "drop_or_click_to_upload": "Drop or click to upload",
37
- "edit": "Edit",
38
- "error": "Error",
39
- "file_must_be_of_type": "The file must be of type",
40
- "filters": "Filters",
41
- "go_to_page": "Go to ",
42
- "invalid_value": "Invalid value",
43
- "just_now": "Just now",
44
- "maximum_x_decimal_places": "Maximum 1 decimal place|Maximum {count} decimal places",
45
- "min_x_characters": "{x} characters minimum",
46
- "month": "Month",
47
- "more": "More",
48
- "next": "Next",
49
- "next_month": "Next month",
50
- "none": "None",
51
- "nothing_found": "Nothing found",
52
- "notifications_empty": "You have no new notifications",
53
- "of": "of",
54
- "or": "or",
55
- "page": "Page",
56
- "pagination_detail_1": "Viewing",
57
- "pagination_detail_2": "of",
58
- "postal_code_zip_code": "Postal Code / Zip Code",
59
- "previous": "Previous",
60
- "previous_month": "Previous month",
61
- "read_more": "Read more",
62
- "region": "State / Province",
63
- "remove": "Remove",
64
- "remove_file": "Remove file?",
65
- "remove_file_description": "Are you sure you want to remove the file? This action is irreversible.",
66
- "save": "Save",
67
- "search": "Search",
68
- "see_all_notifications": "See all notifications",
69
- "select_an_item": "Select an item",
70
- "select_an_option": "Select an option",
71
- "success": "Success",
72
- "the_file_size_must_not_exceed_x": "The file size must not exceed {x}",
73
- "the_file_type_is_invalid": "The file type is invalid",
74
- "type_to_start_your_search": "Type to start your search",
75
- "units": {
76
- "b": "B",
77
- "gb": "GB",
78
- "kb": "kB",
79
- "mb": "MB",
80
- "tb": "TB"
81
- },
82
- "up_to_x": "Up to {x}",
83
- "upload_failed": "Upload failed",
84
- "whoops": "Whoops",
85
- "x_ago": "{duration} ago",
86
- "x_rows_selected": "1 item selected | {count} items selected",
87
- "year": "Year",
88
- "yes_delete": "Yes, delete",
89
- "you_can_upload_up_to_n_files": "You can upload one file at most|You can upload up to {count} files",
90
- "you_cannot_select_more_than_x_items": "You can't select more than one item|You can't select more than {count} items"
91
- },
92
- "today": "Today",
93
- "week": "Week",
94
- "year": "Year"
95
- }
1
+ {
2
+ "cancel": "Cancel",
3
+ "cropper": "Crop",
4
+ "day": "Day",
5
+ "drag_to_reposition": "Drag to reposition",
6
+ "list": "List",
7
+ "month": "Month",
8
+ "save": "Save",
9
+ "sui": {
10
+ "address": "Address",
11
+ "address_1_placeholder": "Postal address",
12
+ "address_2_description": "Apartment, suite, unit, building",
13
+ "and": "and",
14
+ "apply": "Apply",
15
+ "apply_filters": "Apply filters",
16
+ "authentication_code": "Authentication code",
17
+ "autocomplete_placeholder": "Type to start your search",
18
+ "bulk_actions": "Bulk actions",
19
+ "cancel": "Cancel",
20
+ "city": "City",
21
+ "clear": "Clear",
22
+ "click_or_select_date": "Click or select date",
23
+ "click_to_copy": "Click to copy",
24
+ "columns": "Columns",
25
+ "confirm": "Confirm",
26
+ "copied": "Copied",
27
+ "country": "Country",
28
+ "create_new": "Create new",
29
+ "day": "Day",
30
+ "delete": "Delete",
31
+ "delete_record": "Delete the record",
32
+ "delete_record_description": "Are you sure to delete this record? This action is irreversible.",
33
+ "deselect_all": "Deselect all",
34
+ "download": "Download",
35
+ "drag_to_reposition": "Drag to reposition",
36
+ "drop_or_click_to_upload": "Drop or click to upload",
37
+ "edit": "Edit",
38
+ "error": "Error",
39
+ "file_must_be_of_type": "The file must be of type",
40
+ "filters": "Filters",
41
+ "go_to_page": "Go to ",
42
+ "invalid_value": "Invalid value",
43
+ "just_now": "Just now",
44
+ "maximum_x_decimal_places": "Maximum 1 decimal place|Maximum {count} decimal places",
45
+ "min_x_characters": "{x} characters minimum",
46
+ "month": "Month",
47
+ "more": "More",
48
+ "next": "Next",
49
+ "next_month": "Next month",
50
+ "none": "None",
51
+ "nothing_found": "Nothing found",
52
+ "notifications_empty": "You have no new notifications",
53
+ "of": "of",
54
+ "or": "or",
55
+ "page": "Page",
56
+ "pagination_detail_1": "Viewing",
57
+ "pagination_detail_2": "of",
58
+ "postal_code_zip_code": "Postal Code / Zip Code",
59
+ "previous": "Previous",
60
+ "previous_month": "Previous month",
61
+ "read_more": "Read more",
62
+ "region": "State / Province",
63
+ "remove": "Remove",
64
+ "remove_file": "Remove file?",
65
+ "remove_file_description": "Are you sure you want to remove the file? This action is irreversible.",
66
+ "save": "Save",
67
+ "search": "Search",
68
+ "see_all_notifications": "See all notifications",
69
+ "select_an_item": "Select an item",
70
+ "select_an_option": "Select an option",
71
+ "success": "Success",
72
+ "the_file_size_must_not_exceed_x": "The file size must not exceed {x}",
73
+ "the_file_type_is_invalid": "The file type is invalid",
74
+ "type_to_start_your_search": "Type to start your search",
75
+ "units": {
76
+ "b": "B",
77
+ "gb": "GB",
78
+ "kb": "kB",
79
+ "mb": "MB",
80
+ "tb": "TB"
81
+ },
82
+ "up_to_x": "Up to {x}",
83
+ "upload_failed": "Upload failed",
84
+ "whoops": "Whoops",
85
+ "x_ago": "{duration} ago",
86
+ "x_rows_selected": "1 item selected | {count} items selected",
87
+ "year": "Year",
88
+ "yes_delete": "Yes, delete",
89
+ "you_can_upload_up_to_n_files": "You can upload one file at most|You can upload up to {count} files",
90
+ "you_cannot_select_more_than_x_items": "You can't select more than one item|You can't select more than {count} items"
91
+ },
92
+ "today": "Today",
93
+ "week": "Week",
94
+ "year": "Year"
95
+ }
package/src/lang/fr.json CHANGED
@@ -1,95 +1,95 @@
1
- {
2
- "cancel": "Fermer",
3
- "cropper": "Recadrer",
4
- "day": "Jour",
5
- "drag_to_reposition": "Faites glisser pour repositionner",
6
- "list": "Liste",
7
- "month": "Mois",
8
- "save": "Sauvegarder",
9
- "sui": {
10
- "address": "Adresse",
11
- "address_1_placeholder": "Adresse postale",
12
- "address_2_description": "Appartement, suite, unité, immeuble",
13
- "and": "et",
14
- "apply": "Appliquer",
15
- "apply_filters": "Appliquer les filtres",
16
- "authentication_code": "Code d'authentification",
17
- "autocomplete_placeholder": "Taper pour lancer votre recherche",
18
- "bulk_actions": "Actions en lot",
19
- "cancel": "Annuler",
20
- "city": "Ville",
21
- "clear": "Effacer",
22
- "click_or_select_date": "Cliquer ou sélectionner une date",
23
- "click_to_copy": "Cliquer pour copier",
24
- "columns": "Colonnes",
25
- "confirm": "Confirmer",
26
- "copied": "Copié",
27
- "country": "Pays",
28
- "create_new": "Créer un nouveau",
29
- "day": "Jour",
30
- "delete": "Supprimer",
31
- "delete_record": "Supprimer l'item",
32
- "delete_record_description": "Supprimer cet item ? \nCette action est irréversible.",
33
- "deselect_all": "Tout déselectionner",
34
- "download": "Télécharger",
35
- "drag_to_reposition": "Faites glisser pour repositionner",
36
- "drop_or_click_to_upload": "Déposer ou cliquer pour télécharger",
37
- "edit": "Modifier",
38
- "error": "Erreur",
39
- "file_must_be_of_type": "Le fichier doit être de type",
40
- "filters": "Filtres",
41
- "go_to_page": "Page",
42
- "invalid_value": "Valeur invalide",
43
- "just_now": "à l’instant",
44
- "maximum_x_decimal_places": "Maximum 1 décimale|Maximum {count} décimales",
45
- "min_x_characters": "{x} caractères minimum",
46
- "month": "Mois",
47
- "more": "Plus",
48
- "next": "Suivant",
49
- "next_month": "Mois prochain",
50
- "none": "Aucun",
51
- "nothing_found": "Rien n'a été trouvé",
52
- "notifications_empty": "Vous n'avez aucune nouvelle notification",
53
- "of": "de",
54
- "or": "ou",
55
- "page": "Page",
56
- "pagination_detail_1": "Affichage de",
57
- "pagination_detail_2": "de",
58
- "postal_code_zip_code": "Code postal",
59
- "previous": "Précédent",
60
- "previous_month": "Mois précédent",
61
- "read_more": "Lire la suite",
62
- "region": "État / Province",
63
- "remove": "Retirer",
64
- "remove_file": "Retirer le fichier?",
65
- "remove_file_description": "Supprimer le fichier ? \nCette action est irréversible.",
66
- "save": "Sauvegarder",
67
- "search": "Rechercher",
68
- "see_all_notifications": "Voir toutes les notifications",
69
- "select_an_item": "Sélectionner un élément",
70
- "select_an_option": "Sélectionner une option",
71
- "success": "Succès",
72
- "the_file_size_must_not_exceed_x": "La taille du fichier ne doit pas dépasser {x}",
73
- "the_file_type_is_invalid": "Le type de fichier n'est pas valide",
74
- "type_to_start_your_search": "Taper pour lancer votre recherche",
75
- "units": {
76
- "b": "o",
77
- "gb": "Go",
78
- "kb": "Ko",
79
- "mb": "Mo",
80
- "tb": "To"
81
- },
82
- "up_to_x": "Jusqu'à {x}",
83
- "upload_failed": "Le téléchargement a échoué",
84
- "whoops": "Oups",
85
- "x_ago": "il y a {duration}",
86
- "x_rows_selected": "1 item sélectionné | \n{count} items sélectionnés",
87
- "year": "Année",
88
- "yes_delete": "Oui, supprimer",
89
- "you_can_upload_up_to_n_files": "Vous pouvez télécharger un fichier au maximum|Vous pouvez télécharger jusqu'à {count} fichiers",
90
- "you_cannot_select_more_than_x_items": "Vous ne pouvez pas sélectionner plus de un élément|Vous ne pouvez pas sélectionner plus de {count} éléments"
91
- },
92
- "today": "Aujourd\\'hui",
93
- "week": "Semaine",
94
- "year": "Année"
95
- }
1
+ {
2
+ "cancel": "Fermer",
3
+ "cropper": "Recadrer",
4
+ "day": "Jour",
5
+ "drag_to_reposition": "Faites glisser pour repositionner",
6
+ "list": "Liste",
7
+ "month": "Mois",
8
+ "save": "Sauvegarder",
9
+ "sui": {
10
+ "address": "Adresse",
11
+ "address_1_placeholder": "Adresse postale",
12
+ "address_2_description": "Appartement, suite, unité, immeuble",
13
+ "and": "et",
14
+ "apply": "Appliquer",
15
+ "apply_filters": "Appliquer les filtres",
16
+ "authentication_code": "Code d'authentification",
17
+ "autocomplete_placeholder": "Taper pour lancer votre recherche",
18
+ "bulk_actions": "Actions en lot",
19
+ "cancel": "Annuler",
20
+ "city": "Ville",
21
+ "clear": "Effacer",
22
+ "click_or_select_date": "Cliquer ou sélectionner une date",
23
+ "click_to_copy": "Cliquer pour copier",
24
+ "columns": "Colonnes",
25
+ "confirm": "Confirmer",
26
+ "copied": "Copié",
27
+ "country": "Pays",
28
+ "create_new": "Créer un nouveau",
29
+ "day": "Jour",
30
+ "delete": "Supprimer",
31
+ "delete_record": "Supprimer l'item",
32
+ "delete_record_description": "Supprimer cet item ? \nCette action est irréversible.",
33
+ "deselect_all": "Tout déselectionner",
34
+ "download": "Télécharger",
35
+ "drag_to_reposition": "Faites glisser pour repositionner",
36
+ "drop_or_click_to_upload": "Déposer ou cliquer pour télécharger",
37
+ "edit": "Modifier",
38
+ "error": "Erreur",
39
+ "file_must_be_of_type": "Le fichier doit être de type",
40
+ "filters": "Filtres",
41
+ "go_to_page": "Page",
42
+ "invalid_value": "Valeur invalide",
43
+ "just_now": "à l’instant",
44
+ "maximum_x_decimal_places": "Maximum 1 décimale|Maximum {count} décimales",
45
+ "min_x_characters": "{x} caractères minimum",
46
+ "month": "Mois",
47
+ "more": "Plus",
48
+ "next": "Suivant",
49
+ "next_month": "Mois prochain",
50
+ "none": "Aucun",
51
+ "nothing_found": "Rien n'a été trouvé",
52
+ "notifications_empty": "Vous n'avez aucune nouvelle notification",
53
+ "of": "de",
54
+ "or": "ou",
55
+ "page": "Page",
56
+ "pagination_detail_1": "Affichage de",
57
+ "pagination_detail_2": "de",
58
+ "postal_code_zip_code": "Code postal",
59
+ "previous": "Précédent",
60
+ "previous_month": "Mois précédent",
61
+ "read_more": "Lire la suite",
62
+ "region": "État / Province",
63
+ "remove": "Retirer",
64
+ "remove_file": "Retirer le fichier?",
65
+ "remove_file_description": "Supprimer le fichier ? \nCette action est irréversible.",
66
+ "save": "Sauvegarder",
67
+ "search": "Rechercher",
68
+ "see_all_notifications": "Voir toutes les notifications",
69
+ "select_an_item": "Sélectionner un élément",
70
+ "select_an_option": "Sélectionner une option",
71
+ "success": "Succès",
72
+ "the_file_size_must_not_exceed_x": "La taille du fichier ne doit pas dépasser {x}",
73
+ "the_file_type_is_invalid": "Le type de fichier n'est pas valide",
74
+ "type_to_start_your_search": "Taper pour lancer votre recherche",
75
+ "units": {
76
+ "b": "o",
77
+ "gb": "Go",
78
+ "kb": "Ko",
79
+ "mb": "Mo",
80
+ "tb": "To"
81
+ },
82
+ "up_to_x": "Jusqu'à {x}",
83
+ "upload_failed": "Le téléchargement a échoué",
84
+ "whoops": "Oups",
85
+ "x_ago": "il y a {duration}",
86
+ "x_rows_selected": "1 item sélectionné | \n{count} items sélectionnés",
87
+ "year": "Année",
88
+ "yes_delete": "Oui, supprimer",
89
+ "you_can_upload_up_to_n_files": "Vous pouvez télécharger un fichier au maximum|Vous pouvez télécharger jusqu'à {count} fichiers",
90
+ "you_cannot_select_more_than_x_items": "Vous ne pouvez pas sélectionner plus de un élément|Vous ne pouvez pas sélectionner plus de {count} éléments"
91
+ },
92
+ "today": "Aujourd\\'hui",
93
+ "week": "Semaine",
94
+ "year": "Année"
95
+ }
@@ -1,113 +1,113 @@
1
- import { DateTime } from "luxon";
2
- import { FormatConfig, GanttItem, GanttItemFormatted, GanttRow, GanttRowFormatted } from "./types";
3
- import { minBy } from "lodash";
4
- import { Timescale } from "./timescale";
5
-
6
- export class Format {
7
-
8
- private rows: GanttRow[];
9
- private config: FormatConfig;
10
-
11
- constructor(config: FormatConfig) {
12
- this.rows = config.rows;
13
- this.config = config;
14
- }
15
-
16
- public handle() {
17
-
18
- // Format rows
19
- const rowsFormatted = this.formatGanttRows();
20
-
21
- // Get min and max
22
- let { min, max } = this.getMinMax(rowsFormatted);
23
-
24
- // Get timescale
25
- const timescale = (new Timescale(this.config.minWidth, min, max)).handle();
26
-
27
- // Padded min and max
28
- min = timescale.min;
29
- max = timescale.max;
30
-
31
- const millisecondToPixel = timescale.millisecondToPixel;
32
-
33
- // Set x, y, width and height
34
-
35
- rowsFormatted.forEach((row) => {
36
- row.items.forEach((item) => {
37
-
38
- const x = (item.start.toMillis() - min.toMillis()) * millisecondToPixel;
39
- const y = this.config.rowPadding;
40
- const width = item.milliseconds * millisecondToPixel;
41
- const height = this.config.rowHeight - (this.config.rowPadding * 2);
42
-
43
- item.x = x;
44
- item.y = y;
45
- item.width = width;
46
- item.height = height;
47
- });
48
- });
49
-
50
- return {
51
- rows: rowsFormatted,
52
- min,
53
- max,
54
- millisecondToPixel,
55
- height: this.config.rowHeight * this.rows.length,
56
- width: timescale.width,
57
- groups: timescale.groups,
58
- ticks: timescale.ticks,
59
- };
60
- }
61
-
62
- formatGanttRows(): GanttRowFormatted[] {
63
- return this.rows.map((row) => {
64
- return this.formatGanttRow(row);
65
- }) as GanttRowFormatted[];
66
- }
67
-
68
- formatGanttRow(row: GanttRow): GanttRowFormatted {
69
- const itemsFormatted = row.items.map((item) => {
70
- return this.formatGanttItem(item);
71
- });
72
-
73
- return {
74
- id: row.id,
75
- name: row.name,
76
- meta: row.meta,
77
- items: itemsFormatted,
78
- };
79
- }
80
-
81
- formatGanttItem(item: GanttItem): GanttItemFormatted {
82
- const start = DateTime.fromISO(item.start);
83
- const end = DateTime.fromISO(item.end);
84
- const milliseconds = end.diff(start, "milliseconds").milliseconds;
85
-
86
- return {
87
- id: item.id,
88
- name: item.name,
89
- meta: item.meta,
90
- color: item.color,
91
- start,
92
- end,
93
- milliseconds,
94
- x: 0,
95
- y: 0,
96
- width: 0,
97
- height: 0,
98
- } as GanttItemFormatted;
99
- }
100
-
101
- getMinMax(rowsFormatted: GanttRowFormatted[]) {
102
- const flatItems = rowsFormatted.flatMap((row) => row.items);
103
- const flatDateTimes = flatItems.flatMap((item) => [item.start, item.end]);
104
-
105
- const min = minBy(flatDateTimes, (dateTime) => dateTime.toMillis())?.toMillis() || 0;
106
- const max = Math.max(...flatDateTimes.map((dateTime) => dateTime.toMillis()));
107
-
108
- const minDateTime = DateTime.fromMillis(min);
109
- const maxDateTime = DateTime.fromMillis(max);
110
-
111
- return { min: minDateTime, max: maxDateTime };
112
- }
113
- }
1
+ import { DateTime } from "luxon";
2
+ import { FormatConfig, GanttItem, GanttItemFormatted, GanttRow, GanttRowFormatted } from "./types";
3
+ import { minBy } from "lodash";
4
+ import { Timescale } from "./timescale";
5
+
6
+ export class Format {
7
+
8
+ private rows: GanttRow[];
9
+ private config: FormatConfig;
10
+
11
+ constructor(config: FormatConfig) {
12
+ this.rows = config.rows;
13
+ this.config = config;
14
+ }
15
+
16
+ public handle() {
17
+
18
+ // Format rows
19
+ const rowsFormatted = this.formatGanttRows();
20
+
21
+ // Get min and max
22
+ let { min, max } = this.getMinMax(rowsFormatted);
23
+
24
+ // Get timescale
25
+ const timescale = (new Timescale(this.config.minWidth, min, max)).handle();
26
+
27
+ // Padded min and max
28
+ min = timescale.min;
29
+ max = timescale.max;
30
+
31
+ const millisecondToPixel = timescale.millisecondToPixel;
32
+
33
+ // Set x, y, width and height
34
+
35
+ rowsFormatted.forEach((row) => {
36
+ row.items.forEach((item) => {
37
+
38
+ const x = (item.start.toMillis() - min.toMillis()) * millisecondToPixel;
39
+ const y = this.config.rowPadding;
40
+ const width = item.milliseconds * millisecondToPixel;
41
+ const height = this.config.rowHeight - (this.config.rowPadding * 2);
42
+
43
+ item.x = x;
44
+ item.y = y;
45
+ item.width = width;
46
+ item.height = height;
47
+ });
48
+ });
49
+
50
+ return {
51
+ rows: rowsFormatted,
52
+ min,
53
+ max,
54
+ millisecondToPixel,
55
+ height: this.config.rowHeight * this.rows.length,
56
+ width: timescale.width,
57
+ groups: timescale.groups,
58
+ ticks: timescale.ticks,
59
+ };
60
+ }
61
+
62
+ formatGanttRows(): GanttRowFormatted[] {
63
+ return this.rows.map((row) => {
64
+ return this.formatGanttRow(row);
65
+ }) as GanttRowFormatted[];
66
+ }
67
+
68
+ formatGanttRow(row: GanttRow): GanttRowFormatted {
69
+ const itemsFormatted = row.items.map((item) => {
70
+ return this.formatGanttItem(item);
71
+ });
72
+
73
+ return {
74
+ id: row.id,
75
+ name: row.name,
76
+ meta: row.meta,
77
+ items: itemsFormatted,
78
+ };
79
+ }
80
+
81
+ formatGanttItem(item: GanttItem): GanttItemFormatted {
82
+ const start = DateTime.fromISO(item.start);
83
+ const end = DateTime.fromISO(item.end);
84
+ const milliseconds = end.diff(start, "milliseconds").milliseconds;
85
+
86
+ return {
87
+ id: item.id,
88
+ name: item.name,
89
+ meta: item.meta,
90
+ color: item.color,
91
+ start,
92
+ end,
93
+ milliseconds,
94
+ x: 0,
95
+ y: 0,
96
+ width: 0,
97
+ height: 0,
98
+ } as GanttItemFormatted;
99
+ }
100
+
101
+ getMinMax(rowsFormatted: GanttRowFormatted[]) {
102
+ const flatItems = rowsFormatted.flatMap((row) => row.items);
103
+ const flatDateTimes = flatItems.flatMap((item) => [item.start, item.end]);
104
+
105
+ const min = minBy(flatDateTimes, (dateTime) => dateTime.toMillis())?.toMillis() || 0;
106
+ const max = Math.max(...flatDateTimes.map((dateTime) => dateTime.toMillis()));
107
+
108
+ const minDateTime = DateTime.fromMillis(min);
109
+ const maxDateTime = DateTime.fromMillis(max);
110
+
111
+ return { min: minDateTime, max: maxDateTime };
112
+ }
113
+ }