@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 { SearchForm } from '../../../form/SearchForm';
2
+ import { ListableFormField } from '../../fields/abstract';
3
+ import { ViewFieldManageable } from '../types/ViewListGrid.types';
4
+ export interface SearchBarActionsProps extends ViewFieldManageable {
5
+ searchForm: SearchForm;
6
+ handlePageSizeChange: (value: string) => void;
7
+ hidePageSize?: boolean;
8
+ enableHandleData: boolean;
9
+ listFields: ListableFormField<any>[];
10
+ loading: boolean;
11
+ entityUrl: string;
12
+ subCollectionName?: string;
13
+ searchEnabled: boolean;
14
+ subCollection: boolean;
15
+ filtered: boolean;
16
+ onOpenAdvancedSearch?: () => void;
17
+ hideAdvancedSearch?: boolean;
18
+ }
19
+ export declare const SearchBarActions: React.FC<SearchBarActionsProps>;
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo } from 'react';
4
+ import { Indicator } from '../../../ui';
5
+ import { Tooltip } from '../../../ui';
6
+ import { SelectBox } from '../../../ui';
7
+ import { getTranslation } from '../../../utils/i18n';
8
+ import { ViewFieldSelector } from '../ViewFieldSelector';
9
+ import { useListGridTheme } from '../context/ListGridThemeContext';
10
+ /** 페이지 사이즈 옵션 정의 */
11
+ const PAGE_SIZE_OPTIONS = [
12
+ { labelKey: 'common.pageSize.20', value: '20' },
13
+ { labelKey: 'common.pageSize.50', value: '50' },
14
+ { labelKey: 'common.pageSize.100', value: '100' },
15
+ ];
16
+ const DEFAULT_PAGE_SIZE_VALUE = PAGE_SIZE_OPTIONS[0].value;
17
+ export const SearchBarActions = (props) => {
18
+ const { hidePageSize, searchForm, handlePageSizeChange, enableHandleData, viewFields, setViewFields, listFields, loading, entityUrl, subCollectionName, searchEnabled, subCollection, filtered, onOpenAdvancedSearch, hideAdvancedSearch, } = props;
19
+ const { t } = getTranslation();
20
+ const { classNames: themeClasses, cn } = useListGridTheme();
21
+ const containerClass = cn('rcm-search-bar-actions', themeClasses.searchBarActions?.container);
22
+ // 서브콜렉션에서는 페이지 사이즈 선택만 숨김
23
+ const showPageSize = !hidePageSize && !subCollection;
24
+ // i18n 적용된 옵션 목록
25
+ const pageSizeOptions = useMemo(() => PAGE_SIZE_OPTIONS.map((opt) => ({
26
+ label: t(opt.labelKey),
27
+ value: opt.value,
28
+ })), [t]);
29
+ // 현재 페이지 사이즈 값
30
+ const currentPageSize = `${searchForm.getPageSize() ?? DEFAULT_PAGE_SIZE_VALUE}`;
31
+ // 현재 값이 옵션에 없으면 첫 번째 옵션으로 강제 변경
32
+ const isValidOption = PAGE_SIZE_OPTIONS.some((opt) => opt.value === currentPageSize);
33
+ useEffect(() => {
34
+ if (showPageSize && !isValidOption) {
35
+ handlePageSizeChange(DEFAULT_PAGE_SIZE_VALUE);
36
+ }
37
+ }, [showPageSize, isValidOption, handlePageSizeChange]);
38
+ return (_jsxs("div", { className: containerClass, children: [showPageSize && (_jsx("div", { className: "rcm-search-bar-pagesize", children: _jsx("div", { className: "rcm-search-bar-pagesize-select", children: _jsx(SelectBox, { required: true, name: `pageSizeSelector`, options: pageSizeOptions, value: isValidOption ? currentPageSize : DEFAULT_PAGE_SIZE_VALUE, onChange: handlePageSizeChange, menuPortalTarget: typeof document !== 'undefined' ? document.body : undefined }) }) })), enableHandleData && (_jsx("div", { className: subCollection ? '' : 'rcm-hide-below-sm', children: _jsx(ViewFieldSelector, { viewFields: viewFields, ...(setViewFields !== undefined ? { setViewFields } : {}), fields: listFields, disabled: loading, entityUrl: entityUrl, ...(subCollectionName !== undefined ? { subCollectionName } : {}) }) })), !hideAdvancedSearch && (_jsx(Tooltip, { label: `${searchEnabled ? '통합 검색' : '통합 검색을 지원하지 않습니다.'}`, children: filtered ? (_jsx(Indicator, { color: "red", processing: true, children: _jsx("button", { className: 'rcm-button rcm-search-bar-submit', "data-variant": "primary", disabled: loading || !searchEnabled, onClick: () => onOpenAdvancedSearch?.(), children: "\uD1B5\uD569 \uAC80\uC0C9" }) })) : (_jsx("button", { className: 'rcm-button rcm-search-bar-submit', "data-variant": "primary", disabled: loading || !searchEnabled, onClick: () => onOpenAdvancedSearch?.(), children: "\uD1B5\uD569 \uAC80\uC0C9" })) }))] }));
39
+ };
@@ -0,0 +1,8 @@
1
+ import { SearchForm } from '../../../form/SearchForm';
2
+ interface SortFieldProps {
3
+ name: string;
4
+ searchForm: SearchForm;
5
+ onChangeSearchForm: (searchForm: SearchForm) => void;
6
+ }
7
+ export declare const SortField: ({ name, searchForm, onChangeSearchForm }: SortFieldProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // import {SearchFormState} from '../state/State';
3
+ import { IconSortAscendingLetters, IconSortDescending, IconSortDescendingLetters, } from '@tabler/icons-react';
4
+ export const SortField = ({ name, searchForm, onChangeSearchForm }) => {
5
+ const sorts = searchForm.getSorts();
6
+ const sorted = sorts.has(name);
7
+ let direction = undefined;
8
+ if (sorted) {
9
+ // 이미 정렬 되어 있음
10
+ direction = sorts.get(name);
11
+ }
12
+ function changeSort() {
13
+ const nextDirection = getNextDirection();
14
+ const newSearchForm = searchForm.clone().withSort(name, nextDirection);
15
+ onChangeSearchForm(newSearchForm);
16
+ }
17
+ function getNextDirection() {
18
+ if (direction === undefined) {
19
+ return 'DESC';
20
+ }
21
+ else if (direction === 'DESC') {
22
+ return 'ASC';
23
+ }
24
+ else {
25
+ return undefined;
26
+ }
27
+ }
28
+ const icon = () => {
29
+ if (direction === undefined) {
30
+ return _jsx(IconSortDescending, { className: `w-3.5` });
31
+ }
32
+ else if (direction === 'ASC') {
33
+ return _jsx(IconSortDescendingLetters, { className: `w-3.5 text-primary` });
34
+ }
35
+ else {
36
+ return _jsx(IconSortAscendingLetters, { className: `w-3.5 text-primary` });
37
+ }
38
+ };
39
+ return (_jsx("button", { onClick: () => {
40
+ changeSort();
41
+ }, children: icon() }));
42
+ };
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ export interface SubCollectionInlineViewProps {
4
+ entityForm: EntityForm;
5
+ itemId: string;
6
+ isExpanded: boolean;
7
+ onCollapse: () => void;
8
+ readonly?: boolean;
9
+ onSave?: () => void;
10
+ onDelete?: () => void;
11
+ /** SubCollection mappedBy 필드 - ViewEntityForm에서 부모 참조 필드 자동 숨김 */
12
+ mappedBy?: string;
13
+ }
14
+ /**
15
+ * Inline view component for SubCollection expansion
16
+ *
17
+ * Renders ViewEntityForm in an elegant inline panel with:
18
+ * - Smooth expand/collapse animation
19
+ * - Refined panel styling with shadow and border
20
+ * - Custom header with collapse button
21
+ * - No "목록" button (replaced with close functionality)
22
+ */
23
+ export declare const SubCollectionInlineView: React.MemoExoticComponent<({ entityForm, itemId, isExpanded, onCollapse, readonly, onSave, onDelete, mappedBy, }: SubCollectionInlineViewProps) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo } from 'react';
4
+ import { ViewEntityForm } from '../../form/ViewEntityForm';
5
+ /**
6
+ * Inline view component for SubCollection expansion
7
+ *
8
+ * Renders ViewEntityForm in an elegant inline panel with:
9
+ * - Smooth expand/collapse animation
10
+ * - Refined panel styling with shadow and border
11
+ * - Custom header with collapse button
12
+ * - No "목록" button (replaced with close functionality)
13
+ */
14
+ export const SubCollectionInlineView = memo(({ entityForm, itemId, isExpanded, onCollapse, readonly = false, onSave, onDelete, mappedBy, }) => {
15
+ // buttonLinks에서 onClickList를 onCollapse로 대체
16
+ const buttonLinks = {
17
+ onClickList: async () => {
18
+ onCollapse();
19
+ },
20
+ ...(onSave
21
+ ? {
22
+ onSave: {
23
+ success: () => {
24
+ onSave();
25
+ },
26
+ },
27
+ }
28
+ : {}),
29
+ ...(onDelete
30
+ ? {
31
+ onDelete: {
32
+ success: () => {
33
+ onDelete();
34
+ onCollapse();
35
+ },
36
+ },
37
+ }
38
+ : {}),
39
+ };
40
+ return (_jsx("div", { "data-testid": "subcollection-inline-view", className: `
41
+ subcollection-inline-view
42
+ transition-all duration-300 ease-in-out
43
+ overflow-hidden
44
+ ${isExpanded ? 'max-h-[2000px] opacity-100' : 'max-h-0 opacity-0'}
45
+ `, children: _jsxs("div", { className: "\n ml-4\n border-l-4 border-primary/30\n bg-white/50 dark:bg-gray-900/50\n rounded-r-lg\n overflow-x-hidden\n max-w-full\n ", children: [_jsx("div", { className: "\n bg-primary/20 text-primary dark:bg-primary/30 dark:text-primary-light\n text-xs font-medium\n px-3 py-1.5\n border-b border-primary/10\n ", children: "\uC0C1\uC138 \uC815\uBCF4" }), _jsx("div", { className: "pl-4 pt-2", children: _jsx(ViewEntityForm, { entityForm: entityForm, readonly: readonly, excludeButtons: ['list'], hideTitle: true, buttonLinks: buttonLinks, buttonPosition: "header", subCollection: true, inlineMode: true, ...(mappedBy !== undefined ? { hideMappedByFields: mappedBy } : {}) }) })] }) }));
46
+ });
47
+ SubCollectionInlineView.displayName = 'SubCollectionInlineView';
@@ -0,0 +1,15 @@
1
+ import { EntityForm } from '../../../config/EntityForm';
2
+ import { CreateUpdateOptions } from '../types/ViewListGrid.types';
3
+ export interface SubCollectionModalProps {
4
+ open: boolean;
5
+ setOpen: (open: boolean) => void;
6
+ renderKey: number;
7
+ entityForm: EntityForm;
8
+ createOrUpdate?: CreateUpdateOptions;
9
+ onNotifications: (notifications: string[]) => void;
10
+ onErrors: (errors: string[]) => void;
11
+ onRefresh: () => void;
12
+ /** MappedBy field name for auto-hiding parent reference fields */
13
+ mappedBy?: string;
14
+ }
15
+ export declare const SubCollectionModal: React.FC<SubCollectionModalProps>;
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Modal } from '../../../ui';
3
+ import { ViewEntityForm } from '../../form/ViewEntityForm';
4
+ export const SubCollectionModal = ({ open, setOpen, renderKey, entityForm, createOrUpdate, onNotifications, onErrors, onRefresh, mappedBy, }) => {
5
+ if (!open)
6
+ return null;
7
+ return (_jsx(Modal, { view: { title: false }, size: 'full', animation: 'none', closeOnClickOutside: false, closeOnEscape: false, opened: open, onClose: () => setOpen(false), children: _jsx(ViewEntityForm, { entityForm: entityForm, subCollection: true, ...(mappedBy !== undefined ? { hideMappedByFields: mappedBy } : {}), postSave: async (savedEntityForm) => {
8
+ if (createOrUpdate?.onSave) {
9
+ await createOrUpdate.onSave(savedEntityForm);
10
+ }
11
+ setOpen(false);
12
+ return savedEntityForm;
13
+ }, buttonLinks: {
14
+ onClickList: async () => setOpen(false),
15
+ onDelete: {
16
+ success: () => {
17
+ setOpen(false);
18
+ onNotifications(['삭제가 완료되었습니다.']);
19
+ onRefresh();
20
+ },
21
+ failed: (result) => {
22
+ onErrors(result.errors ?? []);
23
+ setOpen(false);
24
+ },
25
+ },
26
+ onSave: {
27
+ success: () => {
28
+ setOpen(false);
29
+ onNotifications(['저장이 완료되었습니다.']);
30
+ onRefresh();
31
+ },
32
+ },
33
+ } }) }, renderKey));
34
+ };
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { ViewListGridProps } from '../types/ViewListGrid.types';
4
+ import { SearchForm } from '../../../form/SearchForm';
5
+ export declare const SubCollectionViewModal: ({ entityForm, managedId, props, setManagedId, fetchData, setOpenBaseLoading, mappedBy, }: {
6
+ entityForm: EntityForm;
7
+ managedId: string | undefined;
8
+ props: ViewListGridProps;
9
+ setManagedId: React.Dispatch<React.SetStateAction<string | undefined>>;
10
+ fetchData: (form?: SearchForm) => void;
11
+ setOpenBaseLoading: (open: boolean) => void;
12
+ mappedBy?: string;
13
+ }) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Modal } from '../../../ui';
3
+ import { isTrue } from '../../../utils/BooleanUtil';
4
+ import React from 'react';
5
+ import { ViewEntityForm } from '../../form/ViewEntityForm';
6
+ export const SubCollectionViewModal = ({ entityForm, managedId, props, setManagedId, fetchData, setOpenBaseLoading, mappedBy, }) => {
7
+ if (!managedId)
8
+ return null;
9
+ const collectionEntityForm = entityForm.withId(managedId);
10
+ const excludeButtons = [];
11
+ const readonly = isTrue(props.options?.readonly) || !isTrue(props.options?.subCollection?.modifyOnView, true);
12
+ if (!isTrue(props.options?.subCollection?.delete, true)) {
13
+ excludeButtons.push('delete');
14
+ }
15
+ return (_jsx(React.Fragment, { children: _jsx(Modal, { opened: true, view: { title: false }, size: "5xl", animation: 'none', position: "center", closeOnClickOutside: false, closeOnEscape: false, onClose: () => {
16
+ setManagedId(undefined);
17
+ }, children: _jsx(ViewEntityForm, { entityForm: collectionEntityForm, subCollection: true, readonly: readonly, excludeButtons: excludeButtons, ...(mappedBy !== undefined ? { hideMappedByFields: mappedBy } : {}), buttonLinks: {
18
+ onClickList: async () => {
19
+ setManagedId(undefined);
20
+ },
21
+ }, postSave: () => {
22
+ // 저장이 완료된 경우에는 리프레시 한다.
23
+ return new Promise(() => {
24
+ setManagedId(undefined);
25
+ fetchData();
26
+ setOpenBaseLoading(false);
27
+ });
28
+ }, postDelete: async () => {
29
+ setManagedId(undefined);
30
+ fetchData();
31
+ setOpenBaseLoading(false);
32
+ } }, managedId) }) }));
33
+ };
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ interface SyncTopScrollbarProps {
3
+ /** Target element ref to sync scroll with */
4
+ targetRef: React.RefObject<HTMLDivElement | null>;
5
+ /** Minimum content width to show scrollbar (default: 0, always show if scrollable) */
6
+ minWidthToShow?: number;
7
+ /** Additional className for the scrollbar container */
8
+ className?: string;
9
+ }
10
+ /**
11
+ * Synchronized top scrollbar component
12
+ *
13
+ * Creates a scrollbar at the top of the table that syncs with the bottom scrollbar.
14
+ * This improves UX for long lists where users would otherwise need to scroll
15
+ * down to access the horizontal scrollbar.
16
+ */
17
+ export declare const SyncTopScrollbar: React.FC<SyncTopScrollbarProps>;
18
+ export {};
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ /**
5
+ * Synchronized top scrollbar component
6
+ *
7
+ * Creates a scrollbar at the top of the table that syncs with the bottom scrollbar.
8
+ * This improves UX for long lists where users would otherwise need to scroll
9
+ * down to access the horizontal scrollbar.
10
+ */
11
+ export const SyncTopScrollbar = ({ targetRef, minWidthToShow = 0, className = '', }) => {
12
+ const topScrollRef = useRef(null);
13
+ const [contentWidth, setContentWidth] = useState(0);
14
+ const [containerWidth, setContainerWidth] = useState(0);
15
+ const [isVisible, setIsVisible] = useState(false);
16
+ const isSyncing = useRef(false);
17
+ // Update dimensions and visibility
18
+ const updateDimensions = useCallback(() => {
19
+ if (!targetRef.current)
20
+ return;
21
+ const scrollWidth = targetRef.current.scrollWidth;
22
+ const clientWidth = targetRef.current.clientWidth;
23
+ setContentWidth(scrollWidth);
24
+ setContainerWidth(clientWidth);
25
+ // Show only if content is wider than container and meets minimum width
26
+ const shouldShow = scrollWidth > clientWidth && scrollWidth >= minWidthToShow;
27
+ setIsVisible(shouldShow);
28
+ }, [targetRef, minWidthToShow]);
29
+ // Observe target element for size changes
30
+ useEffect(() => {
31
+ if (!targetRef.current)
32
+ return;
33
+ const target = targetRef.current;
34
+ // Initial measurement
35
+ updateDimensions();
36
+ // Use ResizeObserver to detect size changes
37
+ const resizeObserver = new ResizeObserver(() => {
38
+ updateDimensions();
39
+ });
40
+ resizeObserver.observe(target);
41
+ // Also observe the table inside for content changes
42
+ const table = target.querySelector('table');
43
+ if (table) {
44
+ resizeObserver.observe(table);
45
+ }
46
+ return () => {
47
+ resizeObserver.disconnect();
48
+ };
49
+ }, [targetRef, updateDimensions]);
50
+ // Sync scroll from top to target
51
+ const handleTopScroll = useCallback(() => {
52
+ if (isSyncing.current || !targetRef.current || !topScrollRef.current)
53
+ return;
54
+ isSyncing.current = true;
55
+ targetRef.current.scrollLeft = topScrollRef.current.scrollLeft;
56
+ // Reset sync flag after a short delay
57
+ requestAnimationFrame(() => {
58
+ isSyncing.current = false;
59
+ });
60
+ }, [targetRef]);
61
+ // Sync scroll from target to top
62
+ useEffect(() => {
63
+ if (!targetRef.current)
64
+ return;
65
+ const target = targetRef.current;
66
+ const handleTargetScroll = () => {
67
+ if (isSyncing.current || !topScrollRef.current)
68
+ return;
69
+ isSyncing.current = true;
70
+ topScrollRef.current.scrollLeft = target.scrollLeft;
71
+ requestAnimationFrame(() => {
72
+ isSyncing.current = false;
73
+ });
74
+ };
75
+ target.addEventListener('scroll', handleTargetScroll);
76
+ return () => {
77
+ target.removeEventListener('scroll', handleTargetScroll);
78
+ };
79
+ }, [targetRef]);
80
+ // Don't render if not visible
81
+ if (!isVisible) {
82
+ return null;
83
+ }
84
+ return (_jsx("div", { ref: topScrollRef, onScroll: handleTopScroll, className: `overflow-x-auto overflow-y-hidden ${className}`, style: {
85
+ height: '12px',
86
+ marginBottom: '4px',
87
+ }, children: _jsx("div", { style: {
88
+ width: contentWidth,
89
+ height: '1px',
90
+ } }) }));
91
+ };
@@ -0,0 +1,25 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { EntityForm } from '../../../config/EntityForm';
3
+ import { CardSubCollectionFetchOptions, CardSubCollectionRelation } from '../../../config/CardSubCollectionField';
4
+ import { TableConfig } from '../../../config/TableSubCollectionField';
5
+ import { Session } from '../../../auth/types';
6
+ import { SearchForm } from '../../../form/SearchForm';
7
+ export interface TableSubCollectionViewProps {
8
+ parentEntityForm: EntityForm;
9
+ parentId: string;
10
+ entityForm: EntityForm;
11
+ fetchUrl: string | ((parentForm: EntityForm) => string);
12
+ tableConfig?: TableConfig;
13
+ relation: CardSubCollectionRelation;
14
+ readonly?: boolean;
15
+ session?: Session;
16
+ fetchOptions?: CardSubCollectionFetchOptions;
17
+ initialSearchForm?: SearchForm;
18
+ tooltip?: ReactNode;
19
+ }
20
+ /**
21
+ * TableSubCollectionView
22
+ * Displays a collection of items in a table format
23
+ */
24
+ export declare const TableSubCollectionView: React.FC<TableSubCollectionViewProps>;
25
+ export default TableSubCollectionView;
@@ -0,0 +1,213 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { useCardSubCollectionData } from '../hooks/useCardSubCollectionData';
5
+ import { Tooltip } from '../../../ui';
6
+ import { ListableFormField } from '../../fields/abstract';
7
+ import { IconAlertCircle, IconChevronLeft, IconChevronRight, IconChevronsLeft, IconChevronsRight, IconHelp, IconRefresh, IconSearch, IconTable, IconX, } from '@tabler/icons-react';
8
+ /**
9
+ * TableSubCollectionView
10
+ * Displays a collection of items in a table format
11
+ */
12
+ export const TableSubCollectionView = ({ parentEntityForm, parentId, entityForm, fetchUrl: fetchUrlProp, tableConfig, relation, readonly = false, session, fetchOptions, initialSearchForm, tooltip, }) => {
13
+ const [searchQuery, setSearchQuery] = useState('');
14
+ const [isSearchFocused, setIsSearchFocused] = useState(false);
15
+ const [currentPage, setCurrentPage] = useState(1);
16
+ // Check if a field name matches mappedBy patterns
17
+ const isMappedByField = useCallback((fieldName, mappedBy) => {
18
+ if (fieldName === mappedBy)
19
+ return true;
20
+ let baseField = mappedBy;
21
+ if (mappedBy.endsWith('Id')) {
22
+ baseField = mappedBy.slice(0, -2);
23
+ }
24
+ else if (mappedBy.endsWith('.id')) {
25
+ baseField = mappedBy.slice(0, -3);
26
+ }
27
+ if (fieldName === baseField)
28
+ return true;
29
+ if (fieldName.startsWith(baseField + '.'))
30
+ return true;
31
+ return false;
32
+ }, []);
33
+ // Build column definitions from entityForm fields
34
+ const columns = useMemo(() => {
35
+ const fields = Array.from(entityForm.fields.values());
36
+ const mappedBy = relation.mappedBy;
37
+ const displayFields = tableConfig?.displayFields;
38
+ const excludeFields = tableConfig?.excludeFields;
39
+ let selectedFields;
40
+ if (displayFields && displayFields.length > 0) {
41
+ // Use explicit displayFields order
42
+ selectedFields = displayFields
43
+ .map((name) => fields.find((f) => f.getName() === name))
44
+ .filter(Boolean);
45
+ }
46
+ else {
47
+ // Use list-enabled fields
48
+ selectedFields = fields.filter((field) => {
49
+ if (!(field instanceof ListableFormField))
50
+ return false;
51
+ if (field.listConfig?.support !== true)
52
+ return false;
53
+ if (isMappedByField(field.getName(), mappedBy))
54
+ return false;
55
+ if (excludeFields?.includes(field.getName()))
56
+ return false;
57
+ return true;
58
+ });
59
+ }
60
+ return selectedFields.map((field) => {
61
+ const label = field.getLabel();
62
+ return {
63
+ name: field.getName(),
64
+ label: typeof label === 'string' ? label : field.getName(),
65
+ options: field.options,
66
+ };
67
+ });
68
+ }, [entityForm, relation.mappedBy, tableConfig, isMappedByField]);
69
+ // quickSearch fields for search functionality
70
+ const quickSearchFields = useMemo(() => {
71
+ const fields = Array.from(entityForm.fields.values());
72
+ const mappedBy = relation.mappedBy;
73
+ return fields.filter((field) => {
74
+ if (field.listConfig?.support !== true)
75
+ return false;
76
+ if (field.listConfig?.quickSearch !== true)
77
+ return false;
78
+ if (isMappedByField(field.getName(), mappedBy))
79
+ return false;
80
+ return true;
81
+ });
82
+ }, [entityForm, relation.mappedBy, isMappedByField]);
83
+ const searchPlaceholder = useMemo(() => {
84
+ if (quickSearchFields.length === 0)
85
+ return '검색';
86
+ const labels = quickSearchFields.slice(0, 3).map((field) => {
87
+ const label = field.getLabel();
88
+ return typeof label === 'string' ? label : field.getName();
89
+ });
90
+ return `${labels.join(', ')} 검색`;
91
+ }, [quickSearchFields]);
92
+ const isQuickSearchEnabled = quickSearchFields.length > 0;
93
+ const fetchUrl = useMemo(() => {
94
+ if (typeof fetchUrlProp === 'function') {
95
+ return fetchUrlProp(parentEntityForm);
96
+ }
97
+ return fetchUrlProp;
98
+ }, [fetchUrlProp, parentEntityForm]);
99
+ const { data, loading, error, refresh } = useCardSubCollectionData(fetchUrl, {
100
+ mappedBy: relation.mappedBy,
101
+ ...(relation.filterBy !== undefined ? { filterBy: relation.filterBy } : {}),
102
+ ...(fetchOptions?.useSearchForm !== undefined
103
+ ? { useSearchForm: fetchOptions.useSearchForm }
104
+ : {}),
105
+ ...(initialSearchForm !== undefined ? { searchForm: initialSearchForm } : {}),
106
+ });
107
+ // Get nested field value from item
108
+ const getFieldValue = useCallback((item, fieldName) => {
109
+ if (!fieldName.includes('.')) {
110
+ return item[fieldName];
111
+ }
112
+ const keys = fieldName.split('.');
113
+ let value = item;
114
+ for (const key of keys) {
115
+ if (value === null || value === undefined)
116
+ return undefined;
117
+ value = value[key];
118
+ }
119
+ return value;
120
+ }, []);
121
+ // Resolve display value for a cell
122
+ const getCellDisplay = useCallback((item, col) => {
123
+ const value = getFieldValue(item, col.name);
124
+ if (value === null || value === undefined)
125
+ return '';
126
+ // Resolve select options
127
+ if (col.options && Array.isArray(col.options)) {
128
+ const rawValue = typeof value === 'object' ? value?.value : value;
129
+ const option = col.options.find((opt) => opt.value === rawValue);
130
+ if (option)
131
+ return option.label;
132
+ }
133
+ // Boolean
134
+ if (typeof value === 'boolean') {
135
+ return value ? 'Y' : 'N';
136
+ }
137
+ // Object with name/title (ManyToOne)
138
+ if (typeof value === 'object' && !Array.isArray(value)) {
139
+ return value.name || value.title || value.label || JSON.stringify(value);
140
+ }
141
+ return String(value);
142
+ }, [getFieldValue]);
143
+ // Search filtering
144
+ const searchValue = useCallback((value, query) => {
145
+ if (value === null || value === undefined)
146
+ return false;
147
+ if (typeof value === 'string')
148
+ return value.toLowerCase().includes(query);
149
+ if (typeof value === 'object' && !Array.isArray(value)) {
150
+ for (const prop of ['name', 'title', 'label']) {
151
+ if (value[prop] &&
152
+ typeof value[prop] === 'string' &&
153
+ value[prop].toLowerCase().includes(query)) {
154
+ return true;
155
+ }
156
+ }
157
+ }
158
+ return false;
159
+ }, []);
160
+ const filteredData = useMemo(() => {
161
+ if (!isQuickSearchEnabled || !searchQuery.trim())
162
+ return data;
163
+ const query = searchQuery.toLowerCase().trim();
164
+ return data.filter((item) => quickSearchFields.some((field) => searchValue(getFieldValue(item, field.getName()), query)));
165
+ }, [data, searchQuery, quickSearchFields, isQuickSearchEnabled, getFieldValue, searchValue]);
166
+ // Pagination
167
+ const pageSize = tableConfig?.pageSize;
168
+ const isPaginationEnabled = pageSize && pageSize > 0;
169
+ const totalPages = useMemo(() => {
170
+ if (!isPaginationEnabled)
171
+ return 1;
172
+ return Math.ceil(filteredData.length / pageSize);
173
+ }, [filteredData.length, pageSize, isPaginationEnabled]);
174
+ useEffect(() => {
175
+ if (currentPage > totalPages && totalPages > 0)
176
+ setCurrentPage(totalPages);
177
+ else if (currentPage < 1 && totalPages > 0)
178
+ setCurrentPage(1);
179
+ }, [currentPage, totalPages]);
180
+ useEffect(() => {
181
+ setCurrentPage(1);
182
+ }, [searchQuery]);
183
+ const paginatedData = useMemo(() => {
184
+ if (!isPaginationEnabled)
185
+ return filteredData;
186
+ const start = (currentPage - 1) * pageSize;
187
+ return filteredData.slice(start, start + pageSize);
188
+ }, [filteredData, currentPage, pageSize, isPaginationEnabled]);
189
+ const goToPage = useCallback((page) => {
190
+ setCurrentPage(Math.max(1, Math.min(page, totalPages)));
191
+ }, [totalPages]);
192
+ const clearSearch = useCallback(() => {
193
+ setSearchQuery('');
194
+ }, []);
195
+ const showRowNumbers = tableConfig?.showRowNumbers !== false;
196
+ // Loading state
197
+ if (loading) {
198
+ return (_jsxs("div", { className: "rcm-subcollection-skeleton", children: [_jsxs("div", { className: "rcm-subcollection-skeleton-toolbar", children: [_jsx("div", { className: "rcm-subcollection-skeleton-search" }), _jsx("div", { className: "rcm-subcollection-skeleton-actions", children: _jsx("div", { className: "rcm-subcollection-skeleton-pill" }) })] }), _jsxs("div", { className: "rcm-subcollection-skeleton-table", children: [_jsx("div", { className: "rcm-subcollection-skeleton-thead" }), [1, 2, 3, 4, 5].map((i) => (_jsx("div", { className: "rcm-subcollection-skeleton-tr" }, i)))] })] }));
199
+ }
200
+ // Error state
201
+ if (error) {
202
+ return (_jsxs("div", { className: "rcm-subcollection-error", children: [_jsx("div", { className: "rcm-subcollection-error-icon", children: _jsx(IconAlertCircle, { size: 24 }) }), _jsxs("div", { className: "rcm-subcollection-error-body", children: [_jsx("h4", { className: "rcm-subcollection-error-title", children: "\uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC624\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4" }), _jsx("p", { className: "rcm-subcollection-error-message", children: error.message }), _jsxs("button", { type: "button", onClick: () => refresh(), className: "rcm-subcollection-error-retry", children: [_jsx(IconRefresh, { size: 16 }), "\uB2E4\uC2DC \uC2DC\uB3C4"] })] })] }));
203
+ }
204
+ return (_jsxs("div", { className: "rcm-subcollection", children: [_jsxs("div", { className: "rcm-subcollection-toolbar", children: [isQuickSearchEnabled && (_jsxs("div", { className: "rcm-subcollection-search", children: [_jsx("span", { className: isSearchFocused
205
+ ? 'rcm-subcollection-search-icon rcm-subcollection-search-icon-focused'
206
+ : 'rcm-subcollection-search-icon', children: _jsx(IconSearch, { size: 18, stroke: 2 }) }), _jsx("input", { type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), onFocus: () => setIsSearchFocused(true), onBlur: () => setIsSearchFocused(false), placeholder: searchPlaceholder, className: "rcm-subcollection-search-input" }), searchQuery && (_jsx("button", { type: "button", onClick: clearSearch, className: "rcm-subcollection-search-clear", "aria-label": "\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30", children: _jsx(IconX, { size: 16 }) }))] })), _jsxs("div", { className: "rcm-subcollection-actions", children: [_jsx("div", { className: "rcm-subcollection-count", children: searchQuery ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "rcm-subcollection-count-accent", children: filteredData.length }), _jsx("span", { className: "rcm-subcollection-count-sep", children: "/" }), _jsx("span", { children: data.length })] })) : (_jsxs("span", { children: [data.length, "\uAC1C"] })) }), _jsx("button", { type: "button", onClick: () => refresh(), className: "rcm-subcollection-icon-btn", title: "\uC0C8\uB85C\uACE0\uCE68", children: _jsx(IconRefresh, { size: 16, stroke: 2 }) }), tooltip && (_jsx(Tooltip, { label: tooltip, color: "gray", withArrow: true, position: "top-end", children: _jsx("div", { className: "rcm-subcollection-icon-btn rcm-subcollection-icon-btn-help", children: _jsx(IconHelp, { size: 16, stroke: 2 }) }) }))] })] }), filteredData.length === 0 ? (_jsx("div", { className: "rcm-subcollection-empty", children: searchQuery ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "rcm-subcollection-empty-icon", children: _jsx(IconSearch, { size: 32 }) }), _jsxs("p", { className: "rcm-subcollection-empty-title", children: ["'", searchQuery, "'\uC5D0 \uB300\uD55C \uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4"] }), _jsx("button", { type: "button", onClick: clearSearch, className: "rcm-subcollection-empty-action", children: "\uAC80\uC0C9 \uCD08\uAE30\uD654" })] })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "rcm-subcollection-empty-icon", children: _jsx(IconTable, { size: 32 }) }), _jsx("p", { className: "rcm-subcollection-empty-title", children: "\uD45C\uC2DC\uD560 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4" })] })) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "rcm-subcollection-table-wrapper", children: _jsxs("table", { className: "rcm-subcollection-table", children: [_jsx("thead", { children: _jsxs("tr", { children: [showRowNumbers && _jsx("th", { className: "rcm-subcollection-th-no", children: "No" }), columns.map((col) => (_jsx("th", { children: col.label }, col.name)))] }) }), _jsx("tbody", { children: paginatedData.map((item, index) => {
207
+ const rowNumber = isPaginationEnabled
208
+ ? (currentPage - 1) * pageSize + index + 1
209
+ : index + 1;
210
+ return (_jsxs("tr", { children: [showRowNumbers && _jsx("td", { className: "rcm-subcollection-td-no", children: rowNumber }), columns.map((col) => (_jsx("td", { children: getCellDisplay(item, col) }, col.name)))] }, item.id || index));
211
+ }) })] }) }), isPaginationEnabled && totalPages > 1 && (_jsxs("div", { className: "rcm-subcollection-pagination", children: [_jsx("button", { type: "button", onClick: () => goToPage(1), disabled: currentPage === 1, className: "rcm-subcollection-page-btn", title: "\uCCAB \uD398\uC774\uC9C0", children: _jsx(IconChevronsLeft, { size: 16, stroke: 2 }) }), _jsx("button", { type: "button", onClick: () => goToPage(currentPage - 1), disabled: currentPage === 1, className: "rcm-subcollection-page-btn", title: "\uC774\uC804 \uD398\uC774\uC9C0", children: _jsx(IconChevronLeft, { size: 16, stroke: 2 }) }), _jsxs("div", { className: "rcm-subcollection-page-info", children: [_jsx("span", { className: "rcm-subcollection-page-info-current", children: currentPage }), _jsx("span", { className: "rcm-subcollection-count-sep", children: "/" }), _jsx("span", { children: totalPages })] }), _jsx("button", { type: "button", onClick: () => goToPage(currentPage + 1), disabled: currentPage === totalPages, className: "rcm-subcollection-page-btn", title: "\uB2E4\uC74C \uD398\uC774\uC9C0", children: _jsx(IconChevronRight, { size: 16, stroke: 2 }) }), _jsx("button", { type: "button", onClick: () => goToPage(totalPages), disabled: currentPage === totalPages, className: "rcm-subcollection-page-btn", title: "\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0", children: _jsx(IconChevronsRight, { size: 16, stroke: 2 }) }), _jsxs("div", { className: "rcm-subcollection-page-size-badge", children: [pageSize, "\uAC1C\uC529"] })] }))] }))] }));
212
+ };
213
+ export default TableSubCollectionView;
@@ -0,0 +1,2 @@
1
+ import { RowItemProps } from '../types/RowItem.types';
2
+ export declare const ViewColumn: ({ fields, item, index, router, path, entityForm, viewFields, viewMode, onSelect, clickAccordion, }: RowItemProps) => import("react/jsx-runtime").JSX.Element | null;