@donotdev/crud 0.0.31 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/LICENSE.md +3 -3
  2. package/dist/CrudService.d.ts +13 -4
  3. package/dist/CrudService.d.ts.map +1 -1
  4. package/dist/CrudService.js +2 -2
  5. package/dist/CrudStore.d.ts +1 -1
  6. package/dist/CrudStore.d.ts.map +1 -1
  7. package/dist/CrudStore.js +1 -1
  8. package/dist/FieldRegistry.d.ts +2 -12
  9. package/dist/FieldRegistry.d.ts.map +1 -1
  10. package/dist/FieldRegistry.js +1 -1
  11. package/dist/adapters/FunctionsAdapter.d.ts +3 -3
  12. package/dist/adapters/FunctionsAdapter.d.ts.map +1 -1
  13. package/dist/adapters/FunctionsAdapter.js +1 -1
  14. package/dist/adapters/index.d.ts +1 -1
  15. package/dist/builtinFieldTypes.d.ts +1 -1
  16. package/dist/components/CrudButton.d.ts +1 -0
  17. package/dist/components/CrudButton.d.ts.map +1 -1
  18. package/dist/components/CrudButton.js +1 -1
  19. package/dist/components/CrudCard.d.ts +1 -1
  20. package/dist/components/CrudCard.d.ts.map +1 -1
  21. package/dist/components/CrudCard.js +1 -1
  22. package/dist/components/DateFilter.js +1 -1
  23. package/dist/components/DisplayFieldRenderer.d.ts +2 -1
  24. package/dist/components/DisplayFieldRenderer.d.ts.map +1 -1
  25. package/dist/components/DisplayFieldRenderer.js +1 -1
  26. package/dist/components/DisplayThumbnail.d.ts +1 -9
  27. package/dist/components/DisplayThumbnail.d.ts.map +1 -1
  28. package/dist/components/DisplayThumbnail.js +1 -1
  29. package/dist/components/EntityFilters.d.ts +1 -0
  30. package/dist/components/EntityFilters.d.ts.map +1 -1
  31. package/dist/components/EntityFilters.js +1 -1
  32. package/dist/components/FormFieldRenderer.d.ts +1 -0
  33. package/dist/components/FormFieldRenderer.d.ts.map +1 -1
  34. package/dist/components/FormFieldRenderer.js +1 -1
  35. package/dist/components/FormLayout.d.ts +2 -1
  36. package/dist/components/FormLayout.d.ts.map +1 -1
  37. package/dist/components/FormLayout.js +1 -1
  38. package/dist/components/controlled/complex/ControlledAddressField.js +1 -1
  39. package/dist/components/controlled/complex/ControlledDateField.d.ts.map +1 -1
  40. package/dist/components/controlled/complex/ControlledDateField.js +1 -1
  41. package/dist/components/controlled/complex/ControlledFieldArrayField.js +1 -1
  42. package/dist/components/controlled/complex/ControlledGeoPointField.js +1 -1
  43. package/dist/components/controlled/complex/ControlledMapField.js +1 -1
  44. package/dist/components/controlled/complex/ControlledMultiInputField.js +1 -1
  45. package/dist/components/controlled/complex/ControlledRichTextField.js +1 -1
  46. package/dist/components/controlled/complex/ControlledTimestampField.d.ts.map +1 -1
  47. package/dist/components/controlled/complex/ControlledTimestampField.js +1 -1
  48. package/dist/components/controlled/complex/index.js +1 -1
  49. package/dist/components/controlled/file/ControlledDocumentField.js +1 -1
  50. package/dist/components/controlled/file/ControlledFileField.js +1 -1
  51. package/dist/components/controlled/file/ControlledImageField.js +1 -1
  52. package/dist/components/controlled/file/ControlledMultiDocumentField.js +1 -1
  53. package/dist/components/controlled/file/ControlledMultiFileField.js +1 -1
  54. package/dist/components/controlled/file/ControlledMultiImageField.js +1 -1
  55. package/dist/components/controlled/file/index.js +1 -1
  56. package/dist/components/controlled/index.js +1 -1
  57. package/dist/components/controlled/input/ControlledCheckboxField.js +1 -1
  58. package/dist/components/controlled/input/ControlledCurrencyField.js +1 -1
  59. package/dist/components/controlled/input/ControlledDurationField.js +1 -1
  60. package/dist/components/controlled/input/ControlledGdprConsentField.js +1 -1
  61. package/dist/components/controlled/input/ControlledNumberField.js +1 -1
  62. package/dist/components/controlled/input/ControlledPasswordField.js +1 -1
  63. package/dist/components/controlled/input/ControlledPhoneField.js +1 -1
  64. package/dist/components/controlled/input/ControlledPriceField.js +1 -1
  65. package/dist/components/controlled/input/ControlledRangeField.js +1 -1
  66. package/dist/components/controlled/input/ControlledRatingField.js +1 -1
  67. package/dist/components/controlled/input/ControlledSwitchField.js +1 -1
  68. package/dist/components/controlled/input/ControlledTextField.d.ts +5 -5
  69. package/dist/components/controlled/input/ControlledTextField.d.ts.map +1 -1
  70. package/dist/components/controlled/input/ControlledTextField.js +1 -1
  71. package/dist/components/controlled/input/ControlledTextareaField.js +1 -1
  72. package/dist/components/controlled/input/index.js +1 -1
  73. package/dist/components/controlled/select/ControlledComboboxField.js +1 -1
  74. package/dist/components/controlled/select/ControlledDropdownField.d.ts +2 -4
  75. package/dist/components/controlled/select/ControlledDropdownField.d.ts.map +1 -1
  76. package/dist/components/controlled/select/ControlledDropdownField.js +1 -1
  77. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts +2 -4
  78. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts.map +1 -1
  79. package/dist/components/controlled/select/ControlledMultiDropdownField.js +1 -1
  80. package/dist/components/controlled/select/ControlledRadioField.d.ts +2 -4
  81. package/dist/components/controlled/select/ControlledRadioField.d.ts.map +1 -1
  82. package/dist/components/controlled/select/ControlledRadioField.js +1 -1
  83. package/dist/components/controlled/select/ControlledReferenceField.js +1 -1
  84. package/dist/components/controlled/select/ControlledYearField.js +1 -1
  85. package/dist/components/controlled/select/index.js +1 -1
  86. package/dist/components/controlled/types.js +1 -1
  87. package/dist/components/fields/display/AvatarFieldDisplay.d.ts +1 -1
  88. package/dist/components/fields/display/AvatarFieldDisplay.js +1 -1
  89. package/dist/components/fields/display/BadgeFieldDisplay.d.ts +1 -1
  90. package/dist/components/fields/display/BadgeFieldDisplay.js +1 -1
  91. package/dist/components/fields/display/ButtonFieldDisplay.d.ts +2 -2
  92. package/dist/components/fields/display/ButtonFieldDisplay.js +1 -1
  93. package/dist/components/fields/display/CheckboxFieldDisplay.d.ts +1 -1
  94. package/dist/components/fields/display/CheckboxFieldDisplay.js +1 -1
  95. package/dist/components/fields/display/DateFieldDisplay.d.ts +1 -1
  96. package/dist/components/fields/display/DateFieldDisplay.d.ts.map +1 -1
  97. package/dist/components/fields/display/DateFieldDisplay.js +1 -1
  98. package/dist/components/fields/display/DropdownDisplay.d.ts +1 -1
  99. package/dist/components/fields/display/DropdownDisplay.js +1 -1
  100. package/dist/components/fields/display/FileFieldDisplay.d.ts +1 -1
  101. package/dist/components/fields/display/FileFieldDisplay.js +1 -1
  102. package/dist/components/fields/display/GeoPointFieldDisplay.d.ts +1 -1
  103. package/dist/components/fields/display/GeoPointFieldDisplay.js +1 -1
  104. package/dist/components/fields/display/HiddenFieldDisplay.d.ts +2 -2
  105. package/dist/components/fields/display/HiddenFieldDisplay.js +1 -1
  106. package/dist/components/fields/display/ImageFieldDisplay.d.ts +1 -1
  107. package/dist/components/fields/display/ImageFieldDisplay.js +1 -1
  108. package/dist/components/fields/display/LinkFieldDisplay.d.ts +1 -1
  109. package/dist/components/fields/display/LinkFieldDisplay.js +1 -1
  110. package/dist/components/fields/display/MapFieldDisplay.d.ts +1 -1
  111. package/dist/components/fields/display/MapFieldDisplay.js +1 -1
  112. package/dist/components/fields/display/MultiDropdownDisplay.d.ts +1 -1
  113. package/dist/components/fields/display/MultiDropdownDisplay.js +1 -1
  114. package/dist/components/fields/display/MultiInputTextFieldDisplay.d.ts +1 -1
  115. package/dist/components/fields/display/MultiInputTextFieldDisplay.js +1 -1
  116. package/dist/components/fields/display/NumberFieldDisplay.d.ts +1 -1
  117. package/dist/components/fields/display/NumberFieldDisplay.d.ts.map +1 -1
  118. package/dist/components/fields/display/NumberFieldDisplay.js +1 -1
  119. package/dist/components/fields/display/PasswordFieldDisplay.d.ts +1 -1
  120. package/dist/components/fields/display/PasswordFieldDisplay.js +1 -1
  121. package/dist/components/fields/display/PhoneNumberDisplay.d.ts +1 -1
  122. package/dist/components/fields/display/PhoneNumberDisplay.js +1 -1
  123. package/dist/components/fields/display/RadioFieldDisplay.d.ts +1 -1
  124. package/dist/components/fields/display/RadioFieldDisplay.js +1 -1
  125. package/dist/components/fields/display/RangeFieldDisplay.d.ts +1 -1
  126. package/dist/components/fields/display/RangeFieldDisplay.js +1 -1
  127. package/dist/components/fields/display/ReferenceFieldDisplay.d.ts +1 -1
  128. package/dist/components/fields/display/ReferenceFieldDisplay.js +1 -1
  129. package/dist/components/fields/display/RichTextDisplay.d.ts +1 -1
  130. package/dist/components/fields/display/RichTextDisplay.js +2 -2
  131. package/dist/components/fields/display/TextAreaDisplay.d.ts +1 -1
  132. package/dist/components/fields/display/TextAreaDisplay.js +1 -1
  133. package/dist/components/fields/display/TextFieldDisplay.d.ts +1 -1
  134. package/dist/components/fields/display/TextFieldDisplay.js +1 -1
  135. package/dist/components/fields/display/TimestampFieldDisplay.d.ts +1 -1
  136. package/dist/components/fields/display/TimestampFieldDisplay.d.ts.map +1 -1
  137. package/dist/components/fields/display/TimestampFieldDisplay.js +1 -1
  138. package/dist/components/fields/display/index.d.ts +1 -1
  139. package/dist/components/fields/display/index.js +1 -1
  140. package/dist/components/form/fields/AddressFieldComponent.js +1 -1
  141. package/dist/components/form/fields/AvatarFieldComponent.d.ts +2 -2
  142. package/dist/components/form/fields/AvatarFieldComponent.js +1 -1
  143. package/dist/components/form/fields/BadgeFieldComponent.d.ts +2 -2
  144. package/dist/components/form/fields/BadgeFieldComponent.js +1 -1
  145. package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
  146. package/dist/components/form/fields/CheckboxFieldComponent.d.ts +1 -1
  147. package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
  148. package/dist/components/form/fields/ComboboxComponent.d.ts +1 -1
  149. package/dist/components/form/fields/ComboboxComponent.js +1 -1
  150. package/dist/components/form/fields/CurrencyFieldComponent.d.ts +1 -1
  151. package/dist/components/form/fields/CurrencyFieldComponent.d.ts.map +1 -1
  152. package/dist/components/form/fields/CurrencyFieldComponent.js +1 -1
  153. package/dist/components/form/fields/DateFieldComponent.d.ts +3 -3
  154. package/dist/components/form/fields/DateFieldComponent.d.ts.map +1 -1
  155. package/dist/components/form/fields/DateFieldComponent.js +1 -1
  156. package/dist/components/form/fields/DocumentFieldComponent.js +1 -1
  157. package/dist/components/form/fields/DropdownComponent.d.ts +1 -1
  158. package/dist/components/form/fields/DropdownComponent.js +1 -1
  159. package/dist/components/form/fields/DurationFieldComponent.js +1 -1
  160. package/dist/components/form/fields/FileFieldComponent.js +1 -1
  161. package/dist/components/form/fields/GdprConsentFieldComponent.d.ts +1 -1
  162. package/dist/components/form/fields/GdprConsentFieldComponent.js +1 -1
  163. package/dist/components/form/fields/GeoPointFieldComponent.d.ts +1 -1
  164. package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
  165. package/dist/components/form/fields/HiddenFieldComponent.d.ts +1 -1
  166. package/dist/components/form/fields/HiddenFieldComponent.js +1 -1
  167. package/dist/components/form/fields/ImageFieldComponent.d.ts.map +1 -1
  168. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  169. package/dist/components/form/fields/MapFieldComponent.js +1 -1
  170. package/dist/components/form/fields/MultiDropdownComponent.d.ts +1 -1
  171. package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
  172. package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
  173. package/dist/components/form/fields/NumberFieldComponent.d.ts +1 -1
  174. package/dist/components/form/fields/NumberFieldComponent.js +1 -1
  175. package/dist/components/form/fields/PasswordFieldComponent.d.ts +1 -1
  176. package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
  177. package/dist/components/form/fields/PhoneNumberComponent.d.ts +1 -1
  178. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  179. package/dist/components/form/fields/PriceFieldComponent.js +1 -1
  180. package/dist/components/form/fields/RadioFieldComponent.js +1 -1
  181. package/dist/components/form/fields/RangeFieldComponent.d.ts +1 -1
  182. package/dist/components/form/fields/RangeFieldComponent.js +1 -1
  183. package/dist/components/form/fields/RatingFieldComponent.d.ts +1 -1
  184. package/dist/components/form/fields/RatingFieldComponent.js +1 -1
  185. package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
  186. package/dist/components/form/fields/RichTextComponent.d.ts +1 -1
  187. package/dist/components/form/fields/RichTextComponent.js +1 -1
  188. package/dist/components/form/fields/SwitchFieldComponent.d.ts +1 -1
  189. package/dist/components/form/fields/SwitchFieldComponent.js +1 -1
  190. package/dist/components/form/fields/TextAreaComponent.d.ts +1 -1
  191. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  192. package/dist/components/form/fields/TextFieldComponent.d.ts +4 -4
  193. package/dist/components/form/fields/TextFieldComponent.d.ts.map +1 -1
  194. package/dist/components/form/fields/TextFieldComponent.js +1 -1
  195. package/dist/components/form/fields/TimestampFieldComponent.d.ts +2 -2
  196. package/dist/components/form/fields/TimestampFieldComponent.d.ts.map +1 -1
  197. package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
  198. package/dist/components/form/fields/index.d.ts +1 -1
  199. package/dist/components/form/fields/index.js +1 -1
  200. package/dist/components/form/fields/internal/TiptapEditor.d.ts +1 -1
  201. package/dist/components/form/fields/internal/TiptapEditor.js +2 -2
  202. package/dist/components/form/fields/types.d.ts +1 -1
  203. package/dist/components/form/index.d.ts +1 -1
  204. package/dist/components/form/internal/ImageViewerDialog.js +1 -1
  205. package/dist/components/index.d.ts +1 -1
  206. package/dist/components/index.js +1 -1
  207. package/dist/contexts/UploadContext.d.ts +1 -0
  208. package/dist/contexts/UploadContext.d.ts.map +1 -1
  209. package/dist/contexts/UploadContext.js +1 -1
  210. package/dist/contexts/index.js +1 -1
  211. package/dist/fieldTypeRegistry.d.ts.map +1 -1
  212. package/dist/fieldTypeRegistry.js +1 -1
  213. package/dist/fieldTypeRegistry.store.d.ts.map +1 -1
  214. package/dist/fieldTypeRegistry.store.js +1 -1
  215. package/dist/fieldTypeRegistry.types.d.ts +4 -0
  216. package/dist/fieldTypeRegistry.types.d.ts.map +1 -1
  217. package/dist/forms/hooks/index.d.ts +1 -1
  218. package/dist/forms/hooks/index.js +1 -1
  219. package/dist/forms/hooks/useController.js +1 -1
  220. package/dist/forms/hooks/useEntityField.d.ts +1 -1
  221. package/dist/forms/hooks/useEntityField.js +1 -1
  222. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  223. package/dist/forms/hooks/useEntityForm.js +1 -1
  224. package/dist/forms/index.d.ts +1 -1
  225. package/dist/forms/index.js +1 -1
  226. package/dist/forms/types.d.ts +12 -7
  227. package/dist/forms/types.d.ts.map +1 -1
  228. package/dist/forms/utils/buildInitialValues.d.ts.map +1 -1
  229. package/dist/forms/utils/buildInitialValues.js +1 -1
  230. package/dist/forms/utils/getFieldsForOperation.d.ts +2 -2
  231. package/dist/forms/utils/getFieldsForOperation.d.ts.map +1 -1
  232. package/dist/forms/utils/getFieldsForOperation.js +1 -1
  233. package/dist/forms/utils/index.d.ts +1 -1
  234. package/dist/forms/utils/index.js +1 -1
  235. package/dist/forms/utils/isFieldEditable.d.ts +8 -2
  236. package/dist/forms/utils/isFieldEditable.d.ts.map +1 -1
  237. package/dist/forms/utils/isFieldEditable.js +1 -1
  238. package/dist/forms/utils/translateFieldLabel.d.ts +3 -3
  239. package/dist/forms/utils/translateFieldLabel.js +1 -1
  240. package/dist/forms/utils/validateEntity.d.ts +1 -1
  241. package/dist/forms/utils/validateEntity.js +1 -1
  242. package/dist/hooks/index.d.ts +2 -0
  243. package/dist/hooks/index.d.ts.map +1 -1
  244. package/dist/hooks/index.js +1 -1
  245. package/dist/hooks/useCrudFilters.d.ts +2 -0
  246. package/dist/hooks/useCrudFilters.d.ts.map +1 -1
  247. package/dist/hooks/useCrudFilters.js +1 -1
  248. package/dist/hooks/useCrudPageSize.d.ts +29 -0
  249. package/dist/hooks/useCrudPageSize.d.ts.map +1 -0
  250. package/dist/hooks/useCrudPageSize.js +1 -0
  251. package/dist/hooks/useEntityFavorites.d.ts +2 -0
  252. package/dist/hooks/useEntityFavorites.d.ts.map +1 -1
  253. package/dist/hooks/useEntityFavorites.js +1 -1
  254. package/dist/hooks/useFieldConditions.js +1 -1
  255. package/dist/hooks/useFileUpload.d.ts.map +1 -1
  256. package/dist/hooks/useFileUpload.js +1 -1
  257. package/dist/hooks/useReferenceResolver.d.ts +1 -1
  258. package/dist/hooks/useReferenceResolver.d.ts.map +1 -1
  259. package/dist/hooks/useReferenceResolver.js +1 -1
  260. package/dist/hooks/useRelatedItems.d.ts +2 -0
  261. package/dist/hooks/useRelatedItems.d.ts.map +1 -1
  262. package/dist/hooks/useRelatedItems.js +1 -1
  263. package/dist/hooks/useUnsavedChangesWarning.js +1 -1
  264. package/dist/index.d.ts +4 -4
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +1 -1
  267. package/dist/registerBuiltinFieldTypes.d.ts.map +1 -1
  268. package/dist/registerBuiltinFieldTypes.js +1 -1
  269. package/dist/stores/FormStore.d.ts +2 -0
  270. package/dist/stores/FormStore.d.ts.map +1 -1
  271. package/dist/stores/FormStore.js +1 -1
  272. package/dist/stores/UploadStore.d.ts +9 -3
  273. package/dist/stores/UploadStore.d.ts.map +1 -1
  274. package/dist/stores/UploadStore.js +1 -1
  275. package/dist/stores/index.d.ts +1 -1
  276. package/dist/stores/index.js +1 -1
  277. package/dist/symbol-index.json +1 -0
  278. package/dist/tsconfig.tsbuildinfo +1 -1
  279. package/dist/types.d.ts +10 -4
  280. package/dist/types.d.ts.map +1 -1
  281. package/dist/types.js +1 -1
  282. package/dist/useBaseCrudList.js +1 -1
  283. package/dist/useCrud.d.ts +1 -0
  284. package/dist/useCrud.d.ts.map +1 -1
  285. package/dist/useCrud.js +1 -1
  286. package/dist/useCrudCardList.d.ts +5 -3
  287. package/dist/useCrudCardList.d.ts.map +1 -1
  288. package/dist/useCrudCardList.js +1 -1
  289. package/dist/useCrudList.d.ts +5 -3
  290. package/dist/useCrudList.d.ts.map +1 -1
  291. package/dist/useCrudList.js +1 -1
  292. package/dist/utils/clientListProcessing.d.ts +22 -3
  293. package/dist/utils/clientListProcessing.d.ts.map +1 -1
  294. package/dist/utils/clientListProcessing.js +1 -1
  295. package/dist/utils/collections.d.ts +6 -6
  296. package/dist/utils/collections.js +1 -1
  297. package/dist/utils/fileStorage.d.ts +2 -0
  298. package/dist/utils/fileStorage.d.ts.map +1 -1
  299. package/dist/utils/fileStorage.js +1 -1
  300. package/dist/utils/imageProcessing.d.ts +1 -1
  301. package/dist/utils/imageProcessing.d.ts.map +1 -1
  302. package/dist/utils/imageProcessing.js +1 -1
  303. package/dist/utils/imageStorage.d.ts +2 -0
  304. package/dist/utils/imageStorage.d.ts.map +1 -1
  305. package/dist/utils/imageStorage.js +1 -1
  306. package/dist/utils/imageUtils.d.ts +1 -1
  307. package/dist/utils/imageUtils.js +1 -1
  308. package/dist/utils/matchesFilter.d.ts.map +1 -1
  309. package/dist/utils/matchesFilter.js +1 -1
  310. package/dist/utils/mergeWithOptimistic.js +1 -1
  311. package/dist/utils/sanitizeHtml.d.ts +0 -5
  312. package/dist/utils/sanitizeHtml.d.ts.map +1 -1
  313. package/dist/utils/sanitizeHtml.js +1 -1
  314. package/dist/utils/scopeUtils.js +1 -1
  315. package/dist/utils/uploadValidation.d.ts +1 -1
  316. package/dist/utils/uploadValidation.js +1 -1
  317. package/dist/workflows/WorkflowPersistence.d.ts +1 -1
  318. package/dist/workflows/WorkflowPersistence.js +1 -1
  319. package/dist/workflows/defineWorkflow.d.ts +1 -1
  320. package/dist/workflows/index.d.ts +1 -1
  321. package/dist/workflows/index.js +1 -1
  322. package/dist/workflows/useEntityWorkflow.js +1 -1
  323. package/guidelines/COMPONENTS.md +234 -0
  324. package/guidelines/CRUD.md +340 -0
  325. package/guidelines/GOTCHAS.md +46 -0
  326. package/package.json +7 -4
