@donotdev/crud 0.0.14 → 0.0.16

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 (238) hide show
  1. package/README.md +27 -19
  2. package/dist/CrudService.d.ts +84 -11
  3. package/dist/CrudService.d.ts.map +1 -1
  4. package/dist/CrudService.js +9 -1
  5. package/dist/CrudStore.d.ts.map +1 -1
  6. package/dist/CrudStore.js +1 -1
  7. package/dist/FieldRegistry.d.ts +43 -43
  8. package/dist/FieldRegistry.d.ts.map +1 -1
  9. package/dist/FieldRegistry.js +1 -1
  10. package/dist/adapters/FunctionsAdapter.d.ts +20 -26
  11. package/dist/adapters/FunctionsAdapter.d.ts.map +1 -1
  12. package/dist/adapters/FunctionsAdapter.js +1 -1
  13. package/dist/adapters/index.d.ts +0 -1
  14. package/dist/adapters/index.d.ts.map +1 -1
  15. package/dist/adapters/index.js +1 -1
  16. package/dist/components/CrudButton.js +1 -1
  17. package/dist/components/CrudCard.d.ts +8 -0
  18. package/dist/components/CrudCard.d.ts.map +1 -0
  19. package/dist/components/CrudCard.js +1 -0
  20. package/dist/components/DateFilter.d.ts.map +1 -1
  21. package/dist/components/DateFilter.js +1 -1
  22. package/dist/components/DisplayFieldRenderer.js +1 -1
  23. package/dist/components/DisplayThumbnail.d.ts +29 -0
  24. package/dist/components/DisplayThumbnail.d.ts.map +1 -0
  25. package/dist/components/DisplayThumbnail.js +1 -0
  26. package/dist/components/EntityFilters.d.ts.map +1 -1
  27. package/dist/components/EntityFilters.js +1 -1
  28. package/dist/components/FormFieldRenderer.js +1 -1
  29. package/dist/components/FormLayout.d.ts.map +1 -1
  30. package/dist/components/FormLayout.js +1 -1
  31. package/dist/components/__tests__/EntityFilters.test.d.ts +2 -0
  32. package/dist/components/__tests__/EntityFilters.test.d.ts.map +1 -0
  33. package/dist/components/__tests__/EntityFilters.test.js +1 -0
  34. package/dist/components/__tests__/FormFieldRenderer.test.d.ts +2 -0
  35. package/dist/components/__tests__/FormFieldRenderer.test.d.ts.map +1 -0
  36. package/dist/components/__tests__/FormFieldRenderer.test.js +1 -0
  37. package/dist/components/controlled/complex/ControlledAddressField.js +1 -1
  38. package/dist/components/controlled/complex/ControlledDateField.js +1 -1
  39. package/dist/components/controlled/complex/ControlledGeoPointField.js +1 -1
  40. package/dist/components/controlled/complex/ControlledMapField.js +1 -1
  41. package/dist/components/controlled/complex/ControlledMultiInputField.js +1 -1
  42. package/dist/components/controlled/complex/ControlledRichTextField.js +1 -1
  43. package/dist/components/controlled/complex/ControlledTimestampField.js +1 -1
  44. package/dist/components/controlled/complex/index.js +1 -1
  45. package/dist/components/controlled/file/ControlledDocumentField.js +1 -1
  46. package/dist/components/controlled/file/ControlledFileField.js +1 -1
  47. package/dist/components/controlled/file/ControlledImageField.js +1 -1
  48. package/dist/components/controlled/file/ControlledMultiDocumentField.js +1 -1
  49. package/dist/components/controlled/file/ControlledMultiFileField.js +1 -1
  50. package/dist/components/controlled/file/ControlledMultiImageField.js +1 -1
  51. package/dist/components/controlled/file/index.js +1 -1
  52. package/dist/components/controlled/index.js +1 -1
  53. package/dist/components/controlled/input/ControlledCheckboxField.js +1 -1
  54. package/dist/components/controlled/input/ControlledCurrencyField.js +1 -1
  55. package/dist/components/controlled/input/ControlledDurationField.js +1 -1
  56. package/dist/components/controlled/input/ControlledGdprConsentField.js +1 -1
  57. package/dist/components/controlled/input/ControlledNumberField.js +1 -1
  58. package/dist/components/controlled/input/ControlledPasswordField.js +1 -1
  59. package/dist/components/controlled/input/ControlledPhoneField.js +1 -1
  60. package/dist/components/controlled/input/ControlledPriceField.js +1 -1
  61. package/dist/components/controlled/input/ControlledRangeField.js +1 -1
  62. package/dist/components/controlled/input/ControlledRatingField.js +1 -1
  63. package/dist/components/controlled/input/ControlledSwitchField.js +1 -1
  64. package/dist/components/controlled/input/ControlledTextField.js +1 -1
  65. package/dist/components/controlled/input/ControlledTextareaField.js +1 -1
  66. package/dist/components/controlled/input/index.js +1 -1
  67. package/dist/components/controlled/select/ControlledComboboxField.js +1 -1
  68. package/dist/components/controlled/select/ControlledDropdownField.js +1 -1
  69. package/dist/components/controlled/select/ControlledMultiDropdownField.js +1 -1
  70. package/dist/components/controlled/select/ControlledRadioField.js +1 -1
  71. package/dist/components/controlled/select/ControlledYearField.js +1 -1
  72. package/dist/components/controlled/select/index.js +1 -1
  73. package/dist/components/controlled/types.d.ts +19 -5
  74. package/dist/components/controlled/types.d.ts.map +1 -1
  75. package/dist/components/controlled/types.js +1 -1
  76. package/dist/components/fields/display/AvatarFieldDisplay.js +1 -1
  77. package/dist/components/fields/display/BadgeFieldDisplay.js +1 -1
  78. package/dist/components/fields/display/ButtonFieldDisplay.js +1 -1
  79. package/dist/components/fields/display/CheckboxFieldDisplay.js +1 -1
  80. package/dist/components/fields/display/DateFieldDisplay.js +1 -1
  81. package/dist/components/fields/display/DropdownDisplay.js +1 -1
  82. package/dist/components/fields/display/FileFieldDisplay.js +1 -1
  83. package/dist/components/fields/display/GeoPointFieldDisplay.js +1 -1
  84. package/dist/components/fields/display/HiddenFieldDisplay.js +1 -1
  85. package/dist/components/fields/display/ImageFieldDisplay.js +1 -1
  86. package/dist/components/fields/display/LinkFieldDisplay.js +1 -1
  87. package/dist/components/fields/display/MapFieldDisplay.js +1 -1
  88. package/dist/components/fields/display/MultiDropdownDisplay.js +1 -1
  89. package/dist/components/fields/display/MultiInputTextFieldDisplay.js +1 -1
  90. package/dist/components/fields/display/NumberFieldDisplay.js +1 -1
  91. package/dist/components/fields/display/PasswordFieldDisplay.js +1 -1
  92. package/dist/components/fields/display/PhoneNumberDisplay.js +1 -1
  93. package/dist/components/fields/display/RadioFieldDisplay.js +1 -1
  94. package/dist/components/fields/display/RangeFieldDisplay.js +1 -1
  95. package/dist/components/fields/display/ReferenceFieldDisplay.js +1 -1
  96. package/dist/components/fields/display/RichTextDisplay.d.ts.map +1 -1
  97. package/dist/components/fields/display/RichTextDisplay.js +2 -2
  98. package/dist/components/fields/display/TextAreaDisplay.js +1 -1
  99. package/dist/components/fields/display/TextFieldDisplay.js +1 -1
  100. package/dist/components/fields/display/TimestampFieldDisplay.js +1 -1
  101. package/dist/components/fields/display/index.js +1 -1
  102. package/dist/components/form/fields/AddressFieldComponent.d.ts.map +1 -1
  103. package/dist/components/form/fields/AddressFieldComponent.js +1 -1
  104. package/dist/components/form/fields/AvatarFieldComponent.js +1 -1
  105. package/dist/components/form/fields/BadgeFieldComponent.js +1 -1
  106. package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
  107. package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
  108. package/dist/components/form/fields/ComboboxComponent.js +1 -1
  109. package/dist/components/form/fields/CurrencyFieldComponent.js +1 -1
  110. package/dist/components/form/fields/DateFieldComponent.js +1 -1
  111. package/dist/components/form/fields/DocumentFieldComponent.d.ts.map +1 -1
  112. package/dist/components/form/fields/DocumentFieldComponent.js +1 -1
  113. package/dist/components/form/fields/DropdownComponent.js +1 -1
  114. package/dist/components/form/fields/DurationFieldComponent.js +1 -1
  115. package/dist/components/form/fields/FileFieldComponent.js +1 -1
  116. package/dist/components/form/fields/GdprConsentFieldComponent.js +1 -1
  117. package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
  118. package/dist/components/form/fields/HiddenFieldComponent.js +1 -1
  119. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  120. package/dist/components/form/fields/MapFieldComponent.js +1 -1
  121. package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
  122. package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
  123. package/dist/components/form/fields/NumberFieldComponent.js +1 -1
  124. package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
  125. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  126. package/dist/components/form/fields/PriceFieldComponent.js +1 -1
  127. package/dist/components/form/fields/RadioFieldComponent.js +1 -1
  128. package/dist/components/form/fields/RangeFieldComponent.js +1 -1
  129. package/dist/components/form/fields/RatingFieldComponent.js +1 -1
  130. package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
  131. package/dist/components/form/fields/RichTextComponent.js +1 -1
  132. package/dist/components/form/fields/SwitchFieldComponent.d.ts.map +1 -1
  133. package/dist/components/form/fields/SwitchFieldComponent.js +1 -1
  134. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  135. package/dist/components/form/fields/TextFieldComponent.js +1 -1
  136. package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
  137. package/dist/components/form/fields/index.js +1 -1
  138. package/dist/components/form/fields/internal/TiptapEditor.d.ts +4 -2
  139. package/dist/components/form/fields/internal/TiptapEditor.d.ts.map +1 -1
  140. package/dist/components/form/fields/internal/TiptapEditor.js +2 -2
  141. package/dist/components/form/internal/ImageViewerDialog.d.ts.map +1 -1
  142. package/dist/components/form/internal/ImageViewerDialog.js +1 -1
  143. package/dist/components/index.d.ts +2 -0
  144. package/dist/components/index.d.ts.map +1 -1
  145. package/dist/components/index.js +1 -1
  146. package/dist/contexts/UploadContext.js +1 -1
  147. package/dist/contexts/index.js +1 -1
  148. package/dist/fieldTypeRegistry.d.ts +3 -0
  149. package/dist/fieldTypeRegistry.d.ts.map +1 -1
  150. package/dist/fieldTypeRegistry.js +1 -1
  151. package/dist/forms/hooks/index.js +1 -1
  152. package/dist/forms/hooks/useController.js +1 -1
  153. package/dist/forms/hooks/useEntityField.js +1 -1
  154. package/dist/forms/hooks/useEntityForm.d.ts +3 -2
  155. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  156. package/dist/forms/hooks/useEntityForm.js +1 -1
  157. package/dist/forms/index.js +1 -1
  158. package/dist/forms/types.d.ts +0 -8
  159. package/dist/forms/types.d.ts.map +1 -1
  160. package/dist/forms/utils/buildInitialValues.js +1 -1
  161. package/dist/forms/utils/getFieldsForOperation.js +1 -1
  162. package/dist/forms/utils/index.js +1 -1
  163. package/dist/forms/utils/isFieldEditable.js +1 -1
  164. package/dist/forms/utils/translateFieldLabel.js +1 -1
  165. package/dist/forms/utils/validateEntity.js +1 -1
  166. package/dist/hooks/index.d.ts +1 -1
  167. package/dist/hooks/index.d.ts.map +1 -1
  168. package/dist/hooks/index.js +1 -1
  169. package/dist/hooks/useCrudFilters.d.ts +0 -15
  170. package/dist/hooks/useCrudFilters.d.ts.map +1 -1
  171. package/dist/hooks/useCrudFilters.js +1 -1
  172. package/dist/hooks/useEntityFavorites.js +1 -1
  173. package/dist/hooks/useFileUpload.d.ts.map +1 -1
  174. package/dist/hooks/useFileUpload.js +1 -1
  175. package/dist/hooks/useFormNavigationGuard.d.ts.map +1 -1
  176. package/dist/hooks/useFormNavigationGuard.js +1 -1
  177. package/dist/hooks/useRelatedItems.d.ts +1 -2
  178. package/dist/hooks/useRelatedItems.d.ts.map +1 -1
  179. package/dist/hooks/useRelatedItems.js +1 -1
  180. package/dist/hooks/useUnsavedChangesWarning.d.ts +3 -24
  181. package/dist/hooks/useUnsavedChangesWarning.d.ts.map +1 -1
  182. package/dist/hooks/useUnsavedChangesWarning.js +1 -1
  183. package/dist/index.d.ts +5 -3
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +1 -1
  186. package/dist/registerBuiltinFieldTypes.d.ts.map +1 -1
  187. package/dist/registerBuiltinFieldTypes.js +1 -1
  188. package/dist/stores/FormStore.d.ts.map +1 -1
  189. package/dist/stores/FormStore.js +1 -1
  190. package/dist/stores/UploadStore.d.ts.map +1 -1
  191. package/dist/stores/UploadStore.js +1 -1
  192. package/dist/stores/index.js +1 -1
  193. package/dist/tsconfig.tsbuildinfo +1 -1
  194. package/dist/types.d.ts +22 -19
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/types.js +1 -0
  197. package/dist/useBaseCrudList.d.ts +1 -4
  198. package/dist/useBaseCrudList.d.ts.map +1 -1
  199. package/dist/useBaseCrudList.js +1 -1
  200. package/dist/useCrud.d.ts +1 -2
  201. package/dist/useCrud.d.ts.map +1 -1
  202. package/dist/useCrud.js +1 -1
  203. package/dist/useCrudCardList.d.ts +1 -2
  204. package/dist/useCrudCardList.d.ts.map +1 -1
  205. package/dist/useCrudCardList.js +1 -1
  206. package/dist/useCrudList.d.ts +1 -1
  207. package/dist/useCrudList.d.ts.map +1 -1
  208. package/dist/useCrudList.js +1 -1
  209. package/dist/utils/collections.js +1 -1
  210. package/dist/utils/fileStorage.d.ts +10 -5
  211. package/dist/utils/fileStorage.d.ts.map +1 -1
  212. package/dist/utils/fileStorage.js +1 -1
  213. package/dist/utils/imageProcessing.js +1 -1
  214. package/dist/utils/imageStorage.d.ts +9 -4
  215. package/dist/utils/imageStorage.d.ts.map +1 -1
  216. package/dist/utils/imageStorage.js +1 -1
  217. package/dist/utils/imageUtils.js +1 -1
  218. package/dist/utils/mergeWithOptimistic.d.ts.map +1 -1
  219. package/dist/utils/mergeWithOptimistic.js +1 -1
  220. package/dist/utils/sanitizeHtml.d.ts +6 -0
  221. package/dist/utils/sanitizeHtml.d.ts.map +1 -0
  222. package/dist/utils/sanitizeHtml.js +1 -0
  223. package/dist/utils/scopeUtils.d.ts +1 -2
  224. package/dist/utils/scopeUtils.d.ts.map +1 -1
  225. package/dist/utils/scopeUtils.js +1 -1
  226. package/dist/utils/uploadValidation.d.ts +5 -4
  227. package/dist/utils/uploadValidation.d.ts.map +1 -1
  228. package/dist/utils/uploadValidation.js +1 -1
  229. package/package.json +11 -8
  230. package/dist/adapters/FirestoreAdapter.d.ts +0 -65
  231. package/dist/adapters/FirestoreAdapter.d.ts.map +0 -1
  232. package/dist/adapters/FirestoreAdapter.js +0 -1
  233. package/dist/components/EntityDisplayRenderer.d.ts +0 -43
  234. package/dist/components/EntityDisplayRenderer.d.ts.map +0 -1
  235. package/dist/components/EntityDisplayRenderer.js +0 -1
  236. package/dist/components/EntityFormRenderer.d.ts +0 -86
  237. package/dist/components/EntityFormRenderer.d.ts.map +0 -1
  238. package/dist/components/EntityFormRenderer.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FormStore.d.ts","sourceRoot":"","sources":["../../src/stores/FormStore.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,UAAU,SAAS;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,8EAA8E;IAC9E,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,wCAAwC;IACxC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,2BAA2B;IAC3B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wBAAwB;IACxB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,sBAAsB;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,+BAA+B;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,uCAAuC;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGlC,2BAA2B;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,iCAAiC;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,6BAA6B;IAC7B,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAGhC,sBAAsB;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAC1C,4CAA4C;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wBAAwB;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5C,6BAA6B;IAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AASD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,2IA6LvB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,UACiB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,OAQ5C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MACgB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IACM,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,OACgB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,OACY,CAAC"}
