@rchemist/listgrid 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +343 -0
  3. package/dist/adapters/next/NextListGridProvider.d.ts +5 -0
  4. package/dist/adapters/next/NextListGridProvider.js +7 -0
  5. package/dist/adapters/next/NextRouterAdapter.d.ts +2 -0
  6. package/dist/adapters/next/NextRouterAdapter.js +34 -0
  7. package/dist/adapters/next/NextUrlStateAdapter.d.ts +2 -0
  8. package/dist/adapters/next/NextUrlStateAdapter.js +31 -0
  9. package/dist/adapters/next/index.d.ts +4 -0
  10. package/dist/adapters/next/index.js +12 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +3 -0
  13. package/dist/listgrid/api/ApiClient.d.ts +20 -0
  14. package/dist/listgrid/api/ApiClient.js +32 -0
  15. package/dist/listgrid/api/index.d.ts +4 -0
  16. package/dist/listgrid/api/index.js +2 -0
  17. package/dist/listgrid/api/types.d.ts +21 -0
  18. package/dist/listgrid/api/types.js +30 -0
  19. package/dist/listgrid/auth/AuthContext.d.ts +12 -0
  20. package/dist/listgrid/auth/AuthContext.js +25 -0
  21. package/dist/listgrid/auth/SessionProvider.d.ts +4 -0
  22. package/dist/listgrid/auth/SessionProvider.js +16 -0
  23. package/dist/listgrid/auth/index.d.ts +6 -0
  24. package/dist/listgrid/auth/index.js +17 -0
  25. package/dist/listgrid/auth/types.d.ts +15 -0
  26. package/dist/listgrid/auth/types.js +12 -0
  27. package/dist/listgrid/common/func.d.ts +16 -0
  28. package/dist/listgrid/common/func.js +351 -0
  29. package/dist/listgrid/common/type.d.ts +35 -0
  30. package/dist/listgrid/common/type.js +46 -0
  31. package/dist/listgrid/components/api/ApiSpecificationButton.d.ts +5 -0
  32. package/dist/listgrid/components/api/ApiSpecificationButton.js +16 -0
  33. package/dist/listgrid/components/api/Type.d.ts +23 -0
  34. package/dist/listgrid/components/api/Type.js +8 -0
  35. package/dist/listgrid/components/api/ViewApiSpecification.d.ts +2 -0
  36. package/dist/listgrid/components/api/ViewApiSpecification.js +32 -0
  37. package/dist/listgrid/components/fields/ApplyFullAddressFields.d.ts +45 -0
  38. package/dist/listgrid/components/fields/ApplyFullAddressFields.js +177 -0
  39. package/dist/listgrid/components/fields/BirthdayField.d.ts +39 -0
  40. package/dist/listgrid/components/fields/BirthdayField.js +205 -0
  41. package/dist/listgrid/components/fields/BooleanField.d.ts +38 -0
  42. package/dist/listgrid/components/fields/BooleanField.js +141 -0
  43. package/dist/listgrid/components/fields/CheckboxField.d.ts +23 -0
  44. package/dist/listgrid/components/fields/CheckboxField.js +33 -0
  45. package/dist/listgrid/components/fields/ColorField.d.ts +18 -0
  46. package/dist/listgrid/components/fields/ColorField.js +63 -0
  47. package/dist/listgrid/components/fields/ColorPresetField.d.ts +19 -0
  48. package/dist/listgrid/components/fields/ColorPresetField.js +56 -0
  49. package/dist/listgrid/components/fields/CustomOptionField.d.ts +45 -0
  50. package/dist/listgrid/components/fields/CustomOptionField.js +176 -0
  51. package/dist/listgrid/components/fields/DateField.d.ts +34 -0
  52. package/dist/listgrid/components/fields/DateField.js +116 -0
  53. package/dist/listgrid/components/fields/DatetimeField.d.ts +29 -0
  54. package/dist/listgrid/components/fields/DatetimeField.js +93 -0
  55. package/dist/listgrid/components/fields/EmailField.d.ts +37 -0
  56. package/dist/listgrid/components/fields/EmailField.js +144 -0
  57. package/dist/listgrid/components/fields/FileField.d.ts +36 -0
  58. package/dist/listgrid/components/fields/FileField.js +157 -0
  59. package/dist/listgrid/components/fields/HtmlField.d.ts +24 -0
  60. package/dist/listgrid/components/fields/HtmlField.js +70 -0
  61. package/dist/listgrid/components/fields/ImageField.d.ts +34 -0
  62. package/dist/listgrid/components/fields/ImageField.js +125 -0
  63. package/dist/listgrid/components/fields/InlineMapField.d.ts +40 -0
  64. package/dist/listgrid/components/fields/InlineMapField.js +85 -0
  65. package/dist/listgrid/components/fields/LinkField.d.ts +26 -0
  66. package/dist/listgrid/components/fields/LinkField.js +61 -0
  67. package/dist/listgrid/components/fields/ManyToOneField.d.ts +80 -0
  68. package/dist/listgrid/components/fields/ManyToOneField.js +416 -0
  69. package/dist/listgrid/components/fields/MappedJoinField.d.ts +16 -0
  70. package/dist/listgrid/components/fields/MappedJoinField.js +29 -0
  71. package/dist/listgrid/components/fields/MarkdownField.d.ts +20 -0
  72. package/dist/listgrid/components/fields/MarkdownField.js +58 -0
  73. package/dist/listgrid/components/fields/MessageViewField.d.ts +20 -0
  74. package/dist/listgrid/components/fields/MessageViewField.js +27 -0
  75. package/dist/listgrid/components/fields/MonthField.d.ts +25 -0
  76. package/dist/listgrid/components/fields/MonthField.js +68 -0
  77. package/dist/listgrid/components/fields/MultiSelectField.d.ts +59 -0
  78. package/dist/listgrid/components/fields/MultiSelectField.js +74 -0
  79. package/dist/listgrid/components/fields/MultipleAssetField.d.ts +31 -0
  80. package/dist/listgrid/components/fields/MultipleAssetField.js +200 -0
  81. package/dist/listgrid/components/fields/NumberField.d.ts +54 -0
  82. package/dist/listgrid/components/fields/NumberField.js +216 -0
  83. package/dist/listgrid/components/fields/PasswordField.d.ts +23 -0
  84. package/dist/listgrid/components/fields/PasswordField.js +70 -0
  85. package/dist/listgrid/components/fields/PhoneNumberField.d.ts +39 -0
  86. package/dist/listgrid/components/fields/PhoneNumberField.js +91 -0
  87. package/dist/listgrid/components/fields/Preset.d.ts +68 -0
  88. package/dist/listgrid/components/fields/Preset.js +306 -0
  89. package/dist/listgrid/components/fields/ProfileField.d.ts +14 -0
  90. package/dist/listgrid/components/fields/ProfileField.js +25 -0
  91. package/dist/listgrid/components/fields/QrField.d.ts +21 -0
  92. package/dist/listgrid/components/fields/QrField.js +31 -0
  93. package/dist/listgrid/components/fields/RuleField.d.ts +11 -0
  94. package/dist/listgrid/components/fields/RuleField.js +24 -0
  95. package/dist/listgrid/components/fields/SelectField.d.ts +223 -0
  96. package/dist/listgrid/components/fields/SelectField.js +379 -0
  97. package/dist/listgrid/components/fields/SelectFieldRenderer.d.ts +35 -0
  98. package/dist/listgrid/components/fields/SelectFieldRenderer.js +363 -0
  99. package/dist/listgrid/components/fields/StatusChangeReasonModal.d.ts +18 -0
  100. package/dist/listgrid/components/fields/StatusChangeReasonModal.js +25 -0
  101. package/dist/listgrid/components/fields/StringField.d.ts +34 -0
  102. package/dist/listgrid/components/fields/StringField.js +131 -0
  103. package/dist/listgrid/components/fields/TagField.d.ts +35 -0
  104. package/dist/listgrid/components/fields/TagField.js +75 -0
  105. package/dist/listgrid/components/fields/TelephoneNumberField.d.ts +35 -0
  106. package/dist/listgrid/components/fields/TelephoneNumberField.js +121 -0
  107. package/dist/listgrid/components/fields/TextareaField.d.ts +27 -0
  108. package/dist/listgrid/components/fields/TextareaField.js +47 -0
  109. package/dist/listgrid/components/fields/TimeField.d.ts +21 -0
  110. package/dist/listgrid/components/fields/TimeField.js +40 -0
  111. package/dist/listgrid/components/fields/XrefAvailableDateMappingField.d.ts +22 -0
  112. package/dist/listgrid/components/fields/XrefAvailableDateMappingField.js +39 -0
  113. package/dist/listgrid/components/fields/XrefMappingField.d.ts +30 -0
  114. package/dist/listgrid/components/fields/XrefMappingField.js +59 -0
  115. package/dist/listgrid/components/fields/XrefPreferMappingField.d.ts +30 -0
  116. package/dist/listgrid/components/fields/XrefPreferMappingField.js +53 -0
  117. package/dist/listgrid/components/fields/XrefPriceMappingField.d.ts +33 -0
  118. package/dist/listgrid/components/fields/XrefPriceMappingField.js +56 -0
  119. package/dist/listgrid/components/fields/YearField.d.ts +32 -0
  120. package/dist/listgrid/components/fields/YearField.js +99 -0
  121. package/dist/listgrid/components/fields/abstract/AbstractDateField.d.ts +33 -0
  122. package/dist/listgrid/components/fields/abstract/AbstractDateField.js +61 -0
  123. package/dist/listgrid/components/fields/abstract/AbstractManyToOneField.d.ts +97 -0
  124. package/dist/listgrid/components/fields/abstract/AbstractManyToOneField.js +50 -0
  125. package/dist/listgrid/components/fields/abstract/CheckButtonValidationField.d.ts +22 -0
  126. package/dist/listgrid/components/fields/abstract/CheckButtonValidationField.js +92 -0
  127. package/dist/listgrid/components/fields/abstract/FormField.d.ts +250 -0
  128. package/dist/listgrid/components/fields/abstract/FormField.js +606 -0
  129. package/dist/listgrid/components/fields/abstract/ListableFormField.d.ts +140 -0
  130. package/dist/listgrid/components/fields/abstract/ListableFormField.js +285 -0
  131. package/dist/listgrid/components/fields/abstract/OptionalField.d.ts +96 -0
  132. package/dist/listgrid/components/fields/abstract/OptionalField.js +310 -0
  133. package/dist/listgrid/components/fields/abstract/index.d.ts +6 -0
  134. package/dist/listgrid/components/fields/abstract/index.js +12 -0
  135. package/dist/listgrid/components/fields/address/AddressFieldView.d.ts +9 -0
  136. package/dist/listgrid/components/fields/address/AddressFieldView.js +92 -0
  137. package/dist/listgrid/components/fields/address/AddressMapField.d.ts +33 -0
  138. package/dist/listgrid/components/fields/address/AddressMapField.js +49 -0
  139. package/dist/listgrid/components/fields/address/KakaoMap.d.ts +10 -0
  140. package/dist/listgrid/components/fields/address/KakaoMap.js +50 -0
  141. package/dist/listgrid/components/fields/address/PostCodeSelector.d.ts +9 -0
  142. package/dist/listgrid/components/fields/address/PostCodeSelector.js +125 -0
  143. package/dist/listgrid/components/fields/contentasset/ContentAssetField.d.ts +61 -0
  144. package/dist/listgrid/components/fields/contentasset/ContentAssetField.js +80 -0
  145. package/dist/listgrid/components/fields/contentasset/ContentAssetItem.d.ts +17 -0
  146. package/dist/listgrid/components/fields/contentasset/ContentAssetItem.js +67 -0
  147. package/dist/listgrid/components/fields/contentasset/components/AddContentDialog.d.ts +11 -0
  148. package/dist/listgrid/components/fields/contentasset/components/AddContentDialog.js +68 -0
  149. package/dist/listgrid/components/fields/contentasset/components/ContentAssetItemUI.d.ts +30 -0
  150. package/dist/listgrid/components/fields/contentasset/components/ContentAssetItemUI.js +38 -0
  151. package/dist/listgrid/components/fields/contentasset/hooks/useContentAsset.d.ts +36 -0
  152. package/dist/listgrid/components/fields/contentasset/hooks/useContentAsset.js +188 -0
  153. package/dist/listgrid/components/fields/contentasset/index.d.ts +2 -0
  154. package/dist/listgrid/components/fields/contentasset/index.js +1 -0
  155. package/dist/listgrid/components/fields/contentasset/types.d.ts +50 -0
  156. package/dist/listgrid/components/fields/contentasset/types.js +48 -0
  157. package/dist/listgrid/components/fields/filter/DatetimeFilter.d.ts +7 -0
  158. package/dist/listgrid/components/fields/filter/DatetimeFilter.js +46 -0
  159. package/dist/listgrid/components/fields/filter/NumberFilter.d.ts +7 -0
  160. package/dist/listgrid/components/fields/filter/NumberFilter.js +74 -0
  161. package/dist/listgrid/components/fields/rule/RuleBasedFieldView.d.ts +15 -0
  162. package/dist/listgrid/components/fields/rule/RuleBasedFieldView.js +351 -0
  163. package/dist/listgrid/components/fields/rule/RuleBasedSelector.d.ts +13 -0
  164. package/dist/listgrid/components/fields/rule/RuleBasedSelector.js +75 -0
  165. package/dist/listgrid/components/fields/rule/RuleCondition.d.ts +14 -0
  166. package/dist/listgrid/components/fields/rule/RuleCondition.js +173 -0
  167. package/dist/listgrid/components/fields/rule/RuleFieldRenderer.d.ts +7 -0
  168. package/dist/listgrid/components/fields/rule/RuleFieldRenderer.js +21 -0
  169. package/dist/listgrid/components/fields/rule/RuleFieldView.d.ts +7 -0
  170. package/dist/listgrid/components/fields/rule/RuleFieldView.js +28 -0
  171. package/dist/listgrid/components/fields/rule/Type.d.ts +54 -0
  172. package/dist/listgrid/components/fields/rule/Type.js +72 -0
  173. package/dist/listgrid/components/fields/view/CardManyToOneView.d.ts +93 -0
  174. package/dist/listgrid/components/fields/view/CardManyToOneView.js +409 -0
  175. package/dist/listgrid/components/fields/view/CopyableTextView.d.ts +11 -0
  176. package/dist/listgrid/components/fields/view/CopyableTextView.js +44 -0
  177. package/dist/listgrid/components/fields/view/DynamicSelectFieldView.d.ts +28 -0
  178. package/dist/listgrid/components/fields/view/DynamicSelectFieldView.js +119 -0
  179. package/dist/listgrid/components/fields/view/LinkFieldView.d.ts +14 -0
  180. package/dist/listgrid/components/fields/view/LinkFieldView.js +41 -0
  181. package/dist/listgrid/components/fields/view/ManyToOneListView.d.ts +8 -0
  182. package/dist/listgrid/components/fields/view/ManyToOneListView.js +25 -0
  183. package/dist/listgrid/components/fields/view/ManyToOneMultiFilterView.d.ts +12 -0
  184. package/dist/listgrid/components/fields/view/ManyToOneMultiFilterView.js +142 -0
  185. package/dist/listgrid/components/fields/view/ManyToOneView.d.ts +8 -0
  186. package/dist/listgrid/components/fields/view/ManyToOneView.js +322 -0
  187. package/dist/listgrid/components/fields/view/MultipleAssetUpload.d.ts +7 -0
  188. package/dist/listgrid/components/fields/view/MultipleAssetUpload.js +47 -0
  189. package/dist/listgrid/components/fields/view/PhoneNumberFieldView.d.ts +19 -0
  190. package/dist/listgrid/components/fields/view/PhoneNumberFieldView.js +82 -0
  191. package/dist/listgrid/components/fields/view/PhoneNumberListView.d.ts +9 -0
  192. package/dist/listgrid/components/fields/view/PhoneNumberListView.js +49 -0
  193. package/dist/listgrid/components/fields/view/SelectBoxManyToOneView.d.ts +47 -0
  194. package/dist/listgrid/components/fields/view/SelectBoxManyToOneView.js +286 -0
  195. package/dist/listgrid/components/fields/view/SmsModal.d.ts +6 -0
  196. package/dist/listgrid/components/fields/view/SmsModal.js +124 -0
  197. package/dist/listgrid/components/fields/view/TreeSelectView.d.ts +11 -0
  198. package/dist/listgrid/components/fields/view/TreeSelectView.js +118 -0
  199. package/dist/listgrid/components/fields/view/XrefAvailableDateMappingView.d.ts +19 -0
  200. package/dist/listgrid/components/fields/view/XrefAvailableDateMappingView.js +305 -0
  201. package/dist/listgrid/components/fields/view/XrefMappingView.d.ts +16 -0
  202. package/dist/listgrid/components/fields/view/XrefMappingView.js +173 -0
  203. package/dist/listgrid/components/fields/view/XrefPiceMappingView.d.ts +19 -0
  204. package/dist/listgrid/components/fields/view/XrefPiceMappingView.js +319 -0
  205. package/dist/listgrid/components/fields/view/XrefPreferMappingView.d.ts +19 -0
  206. package/dist/listgrid/components/fields/view/XrefPreferMappingView.js +261 -0
  207. package/dist/listgrid/components/fields/view/XrefPriorityMappingView.d.ts +19 -0
  208. package/dist/listgrid/components/fields/view/XrefPriorityMappingView.js +180 -0
  209. package/dist/listgrid/components/form/FieldRenderer.d.ts +23 -0
  210. package/dist/listgrid/components/form/FieldRenderer.js +292 -0
  211. package/dist/listgrid/components/form/SubCollectionRenderer.d.ts +22 -0
  212. package/dist/listgrid/components/form/SubCollectionRenderer.js +46 -0
  213. package/dist/listgrid/components/form/ViewEntityForm.d.ts +14 -0
  214. package/dist/listgrid/components/form/ViewEntityForm.js +124 -0
  215. package/dist/listgrid/components/form/ViewFieldGroup.d.ts +27 -0
  216. package/dist/listgrid/components/form/ViewFieldGroup.js +164 -0
  217. package/dist/listgrid/components/form/ViewTab.d.ts +24 -0
  218. package/dist/listgrid/components/form/ViewTab.js +68 -0
  219. package/dist/listgrid/components/form/ViewTabPanel.d.ts +14 -0
  220. package/dist/listgrid/components/form/ViewTabPanel.js +32 -0
  221. package/dist/listgrid/components/form/context/EntityFormThemeContext.d.ts +52 -0
  222. package/dist/listgrid/components/form/context/EntityFormThemeContext.js +129 -0
  223. package/dist/listgrid/components/form/context/index.d.ts +1 -0
  224. package/dist/listgrid/components/form/context/index.js +1 -0
  225. package/dist/listgrid/components/form/hooks/useAlertManager.d.ts +12 -0
  226. package/dist/listgrid/components/form/hooks/useAlertManager.js +103 -0
  227. package/dist/listgrid/components/form/hooks/useEntityFormAutoSave.d.ts +23 -0
  228. package/dist/listgrid/components/form/hooks/useEntityFormAutoSave.js +145 -0
  229. package/dist/listgrid/components/form/hooks/useEntityFormInitializer.d.ts +24 -0
  230. package/dist/listgrid/components/form/hooks/useEntityFormInitializer.js +109 -0
  231. package/dist/listgrid/components/form/hooks/useEntityFormLogic.d.ts +63 -0
  232. package/dist/listgrid/components/form/hooks/useEntityFormLogic.js +513 -0
  233. package/dist/listgrid/components/form/hooks/useEntityFormSave.d.ts +28 -0
  234. package/dist/listgrid/components/form/hooks/useEntityFormSave.js +89 -0
  235. package/dist/listgrid/components/form/hooks/useEntityFormTitle.d.ts +12 -0
  236. package/dist/listgrid/components/form/hooks/useEntityFormTitle.js +53 -0
  237. package/dist/listgrid/components/form/themes/defaultTheme.d.ts +11 -0
  238. package/dist/listgrid/components/form/themes/defaultTheme.js +129 -0
  239. package/dist/listgrid/components/form/themes/index.d.ts +1 -0
  240. package/dist/listgrid/components/form/themes/index.js +1 -0
  241. package/dist/listgrid/components/form/types/ViewEntityForm.types.d.ts +169 -0
  242. package/dist/listgrid/components/form/types/ViewEntityForm.types.js +1 -0
  243. package/dist/listgrid/components/form/types/ViewEntityFormAlerts.types.d.ts +26 -0
  244. package/dist/listgrid/components/form/types/ViewEntityFormAlerts.types.js +1 -0
  245. package/dist/listgrid/components/form/types/ViewEntityFormButtons.types.d.ts +49 -0
  246. package/dist/listgrid/components/form/types/ViewEntityFormButtons.types.js +1 -0
  247. package/dist/listgrid/components/form/types/ViewEntityFormTheme.types.d.ts +518 -0
  248. package/dist/listgrid/components/form/types/ViewEntityFormTheme.types.js +1 -0
  249. package/dist/listgrid/components/form/ui/AlertItem.d.ts +7 -0
  250. package/dist/listgrid/components/form/ui/AlertItem.js +18 -0
  251. package/dist/listgrid/components/form/ui/CreateStepButtons.d.ts +25 -0
  252. package/dist/listgrid/components/form/ui/CreateStepButtons.js +18 -0
  253. package/dist/listgrid/components/form/ui/CreateStepView.d.ts +39 -0
  254. package/dist/listgrid/components/form/ui/CreateStepView.js +50 -0
  255. package/dist/listgrid/components/form/ui/ViewEntityError.d.ts +13 -0
  256. package/dist/listgrid/components/form/ui/ViewEntityError.js +90 -0
  257. package/dist/listgrid/components/form/ui/ViewEntityFormAlerts.d.ts +3 -0
  258. package/dist/listgrid/components/form/ui/ViewEntityFormAlerts.js +24 -0
  259. package/dist/listgrid/components/form/ui/ViewEntityFormButtons.d.ts +24 -0
  260. package/dist/listgrid/components/form/ui/ViewEntityFormButtons.js +208 -0
  261. package/dist/listgrid/components/form/ui/ViewEntityFormErrors.d.ts +25 -0
  262. package/dist/listgrid/components/form/ui/ViewEntityFormErrors.js +9 -0
  263. package/dist/listgrid/components/form/ui/ViewEntityFormFields.d.ts +38 -0
  264. package/dist/listgrid/components/form/ui/ViewEntityFormFields.js +25 -0
  265. package/dist/listgrid/components/form/ui/ViewEntityFormSkeleton.d.ts +16 -0
  266. package/dist/listgrid/components/form/ui/ViewEntityFormSkeleton.js +79 -0
  267. package/dist/listgrid/components/form/ui/ViewEntityFormTitle.d.ts +15 -0
  268. package/dist/listgrid/components/form/ui/ViewEntityFormTitle.js +21 -0
  269. package/dist/listgrid/components/form/ui/ViewFieldError.d.ts +5 -0
  270. package/dist/listgrid/components/form/ui/ViewFieldError.js +12 -0
  271. package/dist/listgrid/components/form/ui/ViewHelpIcon.d.ts +5 -0
  272. package/dist/listgrid/components/form/ui/ViewHelpIcon.js +13 -0
  273. package/dist/listgrid/components/form/ui/ViewHelpText.d.ts +5 -0
  274. package/dist/listgrid/components/form/ui/ViewHelpText.js +10 -0
  275. package/dist/listgrid/components/form/ui/buttons/ClosePopupButton.d.ts +8 -0
  276. package/dist/listgrid/components/form/ui/buttons/ClosePopupButton.js +32 -0
  277. package/dist/listgrid/components/form/ui/buttons/DeleteButton.d.ts +2 -0
  278. package/dist/listgrid/components/form/ui/buttons/DeleteButton.js +101 -0
  279. package/dist/listgrid/components/form/ui/buttons/ListButton.d.ts +2 -0
  280. package/dist/listgrid/components/form/ui/buttons/ListButton.js +55 -0
  281. package/dist/listgrid/components/form/ui/buttons/SaveButton.d.ts +2 -0
  282. package/dist/listgrid/components/form/ui/buttons/SaveButton.js +55 -0
  283. package/dist/listgrid/components/helper/FieldRendererHelper.d.ts +23 -0
  284. package/dist/listgrid/components/helper/FieldRendererHelper.js +27 -0
  285. package/dist/listgrid/components/helper/ShowNotifications.d.ts +13 -0
  286. package/dist/listgrid/components/helper/ShowNotifications.js +58 -0
  287. package/dist/listgrid/components/list/AdvancedSearchForm.d.ts +17 -0
  288. package/dist/listgrid/components/list/AdvancedSearchForm.js +113 -0
  289. package/dist/listgrid/components/list/AdvancedSearchFormV2.d.ts +19 -0
  290. package/dist/listgrid/components/list/AdvancedSearchFormV2.js +347 -0
  291. package/dist/listgrid/components/list/ListGridHeader.d.ts +2 -0
  292. package/dist/listgrid/components/list/ListGridHeader.js +21 -0
  293. package/dist/listgrid/components/list/QuickSearchBar.d.ts +22 -0
  294. package/dist/listgrid/components/list/QuickSearchBar.js +17 -0
  295. package/dist/listgrid/components/list/RowItem.d.ts +2 -0
  296. package/dist/listgrid/components/list/RowItem.js +70 -0
  297. package/dist/listgrid/components/list/SubCollectionButtons.d.ts +2 -0
  298. package/dist/listgrid/components/list/SubCollectionButtons.js +36 -0
  299. package/dist/listgrid/components/list/ViewFieldSelector.d.ts +10 -0
  300. package/dist/listgrid/components/list/ViewFieldSelector.js +48 -0
  301. package/dist/listgrid/components/list/ViewListGrid.d.ts +2 -0
  302. package/dist/listgrid/components/list/ViewListGrid.js +359 -0
  303. package/dist/listgrid/components/list/context/EntityFormScopeContext.d.ts +39 -0
  304. package/dist/listgrid/components/list/context/EntityFormScopeContext.js +75 -0
  305. package/dist/listgrid/components/list/context/ListGridThemeContext.d.ts +70 -0
  306. package/dist/listgrid/components/list/context/ListGridThemeContext.js +157 -0
  307. package/dist/listgrid/components/list/context/index.d.ts +2 -0
  308. package/dist/listgrid/components/list/context/index.js +1 -0
  309. package/dist/listgrid/components/list/hooks/searchFormUrlSync.d.ts +42 -0
  310. package/dist/listgrid/components/list/hooks/searchFormUrlSync.js +212 -0
  311. package/dist/listgrid/components/list/hooks/urlStateParsers.d.ts +63 -0
  312. package/dist/listgrid/components/list/hooks/urlStateParsers.js +241 -0
  313. package/dist/listgrid/components/list/hooks/useCardSubCollectionData.d.ts +34 -0
  314. package/dist/listgrid/components/list/hooks/useCardSubCollectionData.js +181 -0
  315. package/dist/listgrid/components/list/hooks/useListGridHeader.d.ts +6 -0
  316. package/dist/listgrid/components/list/hooks/useListGridHeader.js +92 -0
  317. package/dist/listgrid/components/list/hooks/useListGridLogic.d.ts +2 -0
  318. package/dist/listgrid/components/list/hooks/useListGridLogic.js +625 -0
  319. package/dist/listgrid/components/list/hooks/useListGridUrlState.d.ts +45 -0
  320. package/dist/listgrid/components/list/hooks/useListGridUrlState.js +131 -0
  321. package/dist/listgrid/components/list/hooks/useQuickSearchBar.d.ts +22 -0
  322. package/dist/listgrid/components/list/hooks/useQuickSearchBar.js +104 -0
  323. package/dist/listgrid/components/list/hooks/useSubCollectionExpansion.d.ts +21 -0
  324. package/dist/listgrid/components/list/hooks/useSubCollectionExpansion.js +62 -0
  325. package/dist/listgrid/components/list/themes/defaultListGridTheme.d.ts +14 -0
  326. package/dist/listgrid/components/list/themes/defaultListGridTheme.js +169 -0
  327. package/dist/listgrid/components/list/themes/index.d.ts +4 -0
  328. package/dist/listgrid/components/list/themes/index.js +4 -0
  329. package/dist/listgrid/components/list/themes/variants/mainTheme.d.ts +8 -0
  330. package/dist/listgrid/components/list/themes/variants/mainTheme.js +37 -0
  331. package/dist/listgrid/components/list/themes/variants/modalTheme.d.ts +8 -0
  332. package/dist/listgrid/components/list/themes/variants/modalTheme.js +47 -0
  333. package/dist/listgrid/components/list/themes/variants/subCollectionTheme.d.ts +8 -0
  334. package/dist/listgrid/components/list/themes/variants/subCollectionTheme.js +101 -0
  335. package/dist/listgrid/components/list/types/ListGridHeader.types.d.ts +35 -0
  336. package/dist/listgrid/components/list/types/ListGridHeader.types.js +3 -0
  337. package/dist/listgrid/components/list/types/RowItem.types.d.ts +57 -0
  338. package/dist/listgrid/components/list/types/RowItem.types.js +1 -0
  339. package/dist/listgrid/components/list/types/SubCollectionButtons.type.d.ts +29 -0
  340. package/dist/listgrid/components/list/types/SubCollectionButtons.type.js +1 -0
  341. package/dist/listgrid/components/list/types/ViewListGrid.types.d.ts +152 -0
  342. package/dist/listgrid/components/list/types/ViewListGrid.types.js +2 -0
  343. package/dist/listgrid/components/list/types/ViewListGridTheme.types.d.ts +374 -0
  344. package/dist/listgrid/components/list/types/ViewListGridTheme.types.js +1 -0
  345. package/dist/listgrid/components/list/ui/CardFieldRenderer.d.ts +31 -0
  346. package/dist/listgrid/components/list/ui/CardFieldRenderer.js +71 -0
  347. package/dist/listgrid/components/list/ui/CardFieldSection.d.ts +27 -0
  348. package/dist/listgrid/components/list/ui/CardFieldSection.js +108 -0
  349. package/dist/listgrid/components/list/ui/CardItem.d.ts +28 -0
  350. package/dist/listgrid/components/list/ui/CardItem.js +376 -0
  351. package/dist/listgrid/components/list/ui/CardSubCollectionModal.d.ts +38 -0
  352. package/dist/listgrid/components/list/ui/CardSubCollectionModal.js +80 -0
  353. package/dist/listgrid/components/list/ui/CardSubCollectionView.d.ts +44 -0
  354. package/dist/listgrid/components/list/ui/CardSubCollectionView.js +238 -0
  355. package/dist/listgrid/components/list/ui/DataTransferModal.d.ts +12 -0
  356. package/dist/listgrid/components/list/ui/DataTransferModal.js +10 -0
  357. package/dist/listgrid/components/list/ui/EntireChecker.d.ts +11 -0
  358. package/dist/listgrid/components/list/ui/EntireChecker.js +46 -0
  359. package/dist/listgrid/components/list/ui/FieldSelector.d.ts +11 -0
  360. package/dist/listgrid/components/list/ui/FieldSelector.js +40 -0
  361. package/dist/listgrid/components/list/ui/FilterButton.d.ts +7 -0
  362. package/dist/listgrid/components/list/ui/FilterButton.js +5 -0
  363. package/dist/listgrid/components/list/ui/FilterDropdown.d.ts +15 -0
  364. package/dist/listgrid/components/list/ui/FilterDropdown.js +106 -0
  365. package/dist/listgrid/components/list/ui/FilterView.d.ts +12 -0
  366. package/dist/listgrid/components/list/ui/FilterView.js +22 -0
  367. package/dist/listgrid/components/list/ui/HeaderActionButtons.d.ts +10 -0
  368. package/dist/listgrid/components/list/ui/HeaderActionButtons.js +39 -0
  369. package/dist/listgrid/components/list/ui/HeaderField.d.ts +19 -0
  370. package/dist/listgrid/components/list/ui/HeaderField.js +32 -0
  371. package/dist/listgrid/components/list/ui/HeaderFieldFilter.d.ts +14 -0
  372. package/dist/listgrid/components/list/ui/HeaderFieldFilter.js +166 -0
  373. package/dist/listgrid/components/list/ui/HeaderTitle.d.ts +4 -0
  374. package/dist/listgrid/components/list/ui/HeaderTitle.js +13 -0
  375. package/dist/listgrid/components/list/ui/InlineSubCollectionView.d.ts +30 -0
  376. package/dist/listgrid/components/list/ui/InlineSubCollectionView.js +260 -0
  377. package/dist/listgrid/components/list/ui/MemoizedFilterField.d.ts +14 -0
  378. package/dist/listgrid/components/list/ui/MemoizedFilterField.js +67 -0
  379. package/dist/listgrid/components/list/ui/QuickSearchInput.d.ts +9 -0
  380. package/dist/listgrid/components/list/ui/QuickSearchInput.js +17 -0
  381. package/dist/listgrid/components/list/ui/SearchBarActions.d.ts +19 -0
  382. package/dist/listgrid/components/list/ui/SearchBarActions.js +39 -0
  383. package/dist/listgrid/components/list/ui/SortField.d.ts +8 -0
  384. package/dist/listgrid/components/list/ui/SortField.js +42 -0
  385. package/dist/listgrid/components/list/ui/SubCollectionInlineView.d.ts +23 -0
  386. package/dist/listgrid/components/list/ui/SubCollectionInlineView.js +47 -0
  387. package/dist/listgrid/components/list/ui/SubCollectionModal.d.ts +15 -0
  388. package/dist/listgrid/components/list/ui/SubCollectionModal.js +34 -0
  389. package/dist/listgrid/components/list/ui/SubCollectionViewModal.d.ts +13 -0
  390. package/dist/listgrid/components/list/ui/SubCollectionViewModal.js +33 -0
  391. package/dist/listgrid/components/list/ui/SyncTopScrollbar.d.ts +18 -0
  392. package/dist/listgrid/components/list/ui/SyncTopScrollbar.js +91 -0
  393. package/dist/listgrid/components/list/ui/TableSubCollectionView.d.ts +25 -0
  394. package/dist/listgrid/components/list/ui/TableSubCollectionView.js +213 -0
  395. package/dist/listgrid/components/list/ui/ViewColumn.d.ts +2 -0
  396. package/dist/listgrid/components/list/ui/ViewColumn.js +56 -0
  397. package/dist/listgrid/components/list/ui/ViewListGridSkeleton.d.ts +20 -0
  398. package/dist/listgrid/components/list/ui/ViewListGridSkeleton.js +82 -0
  399. package/dist/listgrid/components/list/ui/ViewRows.d.ts +15 -0
  400. package/dist/listgrid/components/list/ui/ViewRows.js +283 -0
  401. package/dist/listgrid/components/list/ui/buttons/CacheClearButton.d.ts +9 -0
  402. package/dist/listgrid/components/list/ui/buttons/CacheClearButton.js +35 -0
  403. package/dist/listgrid/components/list/ui/buttons/CreateButton.d.ts +13 -0
  404. package/dist/listgrid/components/list/ui/buttons/CreateButton.js +13 -0
  405. package/dist/listgrid/components/list/ui/buttons/PriorityButton.d.ts +11 -0
  406. package/dist/listgrid/components/list/ui/buttons/PriorityButton.js +49 -0
  407. package/dist/listgrid/components/list/ui/headerFilterStore.d.ts +8 -0
  408. package/dist/listgrid/components/list/ui/headerFilterStore.js +13 -0
  409. package/dist/listgrid/components/list/utils/mappedByFieldFilter.d.ts +21 -0
  410. package/dist/listgrid/components/list/utils/mappedByFieldFilter.js +54 -0
  411. package/dist/listgrid/components/list/utils/performanceLogger.d.ts +48 -0
  412. package/dist/listgrid/components/list/utils/performanceLogger.js +67 -0
  413. package/dist/listgrid/components/revision/RevisionField.d.ts +13 -0
  414. package/dist/listgrid/components/revision/RevisionField.js +194 -0
  415. package/dist/listgrid/config/AdvancedSearchOpenCache.d.ts +3 -0
  416. package/dist/listgrid/config/AdvancedSearchOpenCache.js +48 -0
  417. package/dist/listgrid/config/CardSubCollectionField.d.ts +133 -0
  418. package/dist/listgrid/config/CardSubCollectionField.js +164 -0
  419. package/dist/listgrid/config/CommonType.d.ts +4 -0
  420. package/dist/listgrid/config/CommonType.js +15 -0
  421. package/dist/listgrid/config/Config.d.ts +251 -0
  422. package/dist/listgrid/config/Config.js +299 -0
  423. package/dist/listgrid/config/EntityField.d.ts +148 -0
  424. package/dist/listgrid/config/EntityField.js +1 -0
  425. package/dist/listgrid/config/EntityFieldGroup.d.ts +37 -0
  426. package/dist/listgrid/config/EntityFieldGroup.js +55 -0
  427. package/dist/listgrid/config/EntityForm.d.ts +101 -0
  428. package/dist/listgrid/config/EntityForm.js +859 -0
  429. package/dist/listgrid/config/EntityFormButton.d.ts +56 -0
  430. package/dist/listgrid/config/EntityFormButton.js +42 -0
  431. package/dist/listgrid/config/EntityFormMethod.d.ts +32 -0
  432. package/dist/listgrid/config/EntityFormMethod.js +152 -0
  433. package/dist/listgrid/config/EntityFormTypes.d.ts +62 -0
  434. package/dist/listgrid/config/EntityFormTypes.js +1 -0
  435. package/dist/listgrid/config/EntityItem.d.ts +86 -0
  436. package/dist/listgrid/config/EntityItem.js +1 -0
  437. package/dist/listgrid/config/EntityTab.d.ts +26 -0
  438. package/dist/listgrid/config/EntityTab.js +68 -0
  439. package/dist/listgrid/config/InlineSubCollectionField.d.ts +184 -0
  440. package/dist/listgrid/config/InlineSubCollectionField.js +194 -0
  441. package/dist/listgrid/config/ListGrid.d.ts +56 -0
  442. package/dist/listgrid/config/ListGrid.js +183 -0
  443. package/dist/listgrid/config/ListGridViewFieldCache.d.ts +3 -0
  444. package/dist/listgrid/config/ListGridViewFieldCache.js +53 -0
  445. package/dist/listgrid/config/OnChangeEntityForm.d.ts +43 -0
  446. package/dist/listgrid/config/OnChangeEntityForm.js +266 -0
  447. package/dist/listgrid/config/RuntimeConfig.d.ts +18 -0
  448. package/dist/listgrid/config/RuntimeConfig.js +22 -0
  449. package/dist/listgrid/config/SubCollectionField.d.ts +119 -0
  450. package/dist/listgrid/config/SubCollectionField.js +241 -0
  451. package/dist/listgrid/config/TableSubCollectionField.d.ts +66 -0
  452. package/dist/listgrid/config/TableSubCollectionField.js +132 -0
  453. package/dist/listgrid/config/form/EntityFormActions.d.ts +69 -0
  454. package/dist/listgrid/config/form/EntityFormActions.js +459 -0
  455. package/dist/listgrid/config/form/EntityFormBase.d.ts +204 -0
  456. package/dist/listgrid/config/form/EntityFormBase.js +526 -0
  457. package/dist/listgrid/config/form/EntityFormData.d.ts +32 -0
  458. package/dist/listgrid/config/form/EntityFormData.js +184 -0
  459. package/dist/listgrid/config/form/EntityFormExtensions.d.ts +37 -0
  460. package/dist/listgrid/config/form/EntityFormExtensions.js +105 -0
  461. package/dist/listgrid/config/form/EntityFormValidation.d.ts +28 -0
  462. package/dist/listgrid/config/form/EntityFormValidation.js +128 -0
  463. package/dist/listgrid/extensions/EntityFormExtension.types.d.ts +52 -0
  464. package/dist/listgrid/extensions/EntityFormExtension.types.js +19 -0
  465. package/dist/listgrid/extensions/FieldExtensions.d.ts +5 -0
  466. package/dist/listgrid/extensions/FieldExtensions.js +21 -0
  467. package/dist/listgrid/form/SearchForm.d.ts +153 -0
  468. package/dist/listgrid/form/SearchForm.js +689 -0
  469. package/dist/listgrid/form/TagsInput/types.d.ts +133 -0
  470. package/dist/listgrid/form/TagsInput/types.js +1 -0
  471. package/dist/listgrid/form/Type.d.ts +50 -0
  472. package/dist/listgrid/form/Type.js +95 -0
  473. package/dist/listgrid/index.d.ts +205 -0
  474. package/dist/listgrid/index.js +244 -0
  475. package/dist/listgrid/loading/index.d.ts +6 -0
  476. package/dist/listgrid/loading/index.js +17 -0
  477. package/dist/listgrid/menu/MenuPermissionChecker.d.ts +15 -0
  478. package/dist/listgrid/menu/MenuPermissionChecker.js +15 -0
  479. package/dist/listgrid/menu/index.d.ts +1 -0
  480. package/dist/listgrid/menu/index.js +1 -0
  481. package/dist/listgrid/message/MessageProvider.d.ts +19 -0
  482. package/dist/listgrid/message/MessageProvider.js +62 -0
  483. package/dist/listgrid/message/index.d.ts +1 -0
  484. package/dist/listgrid/message/index.js +1 -0
  485. package/dist/listgrid/misc/index.d.ts +64 -0
  486. package/dist/listgrid/misc/index.js +478 -0
  487. package/dist/listgrid/router/RouterProvider.d.ts +12 -0
  488. package/dist/listgrid/router/RouterProvider.js +34 -0
  489. package/dist/listgrid/router/index.d.ts +3 -0
  490. package/dist/listgrid/router/index.js +1 -0
  491. package/dist/listgrid/router/types.d.ts +34 -0
  492. package/dist/listgrid/router/types.js +6 -0
  493. package/dist/listgrid/store/index.d.ts +24 -0
  494. package/dist/listgrid/store/index.js +40 -0
  495. package/dist/listgrid/transfer/DataExportProcessor.d.ts +18 -0
  496. package/dist/listgrid/transfer/DataExportProcessor.js +102 -0
  497. package/dist/listgrid/transfer/DataExportService.d.ts +37 -0
  498. package/dist/listgrid/transfer/DataExportService.js +225 -0
  499. package/dist/listgrid/transfer/DataExporter.d.ts +10 -0
  500. package/dist/listgrid/transfer/DataExporter.js +85 -0
  501. package/dist/listgrid/transfer/DataImportDescription.d.ts +8 -0
  502. package/dist/listgrid/transfer/DataImportDescription.js +18 -0
  503. package/dist/listgrid/transfer/DataImportProcessor.d.ts +24 -0
  504. package/dist/listgrid/transfer/DataImportProcessor.js +59 -0
  505. package/dist/listgrid/transfer/DataImportResultView.d.ts +13 -0
  506. package/dist/listgrid/transfer/DataImportResultView.js +64 -0
  507. package/dist/listgrid/transfer/DataImportSample.d.ts +10 -0
  508. package/dist/listgrid/transfer/DataImportSample.js +105 -0
  509. package/dist/listgrid/transfer/DataImporter.d.ts +8 -0
  510. package/dist/listgrid/transfer/DataImporter.js +335 -0
  511. package/dist/listgrid/transfer/DynamicDataImporter.d.ts +4 -0
  512. package/dist/listgrid/transfer/DynamicDataImporter.js +13 -0
  513. package/dist/listgrid/transfer/ExcelPasswordField.d.ts +9 -0
  514. package/dist/listgrid/transfer/ExcelPasswordField.js +23 -0
  515. package/dist/listgrid/transfer/Provider/ExcelProvider.d.ts +24 -0
  516. package/dist/listgrid/transfer/Provider/ExcelProvider.js +194 -0
  517. package/dist/listgrid/transfer/Type.d.ts +176 -0
  518. package/dist/listgrid/transfer/Type.js +568 -0
  519. package/dist/listgrid/ui/GlobalModalManager.d.ts +22 -0
  520. package/dist/listgrid/ui/GlobalModalManager.js +65 -0
  521. package/dist/listgrid/ui/UIProvider.d.ts +151 -0
  522. package/dist/listgrid/ui/UIProvider.js +292 -0
  523. package/dist/listgrid/ui/index.d.ts +2 -0
  524. package/dist/listgrid/ui/index.js +2 -0
  525. package/dist/listgrid/urlState/UrlStateProvider.d.ts +8 -0
  526. package/dist/listgrid/urlState/UrlStateProvider.js +20 -0
  527. package/dist/listgrid/urlState/index.d.ts +4 -0
  528. package/dist/listgrid/urlState/index.js +2 -0
  529. package/dist/listgrid/urlState/types.d.ts +21 -0
  530. package/dist/listgrid/urlState/types.js +14 -0
  531. package/dist/listgrid/utils/BooleanUtil.d.ts +1 -0
  532. package/dist/listgrid/utils/BooleanUtil.js +9 -0
  533. package/dist/listgrid/utils/CompareUtil.d.ts +7 -0
  534. package/dist/listgrid/utils/CompareUtil.js +87 -0
  535. package/dist/listgrid/utils/PhoneUtil.d.ts +19 -0
  536. package/dist/listgrid/utils/PhoneUtil.js +38 -0
  537. package/dist/listgrid/utils/RequestUtil.d.ts +6 -0
  538. package/dist/listgrid/utils/RequestUtil.js +6 -0
  539. package/dist/listgrid/utils/StringUtil.d.ts +32 -0
  540. package/dist/listgrid/utils/StringUtil.js +316 -0
  541. package/dist/listgrid/utils/classNames.d.ts +21 -0
  542. package/dist/listgrid/utils/classNames.js +29 -0
  543. package/dist/listgrid/utils/cn.d.ts +12 -0
  544. package/dist/listgrid/utils/cn.js +15 -0
  545. package/dist/listgrid/utils/hash.d.ts +1 -0
  546. package/dist/listgrid/utils/hash.js +15 -0
  547. package/dist/listgrid/utils/i18n.d.ts +16 -0
  548. package/dist/listgrid/utils/i18n.js +31 -0
  549. package/dist/listgrid/utils/index.d.ts +10 -0
  550. package/dist/listgrid/utils/index.js +17 -0
  551. package/dist/listgrid/utils/jsonUtils.d.ts +4 -0
  552. package/dist/listgrid/utils/jsonUtils.js +77 -0
  553. package/dist/listgrid/utils/lazy.d.ts +10 -0
  554. package/dist/listgrid/utils/lazy.js +13 -0
  555. package/dist/listgrid/utils/simpleCrypt.d.ts +4 -0
  556. package/dist/listgrid/utils/simpleCrypt.js +79 -0
  557. package/dist/listgrid/validations/CustomValidation.d.ts +8 -0
  558. package/dist/listgrid/validations/CustomValidation.js +10 -0
  559. package/dist/listgrid/validations/EmailValidation.d.ts +4 -0
  560. package/dist/listgrid/validations/EmailValidation.js +7 -0
  561. package/dist/listgrid/validations/IpAddressValidation.d.ts +26 -0
  562. package/dist/listgrid/validations/IpAddressValidation.js +57 -0
  563. package/dist/listgrid/validations/MinMaxNumberValidation.d.ts +14 -0
  564. package/dist/listgrid/validations/MinMaxNumberValidation.js +28 -0
  565. package/dist/listgrid/validations/PasswordValidation.d.ts +4 -0
  566. package/dist/listgrid/validations/PasswordValidation.js +7 -0
  567. package/dist/listgrid/validations/PhoneNumberValidation.d.ts +12 -0
  568. package/dist/listgrid/validations/PhoneNumberValidation.js +24 -0
  569. package/dist/listgrid/validations/RegexFormularValidation.d.ts +7 -0
  570. package/dist/listgrid/validations/RegexFormularValidation.js +28 -0
  571. package/dist/listgrid/validations/RegexValidation.d.ts +8 -0
  572. package/dist/listgrid/validations/RegexValidation.js +17 -0
  573. package/dist/listgrid/validations/RequiredValidation.d.ts +7 -0
  574. package/dist/listgrid/validations/RequiredValidation.js +12 -0
  575. package/dist/listgrid/validations/StringValidation.d.ts +17 -0
  576. package/dist/listgrid/validations/StringValidation.js +33 -0
  577. package/dist/listgrid/validations/TelephoneNumberValidation.d.ts +12 -0
  578. package/dist/listgrid/validations/TelephoneNumberValidation.js +24 -0
  579. package/dist/listgrid/validations/Validation.d.ts +63 -0
  580. package/dist/listgrid/validations/Validation.js +72 -0
  581. package/dist/listgrid/view/ViewEntityFormWrapper.d.ts +16 -0
  582. package/dist/listgrid/view/ViewEntityFormWrapper.js +98 -0
  583. package/dist/listgrid/view/ViewListGridWrapper.d.ts +10 -0
  584. package/dist/listgrid/view/ViewListGridWrapper.js +96 -0
  585. package/dist/styles/base.css +116 -0
  586. package/dist/styles/components.css +1404 -0
  587. package/dist/styles/layouts.css +3206 -0
  588. package/dist/styles/primitives.css +1542 -0
  589. package/dist/styles/tokens.css +218 -0
  590. package/dist/styles.css +6486 -0
  591. package/docs/PRIMITIVES.md +271 -0
  592. package/package.json +201 -0
