@webiny/app-admin 6.6.0-alpha.1 → 6.6.0-alpha.10

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 (718) hide show
  1. package/base/Admin.js +19 -2
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.js +4 -0
  4. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/AutoCompleteRenderer.js +1 -0
  6. package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -1
  7. package/base/Base/FieldRenderers/BirthdayInputRenderer.d.ts +21 -0
  8. package/base/Base/FieldRenderers/BirthdayInputRenderer.js +39 -0
  9. package/base/Base/FieldRenderers/BirthdayInputRenderer.js.map +1 -0
  10. package/base/Base/FieldRenderers/BirthdayInputRenderer.test.d.ts +1 -0
  11. package/base/Base/FieldRenderers/BirthdayInputRenderer.test.js +123 -0
  12. package/base/Base/FieldRenderers/BirthdayInputRenderer.test.js.map +1 -0
  13. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js +21 -4
  14. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -1
  15. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +11 -2
  16. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  17. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +2 -0
  18. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +14 -5
  19. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  20. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +16 -25
  21. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  22. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +18 -3
  23. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  24. package/base/Base/FieldRenderers/ObjectRenderer/{TemplatePicker.d.ts → TemplatePicker/AddTemplateButton.d.ts} +1 -1
  25. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/AddTemplateButton.js +24 -0
  26. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/AddTemplateButton.js.map +1 -0
  27. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/SelectableTemplate.d.ts +13 -0
  28. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/SelectableTemplate.js +21 -0
  29. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/SelectableTemplate.js.map +1 -0
  30. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateCard.d.ts +3 -0
  31. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateCard.js +35 -0
  32. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateCard.js.map +1 -0
  33. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGallery.d.ts +8 -0
  34. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGallery.js +22 -0
  35. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGallery.js.map +1 -0
  36. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGalleryToolbar.d.ts +10 -0
  37. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGalleryToolbar.js +52 -0
  38. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateGalleryToolbar.js.map +1 -0
  39. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateIcon.d.ts +8 -0
  40. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateIcon.js +16 -0
  41. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateIcon.js.map +1 -0
  42. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateList.d.ts +10 -0
  43. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateList.js +22 -0
  44. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateList.js.map +1 -0
  45. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateListItem.d.ts +3 -0
  46. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateListItem.js +35 -0
  47. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/TemplateListItem.js.map +1 -0
  48. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/index.d.ts +1 -0
  49. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/index.js +1 -0
  50. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/types.d.ts +6 -0
  51. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker/types.js +0 -0
  52. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.d.ts +8 -3
  53. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +25 -17
  54. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -1
  55. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.test.d.ts +1 -0
  56. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.test.js +106 -0
  57. package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.test.js.map +1 -0
  58. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +3 -2
  59. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -1
  60. package/base/Base/FieldRenderers/SelectRenderer.js +4 -2
  61. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  62. package/base/Base.js +2 -1
  63. package/base/Base.js.map +1 -1
  64. package/base/createRootContainer.js +4 -0
  65. package/base/createRootContainer.js.map +1 -1
  66. package/base/resolveApiUrl.d.ts +10 -0
  67. package/base/resolveApiUrl.js +11 -3
  68. package/base/resolveApiUrl.js.map +1 -1
  69. package/base/ui/AssumedPermissionsSelector.d.ts +47 -0
  70. package/base/ui/AssumedPermissionsSelector.js +7 -0
  71. package/base/ui/AssumedPermissionsSelector.js.map +1 -0
  72. package/base/ui/DebuggerIndicator.d.ts +23 -0
  73. package/base/ui/DebuggerIndicator.js +5 -0
  74. package/base/ui/DebuggerIndicator.js.map +1 -0
  75. package/base/ui/Layout.d.ts +20 -0
  76. package/base/ui/Layout.js +2 -1
  77. package/base/ui/Layout.js.map +1 -1
  78. package/components/DeveloperMode/DeveloperMode.d.ts +1 -3
  79. package/components/DeveloperMode/DeveloperMode.js.map +1 -1
  80. package/components/Filters/Filters.js +7 -1
  81. package/components/Filters/Filters.js.map +1 -1
  82. package/components/IconPicker/IconPickerComponent.js +1 -1
  83. package/components/IconPicker/IconPickerComponent.js.map +1 -1
  84. package/components/SplitView/SplitView.d.ts +2 -2
  85. package/components/SplitView/SplitView.js +7 -7
  86. package/components/SplitView/SplitView.js.map +1 -1
  87. package/config/AdminConfig/Widget.d.ts +9 -1
  88. package/config/AdminConfig/Widget.js +6 -2
  89. package/config/AdminConfig/Widget.js.map +1 -1
  90. package/domain/Identity.js +1 -1
  91. package/domain/Identity.js.map +1 -1
  92. package/exports/admin/ui.d.ts +4 -0
  93. package/exports/admin/ui.js +4 -1
  94. package/exports/admin.d.ts +4 -0
  95. package/exports/admin.js +2 -0
  96. package/features/{aiChat/AiChatGateway.d.ts → adminAssistant/AdminAssistantGateway.d.ts} +7 -7
  97. package/features/{aiChat/AiChatGateway.js → adminAssistant/AdminAssistantGateway.js} +8 -8
  98. package/features/adminAssistant/AdminAssistantGateway.js.map +1 -0
  99. package/features/adminAssistant/AdminAssistantPresenter.d.ts +60 -0
  100. package/features/adminAssistant/AdminAssistantPresenter.js +377 -0
  101. package/features/adminAssistant/AdminAssistantPresenter.js.map +1 -0
  102. package/features/adminAssistant/abstractions.d.ts +176 -0
  103. package/features/adminAssistant/abstractions.js +6 -0
  104. package/features/adminAssistant/abstractions.js.map +1 -0
  105. package/features/adminAssistant/feature.d.ts +3 -0
  106. package/features/adminAssistant/feature.js +19 -0
  107. package/features/adminAssistant/feature.js.map +1 -0
  108. package/features/adminAssistant/index.d.ts +6 -0
  109. package/features/adminAssistant/index.js +3 -0
  110. package/features/adminAssistant/turnsFromMessages.d.ts +15 -0
  111. package/features/adminAssistant/turnsFromMessages.js +77 -0
  112. package/features/adminAssistant/turnsFromMessages.js.map +1 -0
  113. package/features/adminUsers/account/getCurrentUser/GetCurrentUserGateway.d.ts +11 -0
  114. package/features/adminUsers/account/getCurrentUser/GetCurrentUserGateway.js +44 -0
  115. package/features/adminUsers/account/getCurrentUser/GetCurrentUserGateway.js.map +1 -0
  116. package/features/adminUsers/account/getCurrentUser/GetCurrentUserUseCase.d.ts +10 -0
  117. package/features/adminUsers/account/getCurrentUser/GetCurrentUserUseCase.js +19 -0
  118. package/features/adminUsers/account/getCurrentUser/GetCurrentUserUseCase.js.map +1 -0
  119. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserGateway.d.ts +16 -0
  120. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserGateway.js +5 -0
  121. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserGateway.js.map +1 -0
  122. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserUseCase.d.ts +10 -0
  123. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserUseCase.js +5 -0
  124. package/features/adminUsers/account/getCurrentUser/abstractions/GetCurrentUserUseCase.js.map +1 -0
  125. package/features/adminUsers/account/getCurrentUser/abstractions/index.d.ts +6 -0
  126. package/features/adminUsers/account/getCurrentUser/abstractions/index.js +2 -0
  127. package/features/adminUsers/account/getCurrentUser/feature.d.ts +3 -0
  128. package/features/adminUsers/account/getCurrentUser/feature.js +19 -0
  129. package/features/adminUsers/account/getCurrentUser/feature.js.map +1 -0
  130. package/features/adminUsers/account/getCurrentUser/index.d.ts +1 -0
  131. package/features/adminUsers/account/getCurrentUser/index.js +1 -0
  132. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserGateway.d.ts +11 -0
  133. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserGateway.js +48 -0
  134. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserGateway.js.map +1 -0
  135. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserUseCase.d.ts +10 -0
  136. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserUseCase.js +19 -0
  137. package/features/adminUsers/account/updateCurrentUser/UpdateCurrentUserUseCase.js.map +1 -0
  138. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.d.ts +26 -0
  139. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.js +5 -0
  140. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.js.map +1 -0
  141. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.d.ts +13 -0
  142. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.js +5 -0
  143. package/features/adminUsers/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.js.map +1 -0
  144. package/features/adminUsers/account/updateCurrentUser/abstractions/index.d.ts +8 -0
  145. package/features/adminUsers/account/updateCurrentUser/abstractions/index.js +2 -0
  146. package/features/adminUsers/account/updateCurrentUser/feature.d.ts +3 -0
  147. package/features/adminUsers/account/updateCurrentUser/feature.js +19 -0
  148. package/features/adminUsers/account/updateCurrentUser/feature.js.map +1 -0
  149. package/features/adminUsers/account/updateCurrentUser/index.d.ts +1 -0
  150. package/features/adminUsers/account/updateCurrentUser/index.js +1 -0
  151. package/features/adminUsers/passwordPolicy/RulesPasswordPolicy.d.ts +6 -0
  152. package/features/adminUsers/passwordPolicy/RulesPasswordPolicy.js +22 -0
  153. package/features/adminUsers/passwordPolicy/RulesPasswordPolicy.js.map +1 -0
  154. package/features/adminUsers/passwordPolicy/abstractions.d.ts +20 -0
  155. package/features/adminUsers/passwordPolicy/abstractions.js +5 -0
  156. package/features/adminUsers/passwordPolicy/abstractions.js.map +1 -0
  157. package/features/adminUsers/passwordPolicy/feature.d.ts +8 -0
  158. package/features/adminUsers/passwordPolicy/feature.js +18 -0
  159. package/features/adminUsers/passwordPolicy/feature.js.map +1 -0
  160. package/features/adminUsers/passwordPolicy/index.d.ts +3 -0
  161. package/features/adminUsers/passwordPolicy/index.js +3 -0
  162. package/features/adminUsers/passwordPolicy/readPasswordPolicyRules.d.ts +10 -0
  163. package/features/adminUsers/passwordPolicy/readPasswordPolicyRules.js +11 -0
  164. package/features/adminUsers/passwordPolicy/readPasswordPolicyRules.js.map +1 -0
  165. package/features/adminUsers/permissions/abstractions.d.ts +17 -0
  166. package/features/adminUsers/permissions/abstractions.js +6 -0
  167. package/features/adminUsers/permissions/abstractions.js.map +1 -0
  168. package/features/adminUsers/permissions/feature.d.ts +14 -0
  169. package/features/adminUsers/permissions/feature.js +7 -0
  170. package/features/adminUsers/permissions/feature.js.map +1 -0
  171. package/features/adminUsers/permissionsSchema.d.ts +10 -0
  172. package/features/adminUsers/permissionsSchema.js +18 -0
  173. package/features/adminUsers/permissionsSchema.js.map +1 -0
  174. package/features/adminUsers/users/createUser/CreateUserGateway.d.ts +11 -0
  175. package/features/adminUsers/users/createUser/CreateUserGateway.js +49 -0
  176. package/features/adminUsers/users/createUser/CreateUserGateway.js.map +1 -0
  177. package/features/adminUsers/users/createUser/CreateUserUseCase.d.ts +10 -0
  178. package/features/adminUsers/users/createUser/CreateUserUseCase.js +18 -0
  179. package/features/adminUsers/users/createUser/CreateUserUseCase.js.map +1 -0
  180. package/features/adminUsers/users/createUser/abstractions/CreateUserGateway.d.ts +21 -0
  181. package/features/adminUsers/users/createUser/abstractions/CreateUserGateway.js +5 -0
  182. package/features/adminUsers/users/createUser/abstractions/CreateUserGateway.js.map +1 -0
  183. package/features/adminUsers/users/createUser/abstractions/CreateUserUseCase.d.ts +14 -0
  184. package/features/adminUsers/users/createUser/abstractions/CreateUserUseCase.js +5 -0
  185. package/features/adminUsers/users/createUser/abstractions/CreateUserUseCase.js.map +1 -0
  186. package/features/adminUsers/users/createUser/abstractions/index.d.ts +2 -0
  187. package/features/adminUsers/users/createUser/abstractions/index.js +2 -0
  188. package/features/adminUsers/users/createUser/feature.d.ts +3 -0
  189. package/features/adminUsers/users/createUser/feature.js +19 -0
  190. package/features/adminUsers/users/createUser/feature.js.map +1 -0
  191. package/features/adminUsers/users/createUser/index.d.ts +2 -0
  192. package/features/adminUsers/users/createUser/index.js +2 -0
  193. package/features/adminUsers/users/deleteUser/DeleteUserGateway.d.ts +11 -0
  194. package/features/adminUsers/users/deleteUser/DeleteUserGateway.js +40 -0
  195. package/features/adminUsers/users/deleteUser/DeleteUserGateway.js.map +1 -0
  196. package/features/adminUsers/users/deleteUser/DeleteUserUseCase.d.ts +10 -0
  197. package/features/adminUsers/users/deleteUser/DeleteUserUseCase.js +18 -0
  198. package/features/adminUsers/users/deleteUser/DeleteUserUseCase.js.map +1 -0
  199. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserGateway.d.ts +11 -0
  200. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserGateway.js +5 -0
  201. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserGateway.js.map +1 -0
  202. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserUseCase.d.ts +11 -0
  203. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserUseCase.js +5 -0
  204. package/features/adminUsers/users/deleteUser/abstractions/DeleteUserUseCase.js.map +1 -0
  205. package/features/adminUsers/users/deleteUser/abstractions/index.d.ts +2 -0
  206. package/features/adminUsers/users/deleteUser/abstractions/index.js +2 -0
  207. package/features/adminUsers/users/deleteUser/feature.d.ts +3 -0
  208. package/features/adminUsers/users/deleteUser/feature.js +19 -0
  209. package/features/adminUsers/users/deleteUser/feature.js.map +1 -0
  210. package/features/adminUsers/users/deleteUser/index.d.ts +2 -0
  211. package/features/adminUsers/users/deleteUser/index.js +2 -0
  212. package/features/adminUsers/users/getUser/GetUserGateway.d.ts +11 -0
  213. package/features/adminUsers/users/getUser/GetUserGateway.js +57 -0
  214. package/features/adminUsers/users/getUser/GetUserGateway.js.map +1 -0
  215. package/features/adminUsers/users/getUser/GetUserUseCase.d.ts +10 -0
  216. package/features/adminUsers/users/getUser/GetUserUseCase.js +18 -0
  217. package/features/adminUsers/users/getUser/GetUserUseCase.js.map +1 -0
  218. package/features/adminUsers/users/getUser/abstractions/GetUserGateway.d.ts +32 -0
  219. package/features/adminUsers/users/getUser/abstractions/GetUserGateway.js +5 -0
  220. package/features/adminUsers/users/getUser/abstractions/GetUserGateway.js.map +1 -0
  221. package/features/adminUsers/users/getUser/abstractions/GetUserUseCase.d.ts +14 -0
  222. package/features/adminUsers/users/getUser/abstractions/GetUserUseCase.js +5 -0
  223. package/features/adminUsers/users/getUser/abstractions/GetUserUseCase.js.map +1 -0
  224. package/features/adminUsers/users/getUser/abstractions/index.d.ts +2 -0
  225. package/features/adminUsers/users/getUser/abstractions/index.js +2 -0
  226. package/features/adminUsers/users/getUser/feature.d.ts +3 -0
  227. package/features/adminUsers/users/getUser/feature.js +19 -0
  228. package/features/adminUsers/users/getUser/feature.js.map +1 -0
  229. package/features/adminUsers/users/getUser/index.d.ts +2 -0
  230. package/features/adminUsers/users/getUser/index.js +2 -0
  231. package/features/adminUsers/users/listUsers/ListUsersGateway.d.ts +11 -0
  232. package/features/adminUsers/users/listUsers/ListUsersGateway.js +39 -0
  233. package/features/adminUsers/users/listUsers/ListUsersGateway.js.map +1 -0
  234. package/features/adminUsers/users/listUsers/ListUsersUseCase.d.ts +10 -0
  235. package/features/adminUsers/users/listUsers/ListUsersUseCase.js +18 -0
  236. package/features/adminUsers/users/listUsers/ListUsersUseCase.js.map +1 -0
  237. package/features/adminUsers/users/listUsers/abstractions/ListUsersGateway.d.ts +17 -0
  238. package/features/adminUsers/users/listUsers/abstractions/ListUsersGateway.js +5 -0
  239. package/features/adminUsers/users/listUsers/abstractions/ListUsersGateway.js.map +1 -0
  240. package/features/adminUsers/users/listUsers/abstractions/ListUsersUseCase.d.ts +10 -0
  241. package/features/adminUsers/users/listUsers/abstractions/ListUsersUseCase.js +5 -0
  242. package/features/adminUsers/users/listUsers/abstractions/ListUsersUseCase.js.map +1 -0
  243. package/features/adminUsers/users/listUsers/abstractions/index.d.ts +2 -0
  244. package/features/adminUsers/users/listUsers/abstractions/index.js +2 -0
  245. package/features/adminUsers/users/listUsers/feature.d.ts +3 -0
  246. package/features/adminUsers/users/listUsers/feature.js +19 -0
  247. package/features/adminUsers/users/listUsers/feature.js.map +1 -0
  248. package/features/adminUsers/users/listUsers/index.d.ts +2 -0
  249. package/features/adminUsers/users/listUsers/index.js +2 -0
  250. package/features/adminUsers/users/updateUser/UpdateUserGateway.d.ts +11 -0
  251. package/features/adminUsers/users/updateUser/UpdateUserGateway.js +59 -0
  252. package/features/adminUsers/users/updateUser/UpdateUserGateway.js.map +1 -0
  253. package/features/adminUsers/users/updateUser/UpdateUserUseCase.d.ts +10 -0
  254. package/features/adminUsers/users/updateUser/UpdateUserUseCase.js +18 -0
  255. package/features/adminUsers/users/updateUser/UpdateUserUseCase.js.map +1 -0
  256. package/features/adminUsers/users/updateUser/abstractions/UpdateUserGateway.d.ts +33 -0
  257. package/features/adminUsers/users/updateUser/abstractions/UpdateUserGateway.js +5 -0
  258. package/features/adminUsers/users/updateUser/abstractions/UpdateUserGateway.js.map +1 -0
  259. package/features/adminUsers/users/updateUser/abstractions/UpdateUserUseCase.d.ts +15 -0
  260. package/features/adminUsers/users/updateUser/abstractions/UpdateUserUseCase.js +5 -0
  261. package/features/adminUsers/users/updateUser/abstractions/UpdateUserUseCase.js.map +1 -0
  262. package/features/adminUsers/users/updateUser/abstractions/index.d.ts +2 -0
  263. package/features/adminUsers/users/updateUser/abstractions/index.js +2 -0
  264. package/features/adminUsers/users/updateUser/feature.d.ts +3 -0
  265. package/features/adminUsers/users/updateUser/feature.js +19 -0
  266. package/features/adminUsers/users/updateUser/feature.js.map +1 -0
  267. package/features/adminUsers/users/updateUser/index.d.ts +2 -0
  268. package/features/adminUsers/users/updateUser/index.js +2 -0
  269. package/features/aiChats/AiChatSaveError.d.ts +6 -0
  270. package/features/aiChats/AiChatSaveError.js +8 -0
  271. package/features/aiChats/AiChatSaveError.js.map +1 -0
  272. package/features/aiChats/AiChatsGateway.d.ts +18 -0
  273. package/features/aiChats/AiChatsGateway.js +132 -0
  274. package/features/aiChats/AiChatsGateway.js.map +1 -0
  275. package/features/aiChats/AiChatsRepository.d.ts +36 -0
  276. package/features/aiChats/AiChatsRepository.js +110 -0
  277. package/features/aiChats/AiChatsRepository.js.map +1 -0
  278. package/features/aiChats/AiChatsRequestError.d.ts +9 -0
  279. package/features/aiChats/AiChatsRequestError.js +8 -0
  280. package/features/aiChats/AiChatsRequestError.js.map +1 -0
  281. package/features/aiChats/abstractions.d.ts +76 -0
  282. package/features/aiChats/abstractions.js +6 -0
  283. package/features/aiChats/abstractions.js.map +1 -0
  284. package/features/aiChats/feature.d.ts +3 -0
  285. package/features/aiChats/feature.js +19 -0
  286. package/features/aiChats/feature.js.map +1 -0
  287. package/features/aiChats/index.d.ts +9 -0
  288. package/features/aiChats/index.js +3 -0
  289. package/features/aiChats/messageOf.d.ts +2 -0
  290. package/features/aiChats/messageOf.js +7 -0
  291. package/features/aiChats/messageOf.js.map +1 -0
  292. package/features/aiSettings/abstractions.d.ts +16 -0
  293. package/features/aiSettings/abstractions.js +5 -0
  294. package/features/aiSettings/abstractions.js.map +1 -0
  295. package/features/aiSettings/index.d.ts +2 -0
  296. package/features/aiSettings/index.js +1 -0
  297. package/features/assumePermissions/ApiStreamClientDecorator.d.ts +16 -0
  298. package/features/assumePermissions/ApiStreamClientDecorator.js +29 -0
  299. package/features/assumePermissions/ApiStreamClientDecorator.js.map +1 -0
  300. package/features/assumePermissions/AssumePermissionsContext.d.ts +17 -0
  301. package/features/assumePermissions/AssumePermissionsContext.js +32 -0
  302. package/features/assumePermissions/AssumePermissionsContext.js.map +1 -0
  303. package/features/assumePermissions/AssumePermissionsUseCase.d.ts +33 -0
  304. package/features/assumePermissions/AssumePermissionsUseCase.js +48 -0
  305. package/features/assumePermissions/AssumePermissionsUseCase.js.map +1 -0
  306. package/features/assumePermissions/GraphQLClientDecorator.d.ts +16 -0
  307. package/features/assumePermissions/GraphQLClientDecorator.js +29 -0
  308. package/features/assumePermissions/GraphQLClientDecorator.js.map +1 -0
  309. package/features/assumePermissions/ListAssumableTargetsGateway.d.ts +13 -0
  310. package/features/assumePermissions/ListAssumableTargetsGateway.js +74 -0
  311. package/features/assumePermissions/ListAssumableTargetsGateway.js.map +1 -0
  312. package/features/assumePermissions/ListAssumableTargetsUseCase.d.ts +16 -0
  313. package/features/assumePermissions/ListAssumableTargetsUseCase.js +38 -0
  314. package/features/assumePermissions/ListAssumableTargetsUseCase.js.map +1 -0
  315. package/features/assumePermissions/LogInUseCaseDecorator.d.ts +33 -0
  316. package/features/assumePermissions/LogInUseCaseDecorator.js +36 -0
  317. package/features/assumePermissions/LogInUseCaseDecorator.js.map +1 -0
  318. package/features/assumePermissions/LogOutUseCaseDecorator.d.ts +16 -0
  319. package/features/assumePermissions/LogOutUseCaseDecorator.js +21 -0
  320. package/features/assumePermissions/LogOutUseCaseDecorator.js.map +1 -0
  321. package/features/assumePermissions/abstractions.d.ts +78 -0
  322. package/features/assumePermissions/abstractions.js +8 -0
  323. package/features/assumePermissions/abstractions.js.map +1 -0
  324. package/features/assumePermissions/assumePermissionsHeader.d.ts +3 -0
  325. package/features/assumePermissions/assumePermissionsHeader.js +7 -0
  326. package/features/assumePermissions/assumePermissionsHeader.js.map +1 -0
  327. package/features/assumePermissions/feature.d.ts +4 -0
  328. package/features/assumePermissions/feature.js +32 -0
  329. package/features/assumePermissions/feature.js.map +1 -0
  330. package/features/assumePermissions/index.d.ts +4 -0
  331. package/features/assumePermissions/index.js +2 -0
  332. package/features/banners/Banners.d.ts +15 -0
  333. package/features/banners/Banners.js +39 -0
  334. package/features/banners/Banners.js.map +1 -0
  335. package/features/banners/abstractions.d.ts +34 -0
  336. package/features/banners/abstractions.js +5 -0
  337. package/features/banners/abstractions.js.map +1 -0
  338. package/features/banners/feature.d.ts +3 -0
  339. package/features/banners/feature.js +17 -0
  340. package/features/banners/feature.js.map +1 -0
  341. package/features/banners/index.d.ts +2 -0
  342. package/features/banners/index.js +2 -0
  343. package/features/dateFormatter/formatUtcOffset.d.ts +1 -0
  344. package/features/dateFormatter/formatUtcOffset.js +11 -0
  345. package/features/dateFormatter/formatUtcOffset.js.map +1 -0
  346. package/features/debugger/DebugSessionsRepository.d.ts +35 -0
  347. package/features/debugger/DebugSessionsRepository.js +57 -0
  348. package/features/debugger/DebugSessionsRepository.js.map +1 -0
  349. package/features/debugger/GraphQLExtensionsDebugHandler.d.ts +17 -0
  350. package/features/debugger/GraphQLExtensionsDebugHandler.js +21 -0
  351. package/features/debugger/GraphQLExtensionsDebugHandler.js.map +1 -0
  352. package/features/debugger/GraphQLExtensionsDebugHandler.test.d.ts +1 -0
  353. package/features/debugger/GraphQLExtensionsDebugHandler.test.js +112 -0
  354. package/features/debugger/GraphQLExtensionsDebugHandler.test.js.map +1 -0
  355. package/features/debugger/abstractions.d.ts +50 -0
  356. package/features/debugger/abstractions.js +5 -0
  357. package/features/debugger/abstractions.js.map +1 -0
  358. package/features/debugger/constants.d.ts +1 -0
  359. package/features/debugger/constants.js +4 -0
  360. package/features/debugger/constants.js.map +1 -0
  361. package/features/debugger/feature.d.ts +3 -0
  362. package/features/debugger/feature.js +19 -0
  363. package/features/debugger/feature.js.map +1 -0
  364. package/features/debugger/index.d.ts +3 -0
  365. package/features/debugger/index.js +3 -0
  366. package/features/formModel/AccessControlRuleEvaluator.d.ts +12 -0
  367. package/features/formModel/AccessControlRuleEvaluator.js +30 -0
  368. package/features/formModel/AccessControlRuleEvaluator.js.map +1 -0
  369. package/features/formModel/AccessControlRuleEvaluator.test.d.ts +1 -0
  370. package/features/formModel/AccessControlRuleEvaluator.test.js +219 -0
  371. package/features/formModel/AccessControlRuleEvaluator.test.js.map +1 -0
  372. package/features/formModel/ConditionRuleEvaluator.js +34 -4
  373. package/features/formModel/ConditionRuleEvaluator.js.map +1 -1
  374. package/features/formModel/Field.d.ts +14 -1
  375. package/features/formModel/Field.js +41 -5
  376. package/features/formModel/Field.js.map +1 -1
  377. package/features/formModel/FieldBuilder.d.ts +3 -3
  378. package/features/formModel/FieldBuilder.js +2 -1
  379. package/features/formModel/FieldBuilder.js.map +1 -1
  380. package/features/formModel/FieldBuilder.test.js +158 -1
  381. package/features/formModel/FieldBuilder.test.js.map +1 -1
  382. package/features/formModel/FocusManager.js +10 -3
  383. package/features/formModel/FocusManager.js.map +1 -1
  384. package/features/formModel/FormErrors.js +1 -1
  385. package/features/formModel/FormErrors.js.map +1 -1
  386. package/features/formModel/FormModel.d.ts +2 -0
  387. package/features/formModel/FormModel.js +32 -9
  388. package/features/formModel/FormModel.js.map +1 -1
  389. package/features/formModel/FormModel.test.js +835 -4
  390. package/features/formModel/FormModel.test.js.map +1 -1
  391. package/features/formModel/ObjectField.d.ts +12 -1
  392. package/features/formModel/ObjectField.js +70 -20
  393. package/features/formModel/ObjectField.js.map +1 -1
  394. package/features/formModel/Rules.test.js +224 -16
  395. package/features/formModel/Rules.test.js.map +1 -1
  396. package/features/formModel/abstractions.d.ts +56 -4
  397. package/features/formModel/abstractions.js +2 -1
  398. package/features/formModel/abstractions.js.map +1 -1
  399. package/features/formModel/createFieldRenderer.d.ts +42 -0
  400. package/features/formModel/createFieldRenderer.js +33 -10
  401. package/features/formModel/createFieldRenderer.js.map +1 -1
  402. package/features/formModel/feature.js +2 -0
  403. package/features/formModel/feature.js.map +1 -1
  404. package/features/formModel/fieldTypes/DateTimeFieldType.d.ts +67 -4
  405. package/features/formModel/fieldTypes/DateTimeFieldType.js +88 -22
  406. package/features/formModel/fieldTypes/DateTimeFieldType.js.map +1 -1
  407. package/features/formModel/fieldTypes/ObjectFieldType.d.ts +3 -1
  408. package/features/formModel/fieldTypes/ObjectFieldType.js +23 -1
  409. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -1
  410. package/features/formModel/fieldTypes/dateLimits.d.ts +37 -0
  411. package/features/formModel/fieldTypes/dateLimits.js +64 -0
  412. package/features/formModel/fieldTypes/dateLimits.js.map +1 -0
  413. package/features/formModel/fieldTypes/dateLimits.test.d.ts +1 -0
  414. package/features/formModel/fieldTypes/dateLimits.test.js +60 -0
  415. package/features/formModel/fieldTypes/dateLimits.test.js.map +1 -0
  416. package/features/formModel/hasSubtreeFocusRequest.d.ts +12 -0
  417. package/features/formModel/hasSubtreeFocusRequest.js +15 -0
  418. package/features/formModel/hasSubtreeFocusRequest.js.map +1 -0
  419. package/features/formModel/index.d.ts +3 -2
  420. package/features/formModel/index.js +2 -1
  421. package/features/formModel/jsonSchema/JsonSchema.d.ts +18 -0
  422. package/features/formModel/jsonSchema/JsonSchema.js +0 -0
  423. package/features/formModel/jsonSchema/JsonSchemaFieldOptions.d.ts +4 -0
  424. package/features/formModel/jsonSchema/JsonSchemaFieldOptions.js +0 -0
  425. package/features/formModel/jsonSchema/JsonSchemaIssue.d.ts +4 -0
  426. package/features/formModel/jsonSchema/JsonSchemaIssue.js +0 -0
  427. package/features/formModel/jsonSchema/JsonSchemaValidationResult.d.ts +5 -0
  428. package/features/formModel/jsonSchema/JsonSchemaValidationResult.js +0 -0
  429. package/features/formModel/jsonSchema/JsonSchemaValidator.d.ts +4 -0
  430. package/features/formModel/jsonSchema/JsonSchemaValidator.js +0 -0
  431. package/features/formModel/jsonSchema/PlainObject.d.ts +1 -0
  432. package/features/formModel/jsonSchema/PlainObject.js +0 -0
  433. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.d.ts +5 -0
  434. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.js +154 -0
  435. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.js.map +1 -0
  436. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.test.d.ts +1 -0
  437. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.test.js +643 -0
  438. package/features/formModel/jsonSchema/buildFieldsFromJsonSchema.test.js.map +1 -0
  439. package/features/formModel/jsonSchema/createJsonSchemaValidator.d.ts +3 -0
  440. package/features/formModel/jsonSchema/createJsonSchemaValidator.js +40 -0
  441. package/features/formModel/jsonSchema/createJsonSchemaValidator.js.map +1 -0
  442. package/features/formModel/jsonSchema/createJsonSchemaValidator.test.d.ts +1 -0
  443. package/features/formModel/jsonSchema/createJsonSchemaValidator.test.js +141 -0
  444. package/features/formModel/jsonSchema/createJsonSchemaValidator.test.js.map +1 -0
  445. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.d.ts +3 -0
  446. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.js +52 -0
  447. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.js.map +1 -0
  448. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.test.d.ts +1 -0
  449. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.test.js +250 -0
  450. package/features/formModel/jsonSchema/formDataToJsonSchemaValue.test.js.map +1 -0
  451. package/features/formModel/jsonSchema/getJsonSchemaKind.d.ts +3 -0
  452. package/features/formModel/jsonSchema/getJsonSchemaKind.js +31 -0
  453. package/features/formModel/jsonSchema/getJsonSchemaKind.js.map +1 -0
  454. package/features/formModel/jsonSchema/getJsonSchemaKind.test.d.ts +1 -0
  455. package/features/formModel/jsonSchema/getJsonSchemaKind.test.js +123 -0
  456. package/features/formModel/jsonSchema/getJsonSchemaKind.test.js.map +1 -0
  457. package/features/formModel/jsonSchema/isPlainObject.d.ts +2 -0
  458. package/features/formModel/jsonSchema/isPlainObject.js +4 -0
  459. package/features/formModel/jsonSchema/isPlainObject.js.map +1 -0
  460. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.d.ts +3 -0
  461. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.js +30 -0
  462. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.js.map +1 -0
  463. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.test.d.ts +1 -0
  464. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.test.js +207 -0
  465. package/features/formModel/jsonSchema/jsonSchemaValueToFormData.test.js.map +1 -0
  466. package/features/formModel/jsonSchema/normalizeJsonSchema.d.ts +2 -0
  467. package/features/formModel/jsonSchema/normalizeJsonSchema.js +10 -0
  468. package/features/formModel/jsonSchema/normalizeJsonSchema.js.map +1 -0
  469. package/features/formModel/renderers.d.ts +1 -0
  470. package/features/formModel/renderers.js +1 -0
  471. package/features/notifications/Notifications.d.ts +1 -0
  472. package/features/notifications/Notifications.js +3 -0
  473. package/features/notifications/Notifications.js.map +1 -1
  474. package/features/notifications/Notifications.test.d.ts +1 -0
  475. package/features/notifications/Notifications.test.js +106 -0
  476. package/features/notifications/Notifications.test.js.map +1 -0
  477. package/features/notifications/NotificationsRenderer.d.ts +2 -1
  478. package/features/notifications/NotificationsRenderer.js +23 -4
  479. package/features/notifications/NotificationsRenderer.js.map +1 -1
  480. package/features/notifications/NotificationsRenderer.test.d.ts +1 -0
  481. package/features/notifications/NotificationsRenderer.test.js +261 -0
  482. package/features/notifications/NotificationsRenderer.test.js.map +1 -0
  483. package/features/notifications/abstractions.d.ts +13 -2
  484. package/features/notifications/abstractions.js.map +1 -1
  485. package/features/security/LogIn/LogInUseCase.d.ts +0 -1
  486. package/features/security/LogIn/LogInUseCase.js +2 -5
  487. package/features/security/LogIn/LogInUseCase.js.map +1 -1
  488. package/features/security/LogIn/hasAppPermissions.d.ts +2 -0
  489. package/features/security/LogIn/hasAppPermissions.js +8 -0
  490. package/features/security/LogIn/hasAppPermissions.js.map +1 -0
  491. package/features/wcp/ReactLicense.d.ts +6 -1
  492. package/features/wcp/ReactLicense.js +17 -2
  493. package/features/wcp/ReactLicense.js.map +1 -1
  494. package/features/wcp/WcpGateway.js +4 -0
  495. package/features/wcp/WcpGateway.js.map +1 -1
  496. package/hooks/useHotkeys.js +6 -4
  497. package/hooks/useHotkeys.js.map +1 -1
  498. package/index.d.ts +27 -3
  499. package/index.js +23 -6
  500. package/modules/AccessManagementExtension.js +3 -1
  501. package/modules/AccessManagementExtension.js.map +1 -1
  502. package/modules/DebuggerExtension.d.ts +2 -0
  503. package/modules/DebuggerExtension.js +55 -0
  504. package/modules/DebuggerExtension.js.map +1 -0
  505. package/package.json +41 -41
  506. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +1 -2
  507. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -1
  508. package/presentation/accessManagement/roles/RolesPresenter.js +1 -2
  509. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -1
  510. package/presentation/accessManagement/roles/components/RolesDataList.d.ts +10 -0
  511. package/presentation/accessManagement/roles/components/RolesDataList.js +146 -0
  512. package/presentation/accessManagement/roles/components/RolesDataList.js.map +1 -0
  513. package/presentation/accessManagement/roles/components/RolesForm.d.ts +13 -0
  514. package/presentation/accessManagement/roles/components/RolesForm.js +114 -0
  515. package/presentation/accessManagement/roles/components/RolesForm.js.map +1 -0
  516. package/presentation/accessManagement/roles/components/RolesView.js +6 -216
  517. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -1
  518. package/presentation/accessManagement/teams/TeamsPresenter.js +1 -2
  519. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -1
  520. package/presentation/accessManagement/teams/components/TeamsDataList.d.ts +10 -0
  521. package/presentation/accessManagement/teams/components/TeamsDataList.js +146 -0
  522. package/presentation/accessManagement/teams/components/TeamsDataList.js.map +1 -0
  523. package/presentation/accessManagement/teams/components/TeamsForm.d.ts +13 -0
  524. package/presentation/accessManagement/teams/components/TeamsForm.js +96 -0
  525. package/presentation/accessManagement/teams/components/TeamsForm.js.map +1 -0
  526. package/presentation/accessManagement/teams/components/TeamsView.js +6 -198
  527. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -1
  528. package/presentation/adminUsers/AdminUsers.d.ts +10 -0
  529. package/presentation/adminUsers/AdminUsers.js +77 -0
  530. package/presentation/adminUsers/AdminUsers.js.map +1 -0
  531. package/presentation/adminUsers/SecurityPermission.d.ts +2 -0
  532. package/presentation/adminUsers/SecurityPermission.js +15 -0
  533. package/presentation/adminUsers/SecurityPermission.js.map +1 -0
  534. package/presentation/adminUsers/UserItem.d.ts +10 -0
  535. package/presentation/adminUsers/UserItem.js +0 -0
  536. package/presentation/adminUsers/components/AvatarImage/AvatarImage.d.ts +3 -0
  537. package/presentation/adminUsers/components/AvatarImage/AvatarImage.js +31 -0
  538. package/presentation/adminUsers/components/AvatarImage/AvatarImage.js.map +1 -0
  539. package/presentation/adminUsers/components/AvatarImage/AvatarImagePreview.d.ts +10 -0
  540. package/presentation/adminUsers/components/AvatarImage/AvatarImagePreview.js +53 -0
  541. package/presentation/adminUsers/components/AvatarImage/AvatarImagePreview.js.map +1 -0
  542. package/presentation/adminUsers/components/AvatarImage/AvatarImageTrigger.d.ts +7 -0
  543. package/presentation/adminUsers/components/AvatarImage/AvatarImageTrigger.js +28 -0
  544. package/presentation/adminUsers/components/AvatarImage/AvatarImageTrigger.js.map +1 -0
  545. package/presentation/adminUsers/components/AvatarImage/index.d.ts +1 -0
  546. package/presentation/adminUsers/components/AvatarImage/index.js +1 -0
  547. package/presentation/adminUsers/routes.d.ts +10 -0
  548. package/presentation/adminUsers/routes.js +20 -0
  549. package/presentation/adminUsers/routes.js.map +1 -0
  550. package/presentation/adminUsers/userMenu/AccountDetails.d.ts +6 -0
  551. package/presentation/adminUsers/userMenu/AccountDetails.js +20 -0
  552. package/presentation/adminUsers/userMenu/AccountDetails.js.map +1 -0
  553. package/presentation/adminUsers/userMenu/useIsDefaultTenant.d.ts +1 -0
  554. package/presentation/adminUsers/userMenu/useIsDefaultTenant.js +9 -0
  555. package/presentation/adminUsers/userMenu/useIsDefaultTenant.js.map +1 -0
  556. package/presentation/adminUsers/views/Account/Account.d.ts +2 -0
  557. package/presentation/adminUsers/views/Account/Account.js +137 -0
  558. package/presentation/adminUsers/views/Account/Account.js.map +1 -0
  559. package/presentation/adminUsers/views/Account/index.d.ts +1 -0
  560. package/presentation/adminUsers/views/Account/index.js +1 -0
  561. package/presentation/adminUsers/views/Users/UsersDataList.d.ts +3 -0
  562. package/presentation/adminUsers/views/Users/UsersDataList.js +180 -0
  563. package/presentation/adminUsers/views/Users/UsersDataList.js.map +1 -0
  564. package/presentation/adminUsers/views/Users/UsersForm.d.ts +5 -0
  565. package/presentation/adminUsers/views/Users/UsersForm.js +175 -0
  566. package/presentation/adminUsers/views/Users/UsersForm.js.map +1 -0
  567. package/presentation/adminUsers/views/Users/UsersView.d.ts +2 -0
  568. package/presentation/adminUsers/views/Users/UsersView.js +15 -0
  569. package/presentation/adminUsers/views/Users/UsersView.js.map +1 -0
  570. package/presentation/adminUsers/views/Users/components/DeleteAction.d.ts +7 -0
  571. package/presentation/adminUsers/views/Users/components/DeleteAction.js +29 -0
  572. package/presentation/adminUsers/views/Users/components/DeleteAction.js.map +1 -0
  573. package/presentation/adminUsers/views/Users/hooks/useUserForm.d.ts +27 -0
  574. package/presentation/adminUsers/views/Users/hooks/useUserForm.js +101 -0
  575. package/presentation/adminUsers/views/Users/hooks/useUserForm.js.map +1 -0
  576. package/presentation/adminUsers/views/Users/search.js +21 -0
  577. package/presentation/adminUsers/views/Users/search.js.map +1 -0
  578. package/presentation/adminUsers/views/Users/search.svg +20 -0
  579. package/presentation/adminUsers/views/utils.d.ts +3 -0
  580. package/presentation/adminUsers/views/utils.js +12 -0
  581. package/presentation/adminUsers/views/utils.js.map +1 -0
  582. package/presentation/aiChats/AiChatsPanelPresenter.d.ts +28 -0
  583. package/presentation/aiChats/AiChatsPanelPresenter.js +132 -0
  584. package/presentation/aiChats/AiChatsPanelPresenter.js.map +1 -0
  585. package/presentation/aiChats/abstractions.d.ts +69 -0
  586. package/presentation/aiChats/abstractions.js +5 -0
  587. package/presentation/aiChats/abstractions.js.map +1 -0
  588. package/presentation/aiChats/feature.d.ts +3 -0
  589. package/presentation/aiChats/feature.js +17 -0
  590. package/presentation/aiChats/feature.js.map +1 -0
  591. package/presentation/aiChats/index.d.ts +2 -0
  592. package/presentation/aiChats/index.js +2 -0
  593. package/presentation/assumePermissions/AssumePermissionsPresenter.d.ts +36 -0
  594. package/presentation/assumePermissions/AssumePermissionsPresenter.js +153 -0
  595. package/presentation/assumePermissions/AssumePermissionsPresenter.js.map +1 -0
  596. package/presentation/assumePermissions/abstractions.d.ts +30 -0
  597. package/presentation/assumePermissions/abstractions.js +5 -0
  598. package/presentation/assumePermissions/abstractions.js.map +1 -0
  599. package/presentation/assumePermissions/components/AssumePermissionsButton.d.ts +14 -0
  600. package/presentation/assumePermissions/components/AssumePermissionsButton.js +42 -0
  601. package/presentation/assumePermissions/components/AssumePermissionsButton.js.map +1 -0
  602. package/presentation/assumePermissions/components/AssumedPermissionsBanner.d.ts +11 -0
  603. package/presentation/assumePermissions/components/AssumedPermissionsBanner.js +25 -0
  604. package/presentation/assumePermissions/components/AssumedPermissionsBanner.js.map +1 -0
  605. package/presentation/assumePermissions/components/AssumedPermissionsSelector.d.ts +2 -0
  606. package/presentation/assumePermissions/components/AssumedPermissionsSelector.js +68 -0
  607. package/presentation/assumePermissions/components/AssumedPermissionsSelector.js.map +1 -0
  608. package/presentation/assumePermissions/feature.d.ts +3 -0
  609. package/presentation/assumePermissions/feature.js +17 -0
  610. package/presentation/assumePermissions/feature.js.map +1 -0
  611. package/presentation/assumePermissions/index.d.ts +4 -0
  612. package/presentation/assumePermissions/index.js +4 -0
  613. package/presentation/banners/BannersPresenter.d.ts +14 -0
  614. package/presentation/banners/BannersPresenter.js +60 -0
  615. package/presentation/banners/BannersPresenter.js.map +1 -0
  616. package/presentation/banners/abstractions.d.ts +24 -0
  617. package/presentation/banners/abstractions.js +5 -0
  618. package/presentation/banners/abstractions.js.map +1 -0
  619. package/presentation/banners/components/Banner.d.ts +10 -0
  620. package/presentation/banners/components/Banner.js +32 -0
  621. package/presentation/banners/components/Banner.js.map +1 -0
  622. package/presentation/banners/components/BannerBar.d.ts +11 -0
  623. package/presentation/banners/components/BannerBar.js +51 -0
  624. package/presentation/banners/components/BannerBar.js.map +1 -0
  625. package/presentation/banners/feature.d.ts +3 -0
  626. package/presentation/banners/feature.js +17 -0
  627. package/presentation/banners/feature.js.map +1 -0
  628. package/presentation/banners/index.d.ts +6 -0
  629. package/presentation/banners/index.js +4 -0
  630. package/presentation/banners/useBanner.d.ts +10 -0
  631. package/presentation/banners/useBanner.js +15 -0
  632. package/presentation/banners/useBanner.js.map +1 -0
  633. package/presentation/commandPalette/CommandPalettePresenter.js +3 -1
  634. package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -1
  635. package/presentation/commandPalette/abstractions.d.ts +5 -0
  636. package/presentation/commandPalette/abstractions.js.map +1 -1
  637. package/presentation/commandPalette/commands/AiChatsCommand.d.ts +24 -0
  638. package/presentation/commandPalette/commands/AiChatsCommand.js +41 -0
  639. package/presentation/commandPalette/commands/AiChatsCommand.js.map +1 -0
  640. package/presentation/commandPalette/commands/AskAiCommand.d.ts +1 -0
  641. package/presentation/commandPalette/commands/AskAiCommand.js +3 -2
  642. package/presentation/commandPalette/commands/AskAiCommand.js.map +1 -1
  643. package/presentation/commandPalette/commands/feature.js +2 -0
  644. package/presentation/commandPalette/commands/feature.js.map +1 -1
  645. package/presentation/createReactiveComponent.d.ts +1 -0
  646. package/presentation/createReactiveComponent.js +1 -0
  647. package/presentation/debugger/DebuggerPresenter.d.ts +14 -0
  648. package/presentation/debugger/DebuggerPresenter.js +45 -0
  649. package/presentation/debugger/DebuggerPresenter.js.map +1 -0
  650. package/presentation/debugger/abstractions.d.ts +17 -0
  651. package/presentation/debugger/abstractions.js +5 -0
  652. package/presentation/debugger/abstractions.js.map +1 -0
  653. package/presentation/debugger/components/DebuggerIndicator.d.ts +2 -0
  654. package/presentation/debugger/components/DebuggerIndicator.js +45 -0
  655. package/presentation/debugger/components/DebuggerIndicator.js.map +1 -0
  656. package/presentation/debugger/components/DebuggerView.d.ts +4 -0
  657. package/presentation/debugger/components/DebuggerView.js +44 -0
  658. package/presentation/debugger/components/DebuggerView.js.map +1 -0
  659. package/presentation/debugger/downloadJson.d.ts +7 -0
  660. package/presentation/debugger/downloadJson.js +17 -0
  661. package/presentation/debugger/downloadJson.js.map +1 -0
  662. package/presentation/debugger/feature.d.ts +3 -0
  663. package/presentation/debugger/feature.js +17 -0
  664. package/presentation/debugger/feature.js.map +1 -0
  665. package/presentation/debugger/routes.d.ts +4 -0
  666. package/presentation/debugger/routes.js +10 -0
  667. package/presentation/debugger/routes.js.map +1 -0
  668. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js +4 -3
  669. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js.map +1 -1
  670. package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js.map +1 -1
  671. package/presentation/installation/presenters/SystemInstaller/SystemInstallerPresenter.js.map +1 -1
  672. package/presentation/listPresenter/FolderAwareDataSource.d.ts +5 -0
  673. package/presentation/listPresenter/FolderAwareDataSource.js +4 -3
  674. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -1
  675. package/presentation/listPresenter/QueryMatcher.d.ts +28 -5
  676. package/presentation/listPresenter/QueryMatcher.js +72 -2
  677. package/presentation/listPresenter/QueryMatcher.js.map +1 -1
  678. package/presentation/listPresenter/QueryMatcher.test.d.ts +1 -0
  679. package/presentation/listPresenter/QueryMatcher.test.js +345 -0
  680. package/presentation/listPresenter/QueryMatcher.test.js.map +1 -0
  681. package/presentation/trashBin/TrashBinPresenter.js +3 -1
  682. package/presentation/trashBin/TrashBinPresenter.js.map +1 -1
  683. package/presentation/trashBin/TrashBinPresenter.test.d.ts +1 -0
  684. package/presentation/trashBin/TrashBinPresenter.test.js +91 -0
  685. package/presentation/trashBin/TrashBinPresenter.test.js.map +1 -0
  686. package/presentation/trashBin/abstractions.d.ts +1 -1
  687. package/presentation/trashBin/abstractions.js.map +1 -1
  688. package/presentation/trashBin/components/BulkActions/DeleteItems.js +5 -1
  689. package/presentation/trashBin/components/BulkActions/DeleteItems.js.map +1 -1
  690. package/presentation/trashBin/components/BulkActions/DeleteItems.test.d.ts +1 -0
  691. package/presentation/trashBin/components/BulkActions/DeleteItems.test.js +100 -0
  692. package/presentation/trashBin/components/BulkActions/DeleteItems.test.js.map +1 -0
  693. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js +2 -1
  694. package/presentation/trashBin/hooks/useDeleteTrashBinItem.js.map +1 -1
  695. package/presentation/trashBin/hooks/useDeleteTrashBinItem.test.d.ts +1 -0
  696. package/presentation/trashBin/hooks/useDeleteTrashBinItem.test.js +67 -0
  697. package/presentation/trashBin/hooks/useDeleteTrashBinItem.test.js.map +1 -0
  698. package/static/svg/search.43fa797c.svg +20 -0
  699. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +0 -68
  700. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +0 -1
  701. package/features/aiChat/AiChatGateway.js.map +0 -1
  702. package/features/aiChat/AiChatPresenter.d.ts +0 -32
  703. package/features/aiChat/AiChatPresenter.js +0 -220
  704. package/features/aiChat/AiChatPresenter.js.map +0 -1
  705. package/features/aiChat/abstractions.d.ts +0 -124
  706. package/features/aiChat/abstractions.js +0 -6
  707. package/features/aiChat/abstractions.js.map +0 -1
  708. package/features/aiChat/feature.d.ts +0 -3
  709. package/features/aiChat/feature.js +0 -19
  710. package/features/aiChat/feature.js.map +0 -1
  711. package/features/aiChat/index.d.ts +0 -6
  712. package/features/aiChat/index.js +0 -3
  713. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.d.ts +0 -8
  714. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +0 -17
  715. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +0 -1
  716. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/usePasswordValidator.d.ts +0 -1
  717. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/usePasswordValidator.js +0 -16
  718. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/usePasswordValidator.js.map +0 -1
