sprintify-ui 0.4.5 → 0.4.7

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 (420) hide show
  1. package/README.md +258 -258
  2. package/dist/sprintify-ui.es.js +10 -10
  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 +206 -216
  19. package/dist/types/src/components/BaseBelongsToFetch.vue.d.ts +216 -0
  20. package/dist/types/src/components/BaseBoolean.vue.d.ts +10 -10
  21. package/dist/types/src/components/BaseBreadcrumbs.vue.d.ts +24 -24
  22. package/dist/types/src/components/BaseButton.vue.d.ts +23 -23
  23. package/dist/types/src/components/BaseButtonGroup.vue.d.ts +143 -143
  24. package/dist/types/src/components/BaseCalendar.vue.d.ts +124 -124
  25. package/dist/types/src/components/BaseCard.vue.d.ts +21 -21
  26. package/dist/types/src/components/BaseCardRow.vue.d.ts +16 -16
  27. package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +49 -49
  28. package/dist/types/src/components/BaseClickOutside.vue.d.ts +26 -26
  29. package/dist/types/src/components/BaseClipboard.vue.d.ts +22 -22
  30. package/dist/types/src/components/BaseColor.vue.d.ts +80 -80
  31. package/dist/types/src/components/BaseContainer.vue.d.ts +34 -34
  32. package/dist/types/src/components/BaseCounter.vue.d.ts +42 -42
  33. package/dist/types/src/components/BaseCropper.vue.d.ts +76 -76
  34. package/dist/types/src/components/BaseCropperModal.vue.d.ts +28 -28
  35. package/dist/types/src/components/BaseDataIterator.vue.d.ts +227 -227
  36. package/dist/types/src/components/BaseDataIteratorSectionBox.vue.d.ts +20 -20
  37. package/dist/types/src/components/BaseDataIteratorSectionButton.vue.d.ts +25 -25
  38. package/dist/types/src/components/BaseDataIteratorSectionColumns.vue.d.ts +657 -657
  39. package/dist/types/src/components/BaseDataIteratorSectionModal.vue.d.ts +32 -32
  40. package/dist/types/src/components/BaseDataTable.vue.d.ts +406 -406
  41. package/dist/types/src/components/BaseDataTableRowAction.vue.d.ts +31 -31
  42. package/dist/types/src/components/BaseDatePicker.vue.d.ts +124 -124
  43. package/dist/types/src/components/BaseDateSelect.vue.d.ts +79 -79
  44. package/dist/types/src/components/BaseDescriptionList.vue.d.ts +9 -9
  45. package/dist/types/src/components/BaseDescriptionListItem.vue.d.ts +10 -10
  46. package/dist/types/src/components/BaseDialog.vue.d.ts +60 -60
  47. package/dist/types/src/components/BaseDisplayRelativeTime.vue.d.ts +50 -50
  48. package/dist/types/src/components/BaseDraggable.vue.d.ts +49 -49
  49. package/dist/types/src/components/BaseDropdown.vue.d.ts +65 -65
  50. package/dist/types/src/components/BaseDropdownAutocomplete.vue.d.ts +132 -132
  51. package/dist/types/src/components/BaseField.vue.d.ts +58 -58
  52. package/dist/types/src/components/BaseFieldI18n.vue.d.ts +93 -93
  53. package/dist/types/src/components/BaseFilePicker.vue.d.ts +72 -72
  54. package/dist/types/src/components/BaseFilePickerCrop.vue.d.ts +63 -63
  55. package/dist/types/src/components/BaseFileUploader.vue.d.ts +142 -142
  56. package/dist/types/src/components/BaseForm.vue.d.ts +143 -143
  57. package/dist/types/src/components/BaseGantt.vue.d.ts +425 -425
  58. package/dist/types/src/components/BaseHasMany.vue.d.ts +149 -149
  59. package/dist/types/src/components/BaseHeader.vue.d.ts +98 -98
  60. package/dist/types/src/components/BaseIconPicker.vue.d.ts +34 -34
  61. package/dist/types/src/components/BaseInput.vue.d.ts +174 -174
  62. package/dist/types/src/components/BaseInputError.vue.d.ts +9 -9
  63. package/dist/types/src/components/BaseInputLabel.vue.d.ts +42 -42
  64. package/dist/types/src/components/BaseInputPercent.vue.d.ts +138 -138
  65. package/dist/types/src/components/BaseLayoutNotificationDropdown.vue.d.ts +36 -36
  66. package/dist/types/src/components/BaseLayoutNotificationItem.vue.d.ts +16 -16
  67. package/dist/types/src/components/BaseLayoutNotificationItemContent.vue.d.ts +21 -21
  68. package/dist/types/src/components/BaseLayoutSidebar.vue.d.ts +51 -51
  69. package/dist/types/src/components/BaseLayoutSidebarConfigurable.vue.d.ts +87 -87
  70. package/dist/types/src/components/BaseLayoutStacked.vue.d.ts +23 -23
  71. package/dist/types/src/components/BaseLayoutStackedConfigurable.vue.d.ts +78 -78
  72. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +96 -96
  73. package/dist/types/src/components/BaseMediaGallery.vue.d.ts +64 -64
  74. package/dist/types/src/components/BaseMediaGalleryItem.vue.d.ts +45 -45
  75. package/dist/types/src/components/BaseMediaItem.vue.d.ts +27 -27
  76. package/dist/types/src/components/BaseMediaLibrary.vue.d.ts +199 -199
  77. package/dist/types/src/components/BaseMediaList.vue.d.ts +46 -46
  78. package/dist/types/src/components/BaseMediaListItem.vue.d.ts +46 -46
  79. package/dist/types/src/components/BaseMediaPictures.vue.d.ts +55 -55
  80. package/dist/types/src/components/BaseMediaPicturesItem.vue.d.ts +54 -54
  81. package/dist/types/src/components/BaseMediaPreview.vue.d.ts +36 -36
  82. package/dist/types/src/components/BaseMenu.vue.d.ts +68 -68
  83. package/dist/types/src/components/BaseMenuItem.vue.d.ts +61 -61
  84. package/dist/types/src/components/BaseModalCenter.vue.d.ts +80 -80
  85. package/dist/types/src/components/BaseModalSide.vue.d.ts +62 -62
  86. package/dist/types/src/components/BaseNavbar.vue.d.ts +38 -38
  87. package/dist/types/src/components/BaseNavbarItem.vue.d.ts +26 -26
  88. package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +60 -60
  89. package/dist/types/src/components/BaseNavbarSideItem.vue.d.ts +44 -44
  90. package/dist/types/src/components/BaseNavbarSideItemContent.vue.d.ts +60 -60
  91. package/dist/types/src/components/BasePagination.vue.d.ts +35 -35
  92. package/dist/types/src/components/BasePanel.vue.d.ts +31 -31
  93. package/dist/types/src/components/BasePassword.vue.d.ts +67 -67
  94. package/dist/types/src/components/BaseProgressCircle.vue.d.ts +37 -37
  95. package/dist/types/src/components/BaseRadioGroup.vue.d.ts +105 -105
  96. package/dist/types/src/components/BaseReadMore.vue.d.ts +21 -21
  97. package/dist/types/src/components/BaseRichText.vue.d.ts +92 -92
  98. package/dist/types/src/components/BaseSelect.vue.d.ts +98 -98
  99. package/dist/types/src/components/BaseShortcut.vue.d.ts +86 -86
  100. package/dist/types/src/components/BaseSideNavigation.vue.d.ts +21 -21
  101. package/dist/types/src/components/BaseSideNavigationItem.vue.d.ts +41 -41
  102. package/dist/types/src/components/BaseSkeleton.vue.d.ts +31 -31
  103. package/dist/types/src/components/BaseStatistic.vue.d.ts +55 -55
  104. package/dist/types/src/components/BaseStepper.vue.d.ts +16 -16
  105. package/dist/types/src/components/BaseStepperItem.vue.d.ts +51 -51
  106. package/dist/types/src/components/BaseSwitch.vue.d.ts +87 -87
  107. package/dist/types/src/components/BaseSystemAlert.vue.d.ts +52 -52
  108. package/dist/types/src/components/BaseTabItem.vue.d.ts +41 -41
  109. package/dist/types/src/components/BaseTable.vue.d.ts +221 -221
  110. package/dist/types/src/components/BaseTableColumn.vue.d.ts +174 -174
  111. package/dist/types/src/components/BaseTabs.vue.d.ts +21 -21
  112. package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +209 -209
  113. package/dist/types/src/components/BaseTagAutocompleteFetch.vue.d.ts +141 -141
  114. package/dist/types/src/components/BaseTextarea.vue.d.ts +103 -103
  115. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +113 -113
  116. package/dist/types/src/components/BaseTimeline.vue.d.ts +14 -14
  117. package/dist/types/src/components/BaseTimelineItem.vue.d.ts +14 -14
  118. package/dist/types/src/components/BaseToast.vue.d.ts +20 -20
  119. package/dist/types/src/components/BaseUniqueCode.vue.d.ts +33 -33
  120. package/dist/types/src/components/SlotComponent.d.ts +43 -43
  121. package/dist/types/src/components/index.d.ts +97 -97
  122. package/dist/types/src/composables/breakpoints.d.ts +27 -27
  123. package/dist/types/src/composables/clickOutside.d.ts +8 -8
  124. package/dist/types/src/composables/field.d.ts +19 -19
  125. package/dist/types/src/composables/hasOptions.d.ts +7 -7
  126. package/dist/types/src/composables/mediaQuery.d.ts +2 -2
  127. package/dist/types/src/composables/modal.d.ts +6 -6
  128. package/dist/types/src/composables/paginatedData.d.ts +7 -7
  129. package/dist/types/src/constants/MyConstants.d.ts +1 -1
  130. package/dist/types/src/constants/index.d.ts +2 -2
  131. package/dist/types/src/i18n/index.d.ts +1 -1
  132. package/dist/types/src/index.d.ts +236 -236
  133. package/dist/types/src/services/gantt/format.d.ts +24 -24
  134. package/dist/types/src/services/gantt/timescale.d.ts +26 -26
  135. package/dist/types/src/services/gantt/types.d.ts +67 -67
  136. package/dist/types/src/stores/dialogs.d.ts +9 -9
  137. package/dist/types/src/stores/i18n.d.ts +5 -5
  138. package/dist/types/src/stores/notifications.d.ts +10 -10
  139. package/dist/types/src/stores/systemAlerts.d.ts +9 -9
  140. package/dist/types/src/stories/PageShow.vue.d.ts +2 -2
  141. package/dist/types/src/svg/BaseEmptyState.vue.d.ts +2 -2
  142. package/dist/types/src/svg/BaseSpinnerLarge.vue.d.ts +2 -2
  143. package/dist/types/src/svg/BaseSpinnerSmall.vue.d.ts +2 -2
  144. package/dist/types/src/types/CalendarEvent.d.ts +9 -9
  145. package/dist/types/src/types/Color.d.ts +9 -9
  146. package/dist/types/src/types/Country.d.ts +4 -4
  147. package/dist/types/src/types/ImagePickerResult.d.ts +5 -5
  148. package/dist/types/src/types/Media.d.ts +9 -9
  149. package/dist/types/src/types/Notification.d.ts +8 -8
  150. package/dist/types/src/types/Region.d.ts +5 -5
  151. package/dist/types/src/types/Status.d.ts +5 -5
  152. package/dist/types/src/types/StepperItem.d.ts +7 -7
  153. package/dist/types/src/types/TimelineItem.d.ts +9 -9
  154. package/dist/types/src/types/UploadedFile.d.ts +10 -10
  155. package/dist/types/src/types/User.d.ts +6 -6
  156. package/dist/types/src/types/index.d.ts +219 -218
  157. package/dist/types/src/utils/blob.d.ts +3 -3
  158. package/dist/types/src/utils/colors.d.ts +13 -13
  159. package/dist/types/src/utils/cropper/avatar.d.ts +5 -5
  160. package/dist/types/src/utils/cropper/cover.d.ts +5 -5
  161. package/dist/types/src/utils/cropper/presetInterface.d.ts +7 -7
  162. package/dist/types/src/utils/cropper/presets.d.ts +6 -6
  163. package/dist/types/src/utils/fileSizeFormat.d.ts +1 -1
  164. package/dist/types/src/utils/fileValidations.d.ts +2 -2
  165. package/dist/types/src/utils/index.d.ts +6 -6
  166. package/dist/types/src/utils/resizeImageFromURI.d.ts +1 -1
  167. package/dist/types/src/utils/scrollPreventer.d.ts +3 -3
  168. package/dist/types/src/utils/toHumanList.d.ts +1 -1
  169. package/package.json +148 -148
  170. package/src/assets/flatpickr.css +243 -243
  171. package/src/assets/form.css +6 -6
  172. package/src/assets/main.css +36 -36
  173. package/src/assets/tailwind.css +2 -2
  174. package/src/components/BaseActionItem.vue +68 -68
  175. package/src/components/BaseActionItemButton.vue +77 -77
  176. package/src/components/BaseAddressForm.stories.js +103 -103
  177. package/src/components/BaseAddressForm.vue +354 -354
  178. package/src/components/BaseAlert.stories.js +52 -52
  179. package/src/components/BaseAlert.vue +158 -158
  180. package/src/components/BaseApp.vue +16 -16
  181. package/src/components/BaseAppDialogs.vue +123 -123
  182. package/src/components/BaseAppNotifications.vue +40 -40
  183. package/src/components/BaseAutocomplete.stories.js +236 -236
  184. package/src/components/BaseAutocomplete.vue +523 -523
  185. package/src/components/BaseAutocompleteDrawer.vue +372 -372
  186. package/src/components/BaseAutocompleteFetch.stories.js +224 -224
  187. package/src/components/BaseAutocompleteFetch.vue +288 -288
  188. package/src/components/BaseAvatar.stories.js +39 -39
  189. package/src/components/BaseAvatar.vue +120 -120
  190. package/src/components/BaseAvatarGroup.stories.js +71 -71
  191. package/src/components/BaseAvatarGroup.vue +148 -148
  192. package/src/components/BaseBadge.stories.js +124 -124
  193. package/src/components/BaseBadge.vue +87 -87
  194. package/src/components/BaseBelongsTo.stories.js +217 -223
  195. package/src/components/BaseBelongsTo.vue +157 -193
  196. package/src/components/BaseBelongsToFetch.stories.js +223 -0
  197. package/src/components/BaseBelongsToFetch.vue +193 -0
  198. package/src/components/BaseBoolean.stories.js +35 -35
  199. package/src/components/BaseBoolean.vue +26 -26
  200. package/src/components/BaseBreadcrumbs.stories.js +50 -50
  201. package/src/components/BaseBreadcrumbs.vue +109 -109
  202. package/src/components/BaseButton.stories.js +88 -88
  203. package/src/components/BaseButton.vue +46 -46
  204. package/src/components/BaseButtonGroup.stories.js +86 -86
  205. package/src/components/BaseButtonGroup.vue +150 -150
  206. package/src/components/BaseCalendar.stories.js +202 -202
  207. package/src/components/BaseCalendar.vue +215 -215
  208. package/src/components/BaseCard.stories.js +61 -61
  209. package/src/components/BaseCard.vue +49 -49
  210. package/src/components/BaseCardRow.vue +34 -34
  211. package/src/components/BaseCharacterCounter.stories.js +30 -30
  212. package/src/components/BaseCharacterCounter.vue +64 -64
  213. package/src/components/BaseClickOutside.vue +37 -37
  214. package/src/components/BaseClipboard.stories.js +32 -32
  215. package/src/components/BaseClipboard.vue +83 -83
  216. package/src/components/BaseColor.stories.js +46 -46
  217. package/src/components/BaseColor.vue +154 -154
  218. package/src/components/BaseContainer.stories.js +34 -34
  219. package/src/components/BaseContainer.vue +50 -50
  220. package/src/components/BaseCounter.stories.js +47 -47
  221. package/src/components/BaseCounter.vue +82 -82
  222. package/src/components/BaseCropper.stories.js +113 -113
  223. package/src/components/BaseCropper.vue +458 -458
  224. package/src/components/BaseCropperModal.stories.js +54 -54
  225. package/src/components/BaseCropperModal.vue +143 -143
  226. package/src/components/BaseDataIterator.stories.js +197 -197
  227. package/src/components/BaseDataIterator.vue +839 -839
  228. package/src/components/BaseDataIteratorSectionBox.vue +36 -36
  229. package/src/components/BaseDataIteratorSectionButton.vue +53 -53
  230. package/src/components/BaseDataIteratorSectionColumns.vue +70 -70
  231. package/src/components/BaseDataIteratorSectionModal.vue +41 -41
  232. package/src/components/BaseDataTable.stories.js +226 -226
  233. package/src/components/BaseDataTable.vue +779 -779
  234. package/src/components/BaseDataTableRowAction.vue +53 -53
  235. package/src/components/BaseDatePicker.stories.js +130 -130
  236. package/src/components/BaseDatePicker.vue +296 -296
  237. package/src/components/BaseDateSelect.stories.js +47 -47
  238. package/src/components/BaseDateSelect.vue +241 -241
  239. package/src/components/BaseDescriptionList.stories.js +35 -35
  240. package/src/components/BaseDescriptionList.vue +13 -13
  241. package/src/components/BaseDescriptionListItem.vue +47 -47
  242. package/src/components/BaseDialog.stories.js +51 -51
  243. package/src/components/BaseDialog.vue +119 -119
  244. package/src/components/BaseDisplayRelativeTime.stories.js +47 -47
  245. package/src/components/BaseDisplayRelativeTime.vue +122 -122
  246. package/src/components/BaseDraggable.vue +71 -71
  247. package/src/components/BaseDropdown.stories.js +210 -210
  248. package/src/components/BaseDropdown.vue +280 -280
  249. package/src/components/BaseDropdownAutocomplete.stories.js +187 -187
  250. package/src/components/BaseDropdownAutocomplete.vue +235 -235
  251. package/src/components/BaseField.vue +112 -112
  252. package/src/components/BaseFieldI18n.stories.js +38 -38
  253. package/src/components/BaseFieldI18n.vue +170 -170
  254. package/src/components/BaseFilePicker.stories.js +84 -84
  255. package/src/components/BaseFilePicker.vue +163 -163
  256. package/src/components/BaseFilePickerCrop.stories.js +135 -135
  257. package/src/components/BaseFilePickerCrop.vue +130 -130
  258. package/src/components/BaseFileUploader.stories.js +102 -102
  259. package/src/components/BaseFileUploader.vue +185 -185
  260. package/src/components/BaseForm.stories.js +48 -48
  261. package/src/components/BaseForm.vue +335 -335
  262. package/src/components/BaseGantt.stories.js +133 -133
  263. package/src/components/BaseGantt.vue +336 -336
  264. package/src/components/BaseHasMany.stories.js +189 -189
  265. package/src/components/BaseHasMany.vue +137 -137
  266. package/src/components/BaseHeader.stories.js +133 -133
  267. package/src/components/BaseHeader.vue +188 -188
  268. package/src/components/BaseIconPicker.stories.js +22 -22
  269. package/src/components/BaseIconPicker.vue +225 -225
  270. package/src/components/BaseInput.stories.js +167 -167
  271. package/src/components/BaseInput.vue +264 -264
  272. package/src/components/BaseInputError.vue +7 -7
  273. package/src/components/BaseInputLabel.stories.js +36 -36
  274. package/src/components/BaseInputLabel.vue +57 -57
  275. package/src/components/BaseInputPercent.stories.js +65 -65
  276. package/src/components/BaseInputPercent.vue +139 -139
  277. package/src/components/BaseLayoutNotificationDropdown.vue +150 -150
  278. package/src/components/BaseLayoutNotificationItem.vue +53 -53
  279. package/src/components/BaseLayoutNotificationItemContent.vue +30 -30
  280. package/src/components/BaseLayoutSidebar.vue +236 -236
  281. package/src/components/BaseLayoutSidebarConfigurable.stories.js +166 -166
  282. package/src/components/BaseLayoutSidebarConfigurable.vue +181 -181
  283. package/src/components/BaseLayoutStacked.vue +52 -52
  284. package/src/components/BaseLayoutStackedConfigurable.stories.js +109 -109
  285. package/src/components/BaseLayoutStackedConfigurable.vue +158 -158
  286. package/src/components/BaseLoadingCover.stories.js +55 -55
  287. package/src/components/BaseLoadingCover.vue +101 -101
  288. package/src/components/BaseMediaGallery.vue +96 -96
  289. package/src/components/BaseMediaGalleryItem.vue +101 -101
  290. package/src/components/BaseMediaItem.stories.js +41 -41
  291. package/src/components/BaseMediaItem.vue +80 -80
  292. package/src/components/BaseMediaLibrary.stories.js +267 -267
  293. package/src/components/BaseMediaLibrary.vue +342 -342
  294. package/src/components/BaseMediaList.vue +67 -67
  295. package/src/components/BaseMediaListItem.vue +212 -212
  296. package/src/components/BaseMediaPictures.vue +64 -64
  297. package/src/components/BaseMediaPicturesItem.vue +100 -100
  298. package/src/components/BaseMediaPreview.stories.js +72 -72
  299. package/src/components/BaseMediaPreview.vue +106 -106
  300. package/src/components/BaseMenu.stories.js +129 -129
  301. package/src/components/BaseMenu.vue +165 -165
  302. package/src/components/BaseMenuItem.vue +145 -145
  303. package/src/components/BaseModalCenter.stories.js +68 -68
  304. package/src/components/BaseModalCenter.vue +128 -128
  305. package/src/components/BaseModalSide.stories.js +55 -55
  306. package/src/components/BaseModalSide.vue +116 -116
  307. package/src/components/BaseNavbar.stories.js +151 -151
  308. package/src/components/BaseNavbar.vue +91 -91
  309. package/src/components/BaseNavbarItem.vue +49 -49
  310. package/src/components/BaseNavbarItemContent.vue +97 -97
  311. package/src/components/BaseNavbarSideItem.vue +114 -114
  312. package/src/components/BaseNavbarSideItemContent.vue +111 -111
  313. package/src/components/BasePagination.stories.js +35 -35
  314. package/src/components/BasePagination.vue +266 -266
  315. package/src/components/BasePanel.stories.js +56 -56
  316. package/src/components/BasePanel.vue +42 -42
  317. package/src/components/BasePassword.stories.js +57 -57
  318. package/src/components/BasePassword.vue +107 -107
  319. package/src/components/BaseProgressCircle.stories.js +27 -27
  320. package/src/components/BaseProgressCircle.vue +80 -80
  321. package/src/components/BaseRadioGroup.stories.js +88 -88
  322. package/src/components/BaseRadioGroup.vue +125 -125
  323. package/src/components/BaseReadMore.stories.js +30 -30
  324. package/src/components/BaseReadMore.vue +73 -73
  325. package/src/components/BaseRichText.stories.js +102 -102
  326. package/src/components/BaseRichText.vue +198 -198
  327. package/src/components/BaseSelect.stories.js +118 -118
  328. package/src/components/BaseSelect.vue +224 -224
  329. package/src/components/BaseShortcut.stories.js +102 -102
  330. package/src/components/BaseShortcut.vue +112 -112
  331. package/src/components/BaseSideNavigation.stories.js +85 -85
  332. package/src/components/BaseSideNavigation.vue +32 -32
  333. package/src/components/BaseSideNavigationItem.vue +95 -95
  334. package/src/components/BaseSkeleton.stories.js +36 -36
  335. package/src/components/BaseSkeleton.vue +40 -40
  336. package/src/components/BaseStatistic.stories.js +51 -51
  337. package/src/components/BaseStatistic.vue +106 -106
  338. package/src/components/BaseStepper.stories.js +94 -94
  339. package/src/components/BaseStepper.vue +72 -72
  340. package/src/components/BaseStepperItem.stories.js +65 -65
  341. package/src/components/BaseStepperItem.vue +149 -149
  342. package/src/components/BaseSwitch.stories.js +130 -130
  343. package/src/components/BaseSwitch.vue +215 -215
  344. package/src/components/BaseSystemAlert.stories.js +63 -63
  345. package/src/components/BaseSystemAlert.vue +89 -89
  346. package/src/components/BaseTabItem.vue +97 -97
  347. package/src/components/BaseTable.vue +904 -904
  348. package/src/components/BaseTableColumn.vue +124 -124
  349. package/src/components/BaseTabs.stories.js +85 -85
  350. package/src/components/BaseTabs.vue +73 -73
  351. package/src/components/BaseTagAutocomplete.stories.js +258 -258
  352. package/src/components/BaseTagAutocomplete.vue +438 -438
  353. package/src/components/BaseTagAutocompleteFetch.stories.js +185 -185
  354. package/src/components/BaseTagAutocompleteFetch.vue +220 -220
  355. package/src/components/BaseTextarea.stories.js +58 -58
  356. package/src/components/BaseTextarea.vue +103 -103
  357. package/src/components/BaseTextareaAutoresize.stories.js +102 -102
  358. package/src/components/BaseTextareaAutoresize.vue +166 -166
  359. package/src/components/BaseTimeline.stories.js +55 -55
  360. package/src/components/BaseTimeline.vue +38 -38
  361. package/src/components/BaseTimelineItem.stories.js +78 -78
  362. package/src/components/BaseTimelineItem.vue +90 -90
  363. package/src/components/BaseToast.stories.js +50 -50
  364. package/src/components/BaseToast.vue +43 -43
  365. package/src/components/BaseUniqueCode.stories.js +36 -36
  366. package/src/components/BaseUniqueCode.vue +183 -183
  367. package/src/components/SlotComponent.ts +37 -37
  368. package/src/components/index.ts +196 -196
  369. package/src/composables/breakpoints.ts +94 -94
  370. package/src/composables/clickOutside.ts +80 -80
  371. package/src/composables/field.ts +117 -117
  372. package/src/composables/hasOptions.ts +68 -68
  373. package/src/composables/mediaQuery.ts +42 -42
  374. package/src/composables/modal.ts +73 -73
  375. package/src/composables/paginatedData.ts +65 -65
  376. package/src/constants/MyConstants.ts +1 -1
  377. package/src/constants/index.ts +5 -5
  378. package/src/env.d.ts +15 -15
  379. package/src/i18n/index.ts +60 -60
  380. package/src/index.ts +114 -114
  381. package/src/lang/en.json +95 -95
  382. package/src/lang/fr.json +95 -95
  383. package/src/services/gantt/format.ts +113 -113
  384. package/src/services/gantt/timescale.ts +242 -242
  385. package/src/services/gantt/types.ts +74 -74
  386. package/src/stores/dialogs.ts +45 -45
  387. package/src/stores/i18n.ts +14 -14
  388. package/src/stores/notifications.ts +47 -47
  389. package/src/stores/systemAlerts.ts +32 -32
  390. package/src/stories/List.stories.js +132 -132
  391. package/src/stories/PageShow.vue +423 -423
  392. package/src/stories/Show.stories.js +22 -22
  393. package/src/svg/BaseEmptyState.vue +38 -38
  394. package/src/svg/BaseSpinnerLarge.vue +59 -59
  395. package/src/svg/BaseSpinnerSmall.vue +15 -15
  396. package/src/types/CalendarEvent.ts +9 -9
  397. package/src/types/Color.ts +9 -9
  398. package/src/types/Country.ts +4 -4
  399. package/src/types/ImagePickerResult.ts +5 -5
  400. package/src/types/Media.ts +10 -10
  401. package/src/types/Notification.ts +10 -10
  402. package/src/types/Region.ts +5 -5
  403. package/src/types/Status.ts +5 -5
  404. package/src/types/StepperItem.ts +8 -8
  405. package/src/types/TimelineItem.ts +9 -9
  406. package/src/types/UploadedFile.ts +11 -11
  407. package/src/types/User.ts +7 -7
  408. package/src/types/index.ts +268 -267
  409. package/src/utils/blob.ts +30 -30
  410. package/src/utils/colors.ts +210 -210
  411. package/src/utils/cropper/avatar.ts +33 -33
  412. package/src/utils/cropper/cover.ts +41 -41
  413. package/src/utils/cropper/presetInterface.ts +16 -16
  414. package/src/utils/cropper/presets.ts +7 -7
  415. package/src/utils/fileSizeFormat.ts +15 -15
  416. package/src/utils/fileValidations.ts +26 -26
  417. package/src/utils/index.ts +16 -16
  418. package/src/utils/resizeImageFromURI.ts +118 -118
  419. package/src/utils/scrollPreventer.ts +11 -11
  420. package/src/utils/toHumanList.ts +20 -20