@@ -0,0 +1,376 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo, useEffect, useState, useCallback } from 'react';
4
+ import { IconPencil, IconTrash, IconChevronRight } from '@tabler/icons-react';
5
+ import { EntityFieldGroup } from '../../../config/EntityFieldGroup';
6
+ import { FormField } from '../../fields/abstract';
7
+ import { CardFieldSection } from './CardFieldSection';
8
+ // Status badge color mapping
9
+ const STATUS_COLORS = {
10
+ ACTIVE: {
11
+ bg: 'bg-emerald-50 dark:bg-emerald-950/50',
12
+ text: 'text-emerald-700 dark:text-emerald-400',
13
+ ring: 'ring-emerald-600/20',
14
+ },
15
+ COMPLETED: {
16
+ bg: 'bg-blue-50 dark:bg-blue-950/50',
17
+ text: 'text-blue-700 dark:text-blue-400',
18
+ ring: 'ring-blue-600/20',
19
+ },
20
+ CANCELLED: {
21
+ bg: 'bg-red-50 dark:bg-red-950/50',
22
+ text: 'text-red-700 dark:text-red-400',
23
+ ring: 'ring-red-600/20',
24
+ },
25
+ PENDING: {
26
+ bg: 'bg-amber-50 dark:bg-amber-950/50',
27
+ text: 'text-amber-700 dark:text-amber-400',
28
+ ring: 'ring-amber-600/20',
29
+ },
30
+ ENROLLED: {
31
+ bg: 'bg-emerald-50 dark:bg-emerald-950/50',
32
+ text: 'text-emerald-700 dark:text-emerald-400',
33
+ ring: 'ring-emerald-600/20',
34
+ },
35
+ GRADUATED: {
36
+ bg: 'bg-blue-50 dark:bg-blue-950/50',
37
+ text: 'text-blue-700 dark:text-blue-400',
38
+ ring: 'ring-blue-600/20',
39
+ },
40
+ ON_LEAVE: {
41
+ bg: 'bg-amber-50 dark:bg-amber-950/50',
42
+ text: 'text-amber-700 dark:text-amber-400',
43
+ ring: 'ring-amber-600/20',
44
+ },
45
+ GIVE_UP: {
46
+ bg: 'bg-orange-50 dark:bg-orange-950/50',
47
+ text: 'text-orange-700 dark:text-orange-400',
48
+ ring: 'ring-orange-600/20',
49
+ },
50
+ EXPELLED: {
51
+ bg: 'bg-red-50 dark:bg-red-950/50',
52
+ text: 'text-red-700 dark:text-red-400',
53
+ ring: 'ring-red-600/20',
54
+ },
55
+ PAID: {
56
+ bg: 'bg-emerald-50 dark:bg-emerald-950/50',
57
+ text: 'text-emerald-700 dark:text-emerald-400',
58
+ ring: 'ring-emerald-600/20',
59
+ },
60
+ UNPAID: {
61
+ bg: 'bg-rose-50 dark:bg-rose-950/50',
62
+ text: 'text-rose-700 dark:text-rose-400',
63
+ ring: 'ring-rose-600/20',
64
+ },
65
+ PARTIAL: {
66
+ bg: 'bg-amber-50 dark:bg-amber-950/50',
67
+ text: 'text-amber-700 dark:text-amber-400',
68
+ ring: 'ring-amber-600/20',
69
+ },
70
+ };
71
+ const DEFAULT_STATUS_COLOR = {
72
+ bg: 'bg-gray-50 dark:bg-gray-800',
73
+ text: 'text-gray-700 dark:text-gray-300',
74
+ ring: 'ring-gray-600/20',
75
+ };
76
+ /**
77
+ * StatusBadge - Tremor-style status indicator
78
+ */
79
+ const StatusBadge = ({ status, label }) => {
80
+ const upperStatus = status?.toUpperCase() ?? '';
81
+ const colors = STATUS_COLORS[upperStatus] || DEFAULT_STATUS_COLOR;
82
+ return (_jsx("span", { className: `
83
+ inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset
84
+ ${colors.bg} ${colors.text} ${colors.ring}
85
+ `, children: label || status }));
86
+ };
87
+ /**
88
+ * CardItem - Tremor-inspired Card Design with Tab → FieldGroup → Field hierarchy
89
+ *
90
+ * IMPORTANT: This component follows ViewEntityForm's logic exactly:
91
+ * 1. Clone entityForm and set item.id so getRenderType() returns 'update'
92
+ * 2. Use setFetchedValues() to populate all field values from item
93
+ * 3. Use getViewableTabs(), getViewableFieldGroups(), getVisibleFields() for visibility
94
+ * 4. All field settings (hidden, readonly, helpText, tooltip) are respected
95
+ */
96
+ export const CardItem = ({ item, entityForm,
97
+ // parentEntityForm and parentId are passed by parent but not used in card rendering
98
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
99
+ parentEntityForm: _parentEntityForm,
100
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
101
+ parentId: _parentId, cardConfig, relation, readonly = false, session, onClick, onEdit, onDelete, }) => {
102
+ // Cloned entityForm with item data (for proper visibility calculation)
103
+ const [itemEntityForm, setItemEntityForm] = useState(null);
104
+ // Tab state
105
+ const [tabs, setTabs] = useState([]);
106
+ const [selectedTabId, setSelectedTabId] = useState(null);
107
+ // FieldGroups state for selected tab
108
+ const [fieldGroups, setFieldGroups] = useState([]);
109
+ const [isLoading, setIsLoading] = useState(true);
110
+ // SubCollections state for selected tab (following ViewFieldGroup pattern)
111
+ const [subCollections, setSubCollections] = useState([]);
112
+ const [subCollectionViews, setSubCollectionViews] = useState(new Map());
113
+ // Clone entityForm and set item data on mount/item change
114
+ useEffect(() => {
115
+ let isMounted = true;
116
+ const initializeEntityForm = async () => {
117
+ try {
118
+ // Clone the entityForm to avoid mutating the original
119
+ const cloned = entityForm.clone(true);
120
+ // Set the item's id so getRenderType() returns 'update'
121
+ cloned.id = item.id;
122
+ // Set all field values from item using setFetchedValues
123
+ // This properly populates all fields including nested objects
124
+ await cloned.setFetchedValues(item);
125
+ if (isMounted) {
126
+ setItemEntityForm(cloned);
127
+ }
128
+ }
129
+ catch (error) {
130
+ console.error('Error initializing entityForm:', error);
131
+ if (isMounted) {
132
+ // Fallback: use cloned form without setFetchedValues
133
+ const cloned = entityForm.clone(true);
134
+ cloned.id = item.id;
135
+ setItemEntityForm(cloned);
136
+ }
137
+ }
138
+ };
139
+ initializeEntityForm();
140
+ return () => {
141
+ isMounted = false;
142
+ };
143
+ }, [entityForm, item]);
144
+ // Get title
145
+ const title = useMemo(() => {
146
+ if (cardConfig?.titleField) {
147
+ if (typeof cardConfig.titleField === 'function') {
148
+ return cardConfig.titleField(item);
149
+ }
150
+ return item[cardConfig.titleField] ?? 'Untitled';
151
+ }
152
+ return item.name ?? item.title ?? 'Untitled';
153
+ }, [item, cardConfig]);
154
+ // Get status field info
155
+ const statusInfo = useMemo(() => {
156
+ if (!itemEntityForm)
157
+ return null;
158
+ const statusField = itemEntityForm.fields.get('status');
159
+ if (statusField && item.status) {
160
+ // options is a SelectField-specific property not exposed on the base FormField type
161
+ const options = statusField.options;
162
+ if (options && Array.isArray(options)) {
163
+ const option = options.find((opt) => opt.value === item.status);
164
+ if (option) {
165
+ return { value: item.status, label: option.label };
166
+ }
167
+ }
168
+ return { value: item.status, label: item.status };
169
+ }
170
+ return null;
171
+ }, [item.status, itemEntityForm]);
172
+ /**
173
+ * hideMappedByFields pattern matching logic (same as ViewFieldGroup)
174
+ * Generates patterns to exclude:
175
+ * 1. Exact mappedBy field (e.g., "studentId", "enrollment.student.id")
176
+ * 2. Base field without Id/.id suffix (e.g., "student" from "studentId")
177
+ * 3. Nested pattern prefix (e.g., "student.*" fields)
178
+ */
179
+ const mappedByPatterns = useMemo(() => {
180
+ const mappedBy = relation.mappedBy;
181
+ const patternsToExclude = new Set();
182
+ // 1. Exact mappedBy field
183
+ patternsToExclude.add(mappedBy);
184
+ // 2. Base field without Id/.id suffix
185
+ let baseField = mappedBy;
186
+ if (mappedBy.endsWith('Id')) {
187
+ baseField = mappedBy.slice(0, -2);
188
+ }
189
+ else if (mappedBy.endsWith('.id')) {
190
+ baseField = mappedBy.slice(0, -3);
191
+ }
192
+ patternsToExclude.add(baseField);
193
+ // Also add the first segment for nested paths
194
+ const firstSegment = mappedBy.split('.')[0];
195
+ if (firstSegment !== mappedBy) {
196
+ patternsToExclude.add(firstSegment);
197
+ }
198
+ return {
199
+ exactPatterns: patternsToExclude,
200
+ nestedPrefix: `${baseField}.`,
201
+ };
202
+ }, [relation.mappedBy]);
203
+ // Fields to exclude (mappedBy patterns, title, and user-specified excludeFields)
204
+ // Following ViewFieldGroup's filteredFields logic exactly
205
+ const shouldExcludeField = useCallback((fieldName) => {
206
+ // User-specified excludeFields
207
+ if (cardConfig?.excludeFields?.includes(fieldName))
208
+ return true;
209
+ // Title field (shown separately in card header)
210
+ const titleFieldName = typeof cardConfig?.titleField === 'string' ? cardConfig.titleField : null;
211
+ if (titleFieldName && fieldName === titleFieldName)
212
+ return true;
213
+ // Exact pattern match
214
+ if (mappedByPatterns.exactPatterns.has(fieldName))
215
+ return true;
216
+ // Nested pattern match (e.g., student.name when mappedBy is studentId)
217
+ if (fieldName.startsWith(mappedByPatterns.nestedPrefix))
218
+ return true;
219
+ return false;
220
+ }, [cardConfig, mappedByPatterns]);
221
+ // Load all tabs when itemEntityForm is ready
222
+ useEffect(() => {
223
+ if (!itemEntityForm)
224
+ return;
225
+ let isMounted = true;
226
+ const loadTabs = async () => {
227
+ try {
228
+ // Use itemEntityForm (with id set) for proper visibility calculation
229
+ const viewableTabs = (await itemEntityForm.getViewableTabs(false, undefined, session)) ?? [];
230
+ if (isMounted && viewableTabs.length > 0) {
231
+ setTabs(viewableTabs);
232
+ setSelectedTabId(viewableTabs[0].id);
233
+ }
234
+ else if (isMounted) {
235
+ setIsLoading(false);
236
+ }
237
+ }
238
+ catch (error) {
239
+ console.error('Error loading tabs:', error);
240
+ if (isMounted) {
241
+ setIsLoading(false);
242
+ }
243
+ }
244
+ };
245
+ loadTabs();
246
+ return () => {
247
+ isMounted = false;
248
+ };
249
+ }, [itemEntityForm, session]);
250
+ // Load FieldGroups and SubCollections when tab changes (following ViewTabPanel/ViewFieldGroup logic)
251
+ const loadFieldGroupsForTab = useCallback(async (tabId) => {
252
+ if (!itemEntityForm)
253
+ return;
254
+ setIsLoading(true);
255
+ try {
256
+ // Following ViewTabPanel.tsx: use getViewableFieldGroups
257
+ const viewableFieldGroupIds = await itemEntityForm.getViewableFieldGroups({ tabId });
258
+ if (viewableFieldGroupIds.length === 0) {
259
+ setFieldGroups([]);
260
+ setSubCollections([]);
261
+ setIsLoading(false);
262
+ return;
263
+ }
264
+ const allFieldGroups = [];
265
+ const allSubCollections = [];
266
+ // If displayFields is specified, create a single "virtual" group
267
+ if (cardConfig?.displayFields) {
268
+ const fields = cardConfig.displayFields
269
+ .filter((name) => itemEntityForm.fields.has(name) && !shouldExcludeField(name))
270
+ .map((name) => itemEntityForm.fields.get(name))
271
+ .filter(Boolean);
272
+ if (fields.length > 0) {
273
+ allFieldGroups.push({
274
+ fieldGroup: new EntityFieldGroup({ id: 'display', label: '', order: 0 }),
275
+ fields,
276
+ });
277
+ }
278
+ }
279
+ else {
280
+ // Following ViewFieldGroup.tsx: use getVisibleFields and getVisibleCollections for each group
281
+ for (const groupId of viewableFieldGroupIds) {
282
+ // Load fields
283
+ const fieldInfo = await itemEntityForm.getVisibleFields(tabId, groupId, session);
284
+ if (fieldInfo?.fieldGroup && fieldInfo?.fields && fieldInfo.fields.length > 0) {
285
+ const visibleFields = fieldInfo.fields.filter((field) => {
286
+ if (!(field instanceof FormField))
287
+ return false;
288
+ const fieldName = field.getName();
289
+ return !shouldExcludeField(fieldName);
290
+ });
291
+ if (visibleFields.length > 0) {
292
+ allFieldGroups.push({
293
+ fieldGroup: fieldInfo.fieldGroup,
294
+ fields: visibleFields,
295
+ });
296
+ }
297
+ }
298
+ // Load subCollections (following ViewFieldGroup pattern)
299
+ // Only load if itemEntityForm has an id (existing entity)
300
+ if (itemEntityForm.id) {
301
+ const collectionInfo = await itemEntityForm.getVisibleCollections(tabId, groupId, session);
302
+ if (collectionInfo?.collections && collectionInfo.collections.length > 0) {
303
+ allSubCollections.push(...collectionInfo.collections);
304
+ }
305
+ }
306
+ }
307
+ }
308
+ setFieldGroups(allFieldGroups);
309
+ setSubCollections(allSubCollections);
310
+ // Render subCollections asynchronously (following SubCollectionRenderer pattern)
311
+ if (allSubCollections.length > 0) {
312
+ const views = new Map();
313
+ for (const collection of allSubCollections) {
314
+ try {
315
+ const view = await collection.render({
316
+ entityForm: itemEntityForm,
317
+ ...(session !== undefined ? { session } : {}),
318
+ });
319
+ views.set(collection.getName(), view);
320
+ }
321
+ catch (error) {
322
+ console.error(`Error rendering subcollection ${collection.getName()}:`, error);
323
+ }
324
+ }
325
+ setSubCollectionViews(views);
326
+ }
327
+ else {
328
+ setSubCollectionViews(new Map());
329
+ }
330
+ }
331
+ catch (error) {
332
+ console.error('Error loading field groups:', error);
333
+ setFieldGroups([]);
334
+ setSubCollections([]);
335
+ }
336
+ finally {
337
+ setIsLoading(false);
338
+ }
339
+ }, [itemEntityForm, cardConfig, shouldExcludeField, session]);
340
+ // Load FieldGroups when selectedTabId changes
341
+ useEffect(() => {
342
+ if (selectedTabId && itemEntityForm) {
343
+ loadFieldGroupsForTab(selectedTabId);
344
+ }
345
+ }, [selectedTabId, itemEntityForm, loadFieldGroupsForTab]);
346
+ const handleEditClick = (e) => {
347
+ e.stopPropagation();
348
+ onEdit?.();
349
+ };
350
+ const handleDeleteClick = (e) => {
351
+ e.stopPropagation();
352
+ onDelete?.();
353
+ };
354
+ const handleTabClick = (e, tabId) => {
355
+ e.stopPropagation();
356
+ setSelectedTabId(tabId);
357
+ };
358
+ // Don't render until itemEntityForm is ready
359
+ if (!itemEntityForm) {
360
+ return (_jsx("article", { className: `
361
+ rcm-card-item ${cardConfig?.containerClassName ?? ''}
362
+ `, children: _jsx("div", { className: "rcm-card-item-body", children: _jsxs("div", { className: "rcm-card-item-skel-stack", children: [_jsx("div", { className: "rcm-skeleton rcm-card-item-skel-line rcm-card-item-skel-line-title", "data-shape": "line" }), _jsx("div", { className: "rcm-skeleton rcm-card-item-skel-line rcm-card-item-skel-line-subtitle", "data-shape": "line" })] }) }) }));
363
+ }
364
+ return (_jsxs("article", { className: `rcm-card-item rcm-card-item-hover ${onClick ? 'rcm-card-item-clickable' : ''} ${cardConfig?.containerClassName ?? ''}`, onClick: onClick, role: onClick ? 'button' : undefined, tabIndex: onClick ? 0 : undefined, onKeyDown: onClick
365
+ ? (e) => {
366
+ if (e.key === 'Enter' || e.key === ' ')
367
+ onClick();
368
+ }
369
+ : undefined, children: [_jsx("div", { className: "rcm-card-item-header", children: _jsxs("div", { className: "rcm-card-item-header-row", children: [_jsx("div", { className: "rcm-card-item-header-left", children: _jsxs("div", { className: "rcm-card-item-title-row", children: [_jsx("h3", { className: `rcm-text rcm-card-item-title ${cardConfig?.titleClassName ?? ''}`, "data-weight": "semibold", children: title }), statusInfo && _jsx(StatusBadge, { status: statusInfo.value, label: statusInfo.label })] }) }), _jsxs("div", { className: "rcm-card-item-actions", children: [!readonly && onEdit && (_jsx("button", { onClick: handleEditClick, className: "rcm-icon-btn", "data-size": "sm", "aria-label": "Edit", children: _jsx(IconPencil, { className: "rcm-icon", "data-size": "sm", stroke: 1.5 }) })), !readonly && onDelete && (_jsx("button", { onClick: handleDeleteClick, className: "rcm-icon-btn", "data-size": "sm", "data-color": "error", "aria-label": "Delete", children: _jsx(IconTrash, { className: "rcm-icon", "data-size": "sm", stroke: 1.5 }) })), onClick && (_jsx("div", { className: "rcm-card-item-chevron-wrap", children: _jsx(IconChevronRight, { className: "rcm-icon", "data-size": "md", "data-tone": "disabled", stroke: 2 }) }))] })] }) }), tabs.length > 1 && (_jsx("div", { className: "rcm-card-item-tabbar", children: _jsx("nav", { className: "rcm-card-item-tabnav", "aria-label": "Tabs", children: tabs.map((tab) => (_jsx("button", { onClick: (e) => handleTabClick(e, tab.id), className: `rcm-card-item-tab ${selectedTabId === tab.id ? 'rcm-card-item-tab-active' : ''}`, children: tab.label }, tab.id))) }) })), _jsx("div", { className: "rcm-card-item-body", children: isLoading ? (_jsx("div", { className: "rcm-card-item-skel-stack", children: [1, 2].map((i) => (_jsxs("div", { className: "rcm-card-item-skel-group", children: [_jsx("div", { className: "rcm-skeleton rcm-card-item-skel-line rcm-card-item-skel-line-title", "data-shape": "line" }), _jsx("div", { className: "rcm-card-item-skel-rows", children: [1, 2, 3].map((j) => (_jsxs("div", { className: "rcm-card-item-skel-row", children: [_jsx("div", { className: "rcm-skeleton rcm-card-item-skel-line rcm-card-item-skel-line-label", "data-shape": "line" }), _jsx("div", { className: "rcm-skeleton rcm-card-item-skel-line rcm-card-item-skel-line-value", "data-shape": "line" })] }, j))) })] }, i))) })) : fieldGroups.length === 0 && subCollections.length === 0 ? (_jsx("p", { className: "rcm-text rcm-card-item-empty", "data-tone": "disabled", children: "\uD45C\uC2DC\uD560 \uD544\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" })) : (_jsxs("div", { className: "rcm-card-item-sections", children: [fieldGroups.map((group) => (_jsx(CardFieldSection, { fieldGroup: group.fieldGroup, fields: group.fields, item: item, entityForm: itemEntityForm, ...(session !== undefined ? { session } : {}) }, group.fieldGroup.id))), subCollections.length > 0 && (_jsx("div", { className: "rcm-card-item-subcollections", children: subCollections.map((collection) => {
370
+ const view = subCollectionViews.get(collection.getName());
371
+ const label = collection.getLabel();
372
+ const hideLabel = collection.hideLabel;
373
+ return (_jsxs("div", { className: "rcm-card-item-sub", children: [!hideLabel && label && (_jsx("h4", { className: "rcm-text rcm-card-item-sub-label", "data-weight": "semibold", children: typeof label === 'string' ? label : label })), view ? (_jsx("div", { className: "rcm-card-item-sub-view", children: view })) : (_jsx("div", { className: "rcm-card-item-sub-loading-wrap", children: _jsx("div", { className: "rcm-card-item-sub-loading", children: _jsx("div", { className: "rcm-card-item-sub-spinner" }) }) }))] }, `subcollection_${collection.getName()}`));
374
+ }) }))] })) })] }));
375
+ };
376
+ export default CardItem;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { CardSubCollectionRelation } from '../../../config/CardSubCollectionField';
4
+ export type CardSubCollectionModalMode = 'view' | 'edit' | 'create' | null;
5
+ export interface CardSubCollectionModalProps {
6
+ /** Is modal opened */
7
+ isOpen: boolean;
8
+ /** Entity form definition for the subcollection */
9
+ entityForm: EntityForm;
10
+ /** Parent entity form */
11
+ parentEntityForm: EntityForm;
12
+ /** Item ID being edited (null for create mode) */
13
+ itemId?: string | null;
14
+ /** Relation configuration */
15
+ relation: CardSubCollectionRelation;
16
+ /** Modal mode: view, edit, or create */
17
+ mode?: CardSubCollectionModalMode;
18
+ /** Called when modal closes */
19
+ onClose: () => void;
20
+ /** Called after successful save */
21
+ onSave?: () => void;
22
+ /** Called after successful delete */
23
+ onDelete?: () => void;
24
+ /** Readonly mode (for view mode) */
25
+ readonly?: boolean;
26
+ /** Allow delete action */
27
+ allowDelete?: boolean;
28
+ }
29
+ /**
30
+ * CardSubCollectionModal
31
+ * Modal for viewing/editing/creating a card subcollection item
32
+ * Supports three modes:
33
+ * - view: Read-only display of item data
34
+ * - edit: Edit existing item
35
+ * - create: Create new item with mappedBy field auto-populated
36
+ */
37
+ export declare const CardSubCollectionModal: React.FC<CardSubCollectionModalProps>;
38
+ export default CardSubCollectionModal;
@@ -0,0 +1,80 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useMemo } from 'react';
4
+ import { Modal } from '../../../ui';
5
+ import { ViewEntityForm } from '../../form/ViewEntityForm';
6
+ /**
7
+ * CardSubCollectionModal
8
+ * Modal for viewing/editing/creating a card subcollection item
9
+ * Supports three modes:
10
+ * - view: Read-only display of item data
11
+ * - edit: Edit existing item
12
+ * - create: Create new item with mappedBy field auto-populated
13
+ */
14
+ export const CardSubCollectionModal = ({ isOpen, entityForm, parentEntityForm, itemId, relation, mode = 'view', onClose, onSave, onDelete, readonly = false, allowDelete = true, }) => {
15
+ // Get the mappedBy field name (first part of the path)
16
+ const mappedByFieldName = useMemo(() => {
17
+ const mappedBy = relation.mappedBy;
18
+ return mappedBy.split('.')[0];
19
+ }, [relation.mappedBy]);
20
+ // Get the value to set for mappedBy field
21
+ const mappedByValue = useMemo(() => {
22
+ const valueProperty = relation.valueProperty ?? 'id';
23
+ if (valueProperty === 'id') {
24
+ return parentEntityForm.id;
25
+ }
26
+ return parentEntityForm.getValue(valueProperty);
27
+ }, [relation.valueProperty, parentEntityForm]);
28
+ // Create entity form instance for the item
29
+ const itemEntityForm = useMemo(() => {
30
+ if (mode === 'create') {
31
+ // Create mode: clone the form and set mappedBy value
32
+ const cloned = entityForm.clone(true);
33
+ // Set the mappedBy field value for the new item
34
+ if (mappedByFieldName && mappedByValue) {
35
+ cloned.setValue(mappedByFieldName, mappedByValue);
36
+ }
37
+ return cloned;
38
+ }
39
+ else {
40
+ // View/Edit mode: clone with the existing item ID (may be null in non-render states; early-returned before render)
41
+ return entityForm.clone(true).withId(itemId ?? undefined);
42
+ }
43
+ }, [entityForm, itemId, mode, mappedByFieldName, mappedByValue]);
44
+ // Modal title based on mode
45
+ const modalTitle = useMemo(() => {
46
+ switch (mode) {
47
+ case 'create':
48
+ return 'Add New Item';
49
+ case 'edit':
50
+ return 'Edit Item';
51
+ case 'view':
52
+ default:
53
+ return 'View Item';
54
+ }
55
+ }, [mode]);
56
+ // Don't render if not open
57
+ if (!isOpen)
58
+ return null;
59
+ // For view/edit mode, itemId is required
60
+ if ((mode === 'view' || mode === 'edit') && !itemId)
61
+ return null;
62
+ // Determine exclude buttons based on mode
63
+ const excludeButtons = [];
64
+ if (!allowDelete || mode === 'view' || mode === 'create') {
65
+ excludeButtons.push('delete');
66
+ }
67
+ return (_jsx(Modal, { opened: true, view: { title: false }, size: "5xl", animation: "none", position: "center", closeOnClickOutside: false, closeOnEscape: true, onClose: onClose, children: _jsx(ViewEntityForm, { entityForm: itemEntityForm, subCollection: true, readonly: readonly || mode === 'view', excludeButtons: excludeButtons, ...(mappedByFieldName !== undefined ? { hideMappedByFields: mappedByFieldName } : {}), buttonLinks: {
68
+ onClickList: async () => {
69
+ onClose();
70
+ },
71
+ }, postSave: async (entityForm) => {
72
+ onSave?.();
73
+ onClose();
74
+ return entityForm;
75
+ }, postDelete: async () => {
76
+ onDelete?.();
77
+ onClose();
78
+ } }, mode === 'create' ? 'create-new' : itemId) }));
79
+ };
80
+ export default CardSubCollectionModal;
@@ -0,0 +1,44 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { CardSubCollectionRelation, CardConfig, CardSubCollectionFetchOptions } from '../../../config/CardSubCollectionField';
4
+ import { Session } from '../../../auth/types';
5
+ import { SearchForm } from '../../../form/SearchForm';
6
+ export interface CardSubCollectionViewProps {
7
+ /** Parent entity form */
8
+ parentEntityForm: EntityForm;
9
+ /** Parent entity ID */
10
+ parentId: string;
11
+ /** Entity form for the collection items */
12
+ entityForm: EntityForm;
13
+ /** Fetch URL (string or function) */
14
+ fetchUrl: string | ((parentForm: EntityForm) => string);
15
+ /** Card subcollection configuration */
16
+ cardConfig?: CardConfig;
17
+ /** Relation configuration */
18
+ relation: CardSubCollectionRelation;
19
+ /** Readonly mode */
20
+ readonly?: boolean;
21
+ /** User session */
22
+ session?: Session;
23
+ /** Called when item is edited (optional external handler) */
24
+ onItemEdit?: (item: any) => void;
25
+ /** Called when item is deleted (optional external handler) */
26
+ onItemDelete?: (item: any) => void;
27
+ /** Called when item is added (optional external handler) */
28
+ onItemAdd?: () => void;
29
+ /** Fetch options for SearchForm-based fetching */
30
+ fetchOptions?: CardSubCollectionFetchOptions;
31
+ /** Initial SearchForm for SearchForm-based fetching */
32
+ initialSearchForm?: SearchForm;
33
+ /** Whether to show view detail modal on card click */
34
+ viewDetail?: boolean;
35
+ /** Tooltip content to display next to the section */
36
+ tooltip?: ReactNode;
37
+ }
38
+ /**
39
+ * CardSubCollectionView
40
+ * Displays a collection of items in a professional card grid format
41
+ * Features: Client-side search, responsive grid, CRUD operations
42
+ */
43
+ export declare const CardSubCollectionView: React.FC<CardSubCollectionViewProps>;
44
+ export default CardSubCollectionView;