@@ -22,6 +22,8 @@ export declare class ObjectField implements IObjectField {
22
22
  private _templateLayouts;
23
23
  private _validating;
24
24
  constructor(config: IObjectFieldConfig);
25
+ /** Layouts declared on the templates themselves via `template.layout()`. */
26
+ private _declaredTemplateLayouts;
25
27
  private _findTemplate;
26
28
  private _rebuildChildrenForTemplate;
27
29
  get name(): string;
@@ -31,8 +33,17 @@ export declare class ObjectField implements IObjectField {
31
33
  setDisabled(value: boolean): void;
32
34
  setVisible(value: boolean): void;
33
35
  setAncestorRules(rules: IRule[]): void;
34
- setForm(form: IFormModel, parentPath?: string): void;
36
+ setForm(form: IFormModel, parentPath?: string, scopePath?: () => string): void;
37
+ /** Scope for direct children: a path `form.field()` resolves to this field. */
38
+ private _childScope;
39
+ /**
40
+ * Scope for the children of a list item. Children keep `qualifiedName` without an
41
+ * item selector, so `$.` rule targets and `field.parent()` need the item's index to
42
+ * reach their siblings. Resolved lazily, so it follows reorders and removals.
43
+ */
44
+ private _itemScope;
35
45
  setValidation(validation: IFieldValidation): void;
46
+ private setValidationWithCache;
36
47
  addBeforeChange(cb: BeforeChangeCallback): void;
37
48
  addAfterChange(cb: AfterChangeCallback): void;
38
49
  addAfterSetValue(cb: AfterSetValueCallback): void;
@@ -2,23 +2,23 @@ import { makeAutoObservable, runInAction, toJS } from "mobx";
2
2
  import { Field } from "./Field.js";
3
3
  import { createTemplateBuilder } from "./fieldTypes/ObjectFieldType.js";
4
4
  const TEMPLATE_DISCRIMINATOR = "_templateId";
5
- function createChildFields(childBuilders, form, parentPath) {
5
+ function createChildFields(childBuilders, form, parentPath, scopePath) {
6
6
  const children = new Map();
7
7
  for (const [name, builder] of Object.entries(childBuilders)){
8
8
  const config = builder.build(name);
9
- const field = createFieldFromConfig(config, form, parentPath);
9
+ const field = createFieldFromConfig(config, form, parentPath, scopePath);
10
10
  children.set(name, field);
11
11
  }
12
12
  return children;
13
13
  }
14
- function createFieldFromConfig(config, form, parentPath) {
14
+ function createFieldFromConfig(config, form, parentPath, scopePath) {
15
15
  if (config.childBuilders) {
16
16
  const objField = new ObjectField(config);
17
- if (form) objField.setForm(form, parentPath);
17
+ if (form) objField.setForm(form, parentPath, scopePath);
18
18
  return objField;
19
19
  }
20
20
  const field = new Field(config);
21
- if (form) field.setForm(form, parentPath);
21
+ if (form) field.setForm(form, parentPath, scopePath);
22
22
  return field;
23
23
  }
24
24
  function hydrateChildren(children, data, options) {
@@ -53,6 +53,7 @@ class ObjectField {
53
53
  this._ownLayout = null;
54
54
  this._templateLayouts = {};
55
55
  this._validating = false;
56
+ this._childScope = ()=>this._base.scopedName;
56
57
  this.config = config;
57
58
  this._base = new Field({
58
59
  ...config,
@@ -61,19 +62,31 @@ class ObjectField {
61
62
  });
62
63
  this._templates = config.templates ?? [];
63
64
  this._isTemplated = this._templates.length > 0;
65
+ this._ownLayout = config.layout ?? null;
66
+ this._templateLayouts = this._declaredTemplateLayouts();
64
67
  if (this._isTemplated) this._children = new Map();
65
- else this._children = createChildFields(config.childBuilders, null);
68
+ else {
69
+ this._children = createChildFields(config.childBuilders, null);
70
+ if (this._ownLayout) this._applyNestedObjectLayouts(this._ownLayout, this._children);
71
+ }
66
72
  makeAutoObservable(this, {
67
- config: false
73
+ config: false,
74
+ _childScope: false,
75
+ _itemScope: false
68
76
  });
69
77
  }
78
+ _declaredTemplateLayouts() {
79
+ const layouts = {};
80
+ for (const template of this._templates)if (template.layout) layouts[template.id] = template.layout;
81
+ return layouts;
82
+ }
70
83
  _findTemplate(id) {
71
84
  return this._templates.find((t)=>t.id === id);
72
85
  }
73
86
  _rebuildChildrenForTemplate(templateId) {
74
87
  const template = this._findTemplate(templateId);
75
88
  if (!template) throw new Error(`Template "${templateId}" not found on field "${this.config.name}". Available: ${this._templates.map((t)=>t.id).join(", ") || "(none)"}.`);
76
- const children = createChildFields(template.childBuilders, this._form, this.qualifiedName);
89
+ const children = createChildFields(template.childBuilders, this._form, this.qualifiedName, this._childScope);
77
90
  this._children = children;
78
91
  this._activeTemplateId = templateId;
79
92
  const inner = this._innerLayoutFor(templateId);
@@ -100,16 +113,25 @@ class ObjectField {
100
113
  setAncestorRules(rules) {
101
114
  this._base.setAncestorRules(rules);
102
115
  }
103
- setForm(form, parentPath) {
116
+ setForm(form, parentPath, scopePath) {
104
117
  this._form = form;
105
- this._base.setForm(form, parentPath);
118
+ this._base.setForm(form, parentPath, scopePath);
106
119
  const myPath = this._base.qualifiedName;
107
- for (const [, field] of this._children)field.setForm(form, myPath);
108
- for (const item of this._items)for (const [, field] of item.children)field.setForm(form, myPath);
120
+ for (const [, field] of this._children)field.setForm(form, myPath, this._childScope);
121
+ for (const item of this._items)for (const [, field] of item.children)field.setForm(form, myPath, this._itemScope(item.key));
122
+ }
123
+ _itemScope(key) {
124
+ return ()=>{
125
+ const index = this._items.findIndex((item)=>item.key === key);
126
+ return `${this._base.scopedName}.${index}`;
127
+ };
109
128
  }
110
129
  setValidation(validation) {
111
130
  this._base.setValidation(validation);
112
131
  }
132
+ setValidationWithCache(validation, value, result) {
133
+ this._base.setValidationWithCache(validation, value, result);
134
+ }
113
135
  addBeforeChange(cb) {
114
136
  this._base.addBeforeChange(cb);
115
137
  }
@@ -171,6 +193,7 @@ class ObjectField {
171
193
  result.push({
172
194
  id: template.id,
173
195
  label: template.label,
196
+ description: template.description,
174
197
  icon: template.icon
175
198
  });
176
199
  }
@@ -192,7 +215,9 @@ class ObjectField {
192
215
  if (this._findTemplate(id)) throw new Error(`Duplicate template id "${id}".`);
193
216
  const tb = createTemplateBuilder();
194
217
  configure(tb);
195
- this._templates.push(tb._build(id, this._form.registry));
218
+ const template = tb._build(id, this._form.registry);
219
+ this._templates.push(template);
220
+ if (template.layout && !this._templateLayouts[id]) this._templateLayouts[id] = template.layout;
196
221
  }
197
222
  _removeTemplate(templateId) {
198
223
  if (!this.isTemplated) throw new Error(`Object field "${this.config.name}" is not templated; templates.remove() requires the field to be defined with .template().`);
@@ -218,7 +243,10 @@ class ObjectField {
218
243
  return;
219
244
  }
220
245
  if (!this.isTemplated) throw new Error(`Object field "${this.config.name}" is not templated; layout.object() must pass a single LayoutNode[], not a per-template map.`);
221
- this._templateLayouts = layout;
246
+ this._templateLayouts = {
247
+ ...this._declaredTemplateLayouts(),
248
+ ...layout
249
+ };
222
250
  this._ownLayout = null;
223
251
  if (this._activeTemplateId && layout[this._activeTemplateId]) this._applyNestedObjectLayouts(layout[this._activeTemplateId], this._children);
224
252
  for (const item of this._items)if (item.templateId && layout[item.templateId]) this._applyNestedObjectLayouts(layout[item.templateId], item.children);
@@ -310,10 +338,10 @@ class ObjectField {
310
338
  }
311
339
  this.config.childBuilders[name] = builder;
312
340
  const built = builder.build(name);
313
- const newField = createFieldFromConfig(built, this._form, this.qualifiedName);
341
+ const newField = createFieldFromConfig(built, this._form, this.qualifiedName, this._childScope);
314
342
  this._children.set(name, newField);
315
343
  if (this.config.isList) for (const item of this._items){
316
- const itemField = createFieldFromConfig(built, this._form, this.qualifiedName);
344
+ const itemField = createFieldFromConfig(built, this._form, this.qualifiedName, this._itemScope(item.key));
317
345
  item.children.set(name, itemField);
318
346
  }
319
347
  }
@@ -396,11 +424,11 @@ class ObjectField {
396
424
  const source = this._items[index];
397
425
  if (!source) return;
398
426
  const data = getChildrenData(source.children);
399
- const children = createChildFields(this._templateChildBuilders(source.templateId), this._form, this.qualifiedName);
427
+ const key = `item_${++itemKeyCounter}`;
428
+ const children = createChildFields(this._templateChildBuilders(source.templateId), this._form, this.qualifiedName, this._itemScope(key));
400
429
  hydrateChildren(children, data, {
401
430
  clone: true
402
431
  });
403
- const key = `item_${++itemKeyCounter}`;
404
432
  this._items.splice(index + 1, 0, {
405
433
  key,
406
434
  children,
@@ -416,9 +444,9 @@ class ObjectField {
416
444
  return template.childBuilders;
417
445
  }
418
446
  _addItemInternal(data, templateId) {
419
- const children = createChildFields(this._templateChildBuilders(templateId), this._form, this.qualifiedName);
420
- if (data) hydrateChildren(children, data);
421
447
  const key = `item_${++itemKeyCounter}`;
448
+ const children = createChildFields(this._templateChildBuilders(templateId), this._form, this.qualifiedName, this._itemScope(key));
449
+ if (data) hydrateChildren(children, data);
422
450
  this._items.push({
423
451
  key,
424
452
  children,
@@ -440,6 +468,7 @@ class ObjectField {
440
468
  const baseVm = this._base.vm;
441
469
  return {
442
470
  name: baseVm.name,
471
+ qualifiedName: baseVm.qualifiedName,
443
472
  type: "object",
444
473
  label: baseVm.label,
445
474
  help: baseVm.help,
@@ -553,6 +582,12 @@ class ObjectField {
553
582
  }
554
583
  if (this.config.isList && this.config.listSchema) {
555
584
  const listData = this.getData();
585
+ if (!requiredState.required && (null == listData || Array.isArray(listData) && 0 === listData.length)) {
586
+ this.setValidationWithCache({
587
+ isValid: null
588
+ }, listData, true);
589
+ return true;
590
+ }
556
591
  const result = await this.config.listSchema.safeParseAsync(listData);
557
592
  if (!result.success) {
558
593
  const firstIssue = result.error.issues[0];
@@ -567,6 +602,21 @@ class ObjectField {
567
602
  }
568
603
  if (this.config.schema) {
569
604
  const data = this.getData();
605
+ if (!requiredState.required) {
606
+ if (null == data) {
607
+ this.setValidationWithCache({
608
+ isValid: null
609
+ }, data, true);
610
+ return true;
611
+ }
612
+ const hasAnyValue = Object.values(data).some((v)=>null != v && "" !== v);
613
+ if (!hasAnyValue) {
614
+ this.setValidationWithCache({
615
+ isValid: null
616
+ }, data, true);
617
+ return true;
618
+ }
619
+ }
570
620
  const result = await this.config.schema.safeParseAsync(data);
571
621
  if (!result.success) {
572
622
  const firstIssue = result.error.issues[0];
@@ -1 +1 @@
1
- {"version":3,"file":"features/formModel/ObjectField.js","sources":["../../../src/features/formModel/ObjectField.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { createTemplateBuilder } from \"./fieldTypes/ObjectFieldType.js\";\nimport type {\n IObjectFieldConfig,\n IObjectField,\n IObjectFieldTemplates,\n IListItemField,\n IField,\n IObjectFieldVM,\n IFieldValidation,\n IFormModel,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IRule,\n ITemplateBuilder,\n ITemplateConfig,\n ITemplateVM,\n FieldTypeMap,\n LayoutNode,\n LayoutNodeVM,\n BeforeChangeCallback,\n AfterChangeCallback,\n AfterSetValueCallback,\n OnBlurCallback,\n ComputedFieldCallback,\n IFieldCallbackParams\n} from \"./abstractions.js\";\n\n/** Reserved key used as the template discriminator in templated object data. */\nexport const TEMPLATE_DISCRIMINATOR = \"_templateId\";\n\nfunction createChildFields(\n childBuilders: Record<string, IFieldBuilder>,\n form: IFormModel | null,\n parentPath?: string\n): Map<string, IField> {\n const children = new Map<string, IField>();\n for (const [name, builder] of Object.entries(childBuilders)) {\n const config = builder.build(name);\n const field = createFieldFromConfig(config, form, parentPath);\n children.set(name, field);\n }\n return children;\n}\n\nfunction createFieldFromConfig(config: any, form: IFormModel | null, parentPath?: string): IField {\n if (config.childBuilders) {\n const objField = new ObjectField(config as IObjectFieldConfig);\n if (form) {\n objField.setForm(form, parentPath);\n }\n return objField;\n }\n const field = new Field(config);\n if (form) {\n field.setForm(form, parentPath);\n }\n return field;\n}\n\nfunction hydrateChildren(\n children: Map<string, IField>,\n data: Record<string, unknown> | null | undefined,\n options?: { clone?: boolean }\n): void {\n if (!data) {\n return;\n }\n for (const [name, field] of children) {\n if (name in data) {\n if (options?.clone && field.config.cloneValue) {\n field.setValueSilent(field.config.cloneValue(data[name]));\n } else {\n field.setValueSilent(data[name]);\n }\n }\n }\n}\n\nfunction getChildrenData(children: Map<string, IField>): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of children) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n}\n\nasync function validateChildren(\n children: Map<string, IField>,\n options?: { force?: boolean }\n): Promise<boolean> {\n let allValid = true;\n for (const [, field] of children) {\n const valid = await field.validate(options);\n if (!valid) {\n allValid = false;\n }\n }\n return allValid;\n}\n\nexport function isObjectField(field: IField): field is ObjectField {\n return field.type === \"object\";\n}\n\nlet itemKeyCounter = 0;\n\ninterface ListItem {\n key: string;\n children: Map<string, IField>;\n templateId?: string;\n}\n\n/**\n * ObjectField — hierarchical field with children, using composition.\n * Holds a `_base` Field for scalar behavior (callbacks, disabled/hidden, form ref).\n * Adds its own children/items management for object and list modes.\n */\nexport class ObjectField implements IObjectField {\n readonly config: IObjectFieldConfig;\n\n private _base: Field;\n private _form: IFormModel | null = null;\n private _children: Map<string, IField>;\n private _items: ListItem[] = [];\n private _templates: ITemplateConfig[] = [];\n private _isTemplated: boolean;\n private _activeTemplateId: string | null = null;\n /** Inner layout for non-templated objects (single layout, applied per item too). */\n private _ownLayout: LayoutNode[] | null = null;\n /** Per-template inner layouts for templated objects. */\n private _templateLayouts: Record<string, LayoutNode[]> = {};\n private _validating = false;\n\n constructor(config: IObjectFieldConfig) {\n this.config = config;\n this._base = new Field({\n ...config,\n type: \"object\",\n renderer:\n config.renderer ??\n (config.isList ? \"objectAccordionMultiple\" : \"objectAccordionSingle\")\n });\n this._templates = config.templates ?? [];\n this._isTemplated = this._templates.length > 0;\n\n if (this._isTemplated) {\n // Templated mode: children populated per-item (list) or when a template is picked (single).\n this._children = new Map();\n } else {\n this._children = createChildFields(config.childBuilders, null);\n }\n\n makeAutoObservable(this, {\n config: false\n });\n }\n\n private _findTemplate(id: string): ITemplateConfig | undefined {\n return this._templates.find(t => t.id === id);\n }\n\n private _rebuildChildrenForTemplate(templateId: string): void {\n const template = this._findTemplate(templateId);\n if (!template) {\n throw new Error(\n `Template \"${templateId}\" not found on field \"${this.config.name}\". ` +\n `Available: ${this._templates.map(t => t.id).join(\", \") || \"(none)\"}.`\n );\n }\n const children = createChildFields(template.childBuilders, this._form, this.qualifiedName);\n this._children = children;\n this._activeTemplateId = templateId;\n const inner = this._innerLayoutFor(templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n // --- Forwarded from _base ---\n\n get name(): string {\n return this._base.name;\n }\n\n get type(): string {\n return \"object\";\n }\n\n get visible(): boolean {\n return this._base.visible;\n }\n\n get disabled(): boolean {\n return this._base.disabled;\n }\n\n setDisabled(value: boolean): void {\n this._base.setDisabled(value);\n }\n\n setVisible(value: boolean): void {\n this._base.setVisible(value);\n }\n\n setAncestorRules(rules: IRule[]): void {\n this._base.setAncestorRules(rules);\n }\n\n setForm(form: IFormModel, parentPath?: string): void {\n this._form = form;\n this._base.setForm(form, parentPath);\n const myPath = this._base.qualifiedName;\n for (const [, field] of this._children) {\n field.setForm(form, myPath);\n }\n for (const item of this._items) {\n for (const [, field] of item.children) {\n field.setForm(form, myPath);\n }\n }\n }\n\n setValidation(validation: IFieldValidation): void {\n this._base.setValidation(validation);\n }\n\n addBeforeChange(cb: BeforeChangeCallback): void {\n this._base.addBeforeChange(cb);\n }\n\n addAfterChange(cb: AfterChangeCallback): void {\n this._base.addAfterChange(cb);\n }\n\n addAfterSetValue(cb: AfterSetValueCallback): void {\n this._base.addAfterSetValue(cb);\n }\n\n addOnBlur(cb: OnBlurCallback): void {\n this._base.addOnBlur(cb);\n }\n\n addRequiredWhen(fn: (params: IFieldCallbackParams) => boolean, message?: string): void {\n this._base.addRequiredWhen(fn, message);\n }\n\n setComputed(fn: ComputedFieldCallback): void {\n this._base.setComputed(fn);\n }\n\n setComputedUntilDirty(fn: ComputedFieldCallback): void {\n this._base.setComputedUntilDirty(fn);\n }\n\n blur(): void {\n this._base.blur();\n }\n\n remove(): void {\n this._base.remove();\n }\n\n get qualifiedName(): string {\n return this._base.qualifiedName;\n }\n\n focus(): void {\n this._base.focus();\n }\n\n requestFocus(): void {\n this._base.requestFocus();\n }\n\n clearFocusRequest(): void {\n this._base.clearFocusRequest();\n }\n\n getInnerLayout(): LayoutNode[] | null {\n if (this.isTemplated) {\n return this._activeTemplateId\n ? (this._templateLayouts[this._activeTemplateId] ?? null)\n : null;\n }\n return this._ownLayout;\n }\n\n // --- Object-specific ---\n\n get isList(): boolean {\n return this.config.isList;\n }\n\n get isTemplated(): boolean {\n return this._isTemplated;\n }\n\n get activeTemplateId(): string | null {\n return this._activeTemplateId;\n }\n\n get availableTemplates(): ITemplateVM[] {\n const result: ITemplateVM[] = [];\n for (const template of this._templates) {\n if (template.visible && this._form) {\n if (!template.visible(this._form)) {\n continue;\n }\n }\n result.push({ id: template.id, label: template.label, icon: template.icon });\n }\n return result;\n }\n\n setTemplate(templateId: string): void {\n if (this._activeTemplateId === templateId) {\n return;\n }\n this._rebuildChildrenForTemplate(templateId);\n }\n\n get templates(): IObjectFieldTemplates {\n return {\n add: (id: string, configure: (t: ITemplateBuilder) => void) =>\n this._addTemplate(id, configure),\n remove: (templateId: string) => this._removeTemplate(templateId)\n };\n }\n\n private _addTemplate(id: string, configure: (t: ITemplateBuilder) => void): void {\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; templates.add() requires the field to be defined with .template().`\n );\n }\n if (id === TEMPLATE_DISCRIMINATOR) {\n throw new Error(\n `Template id \"${TEMPLATE_DISCRIMINATOR}\" is reserved. Choose a different id.`\n );\n }\n if (this._findTemplate(id)) {\n throw new Error(`Duplicate template id \"${id}\".`);\n }\n const tb = createTemplateBuilder();\n configure(tb);\n this._templates.push(tb._build(id, this._form!.registry));\n }\n\n private _removeTemplate(templateId: string): void {\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; templates.remove() requires the field to be defined with .template().`\n );\n }\n const index = this._templates.findIndex(t => t.id === templateId);\n if (index === -1) {\n return;\n }\n this._templates.splice(index, 1);\n\n if (this.config.isList) {\n this._items = this._items.filter(item => item.templateId !== templateId);\n return;\n }\n if (this._activeTemplateId === templateId) {\n this._activeTemplateId = null;\n this._children = new Map();\n }\n }\n\n setInnerLayout(layout: LayoutNode[] | Record<string, LayoutNode[]>): void {\n if (Array.isArray(layout)) {\n if (this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is templated; layout.object() must pass a per-template map (Record<templateId, LayoutNode[]>), not a single LayoutNode[].`\n );\n }\n this._ownLayout = layout;\n this._templateLayouts = {};\n // Apply nested object layouts to children that already exist\n // (non-templated single + non-templated list items).\n this._applyNestedObjectLayouts(layout, this._children);\n for (const item of this._items) {\n this._applyNestedObjectLayouts(layout, item.children);\n }\n return;\n }\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; layout.object() must pass a single LayoutNode[], not a per-template map.`\n );\n }\n this._templateLayouts = layout;\n this._ownLayout = null;\n // Apply nested object layouts to currently-active templated children\n // (templated single with active template + templated list items).\n if (this._activeTemplateId && layout[this._activeTemplateId]) {\n this._applyNestedObjectLayouts(layout[this._activeTemplateId], this._children);\n }\n for (const item of this._items) {\n if (item.templateId && layout[item.templateId]) {\n this._applyNestedObjectLayouts(layout[item.templateId], item.children);\n }\n }\n }\n\n /**\n * Walk an inner layout for nested `object` nodes and forward each one to\n * the matching child field. The recursion bottoms out naturally: each\n * matched child is itself an ObjectField and will run `_applyNestedObjectLayouts`\n * against its own children whenever they materialise.\n */\n private _applyNestedObjectLayouts(layout: LayoutNode[], children: Map<string, IField>): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const child = children.get(node.fieldName);\n if (child && isObjectField(child)) {\n child.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._applyNestedObjectLayouts(tab.layout, children);\n }\n }\n }\n }\n\n /**\n * Returns the inner layout that should apply to a freshly-built children\n * Map for the given templateId (templated objects/lists) or for the\n * non-templated case. Used to seed nested object layouts on newly-created\n * children before they go live.\n */\n private _innerLayoutFor(templateId: string | undefined): LayoutNode[] | undefined {\n if (this.isTemplated) {\n if (templateId === undefined) {\n return undefined;\n }\n return this._templateLayouts[templateId];\n }\n return this._ownLayout ?? undefined;\n }\n\n private _resolveLayoutForChildren(\n children: Map<string, IField>,\n templateId: string | null\n ): LayoutNodeVM[] {\n const layoutNodes = this.isTemplated\n ? templateId !== null\n ? this._templateLayouts[templateId]\n : undefined\n : (this._ownLayout ?? undefined);\n if (layoutNodes && this._form?.resolveChildLayout) {\n return this._form.resolveChildLayout(layoutNodes, children);\n }\n // Default: one row per visible child, in insertion order.\n const fallback: LayoutNodeVM[] = [];\n for (const [, field] of children) {\n if (field.visible) {\n fallback.push({ type: \"row\", fields: [field.vm] });\n }\n }\n return fallback;\n }\n\n get children(): Map<string, IField> {\n return this._children;\n }\n\n get items(): IListItemField[] {\n return this._items.map(item => ({\n key: item.key,\n children: item.children,\n templateId: item.templateId,\n getData: () => this._getItemData(item)\n }));\n }\n\n private _getItemData(item: ListItem): Record<string, unknown> {\n const data = getChildrenData(item.children);\n if (item.templateId !== undefined) {\n return { [TEMPLATE_DISCRIMINATOR]: item.templateId, ...data };\n }\n return data;\n }\n\n private _getClonedItemData(item: ListItem): Record<string, unknown> {\n const data = getChildrenData(item.children);\n const children = createChildFields(\n this._templateChildBuilders(item.templateId),\n this._form,\n this.qualifiedName\n );\n hydrateChildren(children, data, { clone: true });\n const clonedData = getChildrenData(children);\n if (item.templateId !== undefined) {\n return { [TEMPLATE_DISCRIMINATOR]: item.templateId, ...clonedData };\n }\n return clonedData;\n }\n\n private _getClonedData(): Record<string, unknown> {\n const data = getChildrenData(this._children);\n const builders =\n this.isTemplated && this._activeTemplateId\n ? this._templateChildBuilders(this._activeTemplateId)\n : this.config.childBuilders;\n const children = createChildFields(builders, this._form, this.qualifiedName);\n hydrateChildren(children, data, { clone: true });\n const clonedData = getChildrenData(children);\n if (this.isTemplated && this._activeTemplateId) {\n return { [TEMPLATE_DISCRIMINATOR]: this._activeTemplateId, ...clonedData };\n }\n return clonedData;\n }\n\n getChild(name: string): IField | undefined {\n return this._children.get(name);\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n if (this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is templated; use templates.add()/remove() to manage children. Each template owns its own fields.`\n );\n }\n const builders = factory(this._form!.registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._children.delete(name);\n this.config.childBuilders[name] = undefined as unknown as IFieldBuilder;\n delete this.config.childBuilders[name];\n if (this.config.isList) {\n for (const item of this._items) {\n item.children.delete(name);\n }\n }\n continue;\n }\n\n this.config.childBuilders[name] = builder;\n const built = builder.build(name);\n const newField = createFieldFromConfig(built, this._form, this.qualifiedName);\n this._children.set(name, newField);\n\n if (this.config.isList) {\n for (const item of this._items) {\n const itemField = createFieldFromConfig(built, this._form, this.qualifiedName);\n item.children.set(name, itemField);\n }\n }\n }\n\n // Re-apply nested object layouts so newly-added children pick up any\n // layout.object() entries already registered on this field.\n if (this._ownLayout) {\n this._applyNestedObjectLayouts(this._ownLayout, this._children);\n for (const item of this._items) {\n this._applyNestedObjectLayouts(this._ownLayout, item.children);\n }\n }\n }\n\n getListItemChild(index: number, name: string): IField | undefined {\n const item = this._items[index];\n return item?.children.get(name);\n }\n\n getData(): any {\n if (this.config.isList) {\n return this._items.map(item => this._getItemData(item));\n }\n if (this.isTemplated) {\n if (this._activeTemplateId === null) {\n return null;\n }\n return {\n [TEMPLATE_DISCRIMINATOR]: this._activeTemplateId,\n ...getChildrenData(this._children)\n };\n }\n return getChildrenData(this._children);\n }\n\n getValue<T = unknown>(): T {\n return this.getData() as T;\n }\n\n setValue(value: unknown): void {\n this.setValueSilent(value);\n }\n\n setValueSilent(value: unknown): void {\n if (this.config.isList) {\n this._items = [];\n if (Array.isArray(value)) {\n for (const itemData of value) {\n if (this.isTemplated) {\n if (!itemData || typeof itemData !== \"object\") {\n continue;\n }\n const data = itemData as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId !== \"string\") {\n continue;\n }\n if (!this._findTemplate(templateId)) {\n continue;\n }\n const { [TEMPLATE_DISCRIMINATOR]: _discarded, ...rest } = data;\n this._addItemInternal(rest, templateId);\n } else {\n this._addItemInternal(itemData);\n }\n }\n }\n return;\n }\n if (this.isTemplated) {\n if (value === null || value === undefined) {\n this._activeTemplateId = null;\n this._children = new Map();\n return;\n }\n const data = value as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId !== \"string\") {\n return;\n }\n if (!this._findTemplate(templateId)) {\n return;\n }\n this._rebuildChildrenForTemplate(templateId);\n const { [TEMPLATE_DISCRIMINATOR]: _discarded, ...rest } = data;\n hydrateChildren(this._children, rest);\n return;\n }\n hydrateChildren(this._children, value as Record<string, unknown>);\n }\n\n addItem(\n templateIdOrData?: string | Record<string, unknown>,\n data?: Record<string, unknown>\n ): void {\n if (this.isTemplated) {\n if (typeof templateIdOrData !== \"string\") {\n throw new Error(\n `Object field \"${this.config.name}\": templated list items require a template id. ` +\n `Call addItem(templateId) with one of: ${this._templates.map(t => t.id).join(\", \")}.`\n );\n }\n if (!this._findTemplate(templateIdOrData)) {\n throw new Error(\n `Template \"${templateIdOrData}\" not found on field \"${this.config.name}\". ` +\n `Available: ${this._templates.map(t => t.id).join(\", \") || \"(none)\"}.`\n );\n }\n this._addItemInternal(data, templateIdOrData);\n return;\n }\n if (typeof templateIdOrData === \"string\") {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; addItem() does not accept a template id.`\n );\n }\n this._addItemInternal(templateIdOrData);\n }\n\n removeItem(index: number): void {\n this._items.splice(index, 1);\n }\n\n moveItem(fromIndex: number, toIndex: number): void {\n if (\n fromIndex < 0 ||\n fromIndex >= this._items.length ||\n toIndex < 0 ||\n toIndex >= this._items.length ||\n fromIndex === toIndex\n ) {\n return;\n }\n const [item] = this._items.splice(fromIndex, 1);\n this._items.splice(toIndex, 0, item);\n }\n\n duplicateItem(index: number): void {\n const source = this._items[index];\n if (!source) {\n return;\n }\n const data = getChildrenData(source.children);\n const children = createChildFields(\n this._templateChildBuilders(source.templateId),\n this._form,\n this.qualifiedName\n );\n hydrateChildren(children, data, { clone: true });\n const key = `item_${++itemKeyCounter}`;\n this._items.splice(index + 1, 0, { key, children, templateId: source.templateId });\n const inner = this._innerLayoutFor(source.templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n private _templateChildBuilders(templateId: string | undefined): Record<string, IFieldBuilder> {\n if (templateId === undefined) {\n return this.config.childBuilders;\n }\n const template = this._findTemplate(templateId);\n if (!template) {\n throw new Error(`Template \"${templateId}\" not found on field \"${this.config.name}\".`);\n }\n return template.childBuilders;\n }\n\n private _addItemInternal(data?: Record<string, unknown>, templateId?: string): void {\n const children = createChildFields(\n this._templateChildBuilders(templateId),\n this._form,\n this.qualifiedName\n );\n if (data) {\n hydrateChildren(children, data);\n }\n const key = `item_${++itemKeyCounter}`;\n this._items.push({ key, children, templateId });\n const inner = this._innerLayoutFor(templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n resetValidation(): void {\n this._base.resetValidation();\n for (const [, field] of this._children) {\n field.resetValidation();\n }\n for (const item of this._items) {\n for (const [, field] of item.children) {\n field.resetValidation();\n }\n }\n }\n\n as<T extends keyof FieldTypeMap>(type: T): FieldTypeMap[T] {\n if (type !== \"object\") {\n throw new Error(`Field \"${this.config.name}\" is type \"object\", not \"${type}\".`);\n }\n return this as unknown as FieldTypeMap[T];\n }\n\n get vm(): IObjectFieldVM {\n const baseVm = this._base.vm;\n return {\n name: baseVm.name,\n type: \"object\",\n label: baseVm.label,\n help: baseVm.help,\n description: baseVm.description,\n note: baseVm.note,\n placeholder: baseVm.placeholder,\n value: this.getValue(),\n validation: baseVm.validation,\n validating: this._validating,\n required: baseVm.required,\n visible: baseVm.visible,\n disabled: baseVm.disabled,\n renderer: baseVm.renderer,\n rendererSettings: baseVm.rendererSettings,\n context: baseVm.context,\n onChange: (value: unknown) => this.setValue(value),\n onBlur: () => {\n if (this._form?.submitted) {\n void this.validate();\n }\n this.blur();\n },\n focusRequested: baseVm.focusRequested,\n clearFocusRequest: baseVm.clearFocusRequest,\n isList: this.config.isList,\n fields: this.config.isList\n ? []\n : Array.from(this._children.values())\n .filter(f => f.visible)\n .map(f => f.vm),\n layout: this.config.isList\n ? []\n : this._resolveLayoutForChildren(this._children, this._activeTemplateId),\n items: this.config.isList\n ? this._items.map((item, index) => ({\n key: item.key,\n fields: Array.from(item.children.values())\n .filter(f => f.visible)\n .map(f => f.vm),\n layout: this._resolveLayoutForChildren(\n item.children,\n item.templateId ?? null\n ),\n templateId: item.templateId,\n remove: () => this.removeItem(index),\n moveUp: () => this.moveItem(index, index - 1),\n moveDown: () => this.moveItem(index, index + 1),\n duplicate: () => this.duplicateItem(index),\n getClonedData: () => this._getClonedItemData(item)\n }))\n : [],\n addItem: (value?: unknown) => {\n if (value === undefined) {\n return this.addItem();\n }\n if (typeof value === \"string\") {\n return this.addItem(value);\n }\n const data = value as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId === \"string\") {\n const { [TEMPLATE_DISCRIMINATOR]: _, ...rest } = data;\n return this.addItem(templateId, rest);\n }\n return this.addItem(value as Record<string, unknown>);\n },\n removeItem: (index: number) => this.removeItem(index),\n moveItem: (from: number, to: number) => this.moveItem(from, to),\n duplicateItem: (index: number) => this.duplicateItem(index),\n isTemplated: this.isTemplated,\n availableTemplates: this.availableTemplates,\n activeTemplateId: this._activeTemplateId,\n setTemplate: (templateId: string) => this.setTemplate(templateId),\n getClonedData: () => this._getClonedData()\n };\n }\n\n get hasErrors(): boolean {\n const checkChildren = (children: Map<string, IField>): boolean => {\n for (const [, field] of children) {\n if (field.vm.validation.isValid === false) {\n return true;\n }\n if (isObjectField(field) && field.hasErrors) {\n return true;\n }\n }\n return false;\n };\n\n if (this.config.isList) {\n for (const item of this._items) {\n if (checkChildren(item.children)) {\n return true;\n }\n }\n } else {\n if (checkChildren(this._children)) {\n return true;\n }\n }\n return false;\n }\n\n async validate(options?: { force?: boolean }): Promise<boolean> {\n if (!this.visible) {\n this.setValidation({ isValid: null });\n return true;\n }\n\n runInAction(() => {\n this._validating = true;\n });\n\n try {\n const requiredState = this._base.resolveRequired();\n if (requiredState.required) {\n const message = requiredState.message || \"This field is required.\";\n if (this.config.isList && this._items.length === 0) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n if (!this.config.isList) {\n if (this.isTemplated) {\n if (this._activeTemplateId === null) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n } else {\n const data = this.getData();\n const hasAnyValue = Object.values(data).some(\n v => v !== null && v !== undefined && v !== \"\"\n );\n if (!hasAnyValue) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n }\n }\n }\n\n if (this.config.isList && this.config.listSchema) {\n const listData = this.getData();\n const result = await this.config.listSchema.safeParseAsync(listData);\n if (!result.success) {\n const firstIssue = result.error.issues[0];\n runInAction(() => {\n this.setValidation({\n isValid: false,\n message: firstIssue?.message || \"Invalid value.\"\n });\n });\n return false;\n }\n }\n\n if (this.config.schema) {\n const data = this.getData();\n const result = await this.config.schema.safeParseAsync(data);\n if (!result.success) {\n const firstIssue = result.error.issues[0];\n runInAction(() => {\n this.setValidation({\n isValid: false,\n message: firstIssue?.message || \"Invalid value.\"\n });\n });\n return false;\n }\n }\n\n let allValid = true;\n\n if (this.config.isList) {\n for (const item of this._items) {\n const valid = await validateChildren(item.children, options);\n if (!valid) {\n allValid = false;\n }\n }\n } else {\n allValid = await validateChildren(this._children, options);\n }\n\n runInAction(() => {\n this.setValidation({ isValid: allValid });\n });\n\n return allValid;\n } finally {\n runInAction(() => {\n this._validating = false;\n });\n }\n }\n}\n"],"names":["TEMPLATE_DISCRIMINATOR","createChildFields","childBuilders","form","parentPath","children","Map","name","builder","Object","config","field","createFieldFromConfig","objField","ObjectField","Field","hydrateChildren","data","options","getChildrenData","isObjectField","toJS","validateChildren","allValid","valid","itemKeyCounter","makeAutoObservable","id","t","templateId","template","Error","inner","value","rules","myPath","item","validation","cb","fn","message","result","configure","tb","createTemplateBuilder","index","layout","Array","node","child","tab","undefined","layoutNodes","fallback","clonedData","builders","factory","built","newField","itemField","itemData","_discarded","rest","templateIdOrData","fromIndex","toIndex","source","key","type","baseVm","f","_","from","to","checkChildren","runInAction","requiredState","hasAnyValue","v","listData","firstIssue"],"mappings":"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"}
1
+ {"version":3,"file":"features/formModel/ObjectField.js","sources":["../../../src/features/formModel/ObjectField.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { createTemplateBuilder } from \"./fieldTypes/ObjectFieldType.js\";\nimport type {\n IObjectFieldConfig,\n IObjectField,\n IObjectFieldTemplates,\n IListItemField,\n IField,\n IObjectFieldVM,\n IFieldValidation,\n IFormModel,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IRule,\n ITemplateBuilder,\n ITemplateConfig,\n ITemplateVM,\n FieldTypeMap,\n LayoutNode,\n LayoutNodeVM,\n BeforeChangeCallback,\n AfterChangeCallback,\n AfterSetValueCallback,\n OnBlurCallback,\n ComputedFieldCallback,\n IFieldCallbackParams\n} from \"./abstractions.js\";\n\n/** Reserved key used as the template discriminator in templated object data. */\nexport const TEMPLATE_DISCRIMINATOR = \"_templateId\";\n\nfunction createChildFields(\n childBuilders: Record<string, IFieldBuilder>,\n form: IFormModel | null,\n parentPath?: string,\n scopePath?: () => string\n): Map<string, IField> {\n const children = new Map<string, IField>();\n for (const [name, builder] of Object.entries(childBuilders)) {\n const config = builder.build(name);\n const field = createFieldFromConfig(config, form, parentPath, scopePath);\n children.set(name, field);\n }\n return children;\n}\n\nfunction createFieldFromConfig(\n config: any,\n form: IFormModel | null,\n parentPath?: string,\n scopePath?: () => string\n): IField {\n if (config.childBuilders) {\n const objField = new ObjectField(config as IObjectFieldConfig);\n if (form) {\n objField.setForm(form, parentPath, scopePath);\n }\n return objField;\n }\n const field = new Field(config);\n if (form) {\n field.setForm(form, parentPath, scopePath);\n }\n return field;\n}\n\nfunction hydrateChildren(\n children: Map<string, IField>,\n data: Record<string, unknown> | null | undefined,\n options?: { clone?: boolean }\n): void {\n if (!data) {\n return;\n }\n for (const [name, field] of children) {\n if (name in data) {\n if (options?.clone && field.config.cloneValue) {\n field.setValueSilent(field.config.cloneValue(data[name]));\n } else {\n field.setValueSilent(data[name]);\n }\n }\n }\n}\n\nfunction getChildrenData(children: Map<string, IField>): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of children) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n}\n\nasync function validateChildren(\n children: Map<string, IField>,\n options?: { force?: boolean }\n): Promise<boolean> {\n let allValid = true;\n for (const [, field] of children) {\n const valid = await field.validate(options);\n if (!valid) {\n allValid = false;\n }\n }\n return allValid;\n}\n\nexport function isObjectField(field: IField): field is ObjectField {\n return field.type === \"object\";\n}\n\nlet itemKeyCounter = 0;\n\ninterface ListItem {\n key: string;\n children: Map<string, IField>;\n templateId?: string;\n}\n\n/**\n * ObjectField — hierarchical field with children, using composition.\n * Holds a `_base` Field for scalar behavior (callbacks, disabled/hidden, form ref).\n * Adds its own children/items management for object and list modes.\n */\nexport class ObjectField implements IObjectField {\n readonly config: IObjectFieldConfig;\n\n private _base: Field;\n private _form: IFormModel | null = null;\n private _children: Map<string, IField>;\n private _items: ListItem[] = [];\n private _templates: ITemplateConfig[] = [];\n private _isTemplated: boolean;\n private _activeTemplateId: string | null = null;\n /** Inner layout for non-templated objects (single layout, applied per item too). */\n private _ownLayout: LayoutNode[] | null = null;\n /** Per-template inner layouts for templated objects. */\n private _templateLayouts: Record<string, LayoutNode[]> = {};\n private _validating = false;\n\n constructor(config: IObjectFieldConfig) {\n this.config = config;\n this._base = new Field({\n ...config,\n type: \"object\",\n renderer:\n config.renderer ??\n (config.isList ? \"objectAccordionMultiple\" : \"objectAccordionSingle\")\n });\n this._templates = config.templates ?? [];\n this._isTemplated = this._templates.length > 0;\n this._ownLayout = config.layout ?? null;\n this._templateLayouts = this._declaredTemplateLayouts();\n\n if (this._isTemplated) {\n // Templated mode: children populated per-item (list) or when a template is picked (single).\n this._children = new Map();\n } else {\n this._children = createChildFields(config.childBuilders, null);\n if (this._ownLayout) {\n this._applyNestedObjectLayouts(this._ownLayout, this._children);\n }\n }\n\n makeAutoObservable<this, \"_childScope\" | \"_itemScope\">(this, {\n config: false,\n _childScope: false,\n _itemScope: false\n });\n }\n\n /** Layouts declared on the templates themselves via `template.layout()`. */\n private _declaredTemplateLayouts(): Record<string, LayoutNode[]> {\n const layouts: Record<string, LayoutNode[]> = {};\n for (const template of this._templates) {\n if (template.layout) {\n layouts[template.id] = template.layout;\n }\n }\n return layouts;\n }\n\n private _findTemplate(id: string): ITemplateConfig | undefined {\n return this._templates.find(t => t.id === id);\n }\n\n private _rebuildChildrenForTemplate(templateId: string): void {\n const template = this._findTemplate(templateId);\n if (!template) {\n throw new Error(\n `Template \"${templateId}\" not found on field \"${this.config.name}\". ` +\n `Available: ${this._templates.map(t => t.id).join(\", \") || \"(none)\"}.`\n );\n }\n const children = createChildFields(\n template.childBuilders,\n this._form,\n this.qualifiedName,\n this._childScope\n );\n this._children = children;\n this._activeTemplateId = templateId;\n const inner = this._innerLayoutFor(templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n // --- Forwarded from _base ---\n\n get name(): string {\n return this._base.name;\n }\n\n get type(): string {\n return \"object\";\n }\n\n get visible(): boolean {\n return this._base.visible;\n }\n\n get disabled(): boolean {\n return this._base.disabled;\n }\n\n setDisabled(value: boolean): void {\n this._base.setDisabled(value);\n }\n\n setVisible(value: boolean): void {\n this._base.setVisible(value);\n }\n\n setAncestorRules(rules: IRule[]): void {\n this._base.setAncestorRules(rules);\n }\n\n setForm(form: IFormModel, parentPath?: string, scopePath?: () => string): void {\n this._form = form;\n this._base.setForm(form, parentPath, scopePath);\n const myPath = this._base.qualifiedName;\n for (const [, field] of this._children) {\n field.setForm(form, myPath, this._childScope);\n }\n for (const item of this._items) {\n for (const [, field] of item.children) {\n field.setForm(form, myPath, this._itemScope(item.key));\n }\n }\n }\n\n /** Scope for direct children: a path `form.field()` resolves to this field. */\n private _childScope = (): string => {\n return this._base.scopedName;\n };\n\n /**\n * Scope for the children of a list item. Children keep `qualifiedName` without an\n * item selector, so `$.` rule targets and `field.parent()` need the item's index to\n * reach their siblings. Resolved lazily, so it follows reorders and removals.\n */\n private _itemScope(key: string): () => string {\n return () => {\n const index = this._items.findIndex(item => item.key === key);\n return `${this._base.scopedName}.${index}`;\n };\n }\n\n setValidation(validation: IFieldValidation): void {\n this._base.setValidation(validation);\n }\n\n private setValidationWithCache(\n validation: IFieldValidation,\n value: unknown,\n result: boolean\n ): void {\n this._base.setValidationWithCache(validation, value, result);\n }\n\n addBeforeChange(cb: BeforeChangeCallback): void {\n this._base.addBeforeChange(cb);\n }\n\n addAfterChange(cb: AfterChangeCallback): void {\n this._base.addAfterChange(cb);\n }\n\n addAfterSetValue(cb: AfterSetValueCallback): void {\n this._base.addAfterSetValue(cb);\n }\n\n addOnBlur(cb: OnBlurCallback): void {\n this._base.addOnBlur(cb);\n }\n\n addRequiredWhen(fn: (params: IFieldCallbackParams) => boolean, message?: string): void {\n this._base.addRequiredWhen(fn, message);\n }\n\n setComputed(fn: ComputedFieldCallback): void {\n this._base.setComputed(fn);\n }\n\n setComputedUntilDirty(fn: ComputedFieldCallback): void {\n this._base.setComputedUntilDirty(fn);\n }\n\n blur(): void {\n this._base.blur();\n }\n\n remove(): void {\n this._base.remove();\n }\n\n get qualifiedName(): string {\n return this._base.qualifiedName;\n }\n\n focus(): void {\n this._base.focus();\n }\n\n requestFocus(): void {\n this._base.requestFocus();\n }\n\n clearFocusRequest(): void {\n this._base.clearFocusRequest();\n }\n\n getInnerLayout(): LayoutNode[] | null {\n if (this.isTemplated) {\n return this._activeTemplateId\n ? (this._templateLayouts[this._activeTemplateId] ?? null)\n : null;\n }\n return this._ownLayout;\n }\n\n // --- Object-specific ---\n\n get isList(): boolean {\n return this.config.isList;\n }\n\n get isTemplated(): boolean {\n return this._isTemplated;\n }\n\n get activeTemplateId(): string | null {\n return this._activeTemplateId;\n }\n\n get availableTemplates(): ITemplateVM[] {\n const result: ITemplateVM[] = [];\n for (const template of this._templates) {\n if (template.visible && this._form) {\n if (!template.visible(this._form)) {\n continue;\n }\n }\n result.push({\n id: template.id,\n label: template.label,\n description: template.description,\n icon: template.icon\n });\n }\n return result;\n }\n\n setTemplate(templateId: string): void {\n if (this._activeTemplateId === templateId) {\n return;\n }\n this._rebuildChildrenForTemplate(templateId);\n }\n\n get templates(): IObjectFieldTemplates {\n return {\n add: (id: string, configure: (t: ITemplateBuilder) => void) =>\n this._addTemplate(id, configure),\n remove: (templateId: string) => this._removeTemplate(templateId)\n };\n }\n\n private _addTemplate(id: string, configure: (t: ITemplateBuilder) => void): void {\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; templates.add() requires the field to be defined with .template().`\n );\n }\n if (id === TEMPLATE_DISCRIMINATOR) {\n throw new Error(\n `Template id \"${TEMPLATE_DISCRIMINATOR}\" is reserved. Choose a different id.`\n );\n }\n if (this._findTemplate(id)) {\n throw new Error(`Duplicate template id \"${id}\".`);\n }\n const tb = createTemplateBuilder();\n configure(tb);\n const template = tb._build(id, this._form!.registry);\n this._templates.push(template);\n if (template.layout && !this._templateLayouts[id]) {\n this._templateLayouts[id] = template.layout;\n }\n }\n\n private _removeTemplate(templateId: string): void {\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; templates.remove() requires the field to be defined with .template().`\n );\n }\n const index = this._templates.findIndex(t => t.id === templateId);\n if (index === -1) {\n return;\n }\n this._templates.splice(index, 1);\n\n if (this.config.isList) {\n this._items = this._items.filter(item => item.templateId !== templateId);\n return;\n }\n if (this._activeTemplateId === templateId) {\n this._activeTemplateId = null;\n this._children = new Map();\n }\n }\n\n setInnerLayout(layout: LayoutNode[] | Record<string, LayoutNode[]>): void {\n if (Array.isArray(layout)) {\n if (this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is templated; layout.object() must pass a per-template map (Record<templateId, LayoutNode[]>), not a single LayoutNode[].`\n );\n }\n this._ownLayout = layout;\n this._templateLayouts = {};\n // Apply nested object layouts to children that already exist\n // (non-templated single + non-templated list items).\n this._applyNestedObjectLayouts(layout, this._children);\n for (const item of this._items) {\n this._applyNestedObjectLayouts(layout, item.children);\n }\n return;\n }\n if (!this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; layout.object() must pass a single LayoutNode[], not a per-template map.`\n );\n }\n // Templates the override doesn't mention keep the layout they declared.\n this._templateLayouts = { ...this._declaredTemplateLayouts(), ...layout };\n this._ownLayout = null;\n // Apply nested object layouts to currently-active templated children\n // (templated single with active template + templated list items).\n if (this._activeTemplateId && layout[this._activeTemplateId]) {\n this._applyNestedObjectLayouts(layout[this._activeTemplateId], this._children);\n }\n for (const item of this._items) {\n if (item.templateId && layout[item.templateId]) {\n this._applyNestedObjectLayouts(layout[item.templateId], item.children);\n }\n }\n }\n\n /**\n * Walk an inner layout for nested `object` nodes and forward each one to\n * the matching child field. The recursion bottoms out naturally: each\n * matched child is itself an ObjectField and will run `_applyNestedObjectLayouts`\n * against its own children whenever they materialise.\n */\n private _applyNestedObjectLayouts(layout: LayoutNode[], children: Map<string, IField>): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const child = children.get(node.fieldName);\n if (child && isObjectField(child)) {\n child.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._applyNestedObjectLayouts(tab.layout, children);\n }\n }\n }\n }\n\n /**\n * Returns the inner layout that should apply to a freshly-built children\n * Map for the given templateId (templated objects/lists) or for the\n * non-templated case. Used to seed nested object layouts on newly-created\n * children before they go live.\n */\n private _innerLayoutFor(templateId: string | undefined): LayoutNode[] | undefined {\n if (this.isTemplated) {\n if (templateId === undefined) {\n return undefined;\n }\n return this._templateLayouts[templateId];\n }\n return this._ownLayout ?? undefined;\n }\n\n private _resolveLayoutForChildren(\n children: Map<string, IField>,\n templateId: string | null\n ): LayoutNodeVM[] {\n const layoutNodes = this.isTemplated\n ? templateId !== null\n ? this._templateLayouts[templateId]\n : undefined\n : (this._ownLayout ?? undefined);\n if (layoutNodes && this._form?.resolveChildLayout) {\n return this._form.resolveChildLayout(layoutNodes, children);\n }\n // Default: one row per visible child, in insertion order.\n const fallback: LayoutNodeVM[] = [];\n for (const [, field] of children) {\n if (field.visible) {\n fallback.push({ type: \"row\", fields: [field.vm] });\n }\n }\n return fallback;\n }\n\n get children(): Map<string, IField> {\n return this._children;\n }\n\n get items(): IListItemField[] {\n return this._items.map(item => ({\n key: item.key,\n children: item.children,\n templateId: item.templateId,\n getData: () => this._getItemData(item)\n }));\n }\n\n private _getItemData(item: ListItem): Record<string, unknown> {\n const data = getChildrenData(item.children);\n if (item.templateId !== undefined) {\n return { [TEMPLATE_DISCRIMINATOR]: item.templateId, ...data };\n }\n return data;\n }\n\n private _getClonedItemData(item: ListItem): Record<string, unknown> {\n const data = getChildrenData(item.children);\n const children = createChildFields(\n this._templateChildBuilders(item.templateId),\n this._form,\n this.qualifiedName\n );\n hydrateChildren(children, data, { clone: true });\n const clonedData = getChildrenData(children);\n if (item.templateId !== undefined) {\n return { [TEMPLATE_DISCRIMINATOR]: item.templateId, ...clonedData };\n }\n return clonedData;\n }\n\n private _getClonedData(): Record<string, unknown> {\n const data = getChildrenData(this._children);\n const builders =\n this.isTemplated && this._activeTemplateId\n ? this._templateChildBuilders(this._activeTemplateId)\n : this.config.childBuilders;\n const children = createChildFields(builders, this._form, this.qualifiedName);\n hydrateChildren(children, data, { clone: true });\n const clonedData = getChildrenData(children);\n if (this.isTemplated && this._activeTemplateId) {\n return { [TEMPLATE_DISCRIMINATOR]: this._activeTemplateId, ...clonedData };\n }\n return clonedData;\n }\n\n getChild(name: string): IField | undefined {\n return this._children.get(name);\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n if (this.isTemplated) {\n throw new Error(\n `Object field \"${this.config.name}\" is templated; use templates.add()/remove() to manage children. Each template owns its own fields.`\n );\n }\n const builders = factory(this._form!.registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._children.delete(name);\n this.config.childBuilders[name] = undefined as unknown as IFieldBuilder;\n delete this.config.childBuilders[name];\n if (this.config.isList) {\n for (const item of this._items) {\n item.children.delete(name);\n }\n }\n continue;\n }\n\n this.config.childBuilders[name] = builder;\n const built = builder.build(name);\n const newField = createFieldFromConfig(\n built,\n this._form,\n this.qualifiedName,\n this._childScope\n );\n this._children.set(name, newField);\n\n if (this.config.isList) {\n for (const item of this._items) {\n const itemField = createFieldFromConfig(\n built,\n this._form,\n this.qualifiedName,\n this._itemScope(item.key)\n );\n item.children.set(name, itemField);\n }\n }\n }\n\n // Re-apply nested object layouts so newly-added children pick up any\n // layout.object() entries already registered on this field.\n if (this._ownLayout) {\n this._applyNestedObjectLayouts(this._ownLayout, this._children);\n for (const item of this._items) {\n this._applyNestedObjectLayouts(this._ownLayout, item.children);\n }\n }\n }\n\n getListItemChild(index: number, name: string): IField | undefined {\n const item = this._items[index];\n return item?.children.get(name);\n }\n\n getData(): any {\n if (this.config.isList) {\n return this._items.map(item => this._getItemData(item));\n }\n if (this.isTemplated) {\n if (this._activeTemplateId === null) {\n return null;\n }\n return {\n [TEMPLATE_DISCRIMINATOR]: this._activeTemplateId,\n ...getChildrenData(this._children)\n };\n }\n return getChildrenData(this._children);\n }\n\n getValue<T = unknown>(): T {\n return this.getData() as T;\n }\n\n setValue(value: unknown): void {\n this.setValueSilent(value);\n }\n\n setValueSilent(value: unknown): void {\n if (this.config.isList) {\n this._items = [];\n if (Array.isArray(value)) {\n for (const itemData of value) {\n if (this.isTemplated) {\n if (!itemData || typeof itemData !== \"object\") {\n continue;\n }\n const data = itemData as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId !== \"string\") {\n continue;\n }\n if (!this._findTemplate(templateId)) {\n continue;\n }\n const { [TEMPLATE_DISCRIMINATOR]: _discarded, ...rest } = data;\n this._addItemInternal(rest, templateId);\n } else {\n this._addItemInternal(itemData);\n }\n }\n }\n return;\n }\n if (this.isTemplated) {\n if (value === null || value === undefined) {\n this._activeTemplateId = null;\n this._children = new Map();\n return;\n }\n const data = value as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId !== \"string\") {\n return;\n }\n if (!this._findTemplate(templateId)) {\n return;\n }\n this._rebuildChildrenForTemplate(templateId);\n const { [TEMPLATE_DISCRIMINATOR]: _discarded, ...rest } = data;\n hydrateChildren(this._children, rest);\n return;\n }\n hydrateChildren(this._children, value as Record<string, unknown>);\n }\n\n addItem(\n templateIdOrData?: string | Record<string, unknown>,\n data?: Record<string, unknown>\n ): void {\n if (this.isTemplated) {\n if (typeof templateIdOrData !== \"string\") {\n throw new Error(\n `Object field \"${this.config.name}\": templated list items require a template id. ` +\n `Call addItem(templateId) with one of: ${this._templates.map(t => t.id).join(\", \")}.`\n );\n }\n if (!this._findTemplate(templateIdOrData)) {\n throw new Error(\n `Template \"${templateIdOrData}\" not found on field \"${this.config.name}\". ` +\n `Available: ${this._templates.map(t => t.id).join(\", \") || \"(none)\"}.`\n );\n }\n this._addItemInternal(data, templateIdOrData);\n return;\n }\n if (typeof templateIdOrData === \"string\") {\n throw new Error(\n `Object field \"${this.config.name}\" is not templated; addItem() does not accept a template id.`\n );\n }\n this._addItemInternal(templateIdOrData);\n }\n\n removeItem(index: number): void {\n this._items.splice(index, 1);\n }\n\n moveItem(fromIndex: number, toIndex: number): void {\n if (\n fromIndex < 0 ||\n fromIndex >= this._items.length ||\n toIndex < 0 ||\n toIndex >= this._items.length ||\n fromIndex === toIndex\n ) {\n return;\n }\n const [item] = this._items.splice(fromIndex, 1);\n this._items.splice(toIndex, 0, item);\n }\n\n duplicateItem(index: number): void {\n const source = this._items[index];\n if (!source) {\n return;\n }\n const data = getChildrenData(source.children);\n const key = `item_${++itemKeyCounter}`;\n const children = createChildFields(\n this._templateChildBuilders(source.templateId),\n this._form,\n this.qualifiedName,\n this._itemScope(key)\n );\n hydrateChildren(children, data, { clone: true });\n this._items.splice(index + 1, 0, { key, children, templateId: source.templateId });\n const inner = this._innerLayoutFor(source.templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n private _templateChildBuilders(templateId: string | undefined): Record<string, IFieldBuilder> {\n if (templateId === undefined) {\n return this.config.childBuilders;\n }\n const template = this._findTemplate(templateId);\n if (!template) {\n throw new Error(`Template \"${templateId}\" not found on field \"${this.config.name}\".`);\n }\n return template.childBuilders;\n }\n\n private _addItemInternal(data?: Record<string, unknown>, templateId?: string): void {\n const key = `item_${++itemKeyCounter}`;\n const children = createChildFields(\n this._templateChildBuilders(templateId),\n this._form,\n this.qualifiedName,\n this._itemScope(key)\n );\n if (data) {\n hydrateChildren(children, data);\n }\n this._items.push({ key, children, templateId });\n const inner = this._innerLayoutFor(templateId);\n if (inner) {\n this._applyNestedObjectLayouts(inner, children);\n }\n }\n\n resetValidation(): void {\n this._base.resetValidation();\n for (const [, field] of this._children) {\n field.resetValidation();\n }\n for (const item of this._items) {\n for (const [, field] of item.children) {\n field.resetValidation();\n }\n }\n }\n\n as<T extends keyof FieldTypeMap>(type: T): FieldTypeMap[T] {\n if (type !== \"object\") {\n throw new Error(`Field \"${this.config.name}\" is type \"object\", not \"${type}\".`);\n }\n return this as unknown as FieldTypeMap[T];\n }\n\n get vm(): IObjectFieldVM {\n const baseVm = this._base.vm;\n return {\n name: baseVm.name,\n qualifiedName: baseVm.qualifiedName,\n type: \"object\",\n label: baseVm.label,\n help: baseVm.help,\n description: baseVm.description,\n note: baseVm.note,\n placeholder: baseVm.placeholder,\n value: this.getValue(),\n validation: baseVm.validation,\n validating: this._validating,\n required: baseVm.required,\n visible: baseVm.visible,\n disabled: baseVm.disabled,\n renderer: baseVm.renderer,\n rendererSettings: baseVm.rendererSettings,\n context: baseVm.context,\n onChange: (value: unknown) => this.setValue(value),\n onBlur: () => {\n if (this._form?.submitted) {\n void this.validate();\n }\n this.blur();\n },\n focusRequested: baseVm.focusRequested,\n clearFocusRequest: baseVm.clearFocusRequest,\n isList: this.config.isList,\n fields: this.config.isList\n ? []\n : Array.from(this._children.values())\n .filter(f => f.visible)\n .map(f => f.vm),\n layout: this.config.isList\n ? []\n : this._resolveLayoutForChildren(this._children, this._activeTemplateId),\n items: this.config.isList\n ? this._items.map((item, index) => ({\n key: item.key,\n fields: Array.from(item.children.values())\n .filter(f => f.visible)\n .map(f => f.vm),\n layout: this._resolveLayoutForChildren(\n item.children,\n item.templateId ?? null\n ),\n templateId: item.templateId,\n remove: () => this.removeItem(index),\n moveUp: () => this.moveItem(index, index - 1),\n moveDown: () => this.moveItem(index, index + 1),\n duplicate: () => this.duplicateItem(index),\n getClonedData: () => this._getClonedItemData(item)\n }))\n : [],\n addItem: (value?: unknown) => {\n if (value === undefined) {\n return this.addItem();\n }\n if (typeof value === \"string\") {\n return this.addItem(value);\n }\n const data = value as Record<string, unknown>;\n const templateId = data[TEMPLATE_DISCRIMINATOR];\n if (typeof templateId === \"string\") {\n const { [TEMPLATE_DISCRIMINATOR]: _, ...rest } = data;\n return this.addItem(templateId, rest);\n }\n return this.addItem(value as Record<string, unknown>);\n },\n removeItem: (index: number) => this.removeItem(index),\n moveItem: (from: number, to: number) => this.moveItem(from, to),\n duplicateItem: (index: number) => this.duplicateItem(index),\n isTemplated: this.isTemplated,\n availableTemplates: this.availableTemplates,\n activeTemplateId: this._activeTemplateId,\n setTemplate: (templateId: string) => this.setTemplate(templateId),\n getClonedData: () => this._getClonedData()\n };\n }\n\n get hasErrors(): boolean {\n const checkChildren = (children: Map<string, IField>): boolean => {\n for (const [, field] of children) {\n if (field.vm.validation.isValid === false) {\n return true;\n }\n if (isObjectField(field) && field.hasErrors) {\n return true;\n }\n }\n return false;\n };\n\n if (this.config.isList) {\n for (const item of this._items) {\n if (checkChildren(item.children)) {\n return true;\n }\n }\n } else {\n if (checkChildren(this._children)) {\n return true;\n }\n }\n return false;\n }\n\n async validate(options?: { force?: boolean }): Promise<boolean> {\n if (!this.visible) {\n this.setValidation({ isValid: null });\n return true;\n }\n\n runInAction(() => {\n this._validating = true;\n });\n\n try {\n const requiredState = this._base.resolveRequired();\n if (requiredState.required) {\n const message = requiredState.message || \"This field is required.\";\n if (this.config.isList && this._items.length === 0) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n if (!this.config.isList) {\n if (this.isTemplated) {\n if (this._activeTemplateId === null) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n } else {\n const data = this.getData();\n const hasAnyValue = Object.values(data).some(\n v => v !== null && v !== undefined && v !== \"\"\n );\n if (!hasAnyValue) {\n this.setValidation({ isValid: false, message });\n return false;\n }\n }\n }\n }\n\n if (this.config.isList && this.config.listSchema) {\n const listData = this.getData();\n if (\n !requiredState.required &&\n (listData === null ||\n listData === undefined ||\n (Array.isArray(listData) && listData.length === 0))\n ) {\n this.setValidationWithCache({ isValid: null }, listData, true);\n return true;\n }\n const result = await this.config.listSchema.safeParseAsync(listData);\n if (!result.success) {\n const firstIssue = result.error.issues[0];\n runInAction(() => {\n this.setValidation({\n isValid: false,\n message: firstIssue?.message || \"Invalid value.\"\n });\n });\n return false;\n }\n }\n\n if (this.config.schema) {\n const data = this.getData();\n if (!requiredState.required) {\n if (data == null) {\n this.setValidationWithCache({ isValid: null }, data, true);\n return true;\n }\n const hasAnyValue = Object.values(data).some(\n v => v !== null && v !== undefined && v !== \"\"\n );\n if (!hasAnyValue) {\n this.setValidationWithCache({ isValid: null }, data, true);\n return true;\n }\n }\n const result = await this.config.schema.safeParseAsync(data);\n if (!result.success) {\n const firstIssue = result.error.issues[0];\n runInAction(() => {\n this.setValidation({\n isValid: false,\n message: firstIssue?.message || \"Invalid value.\"\n });\n });\n return false;\n }\n }\n\n let allValid = true;\n\n if (this.config.isList) {\n for (const item of this._items) {\n const valid = await validateChildren(item.children, options);\n if (!valid) {\n allValid = false;\n }\n }\n } else {\n allValid = await validateChildren(this._children, options);\n }\n\n runInAction(() => {\n this.setValidation({ isValid: allValid });\n });\n\n return allValid;\n } finally {\n runInAction(() => {\n this._validating = false;\n });\n }\n }\n}\n"],"names":["TEMPLATE_DISCRIMINATOR","createChildFields","childBuilders","form","parentPath","scopePath","children","Map","name","builder","Object","config","field","createFieldFromConfig","objField","ObjectField","Field","hydrateChildren","data","options","getChildrenData","isObjectField","toJS","validateChildren","allValid","valid","itemKeyCounter","makeAutoObservable","layouts","template","id","t","templateId","Error","inner","value","rules","myPath","item","key","index","validation","result","cb","fn","message","configure","tb","createTemplateBuilder","layout","Array","node","child","tab","undefined","layoutNodes","fallback","clonedData","builders","factory","built","newField","itemField","itemData","_discarded","rest","templateIdOrData","fromIndex","toIndex","source","type","baseVm","f","_","from","to","checkChildren","runInAction","requiredState","hasAnyValue","v","listData","firstIssue"],"mappings":"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"}