1
+ {"version":3,"file":"FormStore.d.ts","sourceRoot":"","sources":["../../src/stores/FormStore.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,UAAU,SAAS;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,8EAA8E;IAC9E,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,wCAAwC;IACxC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,2BAA2B;IAC3B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wBAAwB;IACxB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,sBAAsB;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,+BAA+B;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,uCAAuC;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGlC,2BAA2B;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,iCAAiC;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,6BAA6B;IAC7B,eAAe,EAAE,MAAM,MAAM,EAAE,CAAC;IAGhC,sBAAsB;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAC1C,4CAA4C;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wBAAwB;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5C,6BAA6B;IAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AASD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,2IA6MvB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,UACiB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,OAQ5C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MACgB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IACM,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,OACgB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,OACwC,CAAC"}
@@ -1 +1 @@
1
- "use client";import{createDoNotDevStore as i}from"@donotdev/core";const m={status:"idle",error:null,uploadProgress:0,isDirty:!1},u=i({name:"form-store",createStore:(o,e)=>({forms:{},startSubmit:r=>{o(s=>{const t=s.forms[r]||m;return{forms:{...s.forms,[r]:{...t,status:"uploading",error:null,uploadProgress:0}}}})},setUploading:(r,s)=>{o(t=>{const n=t.forms[r]||m;return{forms:{...t.forms,[r]:{...n,status:"uploading",uploadProgress:Math.min(100,Math.max(0,s))}}}})},setValidating:r=>{o(s=>{const t=s.forms[r]||m;return{forms:{...s.forms,[r]:{...t,status:"validating",uploadProgress:100}}}})},setSubmitting:r=>{o(s=>{const t=s.forms[r]||m;return{forms:{...s.forms,[r]:{...t,status:"submitting"}}}})},setSuccess:r=>{o(s=>{const t=s.forms[r]||m;return{forms:{...s.forms,[r]:{...t,status:"success",error:null}}}}),setTimeout(()=>{e().reset(r)},1500)},setError:(r,s)=>{o(t=>{const n=t.forms[r]||m;return{forms:{...t.forms,[r]:{...n,status:"error",error:s}}}})},reset:r=>{o(s=>({forms:{...s.forms,[r]:{...m}}}))},setIsDirty:(r,s)=>{o(t=>{const n=t.forms[r]||m;return{forms:{...t.forms,[r]:{...n,isDirty:s}}}})},hasDirtyForms:()=>{const r=e().forms;return Object.values(r).some(s=>s.isDirty)},getDirtyFormIds:()=>{const r=e().forms;return Object.entries(r).filter(([s,t])=>t.isDirty).map(([s])=>s)},cleanup:r=>{o(s=>{const{[r]:t,...n}=s.forms;return{forms:n}})},getStatus:r=>e().forms[r]?.status??"idle",isLoading:r=>{const s=e().forms[r]?.status??"idle";return s==="uploading"||s==="validating"||s==="submitting"},getUploadProgress:r=>e().forms[r]?.uploadProgress??0,getError:r=>e().forms[r]?.error??null,getIsDirty:r=>e().forms[r]?.isDirty??!1})}),f=o=>u(e=>e.forms[o]?.status??"idle"),l=o=>u(e=>{const r=e.forms[o]?.status??"idle";return r==="uploading"||r==="validating"||r==="submitting"}),c=o=>u(e=>e.forms[o]?.uploadProgress??0),p=o=>u(e=>e.forms[o]?.error??null),g=o=>u(e=>e.forms[o]?.isDirty??!1),d=()=>u(o=>o.hasDirtyForms());export{p as useFormError,g as useFormIsDirty,l as useFormLoading,f as useFormStatus,u as useFormStore,d as useHasDirtyForms,c as useUploadProgress};
1
+ "use client";import{createDoNotDevStore as f}from"@donotdev/core";const a={status:"idle",error:null,uploadProgress:0,isDirty:!1},i=f({name:"form-store",createStore:(t,o)=>{const m=new Map;return{forms:{},startSubmit:r=>{t(s=>{const e=s.forms[r]||a;return{forms:{...s.forms,[r]:{...e,status:"uploading",error:null,uploadProgress:0}}}})},setUploading:(r,s)=>{t(e=>{const u=e.forms[r]||a;return{forms:{...e.forms,[r]:{...u,status:"uploading",uploadProgress:Math.min(100,Math.max(0,s))}}}})},setValidating:r=>{t(s=>{const e=s.forms[r]||a;return{forms:{...s.forms,[r]:{...e,status:"validating",uploadProgress:100}}}})},setSubmitting:r=>{t(s=>{const e=s.forms[r]||a;return{forms:{...s.forms,[r]:{...e,status:"submitting"}}}})},setSuccess:r=>{t(u=>{const n=u.forms[r]||a;return{forms:{...u.forms,[r]:{...n,status:"success",error:null}}}});const s=m.get(r);s!==void 0&&clearTimeout(s);const e=setTimeout(()=>{m.delete(r),o().reset(r)},1500);m.set(r,e)},setError:(r,s)=>{t(e=>{const u=e.forms[r]||a;return{forms:{...e.forms,[r]:{...u,status:"error",error:s}}}})},reset:r=>{t(s=>({forms:{...s.forms,[r]:{...a}}}))},setIsDirty:(r,s)=>{t(e=>{const u=e.forms[r]||a;return{forms:{...e.forms,[r]:{...u,isDirty:s}}}})},hasDirtyForms:()=>{const r=o().forms;return Object.values(r).some(s=>s.isDirty)},getDirtyFormIds:()=>{const r=o().forms;return Object.entries(r).filter(([s,e])=>e.isDirty).map(([s])=>s)},cleanup:r=>{const s=m.get(r);s!==void 0&&(clearTimeout(s),m.delete(r)),t(e=>{const{[r]:u,...n}=e.forms;return{forms:n}})},getStatus:r=>o().forms[r]?.status??"idle",isLoading:r=>{const s=o().forms[r]?.status??"idle";return s==="uploading"||s==="validating"||s==="submitting"},getUploadProgress:r=>o().forms[r]?.uploadProgress??0,getError:r=>o().forms[r]?.error??null,getIsDirty:r=>o().forms[r]?.isDirty??!1}}}),l=t=>i(o=>o.forms[t]?.status??"idle"),c=t=>i(o=>{const m=o.forms[t]?.status??"idle";return m==="uploading"||m==="validating"||m==="submitting"}),g=t=>i(o=>o.forms[t]?.uploadProgress??0),d=t=>i(o=>o.forms[t]?.error??null),p=t=>i(o=>o.forms[t]?.isDirty??!1),D=()=>i(t=>Object.values(t.forms).some(o=>o.isDirty));export{d as useFormError,p as useFormIsDirty,c as useFormLoading,l as useFormStatus,i as useFormStore,D as useHasDirtyForms,g as useUploadProgress};
@@ -1 +1 @@
1
- {"version":3,"file":"UploadStore.d.ts","sourceRoot":"","sources":["../../src/stores/UploadStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UploadStore.d.ts","sourceRoot":"","sources":["../../src/stores/UploadStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- "use client";import{createDoNotDevStore as U}from"@donotdev/core";const i={status:"idle",progress:0,error:null},d=U({name:"upload-store",createStore:(u,r)=>({uploads:{},uploadFunctions:{},checkPendingFunctions:{},retryAttempts:{},maxRetries:3,retryDelay:1e3,registerUpload:(s,n,t,o)=>{u(e=>({uploadFunctions:{...e.uploadFunctions,[s]:{...e.uploadFunctions[s]||{},[n]:t}},checkPendingFunctions:{...e.checkPendingFunctions,[s]:{...e.checkPendingFunctions[s]||{},[n]:o||(()=>!1)}}}))},unregisterUpload:(s,n)=>{u(t=>{const o=t.uploadFunctions[s],e=t.checkPendingFunctions[s];if(!o)return t;const{[n]:a,...c}=o,{[n]:g,...l}=e||{},{[n]:h,...F}=t.retryAttempts[s]||{};return{uploadFunctions:{...t.uploadFunctions,[s]:c},checkPendingFunctions:{...t.checkPendingFunctions,[s]:l},retryAttempts:{...t.retryAttempts,[s]:F}}})},startUpload:(s,n)=>{u(t=>({uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[n]:{status:"uploading",progress:0,error:null}}}}))},setProgress:(s,n,t)=>{u(o=>{const e=o.uploads[s]?.[n]||i;return{uploads:{...o.uploads,[s]:{...o.uploads[s]||{},[n]:{...e,progress:Math.min(100,Math.max(0,t))}}}}})},completeUpload:(s,n)=>{u(t=>{const o=t.uploads[s]?.[n]||i;return{uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[n]:{...o,status:"complete",progress:100}}}}})},failUpload:(s,n,t)=>{u(o=>{const e=o.uploads[s]?.[n]||i;return{uploads:{...o.uploads,[s]:{...o.uploads[s]||{},[n]:{...e,status:"error",error:t}}}}})},resetUpload:(s,n)=>{u(t=>({uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[n]:{...i}}}}))},resetForm:s=>{u(n=>({uploads:{...n.uploads,[s]:{}}}))},cleanup:s=>{u(n=>{const{[s]:t,...o}=n.uploads,{[s]:e,...a}=n.uploadFunctions;return{uploads:o,uploadFunctions:a}})},uploadAll:async s=>{const t=r().uploadFunctions[s];if(!t)return;const o=Object.entries(t);if(o.length===0)return;const e=async(a,c,g=1)=>{r().startUpload(s,a);try{await c(l=>{r().setProgress(s,a,l)}),r().completeUpload(s,a),u(l=>({retryAttempts:{...l.retryAttempts,[s]:{...l.retryAttempts[s]||{},[a]:0}}}))}catch(l){const h=l instanceof Error?l.message:"Upload failed",F=r().maxRetries,y=r().retryAttempts[s]?.[a]||0;if(y<F){u(p=>({retryAttempts:{...p.retryAttempts,[s]:{...p.retryAttempts[s]||{},[a]:y+1}}}));const P=r().retryDelay*Math.pow(2,g-1);return await new Promise(p=>setTimeout(p,P)),e(a,c,g+1)}else throw r().failUpload(s,a,h),l}};await Promise.all(o.map(async([a,c])=>{await e(a,c)}))},hasPendingUploads:s=>{const n=r(),t=n.uploadFunctions[s],o=n.checkPendingFunctions[s];return t?Object.entries(t).some(([e,a])=>{const c=o?.[e];return c?c():!0}):!1},getStatus:(s,n)=>r().uploads[s]?.[n]?.status??"idle",getProgress:(s,n)=>r().uploads[s]?.[n]?.progress??0,getTotalProgress:s=>{const n=r().uploads[s];if(!n)return 100;const t=Object.values(n);if(t.length===0)return 100;const o=t.reduce((e,a)=>e+a.progress,0);return Math.round(o/t.length)},isUploading:s=>{const n=r().uploads[s];return n?Object.values(n).some(t=>t.status==="uploading"):!1},getError:(s,n)=>r().uploads[s]?.[n]?.error??null})}),k=u=>d(r=>{const s=r.uploads[u];if(!s)return 100;const n=Object.values(s);if(n.length===0)return 100;const t=n.reduce((o,e)=>o+e.progress,0);return Math.round(t/n.length)}),x=u=>d(r=>{const s=r.uploads[u];return s?Object.values(s).some(n=>n.status==="uploading"):!1}),_=(u,r)=>d(s=>s.uploads[u]?.[r]?.progress??0),w=(u,r)=>d(s=>s.uploads[u]?.[r]?.status??"idle");export{_ as useFieldProgress,w as useFieldUploadStatus,x as useIsUploading,k as useTotalProgress,d as useUploadStore};
1
+ "use client";import{createDoNotDevStore as F}from"@donotdev/core";const m={status:"idle",progress:0,error:null},d=F({name:"upload-store",createStore:(a,n)=>({uploads:{},uploadFunctions:{},checkPendingFunctions:{},retryAttempts:{},maxRetries:3,retryDelay:1e3,registerUpload:(s,e,t,o)=>{a(r=>({uploadFunctions:{...r.uploadFunctions,[s]:{...r.uploadFunctions[s]||{},[e]:t}},checkPendingFunctions:{...r.checkPendingFunctions,[s]:{...r.checkPendingFunctions[s]||{},[e]:o||(()=>!1)}}}))},unregisterUpload:(s,e)=>{a(t=>{const o=t.uploadFunctions[s],r=t.checkPendingFunctions[s];if(!o)return t;const{[e]:l,...p}=o,{[e]:u,...i}=r||{},{[e]:g,...h}=t.retryAttempts[s]||{};return{uploadFunctions:{...t.uploadFunctions,[s]:p},checkPendingFunctions:{...t.checkPendingFunctions,[s]:i},retryAttempts:{...t.retryAttempts,[s]:h}}})},startUpload:(s,e)=>{a(t=>({uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[e]:{status:"uploading",progress:0,error:null}}}}))},setProgress:(s,e,t)=>{a(o=>{const r=o.uploads[s]?.[e]||m;return{uploads:{...o.uploads,[s]:{...o.uploads[s]||{},[e]:{...r,progress:Math.min(100,Math.max(0,t))}}}}})},completeUpload:(s,e)=>{a(t=>{const o=t.uploads[s]?.[e]||m;return{uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[e]:{...o,status:"complete",progress:100}}}}})},failUpload:(s,e,t)=>{a(o=>{const r=o.uploads[s]?.[e]||m;return{uploads:{...o.uploads,[s]:{...o.uploads[s]||{},[e]:{...r,status:"error",error:t}}}}})},resetUpload:(s,e)=>{a(t=>({uploads:{...t.uploads,[s]:{...t.uploads[s]||{},[e]:{...m}}}}))},resetForm:s=>{a(e=>({uploads:{...e.uploads,[s]:{}}}))},cleanup:s=>{a(e=>{const{[s]:t,...o}=e.uploads,{[s]:r,...l}=e.uploadFunctions,{[s]:p,...u}=e.checkPendingFunctions,{[s]:i,...g}=e.retryAttempts;return{uploads:o,uploadFunctions:l,checkPendingFunctions:u,retryAttempts:g}})},uploadAll:async s=>{const e=n().uploadFunctions[s];if(!e)return;const t=Object.entries(e);if(t.length===0)return;const o=async(r,l,p=1)=>{n().startUpload(s,r);try{await l(u=>{n().setProgress(s,r,u)}),n().completeUpload(s,r),a(u=>({retryAttempts:{...u.retryAttempts,[s]:{...u.retryAttempts[s]||{},[r]:0}}}))}catch(u){const i=u instanceof Error?u.message:"Upload failed",g=n().maxRetries;if((n().retryAttempts[s]?.[r]??0)<g){a(c=>({retryAttempts:{...c.retryAttempts,[s]:{...c.retryAttempts[s]||{},[r]:(c.retryAttempts[s]?.[r]??0)+1}}}));const h=n().retryDelay*Math.pow(2,p-1);return await new Promise(c=>setTimeout(c,h)),o(r,l,p+1)}else throw n().failUpload(s,r,i),u}};await Promise.all(t.map(async([r,l])=>{await o(r,l)}))},hasPendingUploads:s=>{const e=n(),t=e.uploadFunctions[s],o=e.checkPendingFunctions[s];return t?Object.entries(t).some(([r,l])=>{const p=o?.[r];return p?p():!0}):!1},getStatus:(s,e)=>n().uploads[s]?.[e]?.status??"idle",getProgress:(s,e)=>n().uploads[s]?.[e]?.progress??0,getTotalProgress:s=>{const e=n().uploads[s];if(!e)return 100;const t=Object.values(e);if(t.length===0)return 100;const o=t.reduce((r,l)=>r+l.progress,0);return Math.round(o/t.length)},isUploading:s=>{const e=n().uploads[s];return e?Object.values(e).some(t=>t.status==="uploading"):!1},getError:(s,e)=>n().uploads[s]?.[e]?.error??null})}),y=a=>d(n=>{const s=n.uploads[a];if(!s)return 100;const e=Object.values(s);if(e.length===0)return 100;const t=e.reduce((o,r)=>o+r.progress,0);return Math.round(t/e.length)}),P=a=>d(n=>{const s=n.uploads[a];return s?Object.values(s).some(e=>e.status==="uploading"):!1}),A=(a,n)=>d(s=>s.uploads[a]?.[n]?.progress??0),U=(a,n)=>d(s=>s.uploads[a]?.[n]?.status??"idle");export{A as useFieldProgress,U as useFieldUploadStatus,P as useIsUploading,y as useTotalProgress,d as useUploadStore};
@@ -1 +1 @@
1
- import{useFormStore as o,useFormStatus as e,useFormLoading as u,useUploadProgress as t,useFormError as a,useFormIsDirty as m,useHasDirtyForms as F}from"./FormStore";import{useUploadStore as l,useTotalProgress as i,useIsUploading as p,useFieldProgress as g,useFieldUploadStatus as S}from"./UploadStore";export{g as useFieldProgress,S as useFieldUploadStatus,a as useFormError,m as useFormIsDirty,u as useFormLoading,e as useFormStatus,o as useFormStore,F as useHasDirtyForms,p as useIsUploading,i as useTotalProgress,t as useUploadProgress,l as useUploadStore};
1
+ import{useFormStore as s,useFormStatus as r,useFormLoading as a,useUploadProgress as o,useFormError as e,useFormIsDirty as u,useHasDirtyForms as t}from"./FormStore";import{useUploadStore as m,useTotalProgress as F,useIsUploading as d,useFieldProgress as i,useFieldUploadStatus as l}from"./UploadStore";export{i as useFieldProgress,l as useFieldUploadStatus,e as useFormError,u as useFormIsDirty,a as useFormLoading,r as useFormStatus,s as useFormStore,t as useHasDirtyForms,d as useIsUploading,F as useTotalProgress,o as useUploadProgress,m as useUploadStore};