@@ -1,342 +1,342 @@
1
- <template>
2
- <div>
3
- <BaseFileUploader
4
- :component="pickerComponent"
5
- :max-size="maxSize"
6
- :disabled="disabledInternal"
7
- class="w-full"
8
- tw-button="w-full"
9
- :accept="accept"
10
- :accepted-extensions="acceptedExtensions"
11
- :url="uploadUrl"
12
- :multiple="multiple"
13
- :cropper="pickerComponent == 'BaseFilePickerCrop' ? cropper : undefined"
14
- @start="onStart"
15
- @success="onSuccess"
16
- @fail="onFail"
17
- @end="onEnd"
18
- >
19
- <template #default="baseFileUploaderProps">
20
- <slot
21
- name="default"
22
- v-bind="baseFileUploaderProps"
23
- :max-size="maxSize"
24
- :max="normalizedMax"
25
- >
26
- <div
27
- class="rounded border border-dashed p-6 duration-150"
28
- :class="[
29
- baseFileUploaderProps.dragging ? 'bg-blue-100' : 'bg-white',
30
- baseFileUploaderProps.disabled
31
- ? 'cursor-not-allowed border-slate-300'
32
- : 'border-slate-300 hover:bg-slate-100',
33
- ]"
34
- >
35
- <div :class="[baseFileUploaderProps.disabled ? 'opacity-30' : '']">
36
- <BaseIcon
37
- icon="heroicons:arrow-up-on-square"
38
- class="mx-auto mb-3 h-6 w-6 text-slate-500"
39
- />
40
- <div class="text-center">
41
- <p class="mb-0 text-sm font-medium leading-tight">
42
- {{ t('sui.drop_or_click_to_upload') }}
43
- </p>
44
-
45
- <div class="mt-1 text-xs leading-tight text-slate-500">
46
- <p v-if="maxFileText">
47
- {{ maxFileText }}
48
- </p>
49
- <p>{{ maxFileSize }}</p>
50
- </div>
51
- </div>
52
- </div>
53
- </div>
54
- </slot>
55
- </template>
56
- </BaseFileUploader>
57
-
58
- <div
59
- v-if="normalizedModelValue.length"
60
- class="mt-5"
61
- >
62
- <slot
63
- :model-value="normalizedModelValue"
64
- name="list"
65
- :disabled="disabledInternal"
66
- :draggable="draggable"
67
- :remove="promptRemove"
68
- @update:model-value="sync"
69
- >
70
- <BaseMediaPictures
71
- v-if="layout == 'images'"
72
- v-bind="listProps"
73
- :model-value="normalizedModelValue"
74
- :disabled="disabledInternal"
75
- :draggable="draggable"
76
- @update:model-value="sync"
77
- @remove="promptRemove($event)"
78
- />
79
-
80
- <BaseMediaList
81
- v-else-if="layout == 'list'"
82
- v-bind="listProps"
83
- :model-value="normalizedModelValue"
84
- :disabled="disabledInternal"
85
- :draggable="draggable"
86
- @update:model-value="sync"
87
- @remove="promptRemove($event)"
88
- />
89
-
90
- <BaseMediaGallery
91
- v-else-if="layout == 'gallery'"
92
- v-bind="listProps"
93
- :model-value="normalizedModelValue"
94
- :disabled="disabledInternal"
95
- :draggable="draggable"
96
- @update:model-value="sync"
97
- @remove="promptRemove($event)"
98
- />
99
- </slot>
100
- </div>
101
- </div>
102
- </template>
103
-
104
- <script lang="ts" setup>
105
- import { PropType } from 'vue';
106
- import { cloneDeep, isArray, capitalize } from 'lodash';
107
- import { UploadedFile } from '@/types/UploadedFile';
108
- import { Media } from '@/types/Media';
109
- import { BaseCropperConfig, MediaLibraryPayload } from '@/types';
110
- import { fileSizeFormat } from '@/utils';
111
- import { useDialogsStore } from '@/stores/dialogs';
112
- import { useNotificationsStore } from '@/stores/notifications';
113
- import BaseFileUploader from './BaseFileUploader.vue';
114
- import { useField } from '@/composables/field';
115
- import { BaseIcon } from '.';
116
- import BaseMediaList from './BaseMediaList.vue';
117
- import BaseMediaPictures from './BaseMediaPictures.vue';
118
- import BaseMediaGallery from './BaseMediaGallery.vue';
119
- import { t } from '@/i18n';
120
-
121
- const dialogs = useDialogsStore();
122
- const notifications = useNotificationsStore();
123
-
124
- const props = defineProps({
125
- modelValue: {
126
- default: undefined,
127
- type: Object as PropType<MediaLibraryPayload>,
128
- },
129
- name: {
130
- default: undefined,
131
- type: String,
132
- },
133
- min: {
134
- type: Number,
135
- default: undefined,
136
- },
137
- max: {
138
- default: undefined,
139
- type: Number,
140
- },
141
- maxSize: {
142
- default: 20 * 1024 * 1024,
143
- type: Number,
144
- },
145
- accept: {
146
- default: undefined,
147
- type: String,
148
- },
149
- acceptedExtensions: {
150
- default: undefined,
151
- type: Array as PropType<string[]>,
152
- },
153
- currentMedia: {
154
- default() {
155
- return [];
156
- },
157
- type: Array as PropType<Media[]>,
158
- },
159
- uploadUrl: {
160
- default: undefined,
161
- type: String,
162
- },
163
- hasError: {
164
- default: false,
165
- type: Boolean,
166
- },
167
- disabled: {
168
- default: false,
169
- type: Boolean,
170
- },
171
- pickerComponent: {
172
- default: 'BaseFilePicker',
173
- type: String as PropType<'BaseFilePicker' | 'BaseFilePickerCrop'>,
174
- },
175
- cropper: {
176
- default: undefined,
177
- type: Object as PropType<BaseCropperConfig | boolean | null>,
178
- },
179
- draggable: {
180
- default: false,
181
- type: Boolean,
182
- },
183
- multiple: {
184
- default: false,
185
- type: Boolean,
186
- },
187
- listProps: {
188
- default: undefined,
189
- type: Object as PropType<Record<string, unknown>>,
190
- },
191
- layout: {
192
- default: 'gallery',
193
- type: String as PropType<'list' | 'images' | 'gallery'>,
194
- },
195
- });
196
-
197
- const emit = defineEmits([
198
- 'update:modelValue',
199
- 'start',
200
- 'success',
201
- 'fail',
202
- 'end',
203
- ]);
204
-
205
- const { emitUpdate, enableForm, disableForm } = useField({
206
- name: computed(() => props.name),
207
- required: computed(() => false),
208
- hasError: computed(() => props.hasError),
209
- emit: emit,
210
- errorType: 'alert',
211
- });
212
-
213
- // Model value normalization
214
-
215
- const normalizedModelValue = computed(() => {
216
- if (!isArray(props.modelValue)) {
217
- return [];
218
- }
219
-
220
- return props.modelValue;
221
- });
222
-
223
- sync(normalizedModelValue.value);
224
-
225
- // Validations
226
-
227
- const normalizedMax = computed(() => {
228
- if (props.max == null) {
229
- return 100;
230
- }
231
-
232
- return props.max;
233
- });
234
-
235
- const maxFileText = computed(() => {
236
- return t('sui.you_can_upload_up_to_n_files', {
237
- count: normalizedMax.value,
238
- });
239
- });
240
-
241
- const maxFileSize = computed(() => {
242
- return capitalize(t('sui.up_to_x', { x: fileSizeFormat(props.maxSize) }));
243
- });
244
-
245
- // Upload
246
-
247
- const syncingFiles = ref(false);
248
-
249
- function onSuccess(files: UploadedFile[]) {
250
-
251
- if (files.length == 0) {
252
- return;
253
- }
254
-
255
- syncingFiles.value = true;
256
-
257
- let modelValue = cloneDeep(normalizedModelValue.value);
258
-
259
- for (const file of files) {
260
-
261
-
262
- if (
263
- normalizedMax.value &&
264
- modelValue.length >= normalizedMax.value &&
265
- normalizedMax.value > 1
266
- ) {
267
- notifications.push({
268
- title: t('sui.whoops'),
269
- text: t('sui.you_can_upload_up_to_n_files', {
270
- count: normalizedMax.value,
271
- }),
272
- color: 'danger',
273
- });
274
-
275
- break;
276
- }
277
-
278
- if (normalizedMax.value == 1) {
279
- // Remove everything...
280
- modelValue = [];
281
- }
282
-
283
- modelValue.push(file);
284
- }
285
-
286
- sync(modelValue);
287
-
288
- syncingFiles.value = false;
289
-
290
- emit('success', files);
291
- }
292
-
293
- // Disabled
294
-
295
- const disabledInternal = computed(() => {
296
- return props.disabled || syncingFiles.value;
297
- });
298
-
299
-
300
- // Remove
301
-
302
- function promptRemove(index: number, length = 1) {
303
- dialogs.push({
304
- title: t('sui.remove_file'),
305
- message: t('sui.remove_file_description'),
306
- color: 'warning',
307
- onConfirm() {
308
- removeByIndex(index, length);
309
- },
310
- });
311
- }
312
-
313
- function removeByIndex(index: number, length = 1) {
314
- const modelValue = cloneDeep(normalizedModelValue.value);
315
-
316
- modelValue.splice(index, length);
317
-
318
- sync(modelValue);
319
- }
320
-
321
- // Sync
322
-
323
- function sync(modelValue: MediaLibraryPayload) {
324
- emitUpdate(modelValue);
325
- }
326
-
327
- // Events
328
-
329
- function onStart(event: unknown) {
330
- emit('start', event);
331
- disableForm();
332
- }
333
-
334
- function onFail(event: unknown) {
335
- emit('fail', event);
336
- }
337
-
338
- function onEnd(event: unknown) {
339
- emit('end', event);
340
- enableForm();
341
- }
342
- </script>
1
+ <template>
2
+ <div>
3
+ <BaseFileUploader
4
+ :component="pickerComponent"
5
+ :max-size="maxSize"
6
+ :disabled="disabledInternal"
7
+ class="w-full"
8
+ tw-button="w-full"
9
+ :accept="accept"
10
+ :accepted-extensions="acceptedExtensions"
11
+ :url="uploadUrl"
12
+ :multiple="multiple"
13
+ :cropper="pickerComponent == 'BaseFilePickerCrop' ? cropper : undefined"
14
+ @start="onStart"
15
+ @success="onSuccess"
16
+ @fail="onFail"
17
+ @end="onEnd"
18
+ >
19
+ <template #default="baseFileUploaderProps">
20
+ <slot
21
+ name="default"
22
+ v-bind="baseFileUploaderProps"
23
+ :max-size="maxSize"
24
+ :max="normalizedMax"
25
+ >
26
+ <div
27
+ class="rounded border border-dashed p-6 duration-150"
28
+ :class="[
29
+ baseFileUploaderProps.dragging ? 'bg-blue-100' : 'bg-white',
30
+ baseFileUploaderProps.disabled
31
+ ? 'cursor-not-allowed border-slate-300'
32
+ : 'border-slate-300 hover:bg-slate-100',
33
+ ]"
34
+ >
35
+ <div :class="[baseFileUploaderProps.disabled ? 'opacity-30' : '']">
36
+ <BaseIcon
37
+ icon="heroicons:arrow-up-on-square"
38
+ class="mx-auto mb-3 h-6 w-6 text-slate-500"
39
+ />
40
+ <div class="text-center">
41
+ <p class="mb-0 text-sm font-medium leading-tight">
42
+ {{ t('sui.drop_or_click_to_upload') }}
43
+ </p>
44
+
45
+ <div class="mt-1 text-xs leading-tight text-slate-500">
46
+ <p v-if="maxFileText">
47
+ {{ maxFileText }}
48
+ </p>
49
+ <p>{{ maxFileSize }}</p>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </slot>
55
+ </template>
56
+ </BaseFileUploader>
57
+
58
+ <div
59
+ v-if="normalizedModelValue.length"
60
+ class="mt-5"
61
+ >
62
+ <slot
63
+ :model-value="normalizedModelValue"
64
+ name="list"
65
+ :disabled="disabledInternal"
66
+ :draggable="draggable"
67
+ :remove="promptRemove"
68
+ @update:model-value="sync"
69
+ >
70
+ <BaseMediaPictures
71
+ v-if="layout == 'images'"
72
+ v-bind="listProps"
73
+ :model-value="normalizedModelValue"
74
+ :disabled="disabledInternal"
75
+ :draggable="draggable"
76
+ @update:model-value="sync"
77
+ @remove="promptRemove($event)"
78
+ />
79
+
80
+ <BaseMediaList
81
+ v-else-if="layout == 'list'"
82
+ v-bind="listProps"
83
+ :model-value="normalizedModelValue"
84
+ :disabled="disabledInternal"
85
+ :draggable="draggable"
86
+ @update:model-value="sync"
87
+ @remove="promptRemove($event)"
88
+ />
89
+
90
+ <BaseMediaGallery
91
+ v-else-if="layout == 'gallery'"
92
+ v-bind="listProps"
93
+ :model-value="normalizedModelValue"
94
+ :disabled="disabledInternal"
95
+ :draggable="draggable"
96
+ @update:model-value="sync"
97
+ @remove="promptRemove($event)"
98
+ />
99
+ </slot>
100
+ </div>
101
+ </div>
102
+ </template>
103
+
104
+ <script lang="ts" setup>
105
+ import { PropType } from 'vue';
106
+ import { cloneDeep, isArray, capitalize } from 'lodash';
107
+ import { UploadedFile } from '@/types/UploadedFile';
108
+ import { Media } from '@/types/Media';
109
+ import { BaseCropperConfig, MediaLibraryPayload } from '@/types';
110
+ import { fileSizeFormat } from '@/utils';
111
+ import { useDialogsStore } from '@/stores/dialogs';
112
+ import { useNotificationsStore } from '@/stores/notifications';
113
+ import BaseFileUploader from './BaseFileUploader.vue';
114
+ import { useField } from '@/composables/field';
115
+ import { BaseIcon } from '.';
116
+ import BaseMediaList from './BaseMediaList.vue';
117
+ import BaseMediaPictures from './BaseMediaPictures.vue';
118
+ import BaseMediaGallery from './BaseMediaGallery.vue';
119
+ import { t } from '@/i18n';
120
+
121
+ const dialogs = useDialogsStore();
122
+ const notifications = useNotificationsStore();
123
+
124
+ const props = defineProps({
125
+ modelValue: {
126
+ default: undefined,
127
+ type: Object as PropType<MediaLibraryPayload>,
128
+ },
129
+ name: {
130
+ default: undefined,
131
+ type: String,
132
+ },
133
+ min: {
134
+ type: Number,
135
+ default: undefined,
136
+ },
137
+ max: {
138
+ default: undefined,
139
+ type: Number,
140
+ },
141
+ maxSize: {
142
+ default: 20 * 1024 * 1024,
143
+ type: Number,
144
+ },
145
+ accept: {
146
+ default: undefined,
147
+ type: String,
148
+ },
149
+ acceptedExtensions: {
150
+ default: undefined,
151
+ type: Array as PropType<string[]>,
152
+ },
153
+ currentMedia: {
154
+ default() {
155
+ return [];
156
+ },
157
+ type: Array as PropType<Media[]>,
158
+ },
159
+ uploadUrl: {
160
+ default: undefined,
161
+ type: String,
162
+ },
163
+ hasError: {
164
+ default: false,
165
+ type: Boolean,
166
+ },
167
+ disabled: {
168
+ default: false,
169
+ type: Boolean,
170
+ },
171
+ pickerComponent: {
172
+ default: 'BaseFilePicker',
173
+ type: String as PropType<'BaseFilePicker' | 'BaseFilePickerCrop'>,
174
+ },
175
+ cropper: {
176
+ default: undefined,
177
+ type: Object as PropType<BaseCropperConfig | boolean | null>,
178
+ },
179
+ draggable: {
180
+ default: false,
181
+ type: Boolean,
182
+ },
183
+ multiple: {
184
+ default: false,
185
+ type: Boolean,
186
+ },
187
+ listProps: {
188
+ default: undefined,
189
+ type: Object as PropType<Record<string, unknown>>,
190
+ },
191
+ layout: {
192
+ default: 'gallery',
193
+ type: String as PropType<'list' | 'images' | 'gallery'>,
194
+ },
195
+ });
196
+
197
+ const emit = defineEmits([
198
+ 'update:modelValue',
199
+ 'start',
200
+ 'success',
201
+ 'fail',
202
+ 'end',
203
+ ]);
204
+
205
+ const { emitUpdate, enableForm, disableForm } = useField({
206
+ name: computed(() => props.name),
207
+ required: computed(() => false),
208
+ hasError: computed(() => props.hasError),
209
+ emit: emit,
210
+ errorType: 'alert',
211
+ });
212
+
213
+ // Model value normalization
214
+
215
+ const normalizedModelValue = computed(() => {
216
+ if (!isArray(props.modelValue)) {
217
+ return [];
218
+ }
219
+
220
+ return props.modelValue;
221
+ });
222
+
223
+ sync(normalizedModelValue.value);
224
+
225
+ // Validations
226
+
227
+ const normalizedMax = computed(() => {
228
+ if (props.max == null) {
229
+ return 100;
230
+ }
231
+
232
+ return props.max;
233
+ });
234
+
235
+ const maxFileText = computed(() => {
236
+ return t('sui.you_can_upload_up_to_n_files', {
237
+ count: normalizedMax.value,
238
+ });
239
+ });
240
+
241
+ const maxFileSize = computed(() => {
242
+ return capitalize(t('sui.up_to_x', { x: fileSizeFormat(props.maxSize) }));
243
+ });
244
+
245
+ // Upload
246
+
247
+ const syncingFiles = ref(false);
248
+
249
+ function onSuccess(files: UploadedFile[]) {
250
+
251
+ if (files.length == 0) {
252
+ return;
253
+ }
254
+
255
+ syncingFiles.value = true;
256
+
257
+ let modelValue = cloneDeep(normalizedModelValue.value);
258
+
259
+ for (const file of files) {
260
+
261
+
262
+ if (
263
+ normalizedMax.value &&
264
+ modelValue.length >= normalizedMax.value &&
265
+ normalizedMax.value > 1
266
+ ) {
267
+ notifications.push({
268
+ title: t('sui.whoops'),
269
+ text: t('sui.you_can_upload_up_to_n_files', {
270
+ count: normalizedMax.value,
271
+ }),
272
+ color: 'danger',
273
+ });
274
+
275
+ break;
276
+ }
277
+
278
+ if (normalizedMax.value == 1) {
279
+ // Remove everything...
280
+ modelValue = [];
281
+ }
282
+
283
+ modelValue.push(file);
284
+ }
285
+
286
+ sync(modelValue);
287
+
288
+ syncingFiles.value = false;
289
+
290
+ emit('success', files);
291
+ }
292
+
293
+ // Disabled
294
+
295
+ const disabledInternal = computed(() => {
296
+ return props.disabled || syncingFiles.value;
297
+ });
298
+
299
+
300
+ // Remove
301
+
302
+ function promptRemove(index: number, length = 1) {
303
+ dialogs.push({
304
+ title: t('sui.remove_file'),
305
+ message: t('sui.remove_file_description'),
306
+ color: 'warning',
307
+ onConfirm() {
308
+ removeByIndex(index, length);
309
+ },
310
+ });
311
+ }
312
+
313
+ function removeByIndex(index: number, length = 1) {
314
+ const modelValue = cloneDeep(normalizedModelValue.value);
315
+
316
+ modelValue.splice(index, length);
317
+
318
+ sync(modelValue);
319
+ }
320
+
321
+ // Sync
322
+
323
+ function sync(modelValue: MediaLibraryPayload) {
324
+ emitUpdate(modelValue);
325
+ }
326
+
327
+ // Events
328
+
329
+ function onStart(event: unknown) {
330
+ emit('start', event);
331
+ disableForm();
332
+ }
333
+
334
+ function onFail(event: unknown) {
335
+ emit('fail', event);
336
+ }
337
+
338
+ function onEnd(event: unknown) {
339
+ emit('end', event);
340
+ enableForm();
341
+ }
342
+ </script>