@@ -1 +1 @@
1
- import{useEntityForm as a}from"./hooks/useEntityForm";import{useEntityField as t}from"./hooks/useEntityField";import{useController as e}from"./hooks/useController";import{isFieldEditable as s,getFieldsForOperation as i,validateEntity as l,translateFieldLabel as r,translateLabel as o}from"./utils";export{i as getFieldsForOperation,s as isFieldEditable,r as translateFieldLabel,o as translateLabel,e as useController,t as useEntityField,a as useEntityForm,l as validateEntity};
1
+ import{useEntityForm as r}from"./hooks/useEntityForm";import{useEntityField as l}from"./hooks/useEntityField";import{useController as a}from"./hooks/useController";import{isFieldEditable as s,getFieldsForOperation as d,validateEntity as F,translateFieldLabel as m,translateLabel as p}from"./utils";export{d as getFieldsForOperation,s as isFieldEditable,m as translateFieldLabel,p as translateLabel,a as useController,l as useEntityField,r as useEntityForm,F as validateEntity};
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Form type exports
3
3
  * @description Type utilities for type-safe form building with entity definitions.
4
4
  *
5
- * @version 0.0.1
5
+ * @version 0.1.0
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
@@ -36,7 +36,7 @@ export type { Entity, EntityField, FieldType, Visibility, Editable, ValidationRu
36
36
  * // { name: string; price: number; active: boolean; id: string; ... }
37
37
  * ```
38
38
  *
39
- * @version 0.0.1
39
+ * @version 0.1.0
40
40
  * @since 0.0.1
41
41
  * @author AMBROISE PARK Consulting
42
42
  */
@@ -51,7 +51,7 @@ export type InferEntityData<E extends Entity> = {
51
51
  *
52
52
  * @template E - Entity type from defineEntity()
53
53
  *
54
- * @version 0.0.1
54
+ * @version 0.1.0
55
55
  * @since 0.0.1
56
56
  * @author AMBROISE PARK Consulting
57
57
  */
@@ -62,7 +62,7 @@ export type InferEntityInput<E extends Entity> = Partial<InferEntityData<E>>;
62
62
  *
63
63
  * @template E - Entity type from defineEntity()
64
64
  *
65
- * @version 0.0.1
65
+ * @version 0.1.0
66
66
  * @since 0.0.1
67
67
  * @author AMBROISE PARK Consulting
68
68
  */
@@ -72,7 +72,7 @@ export type InferEntityOutput<E extends Entity> = InferEntityData<E>;
72
72
  *
73
73
  * @template E - Entity type from defineEntity()
74
74
  *
75
- * @version 0.0.1
75
+ * @version 0.1.0
76
76
  * @since 0.0.1
77
77
  * @author AMBROISE PARK Consulting
78
78
  */
@@ -120,7 +120,7 @@ export interface UseEntityFormOptions<E extends Entity> {
120
120
  *
121
121
  * @template E - Entity type from defineEntity()
122
122
  *
123
- * @version 0.0.1
123
+ * @version 0.1.0
124
124
  * @since 0.0.1
125
125
  * @author AMBROISE PARK Consulting
126
126
  */
@@ -166,6 +166,11 @@ export interface EntityFormReturn<E extends Entity> extends UseFormReturn<InferE
166
166
  * Cleans up FormStore and UploadStore state for this form.
167
167
  */
168
168
  cleanup: () => void;
169
+ /**
170
+ * Cancel in-flight uploads and reset form submission state.
171
+ * Aborts the AbortController, resets FormStore, and releases the submit mutex.
172
+ */
173
+ cancel: () => void;
169
174
  /**
170
175
  * Whether the form has unsaved changes.
171
176
  * True if any field value differs from original/default values.
@@ -195,7 +200,7 @@ export interface EntityFormReturn<E extends Entity> extends UseFormReturn<InferE
195
200
  * @template E - Entity type from defineEntity()
196
201
  * @template K - Field key from entity
197
202
  *
198
- * @version 0.0.1
203
+ * @version 0.1.0
199
204
  * @since 0.0.1
200
205
  * @author AMBROISE PARK Consulting
201
206
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildInitialValues.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/buildInitialValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA2BhD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA6D7B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAG7B"}
1
+ {"version":3,"file":"buildInitialValues.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/buildInitialValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA2BhD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAkE7B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAG7B"}
@@ -1 +1 @@
1
- function l(n,c){if(c in n)return n[c];const i=c.replace(/_([a-z])/g,(o,e)=>e.toUpperCase());if(i!==c&&i in n)return n[i]}function s(n,c){if(c in n)return!0;const i=c.replace(/_([a-z])/g,(o,e)=>e.toUpperCase());return i!==c&&i in n}function p(n,c){const i=c??{},o={...i};return Object.entries(n.fields).forEach(([e,t])=>{const r=l(o,e);r!==void 0&&!(e in o)&&(o[e]=r);const a=!s(i,e)||r===null||r===void 0;if(t.type==="switch"){if(r==null){const u=t.options?.fieldSpecific;o[e]=u?.uncheckedValue??!1}}else a&&(t.type==="price"?o[e]={amount:0,currency:"EUR",vatIncluded:!0,discountPercent:0}:t.type==="checkbox"||t.type==="boolean"?o[e]=!1:t.type==="text"||t.type==="textarea"||t.type==="email"||t.type==="url"||t.type==="tel"||t.type==="iban"||t.type==="password"||t.type==="color"?o[e]="":(t.type==="number"||t.type==="range"||t.type==="rating")&&(o[e]=void 0))}),o}function y(n){return p(n,{})}export{p as buildInitialFromRecord,y as buildSchemaDefaults};
1
+ function y(u,s){if(s in u)return u[s];const r=s.replace(/_([a-z])/g,(n,e)=>e.toUpperCase());if(r!==s&&r in u)return u[r]}function o(u,s){if(s in u)return!0;const r=s.replace(/_([a-z])/g,(n,e)=>e.toUpperCase());return r!==s&&r in u}function b(u,s){const r=s??{},n={...r};return Object.entries(u.fields).forEach(([e,t])=>{const c=y(n,e);c!==void 0&&!(e in n)&&(n[e]=c);const p=!o(r,e)||c===null||c===void 0;if(e==="status"&&p)n[e]="draft";else if(t.type==="switch"){if(c==null){const a=t.options?.fieldSpecific;n[e]=a?.uncheckedValue??!1}}else p&&(t.type==="price"?n[e]={amount:0,currency:"EUR",vatIncluded:!0,discountPercent:0}:t.type==="checkbox"||t.type==="boolean"?n[e]=!1:t.type==="text"||t.type==="textarea"||t.type==="email"||t.type==="url"||t.type==="tel"||t.type==="iban"||t.type==="password"||t.type==="color"?n[e]="":(t.type==="number"||t.type==="range"||t.type==="rating")&&(n[e]=void 0))}),n}function h(u){return b(u,{})}export{b as buildInitialFromRecord,h as buildSchemaDefaults};
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Field filtering utility
3
3
  * @description Filters entity fields based on operation type, visibility, and viewer role.
4
4
  *
5
- * @version 0.0.1
5
+ * @version 0.1.0
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
@@ -78,7 +78,7 @@ export interface GetFieldsForOperationOptions {
78
78
  * @see {@link Entity} for entity definition structure
79
79
  * @see {@link RenderableField} for return type
80
80
  *
81
- * @version 0.0.1
81
+ * @version 0.1.0
82
82
  * @since 0.0.1
83
83
  * @author AMBROISE PARK Consulting
84
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldsForOperation.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/getFieldsForOperation.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGrE,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,CAAC,QAAQ,CAAC,GAChB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAI3C,oDAAoD;AACpD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC9D,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,WAAW,4BAA4B;IAC3C,0BAA0B;IAC1B,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,4BAA4B,GACpC,eAAe,EAAE,CAuDnB"}
1
+ {"version":3,"file":"getFieldsForOperation.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/getFieldsForOperation.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGrE,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,CAAC,QAAQ,CAAC,GAChB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAI3C,oDAAoD;AACpD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC9D,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,WAAW,4BAA4B;IAC3C,0BAA0B;IAC1B,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,4BAA4B,GACpC,eAAe,EAAE,CA4DnB"}
@@ -1 +1 @@
1
- import{isFieldVisible as u}from"@donotdev/core";import{isFieldEditable as m}from"./isFieldEditable";function g(e,r){const{operation:i,viewerRole:d,availableFields:l}=r,n=d??"guest",f=e&&typeof e=="object"&&"fields"in e&&"name"in e?e.fields:e,b=Object.entries(f),s=[];for(const[a,p]of b){const t=p,o=t.visibility||"guest";if(!u(o,n)||i==="create"&&o==="technical"||i==="edit"&&l&&!l.includes(a))continue;let c=m(t.editable,n,i);i==="edit"&&o==="technical"&&t.editable===void 0&&(c=!1),s.push({name:a,config:t,editable:c})}return s}export{g as getFieldsForOperation};
1
+ import{isFieldVisible as p}from"@donotdev/core";import{isFieldEditable as m}from"./isFieldEditable";function F(e,f){const{operation:t,viewerRole:r,availableFields:l}=f,n=r??"guest",a=e&&typeof e=="object"&&"fields"in e&&"name"in e?e.fields:e,u=Object.entries(a),s=[];for(const[c,b]of u){const i=b,o=i.visibility||"guest";if(!p(o,n)||i.editable==="generated"||i.editable==="computed"||t==="create"&&o==="technical"||t==="edit"&&l&&!l.includes(c))continue;let d=m(i.editable,n,t);t==="edit"&&o==="technical"&&i.editable===void 0&&(d=!1),s.push({name:c,config:i,editable:d})}return s}export{F as getFieldsForOperation};
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Form utilities barrel export
3
3
  * @description Exports all form utility functions for custom form building.
4
4
  *
5
- * @version 0.0.1
5
+ * @version 0.1.0
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
@@ -1 +1 @@
1
- import{isFieldEditable as a}from"./isFieldEditable";import{getFieldsForOperation as t}from"./getFieldsForOperation";import{validateEntity as e}from"./validateEntity";import{translateFieldLabel as i,translateLabel as l}from"./translateFieldLabel";export{t as getFieldsForOperation,a as isFieldEditable,i as translateFieldLabel,l as translateLabel,e as validateEntity};
1
+ import{isFieldEditable as r}from"./isFieldEditable";import{getFieldsForOperation as o}from"./getFieldsForOperation";import{validateEntity as i}from"./validateEntity";import{translateFieldLabel as p,translateLabel as f}from"./translateFieldLabel";export{o as getFieldsForOperation,r as isFieldEditable,p as translateFieldLabel,f as translateLabel,i as validateEntity};
@@ -16,18 +16,24 @@ export type ViewerRole = 'public' | 'guest' | 'user' | 'admin' | 'super';
16
16
  * // Default editable
17
17
  * isFieldEditable(undefined, 'user', 'create'); // true
18
18
  *
19
- * // Admin-only field
19
+ * // Role-based (uses hierarchy: guest < user < admin < super)
20
20
  * isFieldEditable('admin', 'user', 'edit'); // false
21
21
  * isFieldEditable('admin', 'admin', 'edit'); // true
22
+ * isFieldEditable('user', 'admin', 'edit'); // true (admin >= user)
23
+ * isFieldEditable('super', 'admin', 'edit'); // false (admin < super)
22
24
  *
23
25
  * // Create-only field
24
26
  * isFieldEditable('create-only', 'user', 'create'); // true
25
27
  * isFieldEditable('create-only', 'user', 'edit'); // false
28
+ *
29
+ * // Generated/computed - always false (excluded from forms)
30
+ * isFieldEditable('generated', 'admin', 'create'); // false
31
+ * isFieldEditable('computed', 'admin', 'edit'); // false
26
32
  * ```
27
33
  *
28
34
  * @see {@link Editable} for editable configuration options
29
35
  *
30
- * @version 0.0.1
36
+ * @version 0.1.0
31
37
  * @since 0.0.1
32
38
  * @author AMBROISE PARK Consulting
33
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"isFieldEditable.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/isFieldEditable.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAC3B,OAAO,CAcT"}
1
+ {"version":3,"file":"isFieldEditable.d.ts","sourceRoot":"","sources":["../../../src/forms/utils/isFieldEditable.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAC3B,OAAO,CAmBT"}
@@ -1 +1 @@
1
- import{hasRoleAccess as t,USER_ROLES as i}from"@donotdev/core";function r(a,o,s){return a===void 0||a===!0?!0:a===!1?!1:a==="admin"?t(o,i.ADMIN):a==="create-only"?s==="create":!0}export{r as isFieldEditable};
1
+ import{hasRoleAccess as f}from"@donotdev/core";function o(r,e,n){return r===void 0||r===!0?!0:r===!1||r==="generated"||r==="computed"?!1:r==="create-only"?n==="create":typeof r=="string"?f(e,r):!0}export{o as isFieldEditable};
@@ -3,7 +3,7 @@
3
3
  * @description Centralized helper for translating field labels with namespace support.
4
4
  * Handles namespace:key syntax, config.label fallback, and fields.${fieldName} pattern.
5
5
  *
6
- * @version 0.0.1
6
+ * @version 0.1.0
7
7
  * @since 0.0.1
8
8
  * @author AMBROISE PARK Consulting
9
9
  */
@@ -30,7 +30,7 @@ import type { EntityField, FieldType } from '@donotdev/core';
30
30
  * translateLabel('make', t); // Translates "make" in current namespace (entity or crud)
31
31
  * ```
32
32
  *
33
- * @version 0.0.4
33
+ * @version 0.1.0
34
34
  * @since 0.0.1
35
35
  * @author AMBROISE PARK Consulting
36
36
  */
@@ -68,7 +68,7 @@ export declare function translateLabel(label: string, t: (key: string, options?:
68
68
  * // Returns: translated "status" from "common" namespace
69
69
  * ```
70
70
  *
71
- * @version 0.0.1
71
+ * @version 0.1.0
72
72
  * @since 0.0.1
73
73
  * @author AMBROISE PARK Consulting
74
74
  */
@@ -1 +1 @@
1
- function r(n,s){if(typeof n=="string"&&n.includes(":")){const a=n.split(":"),t=a[1]??n,i=a[0];if(t.startsWith("status.")){const l=s(t);return l!==t&&l!==`${i}:${t}`?l:s(t,{ns:i})}return s(t,{ns:i})}return s(n)}function e(n,s,a){const t=s?.label||n;return r(t,a)}export{e as translateFieldLabel,r as translateLabel};
1
+ function a(n,s){if(typeof n=="string"&&n.includes(":")){const r=n.split(":"),t=r[1]??n,e=r[0];if(t.startsWith("status.")){const i=s(t);return i!==t&&i!==`${e}:${t}`?i:s(t,{ns:e})}return s(t,{ns:e})}return s(n)}function o(n,s,r){const t=s?.label||n;return a(t,r)}export{o as translateFieldLabel,a as translateLabel};
@@ -72,7 +72,7 @@ export interface ValidationResult<T> {
72
72
  * @see {@link Entity} for entity definition structure
73
73
  * @see {@link ValidationResult} for return type
74
74
  *
75
- * @version 0.0.1
75
+ * @version 0.1.0
76
76
  * @since 0.0.1
77
77
  * @author AMBROISE PARK Consulting
78
78
  */
@@ -1 +1 @@
1
- import*as o from"valibot";import{createSchemas as p}from"@donotdev/core";function i(t,r,c="create"){const e=p(t),u={create:e.create,draft:e.draft,update:e.update,full:e.get}[c],s=o.safeParse(u,r);return s.success?{success:!0,data:s.output}:{success:!1,issues:s.issues.map(a=>({path:a.path?.map(m=>m.key).join(".")||"",message:a.message}))}}export{i as validateEntity};
1
+ import*as o from"valibot";import{createSchemas as p}from"@donotdev/core";function h(a,c,r="create"){const s=p(a),u={create:s.create,draft:s.draft,update:s.update,full:s.get}[r],e=o.safeParse(u,c);return e.success?{success:!0,data:e.output}:{success:!1,issues:e.issues.map(t=>({path:t.path?.map(m=>m.key).join(".")||"",message:t.message}))}}export{h as validateEntity};
@@ -5,6 +5,8 @@ export { useEntityFavorites } from './useEntityFavorites';
5
5
  export type { UseEntityFavoritesOptions, UseEntityFavoritesReturn, } from './useEntityFavorites';
6
6
  export { useCrudFilters } from './useCrudFilters';
7
7
  export type { UseCrudFiltersOptions, UseCrudFiltersReturn, } from './useCrudFilters';
8
+ export { useCrudPageSize } from './useCrudPageSize';
9
+ export type { UseCrudPageSizeOptions, UseCrudPageSizeReturn, } from './useCrudPageSize';
8
10
  export { useRelatedItems } from './useRelatedItems';
9
11
  export type { UseRelatedItemsOptions, UseRelatedItemsReturn, } from './useRelatedItems';
10
12
  export { useFieldConditions } from './useFieldConditions';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- import{useFileUpload as e}from"./useFileUpload";import{useUnsavedChangesWarning as s}from"./useUnsavedChangesWarning";import{useEntityFavorites as r}from"./useEntityFavorites";import{useCrudFilters as a}from"./useCrudFilters";import{useRelatedItems as o}from"./useRelatedItems";import{useFieldConditions as i}from"./useFieldConditions";import{useReferenceResolver as t}from"./useReferenceResolver";export{a as useCrudFilters,r as useEntityFavorites,i as useFieldConditions,e as useFileUpload,t as useReferenceResolver,o as useRelatedItems,s as useUnsavedChangesWarning};
1
+ import{useFileUpload as o}from"./useFileUpload";import{useUnsavedChangesWarning as t}from"./useUnsavedChangesWarning";import{useEntityFavorites as f}from"./useEntityFavorites";import{useCrudFilters as m}from"./useCrudFilters";import{useCrudPageSize as n}from"./useCrudPageSize";import{useRelatedItems as a}from"./useRelatedItems";import{useFieldConditions as l}from"./useFieldConditions";import{useReferenceResolver as F}from"./useReferenceResolver";export{m as useCrudFilters,n as useCrudPageSize,f as useEntityFavorites,l as useFieldConditions,o as useFileUpload,F as useReferenceResolver,a as useRelatedItems,t as useUnsavedChangesWarning};
@@ -1,8 +1,10 @@
1
1
  import type { FilterState } from '../types';
2
+ /** Options for the {@link useCrudFilters} hook. */
2
3
  export interface UseCrudFiltersOptions {
3
4
  /** Entity collection name (e.g., 'cars', 'products') */
4
5
  collection: string;
5
6
  }
7
+ /** Return type of the {@link useCrudFilters} hook. */
6
8
  export interface UseCrudFiltersReturn {
7
9
  /** Current filter state */
8
10
  filters: FilterState;
@@ -1 +1 @@
1
- {"version":3,"file":"useCrudFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useCrudFilters.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,qBAAqB;IACrB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mCAAmC;IACnC,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAoBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAmCtB"}
1
+ {"version":3,"file":"useCrudFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useCrudFilters.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,qBAAqB;IACrB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mCAAmC;IACnC,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAoBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAmCtB"}
@@ -1 +1 @@
1
- import{useCallback as o}from"react";import{useCrudStore as s}from"../CrudStore";const c={};function u(r){const{collection:e}=r,i=s(t=>t.collections[e]?.ui?.filters??c),l=o(t=>{s.getState().setFilters(e,t)},[e]),n=s(t=>t.collections[e]?.ui?.showFavoritesOnly??!1),a=o(t=>{s.getState().setShowFavoritesOnly(e,t)},[e]);return{filters:i,setFilters:l,showFavoritesOnly:n,setShowFavoritesOnly:a}}export{u as useCrudFilters};
1
+ import{useCallback as o}from"react";import{useCrudStore as s}from"../CrudStore";const a={};function f(r){const{collection:e}=r,l=s(t=>t.collections[e]?.ui?.filters??a),i=o(t=>{s.getState().setFilters(e,t)},[e]),n=s(t=>t.collections[e]?.ui?.showFavoritesOnly??!1),c=o(t=>{s.getState().setShowFavoritesOnly(e,t)},[e]);return{filters:l,setFilters:i,showFavoritesOnly:n,setShowFavoritesOnly:c}}export{f as useCrudFilters};
@@ -0,0 +1,29 @@
1
+ /** Options for the {@link useCrudPageSize} hook. */
2
+ export interface UseCrudPageSizeOptions {
3
+ /** Entity collection name (e.g., 'cars', 'products') */
4
+ collection: string;
5
+ /** Default page size when no preference is stored (default: 12) */
6
+ defaultPageSize?: number;
7
+ }
8
+ /** Return type of the {@link useCrudPageSize} hook. */
9
+ export interface UseCrudPageSizeReturn {
10
+ /** Current page size (from store or default) */
11
+ pageSize: number;
12
+ /** Persist a new page size preference */
13
+ setPageSize: (pageSize: number) => void;
14
+ }
15
+ /**
16
+ * Hook for managing per-collection page size preference from CrudStore
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const { pageSize, setPageSize } = useCrudPageSize({ collection: 'cars' });
21
+ *
22
+ * <DataTable
23
+ * pageSize={pageSize}
24
+ * onPageSizeChange={setPageSize}
25
+ * />
26
+ * ```
27
+ */
28
+ export declare function useCrudPageSize(options: UseCrudPageSizeOptions): UseCrudPageSizeReturn;
29
+ //# sourceMappingURL=useCrudPageSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCrudPageSize.d.ts","sourceRoot":"","sources":["../../src/hooks/useCrudPageSize.ts"],"names":[],"mappings":"AAgBA,oDAAoD;AACpD,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAevB"}
@@ -0,0 +1 @@
1
+ import{useCallback as s}from"react";import{useCrudStore as o}from"../CrudStore";const n=12;function g(i){const{collection:e,defaultPageSize:a=n}=i,c=o(t=>t.collections[e]?.ui?.pageSize??a),r=s(t=>{o.getState().setPageSize(e,t)},[e]);return{pageSize:c,setPageSize:r}}export{g as useCrudPageSize};
@@ -1,9 +1,11 @@
1
+ /** Options for the {@link useEntityFavorites} hook. */
1
2
  export interface UseEntityFavoritesOptions {
2
3
  /** Storage key (default: 'entity-favorites') */
3
4
  storageKey?: string;
4
5
  /** Entity collection name (e.g., 'cars', 'products') - used to namespace favorites */
5
6
  collection?: string;
6
7
  }
8
+ /** Return type of the {@link useEntityFavorites} hook. */
7
9
  export interface UseEntityFavoritesReturn {
8
10
  /** Array of favorited entity IDs */
9
11
  favorites: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityFavorites.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityFavorites.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,yBAAyB;IACxC,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,2CAA2C;IAC3C,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8BAA8B;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mCAAmC;IACnC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,0BAA0B;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,6FAA6F;IAC7F,eAAe,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACnD,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CA8E1B"}
1
+ {"version":3,"file":"useEntityFavorites.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityFavorites.ts"],"names":[],"mappings":"AAgBA,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,2CAA2C;IAC3C,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8BAA8B;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mCAAmC;IACnC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,0BAA0B;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,6FAA6F;IAC7F,eAAe,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACnD,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CA8E1B"}
@@ -1 +1 @@
1
- import{useCallback as o}from"react";import{useLocalStorage as p}from"@donotdev/core";function y(s={}){const{storageKey:l,collection:u="entities"}=s,d=l||`favorites-${u}`,{value:i,setValue:a,isLoaded:c}=p(d,{defaultValue:[]}),n=o(e=>i.includes(e),[i]),v=o(e=>{a(t=>t.includes(e)?t.filter(r=>r!==e):[...t,e])},[a]),f=o(e=>{a(t=>t.includes(e)?t:[...t,e])},[a]),F=o(e=>{a(t=>t.filter(r=>r!==e))},[a]),m=o(()=>{a([])},[a]),g=o(e=>i.includes(e.id),[i]);return{favorites:i,isFavorite:n,toggleFavorite:v,addFavorite:f,removeFavorite:F,clearFavorites:m,favoritesFilter:g,isLoaded:c}}export{y as useEntityFavorites};
1
+ import{useCallback as r}from"react";import{useLocalStorage as y}from"@donotdev/core";function V(n={}){const{storageKey:a,collection:c="entities"}=n,u=a||`favorites-${c}`,{value:s,setValue:o,isLoaded:l}=y(u,{defaultValue:[]}),f=r(t=>s.includes(t),[s]),v=r(t=>{o(e=>e.includes(t)?e.filter(i=>i!==t):[...e,t])},[o]),F=r(t=>{o(e=>e.includes(t)?e:[...e,t])},[o]),d=r(t=>{o(e=>e.filter(i=>i!==t))},[o]),m=r(()=>{o([])},[o]),g=r(t=>s.includes(t.id),[s]);return{favorites:s,isFavorite:f,toggleFavorite:v,addFavorite:F,removeFavorite:d,clearFavorites:m,favoritesFilter:g,isLoaded:l}}export{V as useEntityFavorites};
@@ -1 +1 @@
1
- "use client";import{useMemo as e}from"react";import{useWatch as c}from"react-hook-form";import{evaluateFieldConditions as f}from"@donotdev/core";function u(o,r){const t=c({control:r}),s=e(()=>o.some(n=>n.config.conditions),[o]);return e(()=>{if(!s)return{};const n={};for(const i of o)i.config.conditions&&(n[i.name]=f(i.config.conditions,t));return n},[o,t,s])}export{u as useFieldConditions};
1
+ "use client";import{useMemo as r}from"react";import{useWatch as c}from"react-hook-form";import{evaluateFieldConditions as u}from"@donotdev/core";function d(o,s){const t=c({control:s}),e=r(()=>o.some(n=>n.config.conditions),[o]);return r(()=>{if(!e)return{};const n={};for(const i of o)i.config.conditions&&(n[i.name]=u(i.config.conditions,t));return n},[o,t,e])}export{d as useFieldConditions};
@@ -1 +1 @@
1
- {"version":3,"file":"useFileUpload.d.ts","sourceRoot":"","sources":["../../src/hooks/useFileUpload.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK9C,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,qCAAqC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,oCAAoC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KACnC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AA4DD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,QAAa,EACb,OAA0B,EAC1B,MAAW,EACX,WAAuB,EACvB,QAAQ,GACT,EAAE,oBAAoB;IAibnB,yCAAyC;;IAEzC,4CAA4C;yBAvGjC,IAAI,EAAE;IAyGjB,0BAA0B;qBAhCrB,MAAM;IAkCX,2CAA2C;;IAE3C,oCAAoC;;IAEpC,6BAA6B;;IAE7B,qDAAqD;;IAErD,sFAAsF;;EAGzF"}
1
+ {"version":3,"file":"useFileUpload.d.ts","sourceRoot":"","sources":["../../src/hooks/useFileUpload.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK9C,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,qCAAqC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,oCAAoC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KACnC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AA2ED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,QAAa,EACb,OAA0B,EAC1B,MAAW,EACX,WAAuB,EACvB,QAAQ,GACT,EAAE,oBAAoB;IA6cnB,yCAAyC;;IAEzC,4CAA4C;yBAtGjC,IAAI,EAAE;IAwGjB,0BAA0B;qBA/BrB,MAAM;IAiCX,2CAA2C;;IAE3C,oCAAoC;;IAEpC,6BAA6B;;IAE7B,qDAAqD;;IAErD,sFAAsF;;EAGzF"}
@@ -1 +1 @@
1
- "use client";import{useState as T,useCallback as v,useEffect as A,useRef as g,startTransition as q}from"react";import{handleError as C}from"@donotdev/core";import{useUploadContext as G}from"../contexts/UploadContext";import{useUploadStore as N}from"../stores/UploadStore";let P=0;function W(s){if(s){const u=s.split("/").pop()?.split("?")[0];if(u)return`file-${u}`}P+=1;const a=typeof performance<"u"?performance.now():Date.now(),p=Math.random().toString(36).slice(2,11);return`file-${P}-${a}-${p}`}function H(s){return URL.createObjectURL(s)}function k(s){s.startsWith("blob:")&&URL.revokeObjectURL(s)}function K(s,a,p){return a.length>0&&!a.some(u=>{if(u.endsWith("/*")){const U=u.slice(0,-2);return s.type.startsWith(U)}return s.type===u})?{valid:!1,error:`File type ${s.type} not accepted`}:s.size>p?{valid:!1,error:`File exceeds ${(p/1048576).toFixed(0)}MB limit`}:{valid:!0}}function Q({name:s,value:a,onChange:p,multiple:u=!1,maxFiles:U=10,maxSize:E=10*1024*1024,accept:b=[],storagePath:V="uploads",uploadFn:y}){const h=G(),w=!!h,[d,c]=T([]),R=g(!1),$=g(null),x=g(a),L=g([]),F=g(!1),M=g(null);A(()=>{if(R.current){R.current=!1;return}const l=a?JSON.stringify((Array.isArray(a)?a:[a]).map(n=>n.fullUrl).filter(Boolean)):null;l!==$.current&&($.current=l,x.current=a,q(()=>{if(a){const n=(Array.isArray(a)?a:[a]).filter(t=>t.fullUrl).map((t,r)=>({id:`${W(t.fullUrl)}-existing-${r}`,file:new File([],"existing"),previewURL:t.thumbUrl||t.fullUrl,progress:100,uploaded:t,error:null}));c(n)}else c([])}))},[a]),A(()=>{L.current=d},[d]),A(()=>{F.current&&(F.current=!1,M.current?.(d,!0))},[d]),A(()=>()=>{L.current.forEach(l=>k(l.previewURL))},[]);const f=v((l,n=!1)=>{const t=(n?l.filter(i=>!i.error):l.filter(i=>i.uploaded&&!i.error)).map(i=>i.uploaded?i.uploaded:n&&w?{fullUrl:i.previewURL,thumbUrl:i.previewURL}:null).filter(i=>i!==null);let r;u?r=t.length>0?t:null:r=t[0]||null;const e=x.current;(()=>{if(!r&&!e)return!1;if(!r||!e)return!0;if(u&&Array.isArray(r)&&Array.isArray(e)){if(r.length!==e.length)return!0;const i=r.map(m=>m.fullUrl).join(","),o=e.map(m=>m.fullUrl).join(",");return i!==o}return!u&&!Array.isArray(r)&&!Array.isArray(e)?r.fullUrl!==e.fullUrl:!0})()&&(R.current=!0,x.current=r,p(r))},[u,p,w]);M.current=f;const S=v(async()=>{if(!y)return;let l=[];if(c(t=>(l=t.filter(r=>!r.uploaded&&!r.error),l.length===0?t:t.map(r=>l.some(e=>e.id===r.id)?{...r,progress:0}:r))),l.length===0)return;const n=await Promise.allSettled(l.map(async t=>{try{const r=await y(t.file,e=>{c(i=>i.map(o=>o.id===t.id?{...o,progress:e}:o))});return{id:t.id,picture:r,error:null}}catch(r){const e=r instanceof Error?r.message:"Upload failed";return{id:t.id,picture:null,error:e}}}));c(t=>{const r=t.map(e=>{const i=n.find(o=>o.status==="fulfilled"&&o.value.id===e.id);if(i&&i.status==="fulfilled"){const o=i.value;return{...e,uploaded:o.picture,progress:o.picture?100:null,error:o.error}}return e});return f(r,!1),r})},[y,f]),j=g(S);j.current=S,A(()=>{if(!(!h||!s))return N.getState().registerUpload(h,s,async()=>{await j.current()},()=>L.current.some(l=>!l.uploaded&&!l.error)),()=>{N.getState().unregisterUpload(h,s)}},[h,s]);const O=v(async l=>{if(y){c(n=>n.map(t=>t.id===l.id?{...t,progress:0}:t));try{const n=await y(l.file,t=>{c(r=>r.map(e=>e.id===l.id?{...e,progress:t}:e))});c(t=>{const r=t.map(e=>e.id===l.id?{...e,uploaded:n,progress:100,error:null}:e);return f(r,!1),r})}catch(n){const t=n instanceof Error?n.message:"Upload failed";c(r=>r.map(e=>e.id===l.id?{...e,error:t,progress:null}:e))}}},[y,f]),z=v(l=>{c(n=>{const t=(u?U:1)-n.length;if(t<=0)return C(new Error("Maximum files reached"),{userMessage:u?`Maximum ${U} files allowed`:"Only one file allowed",severity:"warning",showNotification:!0}),n;const r=l.slice(0,t),e=[];for(const o of r){const m=K(o,b,E);if(!m.valid){C(new Error(m.error),{userMessage:m.error,severity:"warning",showNotification:!0});continue}e.push({id:W(),file:o,previewURL:H(o),progress:null,uploaded:null,error:null})}if(e.length===0)return n;const i=u?[...n,...e]:e;return w?F.current=!0:e.forEach(o=>O(o)),i})},[u,U,b,E,w,O,f]),B=v(l=>{c(n=>{const t=n.find(e=>e.id===l);t&&k(t.previewURL);const r=n.filter(e=>e.id!==l);return f(r,!1),r})},[f]),D=d.some(l=>!l.uploaded&&!l.error),I=d.some(l=>l.progress!==null&&l.progress<100),J=d.length>0?d.reduce((l,n)=>l+(n.progress??0),0)/d.length:0;return{files:d,addFiles:z,removeFile:B,hasPending:D,isUploading:I,progress:J,formId:h,isDeferred:w}}export{Q as useFileUpload};
1
+ "use client";import{useState as K,useCallback as E,useEffect as F,useRef as w,startTransition as Q}from"react";import{handleError as k}from"@donotdev/core";import{useUploadContext as X}from"../contexts/UploadContext";import{useUploadStore as B}from"../stores/UploadStore";let M=0;function T(i){if(i){const d=i.split("/").pop()?.split("?")[0];if(d)return`file-${d}`}M+=1;const u=typeof performance<"u"?performance.now():Date.now(),p=Math.random().toString(36).slice(2,11);return`file-${M}-${u}-${p}`}function Y(i){return URL.createObjectURL(i)}function V(i){i.startsWith("blob:")&&URL.revokeObjectURL(i)}function O(i,u){let p=0;return(...d)=>{const g=Date.now();g-p>=u&&(p=g,i(...d))}}function Z(i,u,p){return u.length>0&&!u.some(g=>{if(g.endsWith("/*")){const L=g.slice(0,-2);return i.type.startsWith(L)}return i.type===g})?{valid:!1,error:`File type ${i.type} not accepted`}:i.size>p?{valid:!1,error:`File exceeds ${(p/1048576).toFixed(0)}MB limit`}:{valid:!0}}function nr({name:i,value:u,onChange:p,multiple:d=!1,maxFiles:g=10,maxSize:L=10*1024*1024,accept:x=[],storagePath:_="uploads",uploadFn:y}){const R=X(),A=!!R,[m,f]=K([]),v=w(!1),C=w(null),P=w(u),S=w([]),b=w(new Set),$=w(!1),I=w(null);F(()=>{if(v.current){v.current=!1;return}const e=u?JSON.stringify((Array.isArray(u)?u:[u]).map(o=>o.fullUrl).filter(Boolean)):null;e!==C.current&&(C.current=e,P.current=u,Q(()=>{if(u){const a=(Array.isArray(u)?u:[u]).filter(s=>s.fullUrl).map((s,t)=>({id:`${T(s.fullUrl)}-existing-${t}`,file:new File([],"existing"),previewURL:s.thumbUrl||s.fullUrl,progress:100,uploaded:s,error:null}));f(a)}else f([])}))},[u]),F(()=>{S.current=m},[m]),F(()=>{$.current&&($.current=!1,I.current?.(m,!0))},[m]),F(()=>()=>{S.current.forEach(e=>V(e.previewURL))},[]);const U=E((e,o=!1)=>{const s=(o?e.filter(r=>!r.error):e.filter(r=>r.uploaded&&!r.error)).map(r=>r.uploaded?r.uploaded:o&&A?{fullUrl:r.previewURL,thumbUrl:r.previewURL}:null).filter(r=>r!==null);let t;d?t=s.length>0?s:null:t=s[0]||null;const n=P.current;(()=>{if(!t&&!n)return!1;if(!t||!n)return!0;if(d&&Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return!0;const r=t.map(h=>h.fullUrl).join(","),c=n.map(h=>h.fullUrl).join(",");return r!==c}return!d&&!Array.isArray(t)&&!Array.isArray(n)?t.fullUrl!==n.fullUrl:!0})()&&(v.current=!0,P.current=t,p(t))},[d,p,A]);I.current=U;const D=E(async e=>{if(!y||e?.aborted)return;let o=[];if(f(n=>(o=n.filter(l=>!l.uploaded&&!l.error),o.length===0?n:n.map(l=>o.some(r=>r.id===l.id)?{...l,progress:0}:l))),o.length===0)return;const a=O((n,l)=>{f(r=>r.map(c=>c.id===n?{...c,progress:l}:c))},100),s=await Promise.allSettled(o.map(async n=>{if(e?.aborted)throw new Error("Upload cancelled");try{const l=await y(n.file,r=>{a(n.id,r)});return{id:n.id,picture:l,error:null}}catch(l){const r=l instanceof Error?l.message:"Upload failed";return{id:n.id,picture:null,error:r}}}));let t=null;f(n=>{const l=n.map(r=>{if(b.current.has(r.id))return r;const c=s.find(h=>h.status==="fulfilled"&&h.value.id===r.id);if(c&&c.status==="fulfilled"){const h=c.value;return{...r,uploaded:h.picture,progress:h.picture?100:null,error:h.error}}return r}).filter(r=>!b.current.has(r.id));return t=l,l}),t&&U(t,!1)},[y,U]),N=w(D);N.current=D,F(()=>{if(!(!R||!i))return B.getState().registerUpload(R,i,async(e,o)=>{await N.current(o)},()=>S.current.some(e=>!e.uploaded&&!e.error)),()=>{B.getState().unregisterUpload(R,i)}},[R,i]);const j=E(async e=>{if(!y)return;f(a=>a.map(s=>s.id===e.id?{...s,progress:0}:s));const o=O(a=>{f(s=>s.map(t=>t.id===e.id?{...t,progress:a}:t))},100);try{const a=await y(e.file,t=>{o(t)});let s=null;f(t=>{const n=t.map(l=>l.id===e.id?{...l,uploaded:a,progress:100,error:null}:l);return s=n,n}),s&&U(s,!1)}catch(a){const s=a instanceof Error?a.message:"Upload failed";f(t=>t.map(n=>n.id===e.id?{...n,error:s,progress:null}:n))}},[y,U]),W=E(e=>{f(o=>{const s=(d?g:1)-o.length;if(s<=0)return k(new Error("Maximum files reached"),{userMessage:d?`Maximum ${g} files allowed`:"Only one file allowed",severity:"warning",showNotification:!0}),o;const t=e.slice(0,s),n=[];for(const r of t){const c=Z(r,x,L);if(!c.valid){k(new Error(c.error),{userMessage:c.error,severity:"warning",showNotification:!0});continue}n.push({id:T(),file:r,previewURL:Y(r),progress:null,uploaded:null,error:null})}if(n.length===0)return o;const l=d?[...o,...n]:n;return A?$.current=!0:n.forEach(r=>j(r)),l})},[d,g,x,L,A,j,U]),J=E(e=>{b.current.add(e),f(o=>{const a=o.find(t=>t.id===e);a&&V(a.previewURL);const s=o.filter(t=>t.id!==e);return U(s,!1),s})},[U]),q=m.some(e=>!e.uploaded&&!e.error),G=m.some(e=>e.progress!==null&&e.progress<100),H=m.length>0?m.reduce((e,o)=>e+(o.progress??0),0)/m.length:0;return{files:m,addFiles:W,removeFile:J,hasPending:q,isUploading:G,progress:H,formId:R,isDeferred:A}}export{nr as useFileUpload};
@@ -11,5 +11,5 @@ export type ReferenceData = Record<string, Record<string, string>>;
11
11
  * @param entity - The entity whose reference fields to resolve
12
12
  * @returns ReferenceData lookup map
13
13
  */
14
- export declare function useReferenceResolver(entity: Entity): ReferenceData;
14
+ export declare function useReferenceResolver(entity: Entity, enabled?: boolean): ReferenceData;
15
15
  //# sourceMappingURL=useReferenceResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReferenceResolver.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceResolver.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAgCnE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CA8DlE"}
1
+ {"version":3,"file":"useReferenceResolver.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceResolver.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAgCnE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,aAAa,CA8DlF"}
@@ -1 +1 @@
1
- "use client";import{useMemo as p}from"react";import{buildReferenceLabel as v}from"../components/controlled/select/ControlledReferenceField";import{useCrudList as c}from"../useCrudList";function R(t){const o=new Map;for(const i of Object.values(t.fields)){const e=i.validation?.reference;if(typeof e=="string"&&!o.has(e)){const l=i.options?.fieldSpecific;o.set(e,{collection:e,labelFields:l?.labelFields,displayField:l?.displayField})}}return Array.from(o.values())}function M(t){const o=p(()=>R(t),[t]),i=o[0],e=o[1],l=o[2],s=o[3],{items:d}=c(i?.collection??"__disabled_0__",{enabled:!!i}),{items:a}=c(e?.collection??"__disabled_1__",{enabled:!!e}),{items:f}=c(l?.collection??"__disabled_2__",{enabled:!!l}),{items:r}=c(s?.collection??"__disabled_3__",{enabled:!!s}),F=[{info:i,items:d},{info:e,items:a},{info:l,items:f},{info:s,items:r}];return p(()=>{const _={};for(const{info:n,items:m}of F){if(!n||!m.length)continue;const b={};for(const y of m){const u=y;b[u.id]=v(u,n.labelFields,n.displayField)}_[n.collection]=b}return _},[i?.collection,d,e?.collection,a,l?.collection,f,s?.collection,r])}export{M as useReferenceResolver};
1
+ "use client";import{useMemo as F}from"react";import{buildReferenceLabel as y}from"../components/controlled/select/ControlledReferenceField";import{useCrudList as f}from"../useCrudList";function g(l){const o=new Map;for(const i of Object.values(l.fields)){const e=i.validation?.reference;if(typeof e=="string"&&!o.has(e)){const t=i.options?.fieldSpecific;o.set(e,{collection:e,labelFields:t?.labelFields,displayField:t?.displayField})}}return Array.from(o.values())}function S(l,o=!0){const i=F(()=>g(l),[l]),e=i[0],t=i[1],s=i[2],c=i[3],{items:r}=f(e?.collection??"__disabled_0__",{enabled:o&&!!e}),{items:d}=f(t?.collection??"__disabled_1__",{enabled:o&&!!t}),{items:a}=f(s?.collection??"__disabled_2__",{enabled:o&&!!s}),{items:m}=f(c?.collection??"__disabled_3__",{enabled:o&&!!c}),R=[{info:e,items:r},{info:t,items:d},{info:s,items:a},{info:c,items:m}];return F(()=>{const _={};for(const{info:n,items:u}of R){if(!n||!u.length)continue;const p={};for(const v of u){const b=v;p[b.id]=y(b,n.labelFields,n.displayField)}_[n.collection]=p}return _},[e?.collection,r,t?.collection,d,s?.collection,a,c?.collection,m])}export{S as useReferenceResolver};
@@ -1,10 +1,12 @@
1
1
  import type { Entity } from '@donotdev/core';
2
+ /** Options for the {@link useRelatedItems} hook. */
2
3
  export interface UseRelatedItemsOptions {
3
4
  /** Maximum number of related items to return (default: 3) */
4
5
  limit?: number;
5
6
  /** Tolerance for numeric field matching as percentage (default: 0.2 = 20%) */
6
7
  tolerance?: number;
7
8
  }
9
+ /** Return type of the {@link useRelatedItems} hook. */
8
10
  export interface UseRelatedItemsReturn<T> {
9
11
  /** Array of related items */
10
12
  items: T[];
@@ -1 +1 @@
1
- {"version":3,"file":"useRelatedItems.d.ts","sourceRoot":"","sources":["../../src/hooks/useRelatedItems.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,6BAA6B;IAC7B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAAC,CAAC,CAAC,CAwD1B"}
1
+ {"version":3,"file":"useRelatedItems.d.ts","sourceRoot":"","sources":["../../src/hooks/useRelatedItems.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,oDAAoD;AACpD,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,6BAA6B;IAC7B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAAC,CAAC,CAAC,CAwD1B"}
@@ -1 +1 @@
1
- "use client";import{useMemo as p}from"react";function N(o,e,t,n,h={}){const{limit:a=3,tolerance:m=.2}=h,c=p(()=>{if(!e||!t||t.length===0||n.length===0)return[];const b=e.id;return t.filter(f=>f.id===b?!1:n.some(s=>{const r=o.fields[s];if(!r)return!1;const i=e[s],u=f[s];if(i==null||u==null)return!1;if(r.type==="number"||r.type==="range"||r.type==="year"){const l=Number(i),g=Number(u);if(isNaN(l)||isNaN(g))return!1;const d=Math.abs(l*m);return Math.abs(g-l)<=d}return String(i)===String(u)})).slice(0,a)},[e,t,n,o.fields,a,m]);return{items:c,hasItems:c.length>0}}export{N as useRelatedItems};
1
+ "use client";import{useMemo as N}from"react";function y(f,e,n,t,p={}){const{limit:l=3,tolerance:a=.2}=p,c=N(()=>{if(!e||!n||n.length===0||t.length===0)return[];const h=e.id;return n.filter(g=>g.id===h?!1:t.some(s=>{const r=f.fields[s];if(!r)return!1;const u=e[s],i=g[s];if(u==null||i==null)return!1;if(r.type==="number"||r.type==="range"||r.type==="year"){const o=Number(u),b=Number(i);if(isNaN(o)||isNaN(b))return!1;const m=Math.abs(o*a);return Math.abs(b-o)<=m}return String(u)===String(i)})).slice(0,l)},[e,n,t,f.fields,l,a]);return{items:c,hasItems:c.length>0}}export{y as useRelatedItems};
@@ -1 +1 @@
1
- "use client";import{useEffect as s}from"react";import{isClient as o}from"@donotdev/core";function u({isDirty:n,enabled:t=!0,message:e="You have unsaved changes. Are you sure you want to leave?"}){s(()=>{if(!t||!n||!o())return;const r=a=>(a.preventDefault(),a.returnValue=e,e);return window.addEventListener("beforeunload",r),()=>{window.removeEventListener("beforeunload",r)}},[n,t,e])}export{u as useUnsavedChangesWarning};
1
+ "use client";import{useEffect as u}from"react";import{isClient as a}from"@donotdev/core";function d({isDirty:n,enabled:r=!0,message:e="You have unsaved changes. Are you sure you want to leave?"}){u(()=>{if(!r||!n||!a())return;const o=t=>(t.preventDefault(),t.returnValue=e,e);return window.addEventListener("beforeunload",o),()=>{window.removeEventListener("beforeunload",o)}},[n,r,e])}export{d as useUnsavedChangesWarning};
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * @fileoverview CRUD package
3
3
  * @description CRUD operations and form components for DoNotDev framework
4
4
  *
5
- * @version 0.0.3
5
+ * @version 0.1.0
6
6
  * @since 0.0.1
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
@@ -30,8 +30,8 @@ export { useEntityForm, useEntityField, useController, isFieldEditable, getField
30
30
  export type { ViewerRole, RenderableField, GetFieldsForOperationOptions, EntityFieldsInput, SchemaOperation, ValidationIssue, ValidationResult, InferEntityData, InferEntityInput, InferEntityOutput, UseEntityFormOptions, EntityFormReturn, EntityFieldReturn, UseControllerProps, UseControllerReturn, ControllerRenderProps, ControllerFieldState, } from './forms';
31
31
  export { UploadProvider, useUploadContext } from './contexts';
32
32
  export type { UploadProviderProps } from './contexts';
33
- export { useFileUpload, useUnsavedChangesWarning, useEntityFavorites, useRelatedItems, useCrudFilters, useFieldConditions, useReferenceResolver, } from './hooks';
34
- export type { FileMetadata, UseFileUploadOptions, UseEntityFavoritesOptions, UseEntityFavoritesReturn, UseRelatedItemsOptions, UseRelatedItemsReturn, UseCrudFiltersOptions, UseCrudFiltersReturn, ReferenceData, } from './hooks';
33
+ export { useFileUpload, useUnsavedChangesWarning, useEntityFavorites, useRelatedItems, useCrudFilters, useCrudPageSize, useFieldConditions, useReferenceResolver, } from './hooks';
34
+ export type { FileMetadata, UseFileUploadOptions, UseEntityFavoritesOptions, UseEntityFavoritesReturn, UseRelatedItemsOptions, UseRelatedItemsReturn, UseCrudFiltersOptions, UseCrudFiltersReturn, UseCrudPageSizeOptions, UseCrudPageSizeReturn, ReferenceData, } from './hooks';
35
35
  export { isStorageUrl, validatePicture, checkForBlobUrls, hasBlobUrls, } from './utils/uploadValidation';
36
36
  export { defineWorkflow, useEntityWorkflow, saveWorkflowState, loadWorkflowState, clearWorkflowState, } from './workflows';
37
37
  export type { WorkflowConfig, WorkflowStep, WorkflowStepContext, UseEntityWorkflowOptions, EntityWorkflowReturn, PersistedWorkflowState, } from './workflows';
@@ -39,5 +39,5 @@ export { formatValue } from './components/DisplayFieldRenderer';
39
39
  export { buildReferenceLabel } from './components/controlled/select/ControlledReferenceField';
40
40
  export { matchesFilter } from './utils/matchesFilter';
41
41
  export { applyFilters, applySearch, applySort, getSearchableFields, } from './utils/clientListProcessing';
42
- export type { ClientSortConfig } from './utils/clientListProcessing';
42
+ export type { ClientSort, ClientSortConfig } from './utils/clientListProcessing';
43
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./useCrud";export*from"./useCrudList";export*from"./useCrudCardList";export*from"./components";export*from"./stores";import{FunctionsAdapter as e}from"./adapters/FunctionsAdapter";import{getCrudService as a}from"./CrudService";import{useCrudStore as s}from"./CrudStore";import{OPTIMISTIC_STATUSES as t,CRUD_OPERATION as r}from"./types";import{loadDeterministicRange as i,upsertDeterministic as l,appendToCollection as o}from"./utils/collections";import{getFieldRegistry as p,registerFieldType as d,isFieldTypeRegistered as n}from"./FieldRegistry";import{registerBuiltinFieldType as m,getFieldTypeMetadata as F,getFilterType as u,getDisplayFormatter as f,isFilterable as y,getValueType as g,clearFieldTypeRegistry as c}from"./fieldTypeRegistry";import{registerBuiltinFieldTypes as T}from"./builtinFieldTypes";import{useEntityForm as S,useEntityField as C,useController as R,isFieldEditable as b,getFieldsForOperation as U,validateEntity as v,translateFieldLabel as E,translateLabel as h}from"./forms";import{UploadProvider as k,useUploadContext as W}from"./contexts";import{useFileUpload as w,useUnsavedChangesWarning as I,useEntityFavorites as x,useRelatedItems as B,useCrudFilters as D,useFieldConditions as O,useReferenceResolver as P}from"./hooks";import{isStorageUrl as A,validatePicture as L,checkForBlobUrls as M,hasBlobUrls as V}from"./utils/uploadValidation";import{defineWorkflow as _,useEntityWorkflow as N,saveWorkflowState as j,loadWorkflowState as q,clearWorkflowState as z}from"./workflows";import{formatValue as H}from"./components/DisplayFieldRenderer";import{buildReferenceLabel as J}from"./components/controlled/select/ControlledReferenceField";import{matchesFilter as K}from"./utils/matchesFilter";import{applyFilters as Q,applySearch as X,applySort as Y,getSearchableFields as Z}from"./utils/clientListProcessing";export{r as CRUD_OPERATION,e as FunctionsAdapter,t as OPTIMISTIC_STATUSES,k as UploadProvider,o as appendToCollection,Q as applyFilters,X as applySearch,Y as applySort,J as buildReferenceLabel,M as checkForBlobUrls,c as clearFieldTypeRegistry,z as clearWorkflowState,_ as defineWorkflow,H as formatValue,a as getCrudService,f as getDisplayFormatter,p as getFieldRegistry,F as getFieldTypeMetadata,U as getFieldsForOperation,u as getFilterType,Z as getSearchableFields,g as getValueType,V as hasBlobUrls,b as isFieldEditable,n as isFieldTypeRegistered,y as isFilterable,A as isStorageUrl,i as loadDeterministicRange,q as loadWorkflowState,K as matchesFilter,m as registerBuiltinFieldType,T as registerBuiltinFieldTypes,d as registerFieldType,j as saveWorkflowState,E as translateFieldLabel,h as translateLabel,l as upsertDeterministic,R as useController,D as useCrudFilters,s as useCrudStore,x as useEntityFavorites,C as useEntityField,S as useEntityForm,N as useEntityWorkflow,O as useFieldConditions,w as useFileUpload,P as useReferenceResolver,B as useRelatedItems,I as useUnsavedChangesWarning,W as useUploadContext,v as validateEntity,L as validatePicture};
1
+ export*from"./useCrud";export*from"./useCrudList";export*from"./useCrudCardList";export*from"./components";export*from"./stores";import{FunctionsAdapter as s}from"./adapters/FunctionsAdapter";import{getCrudService as d}from"./CrudService";import{useCrudStore as m}from"./CrudStore";import{OPTIMISTIC_STATUSES as u,CRUD_OPERATION as F}from"./types";import{loadDeterministicRange as g,upsertDeterministic as y,appendToCollection as c}from"./utils/collections";import{getFieldRegistry as T,registerFieldType as C,isFieldTypeRegistered as R}from"./FieldRegistry";import{registerBuiltinFieldType as U,getFieldTypeMetadata as v,getFilterType as E,getDisplayFormatter as h,isFilterable as k,getValueType as W,clearFieldTypeRegistry as w}from"./fieldTypeRegistry";import{registerBuiltinFieldTypes as P}from"./builtinFieldTypes";import{useEntityForm as D,useEntityField as O,useController as A,isFieldEditable as L,getFieldsForOperation as M,validateEntity as V,translateFieldLabel as _,translateLabel as z}from"./forms";import{UploadProvider as j,useUploadContext as q}from"./contexts";import{useFileUpload as H,useUnsavedChangesWarning as J,useEntityFavorites as K,useRelatedItems as Q,useCrudFilters as X,useCrudPageSize as Y,useFieldConditions as Z,useReferenceResolver as $}from"./hooks";import{isStorageUrl as re,validatePicture as te,checkForBlobUrls as oe,hasBlobUrls as ie}from"./utils/uploadValidation";import{defineWorkflow as ae,useEntityWorkflow as se,saveWorkflowState as pe,loadWorkflowState as de,clearWorkflowState as fe}from"./workflows";import{formatValue as ne}from"./components/DisplayFieldRenderer";import{buildReferenceLabel as Fe}from"./components/controlled/select/ControlledReferenceField";import{matchesFilter as ge}from"./utils/matchesFilter";import{applyFilters as ce,applySearch as Se,applySort as Te,getSearchableFields as Ce}from"./utils/clientListProcessing";export{F as CRUD_OPERATION,s as FunctionsAdapter,u as OPTIMISTIC_STATUSES,j as UploadProvider,c as appendToCollection,ce as applyFilters,Se as applySearch,Te as applySort,Fe as buildReferenceLabel,oe as checkForBlobUrls,w as clearFieldTypeRegistry,fe as clearWorkflowState,ae as defineWorkflow,ne as formatValue,d as getCrudService,h as getDisplayFormatter,T as getFieldRegistry,v as getFieldTypeMetadata,M as getFieldsForOperation,E as getFilterType,Ce as getSearchableFields,W as getValueType,ie as hasBlobUrls,L as isFieldEditable,R as isFieldTypeRegistered,k as isFilterable,re as isStorageUrl,g as loadDeterministicRange,de as loadWorkflowState,ge as matchesFilter,U as registerBuiltinFieldType,P as registerBuiltinFieldTypes,C as registerFieldType,pe as saveWorkflowState,_ as translateFieldLabel,z as translateLabel,y as upsertDeterministic,A as useController,X as useCrudFilters,Y as useCrudPageSize,m as useCrudStore,K as useEntityFavorites,O as useEntityField,D as useEntityForm,se as useEntityWorkflow,Z as useFieldConditions,H as useFileUpload,$ as useReferenceResolver,Q as useRelatedItems,J as useUnsavedChangesWarning,q as useUploadContext,V as validateEntity,te as validatePicture};
@@ -1 +1 @@
1
- {"version":3,"file":"registerBuiltinFieldTypes.d.ts","sourceRoot":"","sources":["../src/registerBuiltinFieldTypes.tsx"],"names":[],"mappings":"AAgFA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;AA0zBnC;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAChD,aAAa,EAAE;IACb,iBAAiB,EAAE,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,GAAG,EACf,YAAY,CAAC,EAAE,GAAG,KACf,IAAI,CAAC;CACX,GACA,IAAI,CAuuBN"}
1
+ {"version":3,"file":"registerBuiltinFieldTypes.d.ts","sourceRoot":"","sources":["../src/registerBuiltinFieldTypes.tsx"],"names":[],"mappings":"AAgFA,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,2BAA2B,CAAC;AA2zBnC;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAChD,aAAa,EAAE;IACb,iBAAiB,EAAE,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,GAAG,EACf,YAAY,CAAC,EAAE,GAAG,KACf,IAAI,CAAC;CACX,GACA,IAAI,CAuuBN"}