@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,19 @@
1
+ import { ListableFormField } from '../../fields/abstract';
2
+ import { SearchForm } from '../../../form/SearchForm';
3
+ import { ViewFieldManageable } from '../types/ViewListGrid.types';
4
+ import { EntityForm } from '../../../config/EntityForm';
5
+ interface ViewHeaderFieldProps extends ViewFieldManageable {
6
+ gridId: string;
7
+ fields: ListableFormField<any>[];
8
+ searchForm: SearchForm;
9
+ entityForm: EntityForm;
10
+ onChangeSearchForm: (searchForm: SearchForm, resetPage?: boolean) => void;
11
+ sortable: boolean;
12
+ draggable?: boolean;
13
+ /** QuickSearch 필드명 Set (quickSearch 활성 시 해당 필드 헤더 필터 비활성화용) */
14
+ quickSearchFieldNames?: Set<string>;
15
+ /** QuickSearch 값 (값이 있으면 quickSearch 필드 헤더 필터 비활성화) */
16
+ quickSearchValue?: string;
17
+ }
18
+ export declare const HeaderField: ({ viewFields, ...props }: ViewHeaderFieldProps) => import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getAlignClassName } from '../../../common/func';
3
+ import React from 'react';
4
+ import { getTranslation } from '../../../utils/i18n';
5
+ import { isTrue } from '../../../utils/BooleanUtil';
6
+ import { SortField } from './SortField';
7
+ import { HeaderFieldFilter } from './HeaderFieldFilter';
8
+ import { useListGridTheme } from '../context/ListGridThemeContext';
9
+ export const HeaderField = ({ viewFields, ...props }) => {
10
+ const { t } = getTranslation();
11
+ const { classNames: themeClasses } = useListGridTheme();
12
+ const listFields = props.fields;
13
+ const draggable = isTrue(props.draggable);
14
+ // 테마에서 헤더 셀 클래스 가져오기
15
+ const cellClass = themeClasses.headerCell?.cell ?? 'whitespace-nowrap';
16
+ const sortableClass = themeClasses.headerCell?.sortable ?? 'cursor-pointer hover:bg-gray-50 dark:hover:bg-dark/30';
17
+ const sortIconClass = themeClasses.headerCell?.sortIcon ?? 'ml-1 inline-block';
18
+ const filterIconClass = themeClasses.headerCell?.filterIcon ?? 'ml-1 text-gray-400 hover:text-primary cursor-pointer';
19
+ return (_jsxs(React.Fragment, { children: [listFields.map((field, index) => {
20
+ if (viewFields.length === 0 || viewFields.includes(field.getName())) {
21
+ const alignClassName = getAlignClassName(field.getListFieldAlignType(), true);
22
+ const sortable = props.sortable && isTrue(field.getListConfig()?.sortable, true);
23
+ const filterable = field.isFilterable();
24
+ // QuickSearch 필드이고, QuickSearch 값이 있으면 헤더 필터 비활성화
25
+ const isQuickSearchField = props.quickSearchFieldNames?.has(field.getName()) ?? false;
26
+ const isQuickSearchActive = !!(props.quickSearchValue && props.quickSearchValue.trim().length > 0);
27
+ const disableHeaderFilter = isQuickSearchField && isQuickSearchActive;
28
+ return (_jsx("th", { className: cellClass, children: _jsxs("div", { className: `w-full min-w-[40px] flex items-center ${alignClassName}`, children: [_jsx("span", { children: field.viewLabel(t) }), isTrue(sortable) && (_jsx("span", { className: `inline-flex items-center ${sortIconClass}`, children: _jsx(SortField, { name: field.name, searchForm: props.searchForm, onChangeSearchForm: props.onChangeSearchForm }) })), filterable && (_jsx("span", { className: `inline-flex items-center ${filterIconClass}`, children: _jsx(HeaderFieldFilter, { field: field, gridId: props.gridId, searchForm: props.searchForm, entityForm: props.entityForm, onChangeSearchForm: props.onChangeSearchForm, disabled: disableHeaderFilter }) }))] }) }, `th_${index}`));
29
+ }
30
+ return null;
31
+ }), draggable && (_jsx("th", { className: themeClasses.headerCell?.dragHandleCell ?? 'w-2 whitespace-nowrap', children: t('순서 변경') }, `th_drag`))] }));
32
+ };
@@ -0,0 +1,14 @@
1
+ import { SearchForm } from '../../../form/SearchForm';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { ListableFormField } from '../../fields/abstract';
4
+ interface HeaderFieldFilterProps {
5
+ field: ListableFormField<any>;
6
+ gridId: string;
7
+ searchForm: SearchForm;
8
+ entityForm: EntityForm;
9
+ onChangeSearchForm: (searchForm: SearchForm, resetPage?: boolean) => void;
10
+ /** QuickSearch 활성 시 해당 필드의 헤더 필터를 비활성화 */
11
+ disabled?: boolean;
12
+ }
13
+ export declare const HeaderFieldFilter: ({ field, gridId, searchForm, entityForm, onChangeSearchForm, disabled, }: HeaderFieldFilterProps) => import("react/jsx-runtime").JSX.Element | null;
14
+ export {};
@@ -0,0 +1,166 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { FilterButton } from './FilterButton';
5
+ import { FilterDropdown } from './FilterDropdown';
6
+ import { FilterView } from './FilterView';
7
+ import { SearchForm } from '../../../form/SearchForm';
8
+ import { AbstractManyToOneField, OptionalField } from '../../fields/abstract';
9
+ import { isBlank } from '../../../utils/StringUtil';
10
+ import { useHeaderFilterStore } from './headerFilterStore';
11
+ import { isTrue } from '../../../utils/BooleanUtil';
12
+ export const HeaderFieldFilter = ({ field, gridId, searchForm, entityForm, onChangeSearchForm, disabled = false, }) => {
13
+ const fieldName = field.getName();
14
+ const filterId = `${gridId}::${fieldName}`;
15
+ // zustand store 사용
16
+ const { openFilter, closeFilter, isFilterOpen } = useHeaderFilterStore();
17
+ const isOpen = isFilterOpen(filterId);
18
+ const [hasFilter, setHasFilter] = useState(false);
19
+ const [tempSearchForm, setTempSearchForm] = useState();
20
+ const [placement, setPlacement] = useState('left');
21
+ const buttonRef = useRef(null);
22
+ // 필터 상태 확인
23
+ useEffect(() => {
24
+ const fieldName = field.getName();
25
+ let filterValue = searchForm.getSearchValue(fieldName);
26
+ // ManyToOneField인 경우 .id로 체크
27
+ if (!filterValue && field instanceof AbstractManyToOneField) {
28
+ filterValue = searchForm.getSearchValue(fieldName + '.id');
29
+ }
30
+ // 배열인 경우 length로 체크
31
+ const hasValue = Array.isArray(filterValue)
32
+ ? filterValue.length > 0
33
+ : filterValue !== null && filterValue !== undefined && filterValue !== '';
34
+ setHasFilter(hasValue);
35
+ }, [searchForm, field]);
36
+ // 필터 위치 결정 (화면 중앙 기준)
37
+ useEffect(() => {
38
+ if (isOpen && buttonRef.current) {
39
+ const rect = buttonRef.current.getBoundingClientRect();
40
+ const screenCenter = window.innerWidth / 2;
41
+ // 버튼이 화면 오른쪽 절반에 있으면 드롭다운을 왼쪽으로
42
+ if (rect.left > screenCenter) {
43
+ setPlacement('right');
44
+ }
45
+ else {
46
+ setPlacement('left');
47
+ }
48
+ }
49
+ }, [isOpen]);
50
+ // 드롭다운이 열릴 때 tempSearchForm 초기화
51
+ useEffect(() => {
52
+ if (isOpen) {
53
+ setTempSearchForm(searchForm.clone());
54
+ }
55
+ }, [isOpen, searchForm]);
56
+ const handleFilterChange = (name, value, op = 'EQUAL') => {
57
+ setTempSearchForm((prevForm) => {
58
+ const newSearchForm = prevForm?.clone() ?? SearchForm.create();
59
+ const targetField = entityForm.getField(name);
60
+ // ManyToOneField 처리
61
+ if (targetField instanceof AbstractManyToOneField) {
62
+ const isMultiFilter = isTrue(targetField.listConfig?.multiFilter);
63
+ if (isMultiFilter) {
64
+ // multiFilter가 활성화된 경우: 배열 값을 그대로 사용, IN operator
65
+ const idFieldName = targetField.config.field?.id ?? 'id';
66
+ name = name + '.' + idFieldName;
67
+ // value는 이미 ID 배열이므로 그대로 사용
68
+ if (Array.isArray(value) && value.length > 0) {
69
+ // 배열의 길이가 1이면 EQUAL, 그 이상이면 IN
70
+ op = value.length === 1 ? 'EQUAL' : 'IN';
71
+ value = value.length === 1 ? value[0] : value;
72
+ }
73
+ }
74
+ else {
75
+ // 기존 단일 선택 로직
76
+ if (targetField.config.field?.id) {
77
+ name = name + '.' + targetField.config.field.id;
78
+ if (value !== undefined && value[targetField.config.field.id] !== undefined) {
79
+ value = value[targetField.config.field.id];
80
+ }
81
+ }
82
+ else {
83
+ name = name + '.id';
84
+ if (value?.['id'] !== undefined) {
85
+ value = value['id'];
86
+ }
87
+ }
88
+ }
89
+ }
90
+ // OptionalField에서 다중 선택인 경우
91
+ if (targetField instanceof OptionalField && (targetField.options?.length ?? 0) > 2) {
92
+ op = 'IN';
93
+ }
94
+ // 필터 추가/수정/삭제
95
+ const isEmpty = Array.isArray(value) ? value.length === 0 : isBlank(value);
96
+ if (isEmpty && op !== 'NULL' && op !== 'NOT_NULL') {
97
+ newSearchForm.removeFilter(name);
98
+ }
99
+ else {
100
+ newSearchForm.handleAndFilter(name, value, op);
101
+ }
102
+ return newSearchForm;
103
+ });
104
+ };
105
+ const handleApply = () => {
106
+ if (tempSearchForm) {
107
+ onChangeSearchForm(tempSearchForm, true);
108
+ }
109
+ closeFilter();
110
+ };
111
+ const handleClear = () => {
112
+ const newSearchForm = searchForm.clone();
113
+ // 기본 필드명으로 제거
114
+ newSearchForm.removeFilter(fieldName);
115
+ // ManyToOneField인 경우 .id도 제거
116
+ if (field instanceof AbstractManyToOneField) {
117
+ newSearchForm.removeFilter(fieldName + '.id');
118
+ if (field.config.field?.id) {
119
+ newSearchForm.removeFilter(fieldName + '.' + field.config.field.id);
120
+ }
121
+ }
122
+ onChangeSearchForm(newSearchForm, true);
123
+ closeFilter();
124
+ };
125
+ // 필터링 불가능한 필드 또는 비활성화된 필드는 렌더링하지 않음
126
+ // (QuickSearch 활성 시 해당 필드의 헤더 필터는 비활성화됨)
127
+ if (!field.isFilterable() || disabled) {
128
+ return null;
129
+ }
130
+ // 필드 타입에 따라 드롭다운 크기 결정
131
+ const getDropdownSize = () => {
132
+ const fieldType = field.type;
133
+ // 큰 크기: Date, Datetime (빠른 선택 버튼들이 많음)
134
+ if (fieldType === 'date' || fieldType === 'datetime') {
135
+ return 'lg';
136
+ }
137
+ // ManyToOne + multiFilter인 경우 큰 크기 (칩들이 많이 표시됨)
138
+ if (field instanceof AbstractManyToOneField && isTrue(field.listConfig?.multiFilter)) {
139
+ return 'lg';
140
+ }
141
+ // 중간 크기: ManyToOne, Select, Number 등
142
+ if (fieldType === 'manyToOne' ||
143
+ field instanceof AbstractManyToOneField ||
144
+ fieldType === 'number') {
145
+ return 'md';
146
+ }
147
+ // 작은 크기: String, Email, Boolean 등 기본
148
+ return 'sm';
149
+ };
150
+ return (_jsxs("div", { ref: buttonRef, className: "relative inline-block", children: [_jsx(FilterButton, { isActive: hasFilter, onClick: () => {
151
+ if (isOpen) {
152
+ closeFilter();
153
+ }
154
+ else {
155
+ openFilter(filterId);
156
+ }
157
+ } }), isOpen &&
158
+ tempSearchForm &&
159
+ (() => {
160
+ // ManyToOneField인 경우 .id로 값을 가져옴 (AdvancedSearchForm과 동일)
161
+ const searchFieldName = field instanceof AbstractManyToOneField ? field.getName() + '.id' : field.getName();
162
+ const fieldValue = tempSearchForm.getSearchValue(searchFieldName);
163
+ const filterField = field.clone(false).withValue(fieldValue);
164
+ return (_jsx(FilterDropdown, { isOpen: isOpen, onClose: closeFilter, onClear: handleClear, onApply: handleApply, size: getDropdownSize(), placement: placement, anchorRef: buttonRef, children: _jsx(FilterView, { entityForm: entityForm, field: filterField, value: fieldValue, onChange: handleFilterChange }) }));
165
+ })()] }));
166
+ };
@@ -0,0 +1,4 @@
1
+ export declare const HeaderTitle: React.FC<{
2
+ title: string;
3
+ hideTitle?: boolean;
4
+ }>;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Tooltip } from '../../../ui';
3
+ import { getTranslation } from '../../../utils/i18n';
4
+ import { isTrue } from '../../../utils/BooleanUtil';
5
+ import { useListGridTheme } from '../context/ListGridThemeContext';
6
+ export const HeaderTitle = ({ title, hideTitle, }) => {
7
+ const { t } = getTranslation();
8
+ const { classNames: themeClasses, cn } = useListGridTheme();
9
+ const titleText = t(title);
10
+ if (isTrue(hideTitle))
11
+ return null;
12
+ return (_jsx("div", { className: cn('min-w-[200px] max-w-full flex-1 overflow-hidden', themeClasses.header?.titleContainer), children: _jsx(Tooltip, { label: titleText, zIndex: 1000, usePortal: true, position: "top-start", children: _jsx("div", { className: cn('flex items-center mt-2 min-h-[60px] truncate py-3 pt-2 text-[1.8rem] font-bold dark:text-white-light md:mt-0 overflow-ellipsis', themeClasses.header?.titleWrapper), children: titleText }) }) }));
13
+ };
@@ -0,0 +1,30 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { Session } from '../../../auth/types';
4
+ import { SearchForm } from '../../../form/SearchForm';
5
+ import { ViewListGridOptionProps } from '../types/ViewListGrid.types';
6
+ import { InlineGlobalListConfig, InlineListFieldConfig, InlinePaginationOptions, InlineRowActionColumn, InlineSubCollectionFetchOptions, InlineSubCollectionRelation } from '../../../config/InlineSubCollectionField';
7
+ export interface InlineSubCollectionViewProps {
8
+ parentEntityForm: EntityForm;
9
+ parentId: string;
10
+ entityForm: EntityForm;
11
+ relation: InlineSubCollectionRelation;
12
+ readonly?: boolean;
13
+ session?: Session;
14
+ listFields?: (string | InlineListFieldConfig)[];
15
+ /** Row action columns - supports multiple action columns */
16
+ rowActionColumns?: InlineRowActionColumn[];
17
+ pagination?: InlinePaginationOptions;
18
+ globalListConfig?: InlineGlobalListConfig;
19
+ fetchOptions?: InlineSubCollectionFetchOptions;
20
+ initialSearchForm?: SearchForm;
21
+ tooltip?: ReactNode;
22
+ hideTitle?: boolean;
23
+ viewListOptions?: ViewListGridOptionProps;
24
+ }
25
+ /**
26
+ * InlineSubCollectionView component
27
+ * Renders a simple list table without detail view
28
+ * Supports row actions and field overrides
29
+ */
30
+ export declare const InlineSubCollectionView: React.FC<InlineSubCollectionViewProps>;
@@ -0,0 +1,260 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { ListGrid } from '../../../config/ListGrid';
5
+ import { ViewListGrid } from '../ViewListGrid';
6
+ import { ListableFormField, } from '../../fields/abstract/ListableFormField';
7
+ import { Tooltip } from '../../../ui';
8
+ import { useLoadingStore } from '../../../loading';
9
+ import { showAlert } from '../../../message';
10
+ /**
11
+ * InlineRowActionField - Custom field for rendering row action buttons
12
+ * This field renders action buttons in the list view
13
+ * Now supports multiple columns with unique columnId
14
+ */
15
+ class InlineRowActionField extends ListableFormField {
16
+ constructor(columnId, rowActions, onActionHandler, columnLabel, columnOrder) {
17
+ const order = columnOrder ?? 9999;
18
+ const fieldName = `_rowActions_${columnId}`;
19
+ super(fieldName, order, 'custom');
20
+ this.columnId = columnId;
21
+ this.rowActions = rowActions;
22
+ this.onActionHandler = onActionHandler;
23
+ this.columnLabel = columnLabel ?? '작업';
24
+ this.columnOrder = order;
25
+ // Configure as list field
26
+ this.listConfig = {
27
+ support: true,
28
+ filterable: false,
29
+ sortable: false,
30
+ quickSearch: false,
31
+ order: order,
32
+ label: this.columnLabel,
33
+ align: 'center',
34
+ };
35
+ }
36
+ createInstance(name, order) {
37
+ return new InlineRowActionField(this.columnId, this.rowActions, this.onActionHandler, this.columnLabel, this.columnOrder);
38
+ }
39
+ async renderInstance(params) {
40
+ return null;
41
+ }
42
+ async renderListItemInstance(props) {
43
+ const { item } = props;
44
+ if (!this.rowActions || this.rowActions.length === 0) {
45
+ return { result: null, linkOnCell: false };
46
+ }
47
+ const visibleActions = this.rowActions.filter((action) => !action.hidden?.(item));
48
+ if (visibleActions.length === 0) {
49
+ return { result: null, linkOnCell: false };
50
+ }
51
+ const buttons = (_jsx("div", { className: "rcm-inline-action-row", children: visibleActions.map((action) => {
52
+ const label = typeof action.label === 'function' ? action.label(item) : action.label;
53
+ const isDisabled = action.disabled?.(item) ?? false;
54
+ return (_jsx(Tooltip, { label: label, children: _jsxs("button", { type: "button", className: `rcm-button ${action.className ?? ''} ${isDisabled ? 'rcm-is-disabled' : ''}`, "data-variant": action.className ? undefined : 'outline', "data-size": "sm", disabled: isDisabled, onClick: (e) => {
55
+ e.stopPropagation();
56
+ e.preventDefault();
57
+ this.onActionHandler(action, item);
58
+ }, children: [action.icon && _jsx("span", { className: "mr-1", children: action.icon }), label] }) }, action.id));
59
+ }) }));
60
+ return { result: buttons, linkOnCell: false };
61
+ }
62
+ }
63
+ /**
64
+ * InlineSubCollectionView component
65
+ * Renders a simple list table without detail view
66
+ * Supports row actions and field overrides
67
+ */
68
+ export const InlineSubCollectionView = ({ parentEntityForm, parentId, entityForm, relation, readonly = false, session, listFields, rowActionColumns, pagination, globalListConfig, fetchOptions, initialSearchForm, tooltip, hideTitle = false, viewListOptions, }) => {
69
+ const [refreshKey, setRefreshKey] = useState(0);
70
+ const { setOpenBaseLoading } = useLoadingStore();
71
+ // Refresh function for row actions
72
+ const refresh = useCallback(() => {
73
+ setRefreshKey((prev) => prev + 1);
74
+ }, []);
75
+ // Handle row action click
76
+ const handleRowAction = useCallback(async (action, item) => {
77
+ // Check if disabled
78
+ if (action.disabled?.(item)) {
79
+ return;
80
+ }
81
+ // Confirmation if needed
82
+ if (action.confirm) {
83
+ const message = typeof action.confirm === 'function' ? action.confirm(item) : action.confirm;
84
+ const confirmed = window.confirm(message);
85
+ if (!confirmed) {
86
+ return;
87
+ }
88
+ }
89
+ try {
90
+ setOpenBaseLoading(true);
91
+ // Pass the configuredEntityForm from the ref
92
+ await action.onClick(item, entityForm.clone(true).withParentId(parentId), refresh);
93
+ }
94
+ catch (error) {
95
+ console.error('Row action error:', error);
96
+ showAlert({
97
+ message: error instanceof Error ? error.message : '작업 중 오류가 발생했습니다.',
98
+ topLayer: true,
99
+ });
100
+ }
101
+ finally {
102
+ setOpenBaseLoading(false);
103
+ }
104
+ }, [entityForm, parentId, refresh, setOpenBaseLoading]);
105
+ // Clone entityForm and apply field overrides
106
+ const configuredEntityForm = useMemo(() => {
107
+ const cloned = entityForm.clone(true).withParentId(parentId);
108
+ // Apply list field overrides
109
+ if (listFields && listFields.length > 0) {
110
+ const fieldNames = listFields.map((f) => (typeof f === 'string' ? f : f.name));
111
+ const fieldConfigs = new Map();
112
+ listFields.forEach((f) => {
113
+ if (typeof f !== 'string' && f.listConfig) {
114
+ fieldConfigs.set(f.name, f.listConfig);
115
+ }
116
+ });
117
+ // Update field list configs
118
+ cloned.fields.forEach((field) => {
119
+ if (field instanceof ListableFormField) {
120
+ if (fieldNames.includes(field.name)) {
121
+ // Enable this field for list display
122
+ field.useListField();
123
+ // Apply specific config override if provided
124
+ const configOverride = fieldConfigs.get(field.name);
125
+ if (configOverride) {
126
+ field.withListConfig({
127
+ ...field.getListConfig(),
128
+ ...configOverride,
129
+ support: true,
130
+ });
131
+ }
132
+ // Apply global config
133
+ if (globalListConfig) {
134
+ const currentConfig = field.getListConfig() ?? {};
135
+ const mergedFilterable = globalListConfig.filterable ?? currentConfig.filterable;
136
+ const mergedSortable = globalListConfig.sortable ?? currentConfig.sortable;
137
+ const mergedQuickSearch = globalListConfig.quickSearch ?? currentConfig.quickSearch;
138
+ field.withListConfig({
139
+ ...currentConfig,
140
+ ...(mergedFilterable !== undefined ? { filterable: mergedFilterable } : {}),
141
+ ...(mergedSortable !== undefined ? { sortable: mergedSortable } : {}),
142
+ ...(mergedQuickSearch !== undefined ? { quickSearch: mergedQuickSearch } : {}),
143
+ support: true,
144
+ });
145
+ }
146
+ }
147
+ else {
148
+ // Disable this field for list display
149
+ delete field.listConfig;
150
+ }
151
+ }
152
+ });
153
+ }
154
+ else if (globalListConfig) {
155
+ // Apply global config to all list fields
156
+ cloned.fields.forEach((field) => {
157
+ if (field instanceof ListableFormField && field.isSupportList()) {
158
+ const currentConfig = field.getListConfig() ?? {};
159
+ const mergedFilterable = globalListConfig.filterable ?? currentConfig.filterable;
160
+ const mergedSortable = globalListConfig.sortable ?? currentConfig.sortable;
161
+ const mergedQuickSearch = globalListConfig.quickSearch ?? currentConfig.quickSearch;
162
+ field.withListConfig({
163
+ ...currentConfig,
164
+ ...(mergedFilterable !== undefined ? { filterable: mergedFilterable } : {}),
165
+ ...(mergedSortable !== undefined ? { sortable: mergedSortable } : {}),
166
+ ...(mergedQuickSearch !== undefined ? { quickSearch: mergedQuickSearch } : {}),
167
+ support: true,
168
+ });
169
+ }
170
+ });
171
+ }
172
+ // Add row action columns if defined
173
+ if (rowActionColumns && rowActionColumns.length > 0) {
174
+ rowActionColumns.forEach((column) => {
175
+ if (column.actions && column.actions.length > 0) {
176
+ const actionField = new InlineRowActionField(column.id, column.actions, handleRowAction, column.label, column.order);
177
+ cloned.fields.set(`_rowActions_${column.id}`, actionField);
178
+ }
179
+ });
180
+ }
181
+ return cloned;
182
+ }, [
183
+ entityForm,
184
+ parentId,
185
+ listFields,
186
+ globalListConfig,
187
+ rowActionColumns,
188
+ readonly,
189
+ handleRowAction,
190
+ ]);
191
+ // Create ListGrid
192
+ const listGrid = useMemo(() => {
193
+ return new ListGrid(configuredEntityForm);
194
+ }, [configuredEntityForm]);
195
+ // Build filters with mappedBy
196
+ const buildFilters = useCallback(async (ef) => {
197
+ // Get mappedBy filter
198
+ const mappedBy = relation.mappedBy;
199
+ const filterBy = relation.filterBy ??
200
+ (mappedBy.endsWith('Id') ? mappedBy.replace('Id', '') + '.id' : mappedBy);
201
+ const valueProperty = relation.valueProperty ?? 'id';
202
+ let mappedByValue;
203
+ if (valueProperty === 'id') {
204
+ mappedByValue = parentId;
205
+ }
206
+ else {
207
+ const value = parentEntityForm.getValue(valueProperty);
208
+ if (typeof value === 'string' || typeof value === 'number') {
209
+ mappedByValue = value;
210
+ }
211
+ }
212
+ const mappedByFilter = {
213
+ name: filterBy,
214
+ ...(mappedByValue !== undefined ? { value: String(mappedByValue) } : {}),
215
+ };
216
+ // Apply user-defined filters if any
217
+ if (fetchOptions?.filters) {
218
+ const additionalFilters = await fetchOptions.filters(ef);
219
+ if (additionalFilters.length > 0 && additionalFilters[0].items) {
220
+ const hasMappedByFilter = additionalFilters[0].items.some((item) => item.name === mappedByFilter.name);
221
+ if (!hasMappedByFilter) {
222
+ additionalFilters[0].items.unshift(mappedByFilter);
223
+ }
224
+ return additionalFilters;
225
+ }
226
+ }
227
+ // Return default filter
228
+ return [
229
+ {
230
+ condition: 'AND',
231
+ items: [mappedByFilter],
232
+ },
233
+ ];
234
+ }, [relation, parentId, parentEntityForm, fetchOptions]);
235
+ // Build ViewListGrid options
236
+ const options = useMemo(() => {
237
+ const baseOptions = {
238
+ ...viewListOptions,
239
+ hideTitle: hideTitle,
240
+ readonly: readonly,
241
+ subCollection: {
242
+ name: relation.mappedBy,
243
+ mappedBy: relation.mappedBy,
244
+ mappedValue: parentId,
245
+ // List only mode - disable modify on view
246
+ modifyOnView: false,
247
+ },
248
+ filters: buildFilters,
249
+ // Disable create/update UI since we only show list
250
+ createOrUpdate: {
251
+ addNew: false,
252
+ modal: false,
253
+ },
254
+ // Hide pagination controls if client-side pagination with all data
255
+ ...(pagination?.clientSide !== undefined ? { hidePagination: pagination.clientSide } : {}),
256
+ };
257
+ return baseOptions;
258
+ }, [viewListOptions, hideTitle, readonly, relation, parentId, buildFilters, pagination]);
259
+ return (_jsxs("div", { className: "inline-subcollection-view", children: [tooltip && _jsx("div", { className: "rcm-inline-subcollection-tooltip", children: tooltip }), _jsx(ViewListGrid, { listGrid: listGrid, parentId: parentId, options: options, viewMode: "popup", ...(session !== undefined ? { session } : {}) })] }, `inline-sub-${refreshKey}`));
260
+ };
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { QueryConditionType } from '../../../form/SearchForm';
3
+ import { EntityForm } from '../../../config/EntityForm';
4
+ import { ListableFormField } from '../../fields/abstract';
5
+ interface MemoizedFilterFieldProps {
6
+ entityForm: EntityForm;
7
+ field: ListableFormField<any>;
8
+ fieldName: string;
9
+ value: any;
10
+ onChange: (name: string, value: any, op?: QueryConditionType) => void;
11
+ isCompact?: boolean;
12
+ }
13
+ export declare const MemoizedFilterField: React.MemoExoticComponent<({ entityForm, field, fieldName, value, onChange, isCompact, }: MemoizedFilterFieldProps) => import("react/jsx-runtime").JSX.Element | null>;
14
+ export {};
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useCallback, useEffect, useRef, useState } from 'react';
4
+ import { getTranslation } from '../../../utils/i18n';
5
+ /**
6
+ * Memoized filter field component for performance optimization
7
+ * Only re-renders when props actually change
8
+ */
9
+ const MemoizedFilterFieldInner = ({ entityForm, field, fieldName, value, onChange, isCompact = false, }) => {
10
+ const [filterView, setFilterView] = useState(null);
11
+ const [isLoading, setIsLoading] = useState(true);
12
+ const mountedRef = useRef(true);
13
+ const { t } = getTranslation();
14
+ // Memoized change handler to prevent unnecessary re-renders
15
+ const handleChange = useCallback((newValue, op) => {
16
+ onChange(fieldName, newValue, op);
17
+ }, [fieldName, onChange]);
18
+ // Load filter view only once on mount
19
+ useEffect(() => {
20
+ mountedRef.current = true;
21
+ const loadFilterView = async () => {
22
+ if (!field.isFilterable()) {
23
+ setIsLoading(false);
24
+ return;
25
+ }
26
+ try {
27
+ const view = await field.viewListFilter({
28
+ entityForm,
29
+ onChange: handleChange,
30
+ value,
31
+ });
32
+ if (mountedRef.current) {
33
+ setFilterView(view);
34
+ setIsLoading(false);
35
+ }
36
+ }
37
+ catch (error) {
38
+ console.error('Failed to load filter view:', error);
39
+ if (mountedRef.current) {
40
+ setIsLoading(false);
41
+ }
42
+ }
43
+ };
44
+ loadFilterView();
45
+ return () => {
46
+ mountedRef.current = false;
47
+ };
48
+ }, [field, entityForm, handleChange, value]);
49
+ if (isLoading) {
50
+ return _jsx("div", { className: `animate-pulse ${isCompact ? 'h-8' : 'h-10'} bg-gray-100 rounded` });
51
+ }
52
+ if (!filterView) {
53
+ return null;
54
+ }
55
+ return (_jsxs("div", { className: isCompact ? 'space-y-1' : 'space-y-2', children: [_jsx("label", { htmlFor: fieldName, className: `flex items-center text-gray-700 font-medium ${isCompact ? 'text-xs' : 'text-sm'}`, children: field.viewLabel(t) }), _jsx("div", { className: isCompact ? 'filter-field-compact' : '', children: filterView })] }));
56
+ };
57
+ // Memoize the component to prevent unnecessary re-renders
58
+ export const MemoizedFilterField = memo(MemoizedFilterFieldInner, (prevProps, nextProps) => {
59
+ // Custom comparison: only re-render if these props change
60
+ return (prevProps.fieldName === nextProps.fieldName &&
61
+ prevProps.value === nextProps.value &&
62
+ prevProps.isCompact === nextProps.isCompact &&
63
+ // Reference equality for stable objects
64
+ prevProps.entityForm === nextProps.entityForm &&
65
+ prevProps.field === nextProps.field);
66
+ });
67
+ MemoizedFilterField.displayName = 'MemoizedFilterField';
@@ -0,0 +1,9 @@
1
+ export interface QuickSearchInputProps {
2
+ search: string;
3
+ setSearch: (value: string) => void;
4
+ onQuickSearch: (search: string) => void;
5
+ quickSearchEnabled: boolean;
6
+ quickSearchLabel: string;
7
+ loading: boolean;
8
+ }
9
+ export declare const QuickSearchInput: React.FC<QuickSearchInputProps>;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isBlank } from '../../../utils/StringUtil';
3
+ import { IconCircleX, IconSearch } from '@tabler/icons-react';
4
+ export const QuickSearchInput = ({ search, setSearch, onQuickSearch, quickSearchEnabled, quickSearchLabel, loading, }) => {
5
+ if (!quickSearchEnabled)
6
+ return _jsx("div", { children: "\u00A0" });
7
+ return (_jsxs("div", { className: "rcm-quick-search-wrap", children: [_jsx("input", { type: "text", id: "quick-search", className: "rcm-input rcm-quick-search-input", placeholder: `Search ${quickSearchLabel}`, value: search, readOnly: !quickSearchEnabled, disabled: loading || !quickSearchEnabled, onChange: (e) => setSearch(e.target.value), onKeyUp: (e) => {
8
+ if (e.key === 'Enter')
9
+ onQuickSearch(search);
10
+ } }), _jsx("div", { className: "rcm-quick-search-addon rcm-quick-search-addon-search", children: _jsx("button", { className: "rcm-quick-search-btn", onClick: () => {
11
+ if (!isBlank(search))
12
+ onQuickSearch(search);
13
+ }, children: _jsx(IconSearch, { className: "rcm-quick-search-icon", stroke: 1 }) }) }), !isBlank(search) && (_jsx("div", { className: "rcm-quick-search-addon rcm-quick-search-addon-clear", children: _jsx("button", { className: "rcm-quick-search-btn", onClick: () => {
14
+ setSearch('');
15
+ onQuickSearch('');
16
+ }, children: _jsx(IconCircleX, { className: "rcm-quick-search-icon", stroke: 1 }) }) }))] }));
17
+ };