@craft-ts/core 0.7.0-beta.13 → 0.7.0-beta.16

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 (699) hide show
  1. package/package.json +10 -2
  2. package/src/index.d.ts +156 -148
  3. package/src/index.js +153 -142
  4. package/src/lib/after-recomputation.d.ts +3 -4
  5. package/src/lib/after-recomputation.js +3 -4
  6. package/src/lib/app-checked-di.d.ts +3 -4
  7. package/src/lib/app-checked-di.js +0 -1
  8. package/src/lib/async-process.d.ts +18 -19
  9. package/src/lib/async-process.js +24 -25
  10. package/src/lib/branded-component/branded-component.d.ts +3 -4
  11. package/src/lib/branded-component/branded-component.js +0 -1
  12. package/src/lib/browser-boundaries.d.ts +6 -7
  13. package/src/lib/browser-boundaries.js +5 -6
  14. package/src/lib/client-di-requirement.d.ts +1 -2
  15. package/src/lib/client-di-requirement.js +0 -1
  16. package/src/lib/client-function-middleware.d.ts +8 -92
  17. package/src/lib/client-function-middleware.js +89 -90
  18. package/src/lib/component-monitoring.d.ts +1 -2
  19. package/src/lib/component-monitoring.js +2 -3
  20. package/src/lib/component-register.d.ts +1 -2
  21. package/src/lib/component-register.js +1 -2
  22. package/src/lib/computed-source.d.ts +3 -4
  23. package/src/lib/computed-source.js +2 -3
  24. package/src/lib/correlation-id-plugin.d.ts +1 -2
  25. package/src/lib/correlation-id-plugin.js +6 -7
  26. package/src/lib/correlation-id.d.ts +4 -5
  27. package/src/lib/correlation-id.js +3 -4
  28. package/src/lib/craft-a11y.d.ts +3 -4
  29. package/src/lib/craft-a11y.js +5 -6
  30. package/src/lib/craft-activated-route.d.ts +2 -3
  31. package/src/lib/craft-activated-route.js +2 -3
  32. package/src/lib/craft-app-config.d.ts +4 -5
  33. package/src/lib/craft-app-config.js +3 -4
  34. package/src/lib/craft-codec.d.ts +0 -1
  35. package/src/lib/craft-codec.js +0 -1
  36. package/src/lib/craft-computed.d.ts +6 -7
  37. package/src/lib/craft-computed.js +7 -8
  38. package/src/lib/craft-control-flow.d.ts +0 -1
  39. package/src/lib/craft-control-flow.js +2 -3
  40. package/src/lib/craft-effect.d.ts +2 -3
  41. package/src/lib/craft-effect.js +7 -8
  42. package/src/lib/craft-exception.d.ts +0 -1
  43. package/src/lib/craft-exception.js +0 -1
  44. package/src/lib/craft-gen.d.ts +1 -2
  45. package/src/lib/craft-gen.js +2 -3
  46. package/src/lib/craft-generator-runtime.d.ts +21 -5
  47. package/src/lib/craft-generator-runtime.js +28 -6
  48. package/src/lib/craft-guard-runtime.d.ts +4 -5
  49. package/src/lib/craft-guard-runtime.js +6 -7
  50. package/src/lib/craft-handshake.d.ts +1 -2
  51. package/src/lib/craft-handshake.js +0 -1
  52. package/src/lib/craft-http-client.d.ts +3 -4
  53. package/src/lib/craft-http-client.js +4 -5
  54. package/src/lib/craft-http-trace.d.ts +1 -2
  55. package/src/lib/craft-http-trace.js +5 -2
  56. package/src/lib/craft-hydration.d.ts +11 -0
  57. package/src/lib/craft-hydration.js +2 -0
  58. package/src/lib/craft-lazy.d.ts +3 -4
  59. package/src/lib/craft-lazy.js +5 -6
  60. package/src/lib/craft-load-retry.d.ts +2 -3
  61. package/src/lib/craft-load-retry.js +11 -4
  62. package/src/lib/craft-machine-history.d.ts +6 -7
  63. package/src/lib/craft-machine-history.js +6 -7
  64. package/src/lib/craft-match.d.ts +0 -1
  65. package/src/lib/craft-match.js +0 -1
  66. package/src/lib/craft-method.d.ts +3 -4
  67. package/src/lib/craft-method.js +5 -6
  68. package/src/lib/craft-node-directive.d.ts +3 -4
  69. package/src/lib/craft-node-directive.js +2 -3
  70. package/src/lib/craft-pending.d.ts +3 -4
  71. package/src/lib/craft-pending.js +2 -3
  72. package/src/lib/craft-pipe.d.ts +1 -2
  73. package/src/lib/craft-pipe.js +7 -8
  74. package/src/lib/craft-platform.d.ts +2 -3
  75. package/src/lib/craft-platform.js +2 -3
  76. package/src/lib/craft-primitive-gen.d.ts +7 -8
  77. package/src/lib/craft-primitive-gen.js +4 -5
  78. package/src/lib/craft-primitive-registry.d.ts +4 -2
  79. package/src/lib/craft-primitive-registry.js +5 -3
  80. package/src/lib/craft-program-operators.d.ts +3 -4
  81. package/src/lib/craft-program-operators.js +4 -5
  82. package/src/lib/craft-program-runtime.d.ts +3 -4
  83. package/src/lib/craft-program-runtime.js +7 -8
  84. package/src/lib/craft-register-for-runtime.d.ts +2 -3
  85. package/src/lib/craft-register-for-runtime.js +2 -3
  86. package/src/lib/craft-register-for.d.ts +3 -4
  87. package/src/lib/craft-register-for.js +6 -7
  88. package/src/lib/craft-render-identity.d.ts +0 -1
  89. package/src/lib/craft-render-identity.js +1 -2
  90. package/src/lib/craft-replay.d.ts +0 -1
  91. package/src/lib/craft-replay.js +0 -1
  92. package/src/lib/craft-request-context.d.ts +15 -0
  93. package/src/lib/craft-request-context.js +40 -0
  94. package/src/lib/craft-resolve.d.ts +2 -3
  95. package/src/lib/craft-resolve.js +0 -1
  96. package/src/lib/craft-resource.d.ts +2 -3
  97. package/src/lib/craft-resource.js +14 -6
  98. package/src/lib/craft-route-exceptions.d.ts +27 -28
  99. package/src/lib/craft-route-exceptions.js +3 -4
  100. package/src/lib/craft-route-load-error.d.ts +92 -93
  101. package/src/lib/craft-route-load-error.js +6 -7
  102. package/src/lib/craft-route-meta.d.ts +4 -5
  103. package/src/lib/craft-route-meta.js +0 -1
  104. package/src/lib/craft-route-target.d.ts +1 -2
  105. package/src/lib/craft-route-target.js +1 -2
  106. package/src/lib/craft-router-outlet.d.ts +7 -7
  107. package/src/lib/craft-router-outlet.js +24 -18
  108. package/src/lib/craft-router-tokens.d.ts +3 -4
  109. package/src/lib/craft-router-tokens.js +2 -3
  110. package/src/lib/craft-router-trace.d.ts +3 -4
  111. package/src/lib/craft-router-trace.js +9 -3
  112. package/src/lib/craft-router.d.ts +16 -17
  113. package/src/lib/craft-router.js +75 -74
  114. package/src/lib/craft-routes.d.ts +20 -15
  115. package/src/lib/craft-routes.js +13 -12
  116. package/src/lib/craft-runtime-mode.d.ts +13 -0
  117. package/src/lib/craft-runtime-mode.js +21 -0
  118. package/src/lib/craft-security.d.ts +87 -0
  119. package/src/lib/craft-security.js +117 -0
  120. package/src/lib/craft-service.d.ts +12 -13
  121. package/src/lib/craft-service.js +11 -12
  122. package/src/lib/craft-service.shared.d.ts +0 -1
  123. package/src/lib/craft-service.shared.js +0 -1
  124. package/src/lib/craft-settled.d.ts +23 -16
  125. package/src/lib/craft-settled.js +9 -10
  126. package/src/lib/craft-ssr.d.ts +2 -3
  127. package/src/lib/craft-ssr.js +4 -5
  128. package/src/lib/craft-state-machine-runtime.d.ts +2 -3
  129. package/src/lib/craft-state-machine-runtime.js +3 -4
  130. package/src/lib/craft-state-machine.d.ts +5 -6
  131. package/src/lib/craft-state-machine.js +9 -10
  132. package/src/lib/craft-target-runtime.d.ts +1 -2
  133. package/src/lib/craft-target-runtime.js +2 -3
  134. package/src/lib/craft-transfer-snapshot.d.ts +10 -5
  135. package/src/lib/craft-transfer-snapshot.js +139 -14
  136. package/src/lib/craft-unique.d.ts +0 -1
  137. package/src/lib/craft-unique.js +0 -1
  138. package/src/lib/craft-until-settled.d.ts +5 -6
  139. package/src/lib/craft-until-settled.js +4 -5
  140. package/src/lib/craft-use.d.ts +0 -1
  141. package/src/lib/craft-use.js +2 -3
  142. package/src/lib/craft-view-transition.d.ts +2 -3
  143. package/src/lib/craft-view-transition.js +2 -3
  144. package/src/lib/dev-tools.d.ts +7 -0
  145. package/src/lib/dev-tools.js +244 -0
  146. package/src/lib/dom-event-hook.d.ts +1 -2
  147. package/src/lib/dom-event-hook.js +1 -2
  148. package/src/lib/fn-wrapper.d.ts +2 -3
  149. package/src/lib/fn-wrapper.js +3 -4
  150. package/src/lib/form/craft-field.d.ts +2 -3
  151. package/src/lib/form/craft-field.directive.d.ts +6 -7
  152. package/src/lib/form/craft-field.directive.js +5 -6
  153. package/src/lib/form/craft-field.js +1 -2
  154. package/src/lib/form/field-exception.d.ts +4 -5
  155. package/src/lib/form/field-exception.js +1 -2
  156. package/src/lib/form/field-lens.d.ts +0 -1
  157. package/src/lib/form/field-lens.js +0 -1
  158. package/src/lib/form/insert-form-attributes.d.ts +6 -7
  159. package/src/lib/form/insert-form-attributes.js +5 -6
  160. package/src/lib/form/insert-form-internals.d.ts +11 -12
  161. package/src/lib/form/insert-form-internals.js +9 -10
  162. package/src/lib/form/insert-form-schema.d.ts +3 -4
  163. package/src/lib/form/insert-form-schema.js +4 -5
  164. package/src/lib/form/insert-form-submit.d.ts +7 -8
  165. package/src/lib/form/insert-form-submit.js +3 -4
  166. package/src/lib/form/insert-form.d.ts +6 -7
  167. package/src/lib/form/insert-form.js +8 -9
  168. package/src/lib/form/insert-select-form-tree.d.ts +2 -3
  169. package/src/lib/form/insert-select-form-tree.js +5 -6
  170. package/src/lib/form/insert-sub-form-field.d.ts +3 -4
  171. package/src/lib/form/insert-sub-form-field.js +6 -7
  172. package/src/lib/form/make-form-tree-insert.d.ts +1 -2
  173. package/src/lib/form/make-form-tree-insert.js +3 -4
  174. package/src/lib/form/target-form-field.d.ts +0 -1
  175. package/src/lib/form/target-form-field.js +0 -1
  176. package/src/lib/form/validator.d.ts +5 -6
  177. package/src/lib/form/validator.js +3 -4
  178. package/src/lib/from-event-to-source$.d.ts +2 -3
  179. package/src/lib/from-event-to-source$.js +3 -4
  180. package/src/lib/global-persister-handler.service.d.ts +1 -2
  181. package/src/lib/global-persister-handler.service.js +2 -3
  182. package/src/lib/host/craft-compat.d.ts +2 -3
  183. package/src/lib/host/craft-compat.js +2 -3
  184. package/src/lib/host/craft-dom.d.ts +0 -1
  185. package/src/lib/host/craft-dom.js +0 -1
  186. package/src/lib/host/craft-http.d.ts +0 -1
  187. package/src/lib/host/craft-http.js +0 -1
  188. package/src/lib/host/craft-injector-host.d.ts +2 -3
  189. package/src/lib/host/craft-injector-host.js +1 -2
  190. package/src/lib/host/craft-injector.d.ts +0 -1
  191. package/src/lib/host/craft-injector.js +0 -1
  192. package/src/lib/host/craft-linked-signal.d.ts +1 -2
  193. package/src/lib/host/craft-linked-signal.js +2 -3
  194. package/src/lib/host/craft-router-runtime.d.ts +0 -1
  195. package/src/lib/host/craft-router-runtime.js +0 -1
  196. package/src/lib/host/craft-router-types.d.ts +1 -2
  197. package/src/lib/host/craft-router-types.js +1 -2
  198. package/src/lib/host/craft-signal.d.ts +0 -1
  199. package/src/lib/host/craft-signal.js +1 -2
  200. package/src/lib/host/craft-test-bed.d.ts +2 -3
  201. package/src/lib/host/craft-test-bed.js +2 -3
  202. package/src/lib/host-tag.d.ts +1 -2
  203. package/src/lib/host-tag.js +1 -2
  204. package/src/lib/http-server.d.ts +156 -0
  205. package/src/lib/http-server.js +590 -0
  206. package/src/lib/insert-entities.d.ts +5 -6
  207. package/src/lib/insert-entities.js +1 -2
  208. package/src/lib/insert-noop-typing-anchor.d.ts +1 -2
  209. package/src/lib/insert-noop-typing-anchor.js +0 -1
  210. package/src/lib/insert-pagination-placeholder-data.d.ts +5 -6
  211. package/src/lib/insert-pagination-placeholder-data.js +5 -6
  212. package/src/lib/insert-react-on-mutation.d.ts +5 -6
  213. package/src/lib/insert-react-on-mutation.js +2 -3
  214. package/src/lib/insert-select-resource.d.ts +2 -3
  215. package/src/lib/insert-select-resource.js +1 -2
  216. package/src/lib/insert-select.d.ts +5 -6
  217. package/src/lib/insert-select.js +18 -19
  218. package/src/lib/insert-storage-persister.d.ts +4 -5
  219. package/src/lib/insert-storage-persister.js +2 -3
  220. package/src/lib/insert-typed-pipes.d.ts +3 -4
  221. package/src/lib/insert-typed-pipes.js +2 -3
  222. package/src/lib/lambda-adapter.d.ts +52 -0
  223. package/src/lib/lambda-adapter.js +101 -0
  224. package/src/lib/linked-source.d.ts +3 -4
  225. package/src/lib/linked-source.js +2 -3
  226. package/src/lib/local-storage-persister.d.ts +2 -3
  227. package/src/lib/local-storage-persister.js +3 -4
  228. package/src/lib/middleware-schema-shared.d.ts +9 -21
  229. package/src/lib/middleware-schema-shared.js +6 -1
  230. package/src/lib/mock-http-request-for-route.d.ts +3 -4
  231. package/src/lib/mock-http-request-for-route.js +0 -1
  232. package/src/lib/mutation.d.ts +18 -19
  233. package/src/lib/mutation.js +23 -24
  234. package/src/lib/on$.d.ts +6 -7
  235. package/src/lib/on$.js +4 -5
  236. package/src/lib/portable-server-function.d.ts +8 -9
  237. package/src/lib/portable-server-function.js +12 -5
  238. package/src/lib/preserved-resource.d.ts +2 -3
  239. package/src/lib/preserved-resource.js +4 -5
  240. package/src/lib/primitive-method-runtime-context.d.ts +1 -2
  241. package/src/lib/primitive-method-runtime-context.js +2 -3
  242. package/src/lib/primitive-resource-runtime-context.d.ts +1 -2
  243. package/src/lib/primitive-resource-runtime-context.js +2 -3
  244. package/src/lib/query-params.d.ts +12 -13
  245. package/src/lib/query-params.js +15 -16
  246. package/src/lib/query.core.d.ts +15 -14
  247. package/src/lib/query.core.js +1 -2
  248. package/src/lib/query.d.ts +19 -20
  249. package/src/lib/query.js +23 -24
  250. package/src/lib/reactive-read.d.ts +2 -3
  251. package/src/lib/reactive-read.js +2 -3
  252. package/src/lib/render/channels.d.ts +130 -0
  253. package/src/lib/render/channels.js +0 -0
  254. package/src/lib/resource-by-id.d.ts +4 -5
  255. package/src/lib/resource-by-id.js +4 -5
  256. package/src/lib/resource-exception.d.ts +2 -3
  257. package/src/lib/resource-exception.js +1 -2
  258. package/src/lib/route-checked-di.d.ts +4 -5
  259. package/src/lib/route-checked-di.js +0 -1
  260. package/src/lib/schema-validation.d.ts +4 -5
  261. package/src/lib/schema-validation.js +2 -3
  262. package/src/lib/send-context-to-ai.d.ts +3 -4
  263. package/src/lib/send-context-to-ai.js +1 -2
  264. package/src/lib/send-context-to-ai.tokens.d.ts +1 -2
  265. package/src/lib/send-context-to-ai.tokens.js +0 -1
  266. package/src/lib/server-function-client.d.ts +18 -7
  267. package/src/lib/server-function-client.js +31 -9
  268. package/src/lib/server-function-contract.d.ts +1 -2
  269. package/src/lib/server-function-contract.js +0 -1
  270. package/src/lib/server-function-middleware.d.ts +49 -132
  271. package/src/lib/server-function-middleware.js +83 -103
  272. package/src/lib/server-function.d.ts +58 -8
  273. package/src/lib/server-function.js +20 -6
  274. package/src/lib/server-layer.d.ts +3 -4
  275. package/src/lib/server-layer.js +1 -2
  276. package/src/lib/server.d.ts +39 -6
  277. package/src/lib/server.js +259 -27
  278. package/src/lib/setup-craft-service-test.d.ts +3 -4
  279. package/src/lib/setup-craft-service-test.js +6 -7
  280. package/src/lib/setup-craft-service-testing-by-register.d.ts +4 -5
  281. package/src/lib/setup-craft-service-testing-by-register.js +4 -5
  282. package/src/lib/signal-proxy.d.ts +2 -3
  283. package/src/lib/signal-proxy.js +1 -2
  284. package/src/lib/signal-source.d.ts +3 -4
  285. package/src/lib/signal-source.js +7 -8
  286. package/src/lib/source$.d.ts +3 -4
  287. package/src/lib/source$.js +7 -8
  288. package/src/lib/source-from-event.d.ts +2 -3
  289. package/src/lib/source-from-event.js +2 -3
  290. package/src/lib/stacked-source.d.ts +1 -2
  291. package/src/lib/stacked-source.js +1 -2
  292. package/src/lib/standard-schema.d.ts +0 -1
  293. package/src/lib/standard-schema.js +0 -1
  294. package/src/lib/state-method-runtime-context.d.ts +2 -3
  295. package/src/lib/state-method-runtime-context.js +1 -2
  296. package/src/lib/state.d.ts +13 -14
  297. package/src/lib/state.js +17 -18
  298. package/src/lib/storage-persister.service.d.ts +3 -4
  299. package/src/lib/storage-persister.service.js +3 -4
  300. package/src/lib/take-app-snapshot.d.ts +1 -2
  301. package/src/lib/take-app-snapshot.js +10 -4
  302. package/src/lib/template-trace.d.ts +1 -2
  303. package/src/lib/template-trace.js +5 -2
  304. package/src/lib/temporal-runtime.d.ts +1 -2
  305. package/src/lib/temporal-runtime.js +1 -2
  306. package/src/lib/to-source.d.ts +3 -4
  307. package/src/lib/to-source.js +2 -3
  308. package/src/lib/util/craft-resource-ref.d.ts +2 -3
  309. package/src/lib/util/craft-resource-ref.js +0 -1
  310. package/src/lib/util/craft-resource-status.d.ts +1 -2
  311. package/src/lib/util/craft-resource-status.js +0 -1
  312. package/src/lib/util/entities-util.d.ts +0 -1
  313. package/src/lib/util/entities-util.js +0 -1
  314. package/src/lib/util/explicit-effect.d.ts +1 -2
  315. package/src/lib/util/explicit-effect.js +1 -2
  316. package/src/lib/util/extract-signal-props-and-methods.d.ts +2 -3
  317. package/src/lib/util/extract-signal-props-and-methods.js +0 -1
  318. package/src/lib/util/method-trigger-nonce.d.ts +1 -2
  319. package/src/lib/util/method-trigger-nonce.js +0 -1
  320. package/src/lib/util/persister.type.d.ts +2 -3
  321. package/src/lib/util/persister.type.js +0 -1
  322. package/src/lib/util/persister.util.d.ts +0 -1
  323. package/src/lib/util/persister.util.js +0 -1
  324. package/src/lib/util/react-on-mutation-effect.d.ts +5 -6
  325. package/src/lib/util/react-on-mutation-effect.js +4 -5
  326. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts +2 -3
  327. package/src/lib/util/resource-by-id-changes-tracker.util.js +2 -3
  328. package/src/lib/util/source.type.d.ts +2 -3
  329. package/src/lib/util/source.type.js +0 -1
  330. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts +1 -2
  331. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js +0 -1
  332. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts +4 -5
  333. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js +0 -1
  334. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts +3 -4
  335. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js +0 -1
  336. package/src/lib/util/types/brand.d.ts +0 -1
  337. package/src/lib/util/types/brand.js +0 -1
  338. package/src/lib/util/types/object-deep-path-mapper.type.d.ts +1 -2
  339. package/src/lib/util/types/object-deep-path-mapper.type.js +0 -1
  340. package/src/lib/util/types/resource-by-id-config.type.d.ts +3 -4
  341. package/src/lib/util/types/resource-by-id-config.type.js +0 -1
  342. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts +2 -3
  343. package/src/lib/util/types/resource-with-params-or-params-fn.type.js +0 -1
  344. package/src/lib/util/types/shared.type.d.ts +6 -7
  345. package/src/lib/util/types/shared.type.js +0 -1
  346. package/src/lib/util/types/util.d.ts +2 -3
  347. package/src/lib/util/types/util.js +3 -3
  348. package/src/lib/util/types/util.type.d.ts +3 -4
  349. package/src/lib/util/types/util.type.js +0 -1
  350. package/src/lib/util/update-state.util.d.ts +0 -1
  351. package/src/lib/util/update-state.util.js +0 -1
  352. package/src/lib/util/util.d.ts +2 -3
  353. package/src/lib/util/util.js +1 -2
  354. package/src/lib/util/util.type.d.ts +5 -6
  355. package/src/lib/util/util.type.js +0 -1
  356. package/src/lib/worker-adapter.d.ts +8 -0
  357. package/src/lib/worker-adapter.js +8 -0
  358. package/src/lib/yieldable.d.ts +4 -5
  359. package/src/lib/yieldable.js +4 -5
  360. package/src/index.d.ts.map +0 -1
  361. package/src/index.js.map +0 -1
  362. package/src/lib/after-recomputation.d.ts.map +0 -1
  363. package/src/lib/after-recomputation.js.map +0 -1
  364. package/src/lib/app-checked-di.d.ts.map +0 -1
  365. package/src/lib/app-checked-di.js.map +0 -1
  366. package/src/lib/async-process.d.ts.map +0 -1
  367. package/src/lib/async-process.js.map +0 -1
  368. package/src/lib/branded-component/branded-component.d.ts.map +0 -1
  369. package/src/lib/branded-component/branded-component.js.map +0 -1
  370. package/src/lib/browser-boundaries.d.ts.map +0 -1
  371. package/src/lib/browser-boundaries.js.map +0 -1
  372. package/src/lib/client-di-requirement.d.ts.map +0 -1
  373. package/src/lib/client-di-requirement.js.map +0 -1
  374. package/src/lib/client-function-middleware.d.ts.map +0 -1
  375. package/src/lib/client-function-middleware.js.map +0 -1
  376. package/src/lib/component-monitoring.d.ts.map +0 -1
  377. package/src/lib/component-monitoring.js.map +0 -1
  378. package/src/lib/component-register.d.ts.map +0 -1
  379. package/src/lib/component-register.js.map +0 -1
  380. package/src/lib/computed-source.d.ts.map +0 -1
  381. package/src/lib/computed-source.js.map +0 -1
  382. package/src/lib/correlation-id-plugin.d.ts.map +0 -1
  383. package/src/lib/correlation-id-plugin.js.map +0 -1
  384. package/src/lib/correlation-id.d.ts.map +0 -1
  385. package/src/lib/correlation-id.js.map +0 -1
  386. package/src/lib/craft-a11y.d.ts.map +0 -1
  387. package/src/lib/craft-a11y.js.map +0 -1
  388. package/src/lib/craft-activated-route.d.ts.map +0 -1
  389. package/src/lib/craft-activated-route.js.map +0 -1
  390. package/src/lib/craft-app-config.d.ts.map +0 -1
  391. package/src/lib/craft-app-config.js.map +0 -1
  392. package/src/lib/craft-codec.d.ts.map +0 -1
  393. package/src/lib/craft-codec.js.map +0 -1
  394. package/src/lib/craft-computed.d.ts.map +0 -1
  395. package/src/lib/craft-computed.js.map +0 -1
  396. package/src/lib/craft-control-flow.d.ts.map +0 -1
  397. package/src/lib/craft-control-flow.js.map +0 -1
  398. package/src/lib/craft-effect.d.ts.map +0 -1
  399. package/src/lib/craft-effect.js.map +0 -1
  400. package/src/lib/craft-exception.d.ts.map +0 -1
  401. package/src/lib/craft-exception.js.map +0 -1
  402. package/src/lib/craft-gen.d.ts.map +0 -1
  403. package/src/lib/craft-gen.js.map +0 -1
  404. package/src/lib/craft-generator-runtime.d.ts.map +0 -1
  405. package/src/lib/craft-generator-runtime.js.map +0 -1
  406. package/src/lib/craft-guard-runtime.d.ts.map +0 -1
  407. package/src/lib/craft-guard-runtime.js.map +0 -1
  408. package/src/lib/craft-handshake.d.ts.map +0 -1
  409. package/src/lib/craft-handshake.js.map +0 -1
  410. package/src/lib/craft-http-client.d.ts.map +0 -1
  411. package/src/lib/craft-http-client.js.map +0 -1
  412. package/src/lib/craft-http-trace.d.ts.map +0 -1
  413. package/src/lib/craft-http-trace.js.map +0 -1
  414. package/src/lib/craft-lazy.d.ts.map +0 -1
  415. package/src/lib/craft-lazy.js.map +0 -1
  416. package/src/lib/craft-load-retry.d.ts.map +0 -1
  417. package/src/lib/craft-load-retry.js.map +0 -1
  418. package/src/lib/craft-machine-history.d.ts.map +0 -1
  419. package/src/lib/craft-machine-history.js.map +0 -1
  420. package/src/lib/craft-match.d.ts.map +0 -1
  421. package/src/lib/craft-match.js.map +0 -1
  422. package/src/lib/craft-method.d.ts.map +0 -1
  423. package/src/lib/craft-method.js.map +0 -1
  424. package/src/lib/craft-node-directive.d.ts.map +0 -1
  425. package/src/lib/craft-node-directive.js.map +0 -1
  426. package/src/lib/craft-pending.d.ts.map +0 -1
  427. package/src/lib/craft-pending.js.map +0 -1
  428. package/src/lib/craft-pipe.d.ts.map +0 -1
  429. package/src/lib/craft-pipe.js.map +0 -1
  430. package/src/lib/craft-platform.d.ts.map +0 -1
  431. package/src/lib/craft-platform.js.map +0 -1
  432. package/src/lib/craft-primitive-gen.d.ts.map +0 -1
  433. package/src/lib/craft-primitive-gen.js.map +0 -1
  434. package/src/lib/craft-primitive-registry.d.ts.map +0 -1
  435. package/src/lib/craft-primitive-registry.js.map +0 -1
  436. package/src/lib/craft-program-operators.d.ts.map +0 -1
  437. package/src/lib/craft-program-operators.js.map +0 -1
  438. package/src/lib/craft-program-runtime.d.ts.map +0 -1
  439. package/src/lib/craft-program-runtime.js.map +0 -1
  440. package/src/lib/craft-register-for-runtime.d.ts.map +0 -1
  441. package/src/lib/craft-register-for-runtime.js.map +0 -1
  442. package/src/lib/craft-register-for.d.ts.map +0 -1
  443. package/src/lib/craft-register-for.js.map +0 -1
  444. package/src/lib/craft-render-identity.d.ts.map +0 -1
  445. package/src/lib/craft-render-identity.js.map +0 -1
  446. package/src/lib/craft-replay.d.ts.map +0 -1
  447. package/src/lib/craft-replay.js.map +0 -1
  448. package/src/lib/craft-resolve.d.ts.map +0 -1
  449. package/src/lib/craft-resolve.js.map +0 -1
  450. package/src/lib/craft-resource.d.ts.map +0 -1
  451. package/src/lib/craft-resource.js.map +0 -1
  452. package/src/lib/craft-route-exceptions.d.ts.map +0 -1
  453. package/src/lib/craft-route-exceptions.js.map +0 -1
  454. package/src/lib/craft-route-load-error.d.ts.map +0 -1
  455. package/src/lib/craft-route-load-error.js.map +0 -1
  456. package/src/lib/craft-route-meta.d.ts.map +0 -1
  457. package/src/lib/craft-route-meta.js.map +0 -1
  458. package/src/lib/craft-route-target.d.ts.map +0 -1
  459. package/src/lib/craft-route-target.js.map +0 -1
  460. package/src/lib/craft-router-outlet.d.ts.map +0 -1
  461. package/src/lib/craft-router-outlet.js.map +0 -1
  462. package/src/lib/craft-router-tokens.d.ts.map +0 -1
  463. package/src/lib/craft-router-tokens.js.map +0 -1
  464. package/src/lib/craft-router-trace.d.ts.map +0 -1
  465. package/src/lib/craft-router-trace.js.map +0 -1
  466. package/src/lib/craft-router.d.ts.map +0 -1
  467. package/src/lib/craft-router.js.map +0 -1
  468. package/src/lib/craft-routes.d.ts.map +0 -1
  469. package/src/lib/craft-routes.js.map +0 -1
  470. package/src/lib/craft-service.d.ts.map +0 -1
  471. package/src/lib/craft-service.js.map +0 -1
  472. package/src/lib/craft-service.shared.d.ts.map +0 -1
  473. package/src/lib/craft-service.shared.js.map +0 -1
  474. package/src/lib/craft-settled.d.ts.map +0 -1
  475. package/src/lib/craft-settled.js.map +0 -1
  476. package/src/lib/craft-ssr.d.ts.map +0 -1
  477. package/src/lib/craft-ssr.js.map +0 -1
  478. package/src/lib/craft-state-machine-runtime.d.ts.map +0 -1
  479. package/src/lib/craft-state-machine-runtime.js.map +0 -1
  480. package/src/lib/craft-state-machine.d.ts.map +0 -1
  481. package/src/lib/craft-state-machine.js.map +0 -1
  482. package/src/lib/craft-target-runtime.d.ts.map +0 -1
  483. package/src/lib/craft-target-runtime.js.map +0 -1
  484. package/src/lib/craft-transfer-snapshot.d.ts.map +0 -1
  485. package/src/lib/craft-transfer-snapshot.js.map +0 -1
  486. package/src/lib/craft-unique.d.ts.map +0 -1
  487. package/src/lib/craft-unique.js.map +0 -1
  488. package/src/lib/craft-until-settled.d.ts.map +0 -1
  489. package/src/lib/craft-until-settled.js.map +0 -1
  490. package/src/lib/craft-use.d.ts.map +0 -1
  491. package/src/lib/craft-use.js.map +0 -1
  492. package/src/lib/craft-view-transition.d.ts.map +0 -1
  493. package/src/lib/craft-view-transition.js.map +0 -1
  494. package/src/lib/dom-event-hook.d.ts.map +0 -1
  495. package/src/lib/dom-event-hook.js.map +0 -1
  496. package/src/lib/fn-wrapper.d.ts.map +0 -1
  497. package/src/lib/fn-wrapper.js.map +0 -1
  498. package/src/lib/form/craft-field.d.ts.map +0 -1
  499. package/src/lib/form/craft-field.directive.d.ts.map +0 -1
  500. package/src/lib/form/craft-field.directive.js.map +0 -1
  501. package/src/lib/form/craft-field.js.map +0 -1
  502. package/src/lib/form/field-exception.d.ts.map +0 -1
  503. package/src/lib/form/field-exception.js.map +0 -1
  504. package/src/lib/form/field-lens.d.ts.map +0 -1
  505. package/src/lib/form/field-lens.js.map +0 -1
  506. package/src/lib/form/insert-form-attributes.d.ts.map +0 -1
  507. package/src/lib/form/insert-form-attributes.js.map +0 -1
  508. package/src/lib/form/insert-form-internals.d.ts.map +0 -1
  509. package/src/lib/form/insert-form-internals.js.map +0 -1
  510. package/src/lib/form/insert-form-schema.d.ts.map +0 -1
  511. package/src/lib/form/insert-form-schema.js.map +0 -1
  512. package/src/lib/form/insert-form-submit.d.ts.map +0 -1
  513. package/src/lib/form/insert-form-submit.js.map +0 -1
  514. package/src/lib/form/insert-form.d.ts.map +0 -1
  515. package/src/lib/form/insert-form.js.map +0 -1
  516. package/src/lib/form/insert-select-form-tree.d.ts.map +0 -1
  517. package/src/lib/form/insert-select-form-tree.js.map +0 -1
  518. package/src/lib/form/insert-sub-form-field.d.ts.map +0 -1
  519. package/src/lib/form/insert-sub-form-field.js.map +0 -1
  520. package/src/lib/form/make-form-tree-insert.d.ts.map +0 -1
  521. package/src/lib/form/make-form-tree-insert.js.map +0 -1
  522. package/src/lib/form/target-form-field.d.ts.map +0 -1
  523. package/src/lib/form/target-form-field.js.map +0 -1
  524. package/src/lib/form/validator.d.ts.map +0 -1
  525. package/src/lib/form/validator.js.map +0 -1
  526. package/src/lib/from-event-to-source$.d.ts.map +0 -1
  527. package/src/lib/from-event-to-source$.js.map +0 -1
  528. package/src/lib/global-persister-handler.service.d.ts.map +0 -1
  529. package/src/lib/global-persister-handler.service.js.map +0 -1
  530. package/src/lib/host/craft-compat.d.ts.map +0 -1
  531. package/src/lib/host/craft-compat.js.map +0 -1
  532. package/src/lib/host/craft-dom.d.ts.map +0 -1
  533. package/src/lib/host/craft-dom.js.map +0 -1
  534. package/src/lib/host/craft-http.d.ts.map +0 -1
  535. package/src/lib/host/craft-http.js.map +0 -1
  536. package/src/lib/host/craft-injector-host.d.ts.map +0 -1
  537. package/src/lib/host/craft-injector-host.js.map +0 -1
  538. package/src/lib/host/craft-injector.d.ts.map +0 -1
  539. package/src/lib/host/craft-injector.js.map +0 -1
  540. package/src/lib/host/craft-linked-signal.d.ts.map +0 -1
  541. package/src/lib/host/craft-linked-signal.js.map +0 -1
  542. package/src/lib/host/craft-router-runtime.d.ts.map +0 -1
  543. package/src/lib/host/craft-router-runtime.js.map +0 -1
  544. package/src/lib/host/craft-router-types.d.ts.map +0 -1
  545. package/src/lib/host/craft-router-types.js.map +0 -1
  546. package/src/lib/host/craft-signal.d.ts.map +0 -1
  547. package/src/lib/host/craft-signal.js.map +0 -1
  548. package/src/lib/host/craft-test-bed.d.ts.map +0 -1
  549. package/src/lib/host/craft-test-bed.js.map +0 -1
  550. package/src/lib/host-tag.d.ts.map +0 -1
  551. package/src/lib/host-tag.js.map +0 -1
  552. package/src/lib/insert-entities.d.ts.map +0 -1
  553. package/src/lib/insert-entities.js.map +0 -1
  554. package/src/lib/insert-noop-typing-anchor.d.ts.map +0 -1
  555. package/src/lib/insert-noop-typing-anchor.js.map +0 -1
  556. package/src/lib/insert-pagination-placeholder-data.d.ts.map +0 -1
  557. package/src/lib/insert-pagination-placeholder-data.js.map +0 -1
  558. package/src/lib/insert-react-on-mutation.d.ts.map +0 -1
  559. package/src/lib/insert-react-on-mutation.js.map +0 -1
  560. package/src/lib/insert-select-resource.d.ts.map +0 -1
  561. package/src/lib/insert-select-resource.js.map +0 -1
  562. package/src/lib/insert-select.d.ts.map +0 -1
  563. package/src/lib/insert-select.js.map +0 -1
  564. package/src/lib/insert-storage-persister.d.ts.map +0 -1
  565. package/src/lib/insert-storage-persister.js.map +0 -1
  566. package/src/lib/insert-typed-pipes.d.ts.map +0 -1
  567. package/src/lib/insert-typed-pipes.js.map +0 -1
  568. package/src/lib/linked-source.d.ts.map +0 -1
  569. package/src/lib/linked-source.js.map +0 -1
  570. package/src/lib/local-storage-persister.d.ts.map +0 -1
  571. package/src/lib/local-storage-persister.js.map +0 -1
  572. package/src/lib/middleware-schema-shared.d.ts.map +0 -1
  573. package/src/lib/middleware-schema-shared.js.map +0 -1
  574. package/src/lib/mock-http-request-for-route.d.ts.map +0 -1
  575. package/src/lib/mock-http-request-for-route.js.map +0 -1
  576. package/src/lib/mutation.d.ts.map +0 -1
  577. package/src/lib/mutation.js.map +0 -1
  578. package/src/lib/on$.d.ts.map +0 -1
  579. package/src/lib/on$.js.map +0 -1
  580. package/src/lib/portable-server-function.d.ts.map +0 -1
  581. package/src/lib/portable-server-function.js.map +0 -1
  582. package/src/lib/preserved-resource.d.ts.map +0 -1
  583. package/src/lib/preserved-resource.js.map +0 -1
  584. package/src/lib/primitive-method-runtime-context.d.ts.map +0 -1
  585. package/src/lib/primitive-method-runtime-context.js.map +0 -1
  586. package/src/lib/primitive-resource-runtime-context.d.ts.map +0 -1
  587. package/src/lib/primitive-resource-runtime-context.js.map +0 -1
  588. package/src/lib/query-params.d.ts.map +0 -1
  589. package/src/lib/query-params.js.map +0 -1
  590. package/src/lib/query.core.d.ts.map +0 -1
  591. package/src/lib/query.core.js.map +0 -1
  592. package/src/lib/query.d.ts.map +0 -1
  593. package/src/lib/query.js.map +0 -1
  594. package/src/lib/reactive-read.d.ts.map +0 -1
  595. package/src/lib/reactive-read.js.map +0 -1
  596. package/src/lib/resource-by-id.d.ts.map +0 -1
  597. package/src/lib/resource-by-id.js.map +0 -1
  598. package/src/lib/resource-exception.d.ts.map +0 -1
  599. package/src/lib/resource-exception.js.map +0 -1
  600. package/src/lib/route-checked-di.d.ts.map +0 -1
  601. package/src/lib/route-checked-di.js.map +0 -1
  602. package/src/lib/schema-validation.d.ts.map +0 -1
  603. package/src/lib/schema-validation.js.map +0 -1
  604. package/src/lib/send-context-to-ai.d.ts.map +0 -1
  605. package/src/lib/send-context-to-ai.js.map +0 -1
  606. package/src/lib/send-context-to-ai.tokens.d.ts.map +0 -1
  607. package/src/lib/send-context-to-ai.tokens.js.map +0 -1
  608. package/src/lib/server-function-client.d.ts.map +0 -1
  609. package/src/lib/server-function-client.js.map +0 -1
  610. package/src/lib/server-function-contract.d.ts.map +0 -1
  611. package/src/lib/server-function-contract.js.map +0 -1
  612. package/src/lib/server-function-middleware.d.ts.map +0 -1
  613. package/src/lib/server-function-middleware.js.map +0 -1
  614. package/src/lib/server-function.d.ts.map +0 -1
  615. package/src/lib/server-function.js.map +0 -1
  616. package/src/lib/server-layer.d.ts.map +0 -1
  617. package/src/lib/server-layer.js.map +0 -1
  618. package/src/lib/server.d.ts.map +0 -1
  619. package/src/lib/server.js.map +0 -1
  620. package/src/lib/setup-craft-service-test.d.ts.map +0 -1
  621. package/src/lib/setup-craft-service-test.js.map +0 -1
  622. package/src/lib/setup-craft-service-testing-by-register.d.ts.map +0 -1
  623. package/src/lib/setup-craft-service-testing-by-register.js.map +0 -1
  624. package/src/lib/signal-proxy.d.ts.map +0 -1
  625. package/src/lib/signal-proxy.js.map +0 -1
  626. package/src/lib/signal-source.d.ts.map +0 -1
  627. package/src/lib/signal-source.js.map +0 -1
  628. package/src/lib/source$.d.ts.map +0 -1
  629. package/src/lib/source$.js.map +0 -1
  630. package/src/lib/source-from-event.d.ts.map +0 -1
  631. package/src/lib/source-from-event.js.map +0 -1
  632. package/src/lib/stacked-source.d.ts.map +0 -1
  633. package/src/lib/stacked-source.js.map +0 -1
  634. package/src/lib/standard-schema.d.ts.map +0 -1
  635. package/src/lib/standard-schema.js.map +0 -1
  636. package/src/lib/state-method-runtime-context.d.ts.map +0 -1
  637. package/src/lib/state-method-runtime-context.js.map +0 -1
  638. package/src/lib/state.d.ts.map +0 -1
  639. package/src/lib/state.js.map +0 -1
  640. package/src/lib/storage-persister.service.d.ts.map +0 -1
  641. package/src/lib/storage-persister.service.js.map +0 -1
  642. package/src/lib/take-app-snapshot.d.ts.map +0 -1
  643. package/src/lib/take-app-snapshot.js.map +0 -1
  644. package/src/lib/template-trace.d.ts.map +0 -1
  645. package/src/lib/template-trace.js.map +0 -1
  646. package/src/lib/temporal-runtime.d.ts.map +0 -1
  647. package/src/lib/temporal-runtime.js.map +0 -1
  648. package/src/lib/to-source.d.ts.map +0 -1
  649. package/src/lib/to-source.js.map +0 -1
  650. package/src/lib/util/craft-resource-ref.d.ts.map +0 -1
  651. package/src/lib/util/craft-resource-ref.js.map +0 -1
  652. package/src/lib/util/craft-resource-status.d.ts.map +0 -1
  653. package/src/lib/util/craft-resource-status.js.map +0 -1
  654. package/src/lib/util/entities-util.d.ts.map +0 -1
  655. package/src/lib/util/entities-util.js.map +0 -1
  656. package/src/lib/util/explicit-effect.d.ts.map +0 -1
  657. package/src/lib/util/explicit-effect.js.map +0 -1
  658. package/src/lib/util/extract-signal-props-and-methods.d.ts.map +0 -1
  659. package/src/lib/util/extract-signal-props-and-methods.js.map +0 -1
  660. package/src/lib/util/method-trigger-nonce.d.ts.map +0 -1
  661. package/src/lib/util/method-trigger-nonce.js.map +0 -1
  662. package/src/lib/util/persister.type.d.ts.map +0 -1
  663. package/src/lib/util/persister.type.js.map +0 -1
  664. package/src/lib/util/persister.util.d.ts.map +0 -1
  665. package/src/lib/util/persister.util.js.map +0 -1
  666. package/src/lib/util/react-on-mutation-effect.d.ts.map +0 -1
  667. package/src/lib/util/react-on-mutation-effect.js.map +0 -1
  668. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts.map +0 -1
  669. package/src/lib/util/resource-by-id-changes-tracker.util.js.map +0 -1
  670. package/src/lib/util/source.type.d.ts.map +0 -1
  671. package/src/lib/util/source.type.js.map +0 -1
  672. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts.map +0 -1
  673. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js.map +0 -1
  674. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts.map +0 -1
  675. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js.map +0 -1
  676. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts.map +0 -1
  677. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js.map +0 -1
  678. package/src/lib/util/types/brand.d.ts.map +0 -1
  679. package/src/lib/util/types/brand.js.map +0 -1
  680. package/src/lib/util/types/object-deep-path-mapper.type.d.ts.map +0 -1
  681. package/src/lib/util/types/object-deep-path-mapper.type.js.map +0 -1
  682. package/src/lib/util/types/resource-by-id-config.type.d.ts.map +0 -1
  683. package/src/lib/util/types/resource-by-id-config.type.js.map +0 -1
  684. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts.map +0 -1
  685. package/src/lib/util/types/resource-with-params-or-params-fn.type.js.map +0 -1
  686. package/src/lib/util/types/shared.type.d.ts.map +0 -1
  687. package/src/lib/util/types/shared.type.js.map +0 -1
  688. package/src/lib/util/types/util.d.ts.map +0 -1
  689. package/src/lib/util/types/util.js.map +0 -1
  690. package/src/lib/util/types/util.type.d.ts.map +0 -1
  691. package/src/lib/util/types/util.type.js.map +0 -1
  692. package/src/lib/util/update-state.util.d.ts.map +0 -1
  693. package/src/lib/util/update-state.util.js.map +0 -1
  694. package/src/lib/util/util.d.ts.map +0 -1
  695. package/src/lib/util/util.js.map +0 -1
  696. package/src/lib/util/util.type.d.ts.map +0 -1
  697. package/src/lib/util/util.type.js.map +0 -1
  698. package/src/lib/yieldable.d.ts.map +0 -1
  699. package/src/lib/yieldable.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"craft-field.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/craft-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { computed, isSignal, signal, Signal, WritableSignal } from '../host/craft-compat';\nimport type { AnyCraftException } from '../craft-exception';\n\nexport type CraftFieldError = AnyCraftException;\n\nexport type CraftFieldSchemaErrorEntry = {\n readonly path: ReadonlyArray<string | number>;\n readonly error: CraftFieldError;\n};\n\nexport type CraftFieldSchemaErrorSource = Signal<\n ReadonlyArray<CraftFieldSchemaErrorEntry>\n>;\n\nexport type FieldAttributeMeta =\n | { kind: 'native-constraint'; target: 'min'; value: number | Date | undefined }\n | { kind: 'native-constraint'; target: 'max'; value: number | Date | undefined }\n | { kind: 'native-constraint'; target: 'minLength'; value: number | undefined }\n | { kind: 'native-constraint'; target: 'maxLength'; value: number | undefined }\n | { kind: 'native-constraint'; target: 'pattern'; value: RegExp | undefined }\n | { kind: 'native-constraint'; target: 'required'; value: boolean };\n\nexport type CraftValidatorPending = { pending: true };\nexport type CraftValidatorOutput =\n | undefined\n | CraftFieldError\n | ReadonlyArray<CraftFieldError>\n | CraftValidatorPending;\n\nexport type CraftValidatorContext<T> = {\n value: Signal<T>;\n field: CraftField<T>;\n identifier: unknown;\n};\n\nexport type CraftValidator<T = unknown> = (\n context: CraftValidatorContext<T>,\n) => {\n result: Signal<CraftValidatorOutput>;\n attribute?: Signal<FieldAttributeMeta | undefined>;\n};\n\nexport interface ControlSyncer<T> {\n /** Called when the model value changes. Implementation pushes value to DOM/component. */\n writeValue(next: T): void;\n /** Called on reset to force re-sync to DOM (even if model value did not change). */\n resync?(): void;\n /** Cleanup. */\n destroy?(): void;\n}\n\nexport interface CraftValueControl<T> {\n value: { (): T; set: (next: T) => void };\n}\n\nexport interface CraftCheckboxControl {\n checked: { (): boolean; set: (next: boolean) => void };\n}\n\nexport type FieldStateBindingKind = 'hidden' | 'disabled' | 'readonly';\n\ntype FieldRootBackingStore<T> = {\n read: () => T;\n set: (next: T) => void;\n asReadonly: () => Signal<T>;\n};\n\ntype ParentLink<TParent, T> = {\n parent: CraftFieldInternals<TParent>;\n segment: string | number;\n read: (parent: TParent) => T;\n write: (parent: TParent, next: T) => TParent;\n};\n\ntype CraftFieldInternals<T> = CraftField<T> & {\n __raw: () => T;\n __setRaw: (next: T) => void;\n __children: Map<string | number, CraftFieldInternals<unknown>>;\n __resetTriggerCount: WritableSignal<number>;\n __propagateDirty: (dirty: boolean) => void;\n __propagateTouched: (touched: boolean) => void;\n __resetCascade: () => void;\n __bumpRevision: () => void;\n __schemaErrorSources: CraftFieldSchemaErrorSource[];\n __schemaErrorRevision: WritableSignal<number>;\n};\n\nexport type CraftField<T> = {\n // Read\n value: Signal<T>;\n\n // Write\n set(next: T): void;\n patch(fn: (current: T) => Partial<T>): void;\n reset(initialValue?: T): void;\n\n // Status\n dirty: Signal<boolean>;\n touched: Signal<boolean>;\n hidden: Signal<boolean>;\n disabled: Signal<boolean>;\n readonly: Signal<boolean>;\n pending: Signal<boolean>;\n invalid: Signal<boolean>;\n valid: Signal<boolean>;\n errors: Signal<ReadonlyArray<CraftFieldError>>;\n\n // Native constraints\n required: Signal<boolean>;\n min: Signal<number | Date | undefined>;\n max: Signal<number | Date | undefined>;\n minLength: Signal<number | undefined>;\n maxLength: Signal<number | undefined>;\n pattern: Signal<RegExp | undefined>;\n disabledReasons: Signal<ReadonlyArray<string>>;\n\n // Internal — used by the directive and insertions\n ɵregisterControl(syncer: ControlSyncer<T>): () => void;\n ɵmarkTouched(): void;\n ɵmarkUntouched(): void;\n ɵmarkDirty(): void;\n ɵmarkPristine(): void;\n ɵregisterValidator(validator: CraftValidator<T>, identifier?: unknown): () => void;\n ɵregisterSchemaErrorSource(source: CraftFieldSchemaErrorSource): () => void;\n ɵregisterStateBinding(kind: FieldStateBindingKind, source: Signal<boolean>): () => void;\n ɵregisterDisabledReason(source: Signal<string | undefined>): () => void;\n ɵresetTrigger: Signal<number>;\n ɵpath: ReadonlyArray<string | number>;\n};\n\nexport type CraftFieldTree<T> = CraftField<T> &\n ([T] extends [ReadonlyArray<infer Item>]\n ? { item(index: number): CraftFieldTree<Item>; length: Signal<number> }\n : T extends Record<string, unknown>\n ? { [K in keyof T]-?: CraftFieldTree<T[K]> }\n : object);\n\n/** Returns whether a value exposes the public Craft field contract. */\nexport function isCraftField(value: unknown): value is CraftField<unknown> {\n if (typeof value !== 'object' || value === null) return false;\n const candidate = value as Partial<CraftField<unknown>>;\n return (\n typeof candidate.value === 'function' &&\n typeof candidate.set === 'function' &&\n typeof candidate.ɵregisterControl === 'function'\n );\n}\n\nconst FIELD_INTERNALS_TOKEN = Symbol('CraftFieldInternals');\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === null || proto === Object.prototype;\n}\n\nfunction readAtSegment(parent: unknown, segment: string | number): unknown {\n if (parent == null) return undefined;\n return (parent as Record<string | number, unknown>)[segment];\n}\n\nfunction writeAtSegment<TParent>(parent: TParent, segment: string | number, value: unknown): TParent {\n if (Array.isArray(parent)) {\n const next = parent.slice();\n (next as unknown[])[segment as number] = value;\n return next as unknown as TParent;\n }\n if (isPlainObject(parent)) {\n return { ...parent, [segment]: value } as unknown as TParent;\n }\n return parent;\n}\n\nfunction pathsEqual(\n left: ReadonlyArray<string | number>,\n right: ReadonlyArray<string | number>,\n): boolean {\n return (\n left.length === right.length &&\n left.every((segment, index) => segment === right[index])\n );\n}\n\nfunction createCraftFieldInternals<T>(\n options:\n | { kind: 'root'; backing: FieldRootBackingStore<T>; path: ReadonlyArray<string | number> }\n | { kind: 'child'; link: ParentLink<unknown, T>; path: ReadonlyArray<string | number> },\n): CraftFieldInternals<T> {\n const path = options.path;\n\n const schemaErrorSources =\n options.kind === 'root'\n ? []\n : options.link.parent.__schemaErrorSources;\n const schemaErrorRevision =\n options.kind === 'root'\n ? signal(0)\n : options.link.parent.__schemaErrorRevision;\n\n // ---------- Value adapter ----------\n const readRaw = (): T => {\n if (options.kind === 'root') return options.backing.read();\n return options.link.read(options.link.parent.__raw());\n };\n\n const setRaw = (next: T): void => {\n if (options.kind === 'root') {\n options.backing.set(next);\n return;\n }\n const parent = options.link.parent;\n const nextParent = options.link.write(parent.__raw(), next);\n parent.__setRaw(nextParent);\n };\n\n const valueSignal: Signal<T> =\n options.kind === 'root'\n ? options.backing.asReadonly()\n : computed<T>(() => options.link.read(options.link.parent.value()));\n\n // ---------- Dirty / Touched ----------\n const localDirty = signal(false);\n const localTouched = signal(false);\n const childDirty = signal(false);\n const childTouched = signal(false);\n\n const dirty = computed(() => localDirty() || childDirty());\n const touched = computed(() => localTouched() || childTouched());\n\n const recomputeChildDirty = () => {\n let any = false;\n for (const child of children.values()) {\n if (child.dirty()) {\n any = true;\n break;\n }\n }\n childDirty.set(any);\n };\n const recomputeChildTouched = () => {\n let any = false;\n for (const child of children.values()) {\n if (child.touched()) {\n any = true;\n break;\n }\n }\n childTouched.set(any);\n };\n\n // ---------- State sources (hidden / disabled / readonly) ----------\n // Plain mutable arrays + a single revision signal so that registration\n // (which can happen lazily during template render) does not write to a\n // tracked signal — Angular forbids signal writes during render (NG0600).\n // The first read of any computed below captures whatever has been registered\n // so far, and subsequent reads track the inner source signals individually.\n const hiddenSources: Signal<boolean>[] = [];\n const disabledSources: Signal<boolean>[] = [];\n const readonlySources: Signal<boolean>[] = [];\n const registrationRevision = signal(0);\n\n const hiddenLocal = computed(() => {\n registrationRevision();\n return hiddenSources.some((src) => src());\n });\n const disabledLocal = computed(() => {\n registrationRevision();\n return disabledSources.some((src) => src());\n });\n const readonlyLocal = computed(() => {\n registrationRevision();\n return readonlySources.some((src) => src());\n });\n\n // ---------- Validators ----------\n type RegisteredValidator = {\n result: Signal<CraftValidatorOutput>;\n attribute?: Signal<FieldAttributeMeta | undefined>;\n };\n const validators: RegisteredValidator[] = [];\n\n const schemaErrors = computed<ReadonlyArray<CraftFieldError>>(() => {\n schemaErrorRevision();\n if (hiddenLocal() || disabledLocal() || readonlyLocal()) return [];\n return schemaErrorSources\n .flatMap((source) => source())\n .filter((entry) => pathsEqual(entry.path, path))\n .map((entry) => entry.error);\n });\n\n const validatorOutputs = computed(() => {\n registrationRevision();\n return validators.map((v) => ({\n result: v.result(),\n attribute: v.attribute?.(),\n }));\n });\n\n const errors = computed<ReadonlyArray<CraftFieldError>>(() => {\n // Track revision so newly-registered children/validators invalidate this\n // computed at the next tick.\n registrationRevision();\n if (hiddenLocal() || disabledLocal() || readonlyLocal()) return [];\n const list: CraftFieldError[] = [];\n for (const out of validatorOutputs()) {\n const r = out.result;\n if (r === undefined) continue;\n if (typeof r === 'object' && r !== null && 'pending' in r && (r as CraftValidatorPending).pending === true) {\n continue;\n }\n if (Array.isArray(r)) {\n for (const item of r) list.push(item);\n } else {\n list.push(r as CraftFieldError);\n }\n }\n list.push(...schemaErrors());\n // Aggregate errors from all child fields so that parent validity reflects\n // the entire sub-tree (a parent is invalid if any descendant is invalid).\n for (const child of children.values()) {\n const childErrors = child.errors();\n if (childErrors.length > 0) {\n for (const e of childErrors) list.push(e);\n }\n }\n return list;\n });\n\n const pending = computed(() => {\n registrationRevision();\n if (hiddenLocal() || disabledLocal() || readonlyLocal()) return false;\n if (\n validatorOutputs().some(\n (out) =>\n typeof out.result === 'object' &&\n out.result !== null &&\n 'pending' in (out.result as object) &&\n (out.result as CraftValidatorPending).pending === true,\n )\n ) {\n return true;\n }\n for (const child of children.values()) {\n if (child.pending()) return true;\n }\n return false;\n });\n const schemaInvalid = computed(() => {\n if (options.kind !== 'root') return false;\n if (hiddenLocal() || disabledLocal() || readonlyLocal()) return false;\n schemaErrorRevision();\n return schemaErrorSources.some((source) => source().length > 0);\n });\n const invalid = computed(() => schemaInvalid() || errors().length > 0);\n const valid = computed(() => !invalid() && !pending());\n\n // ---------- Native constraint signals ----------\n const constraintSignal = <V>(target: FieldAttributeMeta['target'], fallback: V) =>\n computed<V>(() => {\n let acc: V = fallback;\n let found = false;\n for (const out of validatorOutputs()) {\n const a = out.attribute;\n if (a && a.kind === 'native-constraint' && a.target === target) {\n if (target === 'required') {\n acc = ((acc as unknown as boolean) || (a.value as boolean)) as V;\n found = true;\n } else {\n acc = a.value as V;\n found = true;\n }\n }\n }\n return found ? acc : fallback;\n });\n\n const required = constraintSignal<boolean>('required', false);\n const min = constraintSignal<number | Date | undefined>('min', undefined);\n const max = constraintSignal<number | Date | undefined>('max', undefined);\n const minLength = constraintSignal<number | undefined>('minLength', undefined);\n const maxLength = constraintSignal<number | undefined>('maxLength', undefined);\n const pattern = constraintSignal<RegExp | undefined>('pattern', undefined);\n\n // ---------- Disabled reasons ----------\n const disabledReasonSources: Signal<string | undefined>[] = [];\n const disabledReasons = computed<ReadonlyArray<string>>(() => {\n registrationRevision();\n const out: string[] = [];\n for (const src of disabledReasonSources) {\n const r = src();\n if (typeof r === 'string' && r.length > 0) out.push(r);\n }\n return out;\n });\n\n // ---------- Children registry ----------\n const children: Map<string | number, CraftFieldInternals<unknown>> = new Map();\n\n // ---------- Reset trigger ----------\n const resetTriggerCount = signal(0);\n\n // ---------- Inherited state from parent ----------\n const inheritedDisabled = options.kind === 'child' ? options.link.parent.disabled : signal(false);\n const inheritedHidden = options.kind === 'child' ? options.link.parent.hidden : signal(false);\n const inheritedReadonly = options.kind === 'child' ? options.link.parent.readonly : signal(false);\n\n const disabled = computed(() => inheritedDisabled() || disabledLocal());\n const hidden = computed(() => inheritedHidden() || hiddenLocal());\n const readonlyComputed = computed(() => inheritedReadonly() || readonlyLocal());\n\n // ---------- Control syncers ----------\n const syncers = new Set<ControlSyncer<T>>();\n\n // ---------- Field methods ----------\n const set = (next: T): void => {\n setRaw(next);\n if (!localDirty()) localDirty.set(true);\n if (options.kind === 'child') {\n options.link.parent.__propagateDirty(true);\n }\n };\n\n const patch = (fn: (current: T) => Partial<T>): void => {\n const current = readRaw();\n const partial = fn(current);\n if (current && typeof current === 'object' && !Array.isArray(current)) {\n set({ ...(current as object), ...partial } as T);\n } else {\n set(partial as T);\n }\n };\n\n const propagateDirty = (childIsDirty: boolean) => {\n if (childIsDirty) {\n childDirty.set(true);\n } else {\n recomputeChildDirty();\n }\n if (options.kind === 'child') {\n options.link.parent.__propagateDirty(dirty());\n }\n };\n\n const propagateTouched = (childIsTouched: boolean) => {\n if (childIsTouched) {\n childTouched.set(true);\n } else {\n recomputeChildTouched();\n }\n if (options.kind === 'child') {\n options.link.parent.__propagateTouched(touched());\n }\n };\n\n const markTouched = () => {\n if (!localTouched()) localTouched.set(true);\n if (options.kind === 'child') options.link.parent.__propagateTouched(true);\n };\n\n const markUntouched = () => {\n localTouched.set(false);\n if (options.kind === 'child') options.link.parent.__propagateTouched(false);\n };\n\n const markDirty = () => {\n if (!localDirty()) localDirty.set(true);\n if (options.kind === 'child') options.link.parent.__propagateDirty(true);\n };\n\n const markPristine = () => {\n localDirty.set(false);\n if (options.kind === 'child') options.link.parent.__propagateDirty(false);\n };\n\n const resetCascade = () => {\n localDirty.set(false);\n localTouched.set(false);\n childDirty.set(false);\n childTouched.set(false);\n for (const child of children.values()) {\n child.__resetCascade();\n }\n resetTriggerCount.update((v) => v + 1);\n for (const syncer of syncers) {\n syncer.resync?.();\n }\n };\n\n const reset = (initialValue?: T): void => {\n if (initialValue !== undefined) {\n setRaw(initialValue);\n }\n resetCascade();\n if (options.kind === 'child') {\n options.link.parent.__propagateDirty(false);\n options.link.parent.__propagateTouched(false);\n }\n };\n\n // ---------- Registration helpers ----------\n const registerControl = (syncer: ControlSyncer<T>): (() => void) => {\n syncers.add(syncer);\n return () => {\n syncers.delete(syncer);\n syncer.destroy?.();\n };\n };\n\n const bumpRevision = () => {\n // The revision signal exists to invalidate computed signals when the\n // registration set changes AFTER it has already been observed. Writing\n // to a signal during template render is forbidden (NG0600), so we defer\n // the bump to a microtask. In the common case (registration happens\n // before any read), the bump is harmless; the first read will already\n // have captured the registered entries.\n queueMicrotask(() => registrationRevision.update((v) => v + 1));\n };\n\n const registerValidator = (\n validator: CraftValidator<T>,\n identifier?: unknown,\n ): (() => void) => {\n const ctxField = field as CraftField<T>;\n const out = validator({ value: valueSignal, field: ctxField, identifier });\n const entry: RegisteredValidator = { result: out.result, attribute: out.attribute };\n validators.push(entry);\n bumpRevision();\n return () => {\n const i = validators.indexOf(entry);\n if (i >= 0) validators.splice(i, 1);\n bumpRevision();\n };\n };\n\n const registerSchemaErrorSource = (\n source: CraftFieldSchemaErrorSource,\n ): (() => void) => {\n schemaErrorSources.push(source);\n schemaErrorRevision.update((value) => value + 1);\n return () => {\n const index = schemaErrorSources.indexOf(source);\n if (index >= 0) schemaErrorSources.splice(index, 1);\n schemaErrorRevision.update((value) => value + 1);\n };\n };\n\n const registerStateBinding = (\n kind: FieldStateBindingKind,\n source: Signal<boolean>,\n ): (() => void) => {\n const target =\n kind === 'hidden' ? hiddenSources : kind === 'disabled' ? disabledSources : readonlySources;\n target.push(source);\n bumpRevision();\n return () => {\n const i = target.indexOf(source);\n if (i >= 0) target.splice(i, 1);\n bumpRevision();\n };\n };\n\n const registerDisabledReason = (source: Signal<string | undefined>): (() => void) => {\n disabledReasonSources.push(source);\n bumpRevision();\n return () => {\n const i = disabledReasonSources.indexOf(source);\n if (i >= 0) disabledReasonSources.splice(i, 1);\n bumpRevision();\n };\n };\n\n // ---------- Field value sync to syncers ----------\n // Note: syncers call writeValue when registering; the directive itself sets up an effect\n // to track value changes. We don't auto-sync here to avoid effect ownership issues.\n\n const field: CraftFieldInternals<T> = {\n value: valueSignal,\n set,\n patch,\n reset,\n dirty,\n touched,\n hidden,\n disabled,\n readonly: readonlyComputed,\n pending,\n invalid,\n valid,\n errors,\n required,\n min,\n max,\n minLength,\n maxLength,\n pattern,\n disabledReasons,\n ɵregisterControl: registerControl,\n ɵmarkTouched: markTouched,\n ɵmarkUntouched: markUntouched,\n ɵmarkDirty: markDirty,\n ɵmarkPristine: markPristine,\n ɵregisterValidator: registerValidator,\n ɵregisterSchemaErrorSource: registerSchemaErrorSource,\n ɵregisterStateBinding: registerStateBinding,\n ɵregisterDisabledReason: registerDisabledReason,\n ɵresetTrigger: resetTriggerCount.asReadonly(),\n ɵpath: path,\n __raw: readRaw,\n __setRaw: setRaw,\n __children: children,\n __resetTriggerCount: resetTriggerCount,\n __propagateDirty: propagateDirty,\n __propagateTouched: propagateTouched,\n __resetCascade: resetCascade,\n __bumpRevision: bumpRevision,\n __schemaErrorSources: schemaErrorSources,\n __schemaErrorRevision: schemaErrorRevision,\n };\n\n return field;\n}\n\nfunction createTreeProxy<T>(internals: CraftFieldInternals<T>): CraftFieldTree<T> {\n const proxy = new Proxy(internals as unknown as object, {\n get(_target, prop, receiver) {\n if (typeof prop === 'symbol') {\n if (prop === FIELD_INTERNALS_TOKEN) return internals;\n return Reflect.get(internals as object, prop, receiver);\n }\n if (prop in internals) {\n return (internals as unknown as Record<string, unknown>)[prop];\n }\n const widenedInternals = internals as CraftFieldInternals<unknown>;\n // Array-like: support `length` and `item(index)`\n if (prop === 'item') {\n return (index: number) => getOrCreateChild(widenedInternals, index);\n }\n if (prop === 'length') {\n return computed(() => {\n const v = internals.value();\n return Array.isArray(v) ? v.length : 0;\n });\n }\n // Numeric index -> array child\n if (/^\\d+$/.test(prop)) {\n return getOrCreateChild(widenedInternals, Number(prop));\n }\n // Otherwise treat as object property child\n return getOrCreateChild(widenedInternals, prop);\n },\n has(_target, prop) {\n if (typeof prop === 'symbol') return prop === FIELD_INTERNALS_TOKEN;\n if (prop in internals) return true;\n return true;\n },\n ownKeys() {\n return Reflect.ownKeys(internals);\n },\n getOwnPropertyDescriptor(_target, prop) {\n return Object.getOwnPropertyDescriptor(internals, prop);\n },\n });\n\n return proxy as CraftFieldTree<T>;\n}\n\nfunction getOrCreateChild(\n parent: CraftFieldInternals<unknown>,\n segment: string | number,\n): CraftFieldTree<unknown> {\n const existing = parent.__children.get(segment);\n if (existing) {\n return (existing as unknown as { __proxy: CraftFieldTree<unknown> }).__proxy;\n }\n\n const link: ParentLink<unknown, unknown> = {\n parent,\n segment,\n read: (p: unknown) => readAtSegment(p, segment),\n write: (p: unknown, next: unknown) => writeAtSegment(p, segment, next),\n };\n\n const childInternals = createCraftFieldInternals<unknown>({\n kind: 'child',\n link,\n path: [...parent.ɵpath, segment],\n });\n parent.__children.set(segment, childInternals);\n const childProxy = createTreeProxy(childInternals);\n (childInternals as unknown as { __proxy: CraftFieldTree<unknown> }).__proxy = childProxy;\n // Notify parent so its computed `errors`/`pending`/`valid` re-evaluate and\n // pick up the newly-added child.\n parent.__bumpRevision();\n return childProxy;\n}\n\n/**\n * Create a Craft field tree from an external mutable backing store.\n * Used by `insertForm` to bridge the Craft `state()` signal into the field tree.\n */\nexport function createCraftFieldTree<T>(backing: FieldRootBackingStore<T>): CraftFieldTree<T> {\n const internals = createCraftFieldInternals<T>({\n kind: 'root',\n backing,\n path: [],\n });\n const proxy = createTreeProxy(internals);\n (internals as unknown as { __proxy: CraftFieldTree<T> }).__proxy = proxy;\n return proxy;\n}\n\n/**\n * Create a Craft field tree backed by a writable signal (convenience for tests / standalone usage).\n */\nexport function craftField<T>(initial: T | WritableSignal<T> | Signal<T>): CraftFieldTree<T> {\n if (isSignal(initial) && typeof (initial as WritableSignal<T>).set === 'function') {\n const s = initial as WritableSignal<T>;\n return createCraftFieldTree<T>({\n read: () => s(),\n set: (next) => s.set(next),\n asReadonly: () => s.asReadonly(),\n });\n }\n if (isSignal(initial)) {\n const s = initial as Signal<T>;\n return createCraftFieldTree<T>({\n read: () => s(),\n set: () => {\n throw new Error('craftField: cannot set on a readonly signal source.');\n },\n asReadonly: () => s,\n });\n }\n const s = signal(initial as T);\n return createCraftFieldTree<T>({\n read: () => s(),\n set: (next) => s.set(next),\n asReadonly: () => s.asReadonly(),\n });\n}\n\n/** @internal */\nexport function ɵgetCraftFieldInternals<T>(field: CraftField<T>): CraftFieldInternals<T> {\n return (field as unknown as Record<symbol, CraftFieldInternals<T>>)[FIELD_INTERNALS_TOKEN] ?? (field as unknown as CraftFieldInternals<T>);\n}\n\n/**\n * @internal\n * Create (or return a cached) child field whose value is **derived** from the\n * parent via an arbitrary lens (read + write functions), rather than indexed\n * by an object key or array index.\n *\n * The returned child plugs into the same `ParentLink` machinery used for\n * structural children, so dirty/touched/disabled/hidden/validation/reset\n * cascades work exactly the same way.\n *\n * Two calls with the same `name` on the same parent return the same child\n * instance — the lens passed on the first call wins.\n */\nexport function ɵgetOrCreateDerivedChild<Source, Sub>(\n parent: CraftField<Source>,\n name: string,\n lens: { read: (s: Source) => Sub; write: (s: Source, next: Sub) => Source },\n): CraftFieldTree<Sub> {\n const parentInternals = ɵgetCraftFieldInternals(parent) as CraftFieldInternals<Source>;\n const existing = parentInternals.__children.get(name);\n if (existing) {\n return (existing as unknown as { __proxy: CraftFieldTree<Sub> }).__proxy;\n }\n\n const link: ParentLink<Source, Sub> = {\n parent: parentInternals,\n segment: name,\n read: lens.read,\n write: lens.write,\n };\n\n const childInternals = createCraftFieldInternals<Sub>({\n kind: 'child',\n link: link as unknown as ParentLink<unknown, Sub>,\n path: [...parentInternals.ɵpath, name],\n });\n parentInternals.__children.set(name, childInternals as CraftFieldInternals<unknown>);\n const childProxy = createTreeProxy(childInternals);\n (childInternals as unknown as { __proxy: CraftFieldTree<Sub> }).__proxy = childProxy;\n return childProxy;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-exception.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/field-exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,4DAA4D;AAC5D,MAAM,CAAC,OAAO,CAAC,MAAM,4BAA4B,EAAE,OAAO,MAAM,CAAC;AAEjE,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,OAAO,CAAC,MAAM,sBAAsB,EAAE,OAAO,MAAM,CAAC;AAE3D,MAAM,MAAM,mBAAmB,CAC7B,IAAI,SAAS,MAAM,EACnB,aAAa,SAAS,MAAM,EAC5B,SAAS,SAAS,iBAAiB,IACjC;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,KAAK,IAAI;IACpD,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,UAAU,IAAI;IACpD,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,IACtC,KAAK,SAAS,gCAAgC,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9E,MAAM,MAAM,6BAA6B,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,QAAQ,GACR;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC1D,GACD,CAAC,CAAC,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC7D,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC1E,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAC/C,iBAAiB,GAAG,SAAS,CAC9B,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,yBAAyB,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,QAAQ,EAAE,CACjB,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,OAAO,KACd,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,oDAGxC,CAAC;AAEJ,eAAO,MAAM,kCAAkC;;CAEF,CAAC;AAE9C,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,OAAO,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,EAClE,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAaT;AAED,KAAK,cAAc,CAAC,SAAS,EAAE,IAAI,SAAS,MAAM,IAChD,SAAS,SAAS,eAAe,CAC/B,GAAG,EACH,MAAM,IAAI,SAAS,MAAM,EACzB,MAAM,UAAU,EAChB,GAAG,EACH,GAAG,EACH,GAAG,CACJ,GACG,UAAU,SAAS,iBAAiB,GAClC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,GAC3C,KAAK,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,kCAAkC,CAC5C,UAAU,EACV,IAAI,SAAS,MAAM,IAEnB,UAAU,SAAS,2BAA2B,CAAC,MAAM,UAAU,CAAC,GAC5D,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,GAChC,KAAK,CAAC;AAEZ,wBAAgB,eAAe,CAC7B,WAAW,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GAC1C,MAAM,CAUR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-exception.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/field-exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAC;AAQnE,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CACpD,uCAAuC,CACxC,CAAC;AAuEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GACzC,IAAI,cAAc,CAChB,gCAAgC,CACjC,CAAC;AAEJ,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;CACY,CAAC;AAE9C,MAAM,UAAU,+BAA+B,CAC7C,UAAkE,EAClE,OAAwC;IAExC,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,UAAU,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAwBD,MAAM,UAAU,eAAe,CAC7B,WAA2C;IAE3C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { InjectionToken, type Signal } from '../host/craft-compat';\nimport type { AnyCraftException } from '../craft-exception';\nimport type { CraftField } from './craft-field';\nimport type { ValidatorOutput } from './validator';\n\n/** Type-only metadata carried by configured form fields. */\nexport declare const CRAFT_FIELD_VALIDATION_CASES: unique symbol;\n\n/** Runtime validation source exposed by `insertFormAttributes`. */\nexport const CRAFT_FIELD_EXCEPTION_SOURCE = Symbol.for(\n '@craft-ts/core/field-exception-source',\n);\n\n/** Type-only validator metadata emitted by `insertFormAttributes`. */\nexport declare const CRAFT_FIELD_VALIDATORS: unique symbol;\n\nexport type FieldValidationCase<\n Path extends string,\n ValidatorName extends string,\n Exception extends AnyCraftException,\n> = {\n readonly path: Path;\n readonly validatorName: ValidatorName;\n readonly exception: Exception;\n};\n\nexport type CraftFieldValidationCasesCarrier<Cases> = {\n readonly [CRAFT_FIELD_VALIDATION_CASES]?: Cases;\n};\n\nexport type CraftFieldValidatorsCarrier<Validators> = {\n readonly [CRAFT_FIELD_VALIDATORS]?: Validators;\n};\n\nexport type FieldValidationCasesOf<Field> =\n Field extends CraftFieldValidationCasesCarrier<infer Cases> ? Cases : never;\n\nexport type FieldExceptionVisibilityState = 'dirty' | 'touched' | 'submitted';\n\nexport type FieldExceptionVisibilityContext = {\n readonly field: CraftField<unknown>;\n readonly hasAttemptedSubmit: Signal<boolean>;\n};\n\nexport type FieldExceptionVisibility =\n | 'visibleExceptions'\n | 'always'\n | {\n readonly anyOf: readonly FieldExceptionVisibilityState[];\n }\n | ((context: FieldExceptionVisibilityContext) => boolean);\n\nexport type FieldExceptionCollection = {\n readonly list: readonly AnyCraftException[];\n readonly byValidator: Readonly<Record<string, AnyCraftException>>;\n};\n\nexport type CraftFieldExceptionSource = {\n readonly field: CraftField<unknown>;\n readonly path: string;\n readonly runtimePath: ReadonlyArray<string | number>;\n readonly validatorNames: readonly string[];\n readonly exceptions: Signal<FieldExceptionCollection>;\n readonly visibleExceptions: Signal<FieldExceptionCollection>;\n readonly firstLeftFailedValidation: Signal<AnyCraftException | undefined>;\n readonly visibleFirstLeftFailedValidation: Signal<\n AnyCraftException | undefined\n >;\n readonly hasAttemptedSubmit: Signal<boolean>;\n};\n\nexport type CraftFieldExceptionSourceCarrier = {\n readonly [CRAFT_FIELD_EXCEPTION_SOURCE]?: CraftFieldExceptionSource;\n};\n\nexport type FieldExceptionBoundaryRegistration = {\n readonly register: (\n source: CraftFieldExceptionSource,\n element?: Element,\n ) => () => void;\n};\n\n/** Nearest runtime boundary used by `CraftFieldDirective`. */\nexport const CRAFT_FIELD_EXCEPTION_BOUNDARY =\n new InjectionToken<FieldExceptionBoundaryRegistration>(\n 'CRAFT_FIELD_EXCEPTION_BOUNDARY',\n );\n\nexport const DEFAULT_FIELD_EXCEPTION_VISIBILITY = {\n anyOf: ['touched', 'submitted'],\n} as const satisfies FieldExceptionVisibility;\n\nexport function fieldExceptionVisibilityMatches(\n visibility: Exclude<FieldExceptionVisibility, 'visibleExceptions'>,\n context: FieldExceptionVisibilityContext,\n): boolean {\n if (visibility === 'always') return true;\n if (typeof visibility === 'function') return visibility(context);\n return visibility.anyOf.some((state) => {\n switch (state) {\n case 'dirty':\n return context.field.dirty();\n case 'touched':\n return context.field.touched();\n case 'submitted':\n return context.hasAttemptedSubmit();\n }\n });\n}\n\ntype ValidatorCases<Validator, Path extends string> =\n Validator extends ValidatorOutput<\n any,\n infer Name extends string,\n infer Exceptions,\n any,\n any,\n any\n >\n ? Exceptions extends AnyCraftException\n ? FieldValidationCase<Path, Name, Exceptions>\n : never\n : never;\n\nexport type FieldValidationCasesFromInsertions<\n Insertions,\n Path extends string,\n> =\n Insertions extends CraftFieldValidatorsCarrier<infer Validators>\n ? ValidatorCases<Validators, Path>\n : never;\n\nexport function staticFieldPath(\n runtimePath: ReadonlyArray<string | number>,\n): string {\n let path = '';\n for (const segment of runtimePath) {\n if (typeof segment === 'number') {\n path += '[]';\n } else {\n path += path ? `.${segment}` : segment;\n }\n }\n return path;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-lens.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/field-lens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;IAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;CAC9C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GACpB,WAAW,MAAM,EACjB,OAAO,CAAC,GAAG,CAAC,KACX,SAAS,CAAC,MAAM,EAAE,MAAM,CAQzB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACpB,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KACpB,SAAS,CAAC,CAAC,EAAE,CAAC,CAGf,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-lens.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/field-lens.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,SAAiB,EACjB,KAAY,EACe,EAAE,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;IACtD,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,OAAoB,EACpB,QAAqB,EACJ,EAAE,CAAC,CAAC;IACrB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CACzC,CAAC,CAAC","sourcesContent":["/**\n * A lens describes how to read a derived value from a source, and how to\n * write a new derived value back into the source. Used by `insertSubFormField`\n * to expose computed sub-fields that stay in sync with their parent.\n */\nexport type FieldLens<Source, Sub> = {\n read: (source: Source) => Sub;\n write: (source: Source, next: Sub) => Source;\n};\n\n/**\n * Lens that exposes the `index`-th half of a string split by `separator`.\n * The write reassembles the source while preserving the other half.\n *\n * @example\n * // source = '2026-05-10 12:00'\n * splitLens(' ', 0).read(source) // '2026-05-10'\n * splitLens(' ', 0).write(source, '2026-05-11') // '2026-05-11 12:00'\n */\nexport const splitLens = (\n separator: string,\n index: 0 | 1,\n): FieldLens<string, string> => ({\n read: (source) => source.split(separator)[index] ?? '',\n write: (source, next) => {\n const parts = source.split(separator);\n while (parts.length <= index) parts.push('');\n parts[index] = next;\n return parts.join(separator);\n },\n});\n\n/**\n * Pure 1-to-1 conversion lens. The write does not depend on the previous\n * source value — typical for type conversions like `Number ↔ string` or\n * `Date ↔ ISO string`.\n *\n * @example\n * mapLens<string, number>((s) => Number(s), (n) => String(n))\n */\nexport const mapLens = <A, B>(\n forward: (a: A) => B,\n backward: (b: B) => A,\n): FieldLens<A, B> => ({\n read: forward,\n write: (_source, next) => backward(next),\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-attributes.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-attributes.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-attributes.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-attributes.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computed,\n inject,\n Injector,\n type Signal,\n untracked,\n} from '../host/craft-compat';\nimport { ɵcreateHostTaggedInjector } from '../craft-service';\nimport {\n CraftExceptionResult,\n type AnyCraftException,\n} from '../craft-exception';\nimport { executeGeneratorCompatibleFactory } from '../craft-generator-runtime';\nimport type { MergeObject, Prettify, UnionToTuple } from '../util/util.type';\nimport { CraftField, CraftValidator } from './craft-field';\nimport {\n CRAFT_FIELD_EXCEPTION_SOURCE,\n DEFAULT_FIELD_EXCEPTION_VISIBILITY,\n fieldExceptionVisibilityMatches,\n staticFieldPath,\n type CraftFieldExceptionSource,\n type CraftFieldValidatorsCarrier,\n type FieldExceptionCollection,\n type FieldExceptionVisibility,\n} from './field-exception';\nimport type {\n InsertionFormFactoryContext,\n InsertionsFormFactory,\n} from './insert-form-internals';\nimport { VALIDATOR_OUTPUT_SYMBOL, type ValidatorOutput } from './validator';\n\ntype FormAttributeInput<T> = Signal<T> | (() => T);\n\ntype AnyValidatorOutput = ValidatorOutput<any, string, any, any, any, any>;\n\nexport type FormNodeExceptions = {\n list: FieldExceptionCollection['list'];\n byValidator: FieldExceptionCollection['byValidator'];\n};\n\nexport type InsertFormAttributesConfig<\n _S,\n Validators extends AnyValidatorOutput = never,\n> = {\n disable?: FormAttributeInput<boolean>;\n hidden?: FormAttributeInput<boolean>;\n readonly?: FormAttributeInput<boolean>;\n validators?: Validators[];\n /** Controls when `visibleExceptions` and the visible first/last helpers emit. */\n exceptionVisibility?: Exclude<FieldExceptionVisibility, 'visibleExceptions'>;\n};\n\nexport type InsertFormAttributesContext<\n TValue,\n PreviousInsertionsOutputs = {},\n FormIdentifier extends string | number | unknown = unknown,\n> = InsertionFormFactoryContext<\n TValue,\n PreviousInsertionsOutputs,\n FormIdentifier\n>;\n\nconst EMPTY_EXCEPTIONS: FormNodeExceptions = {\n list: [],\n byValidator: {},\n};\n\nfunction attributeInputToSignal<T>(\n input: FormAttributeInput<T> | undefined,\n): Signal<T> | undefined {\n if (input === undefined) return undefined;\n if (typeof input === 'function') {\n return computed(() => (input as () => T)());\n }\n return input;\n}\n\nfunction getValidatorBrand(validator: unknown): string | undefined {\n if (typeof validator !== 'function') return undefined;\n const runtime = (\n validator as { [VALIDATOR_OUTPUT_SYMBOL]?: { name?: string } }\n )[VALIDATOR_OUTPUT_SYMBOL];\n return runtime?.name;\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\ntype ExtractValidatorMetadata<Validator> =\n Validator extends ValidatorOutput<\n infer _TValue,\n infer _Name,\n infer Exceptions,\n infer _Type,\n infer _Identifier,\n infer _Meta\n >\n ? Exceptions\n : never;\n\ntype ExceptionsByValidatorFromTuple<\n ExceptionsTuple extends unknown[],\n Acc = {},\n> = ExceptionsTuple extends [infer Head, ...infer Tail]\n ? ExceptionsByValidatorFromTuple<\n Tail,\n Head extends CraftExceptionResult<infer M, infer _P>\n ? MergeObject<\n Acc,\n {\n [Key in M['_tag']]: Head;\n }\n >\n : Head\n >\n : Prettify<Acc>;\n\ntype ExceptionsList<Exception> = UnionToTuple<\n ExtractValidatorMetadata<NonNullable<Exception>>\n>;\n\ntype ExceptionsByValidator<Validators> = ExceptionsByValidatorFromTuple<\n UnionToTuple<ExtractValidatorMetadata<NonNullable<Validators>>>\n>;\n\ntype ExceptionUnion<Validators> = ExtractValidatorMetadata<\n NonNullable<Validators>\n>;\n\ntype FormAttributesOutputs<Validators> =\n CraftFieldValidatorsCarrier<Validators> & {\n exceptions: Signal<{\n list: ExceptionsList<Validators>;\n byValidator: ExceptionsByValidator<NonNullable<Validators>>;\n }>;\n /**\n * Exceptions that should be visible to the user. By default, all exceptions are\n * hidden until the field is touched or the form has been attempted to be submitted at least once.\n */\n visibleExceptions: Signal<{\n list: ExceptionsList<Validators>;\n byValidator: ExceptionsByValidator<NonNullable<Validators>>;\n }>;\n hasExceptions: Signal<boolean>;\n /**\n * The first failing validator's exception, scanning the `validators` array\n * left-to-right. Useful in templates to display a single error without a `@for` loop.\n * Returns `undefined` when the field is valid.\n */\n firstLeftFailedValidation: Signal<ExceptionUnion<Validators> | undefined>;\n /**\n * The last failing validator's exception, scanning the `validators` array\n * right-to-left. Useful when the rightmost validator is the most specific.\n * Returns `undefined` when the field is valid.\n */\n lastRightFailedValidation: Signal<ExceptionUnion<Validators> | undefined>;\n /**\n * Same as `firstLeftFailedValidation` but only emits once the field is touched\n * or the form has been submitted at least once.\n */\n visibleFirstLeftFailedValidation: Signal<\n ExceptionUnion<Validators> | undefined\n >;\n /**\n * Same as `lastRightFailedValidation` but only emits once the field is touched\n * or the form has been submitted at least once.\n */\n visibleLastRightFailedValidation: Signal<\n ExceptionUnion<Validators> | undefined\n >;\n };\n\nfunction applyFormAttributes<\n StateType,\n Validators extends AnyValidatorOutput,\n FormIdentifier extends string | number | unknown,\n PreviousInsertionsOutputs,\n>(\n context: InsertFormAttributesContext<\n StateType,\n PreviousInsertionsOutputs,\n FormIdentifier\n >,\n config: InsertFormAttributesConfig<StateType, Validators>,\n): FormAttributesOutputs<Validators> {\n const field = context.field as unknown as CraftField<StateType>;\n\n // Register hidden / disabled / readonly state bindings on the field.\n const hiddenSignal = attributeInputToSignal(config.hidden);\n if (hiddenSignal) field.ɵregisterStateBinding('hidden', hiddenSignal);\n const disabledSignal = attributeInputToSignal(config.disable);\n if (disabledSignal) field.ɵregisterStateBinding('disabled', disabledSignal);\n const readonlySignal = attributeInputToSignal(config.readonly);\n if (readonlySignal) field.ɵregisterStateBinding('readonly', readonlySignal);\n\n // Register validators on the field. Each validator's brand is used to group exceptions.\n const validatorBrands: string[] = [];\n for (const validatorInput of config.validators ?? []) {\n const brand = getValidatorBrand(validatorInput);\n if (brand) validatorBrands.push(brand);\n\n const fieldInjector = inject(Injector);\n const validatorInjector = ɵcreateHostTaggedInjector(\n fieldInjector,\n `validator:${brand ?? 'unknown'}`,\n );\n const finalValidator = (...args: unknown[]) =>\n executeGeneratorCompatibleFactory({\n factory: validatorInput as (...args: unknown[]) => unknown,\n thisArg: undefined,\n getInjector: () => validatorInjector,\n args,\n invalidYieldErrorMessage:\n 'Form validators can only yield craftService dependencies.',\n multipleAppStartErrorMessage:\n 'Form validators do not support onAppStart.',\n onAppStartNotSupportedErrorMessage:\n 'Form validators do not support onAppStart.',\n });\n\n field.ɵregisterValidator(\n finalValidator as unknown as CraftValidator<StateType>,\n context.formIdentifier,\n );\n }\n\n const shouldSkip = computed(\n () => field.hidden() || field.disabled() || field.readonly(),\n );\n\n const exceptions = computed<FormNodeExceptions>(() => {\n if (shouldSkip()) return EMPTY_EXCEPTIONS;\n const list: AnyCraftException[] = [];\n const byValidator: Record<string, AnyCraftException> = {};\n for (const error of field.errors()) {\n if (!validatorBrands.length || matchesBrand(error, validatorBrands)) {\n list.push(error);\n const brand = (error as { __brand?: string }).__brand;\n if (typeof brand === 'string') {\n byValidator[brand] = error;\n }\n }\n }\n return { list, byValidator };\n });\n\n const visibleExceptions = computed<FormNodeExceptions>(() => {\n const visible = fieldExceptionVisibilityMatches(\n config.exceptionVisibility ?? DEFAULT_FIELD_EXCEPTION_VISIBILITY,\n {\n field: field as CraftField<unknown>,\n hasAttemptedSubmit: context.hasAttemptedSubmit,\n },\n );\n if (!visible) {\n return EMPTY_EXCEPTIONS;\n }\n return exceptions();\n });\n\n const firstLeftFailedValidation = computed<unknown>(() => {\n const byBrand = exceptions().byValidator;\n for (const brand of validatorBrands) {\n const error = byBrand[brand];\n if (error !== undefined) return error;\n }\n return undefined;\n });\n\n const lastRightFailedValidation = computed<unknown>(() => {\n const byBrand = exceptions().byValidator;\n for (let i = validatorBrands.length - 1; i >= 0; i--) {\n const error = byBrand[validatorBrands[i]];\n if (error !== undefined) return error;\n }\n return undefined;\n });\n\n const visibleFirstLeftFailedValidation = computed<unknown>(() => {\n const visible = visibleExceptions();\n for (const brand of validatorBrands) {\n const error = visible.byValidator[brand];\n if (error !== undefined) return error;\n }\n return undefined;\n });\n\n const visibleLastRightFailedValidation = computed<unknown>(() => {\n const visible = visibleExceptions();\n for (let i = validatorBrands.length - 1; i >= 0; i--) {\n const error = visible.byValidator[validatorBrands[i]];\n if (error !== undefined) return error;\n }\n return undefined;\n });\n\n const source: CraftFieldExceptionSource = {\n field: field as CraftField<unknown>,\n path: staticFieldPath(field.ɵpath),\n runtimePath: field.ɵpath,\n validatorNames: validatorBrands,\n exceptions: exceptions as CraftFieldExceptionSource['exceptions'],\n visibleExceptions:\n visibleExceptions as CraftFieldExceptionSource['visibleExceptions'],\n firstLeftFailedValidation:\n firstLeftFailedValidation as CraftFieldExceptionSource['firstLeftFailedValidation'],\n visibleFirstLeftFailedValidation:\n visibleFirstLeftFailedValidation as CraftFieldExceptionSource['visibleFirstLeftFailedValidation'],\n hasAttemptedSubmit: context.hasAttemptedSubmit,\n };\n Object.defineProperty(context.field, CRAFT_FIELD_EXCEPTION_SOURCE, {\n value: source,\n configurable: true,\n enumerable: false,\n });\n\n return {\n exceptions,\n visibleExceptions,\n hasExceptions: computed(() => exceptions().list.length > 0),\n firstLeftFailedValidation,\n lastRightFailedValidation,\n visibleFirstLeftFailedValidation,\n visibleLastRightFailedValidation,\n } as unknown as FormAttributesOutputs<Validators>;\n}\n\nexport function insertFormAttributes<\n StateType,\n Validators extends AnyValidatorOutput = never,\n FormIdentifier extends string | number | unknown = unknown,\n PreviousInsertionsOutputs = {},\n>(\n _factory: (\n context: InsertFormAttributesContext<\n StateType,\n PreviousInsertionsOutputs,\n FormIdentifier\n >,\n ) => InsertFormAttributesConfig<StateType, Validators>,\n): InsertionsFormFactory<\n StateType,\n FormIdentifier,\n FormAttributesOutputs<Validators>,\n PreviousInsertionsOutputs\n> {\n return (context) => applyFormAttributes(context, _factory(context));\n}\n\nexport function formAttributes<\n StateType,\n Validators extends AnyValidatorOutput = never,\n FormIdentifier extends string | number | unknown = unknown,\n PreviousInsertionsOutputs = {},\n>(\n context: InsertFormAttributesContext<\n StateType,\n PreviousInsertionsOutputs,\n FormIdentifier\n >,\n config: InsertFormAttributesConfig<StateType, Validators>,\n): FormAttributesOutputs<Validators> {\n return applyFormAttributes(context, config);\n}\n\nfunction matchesBrand(error: unknown, brands: ReadonlyArray<string>): boolean {\n if (!isObjectRecord(error)) return false;\n const brand = error['__brand'];\n if (typeof brand !== 'string') return false;\n return brands.includes(brand);\n}\n\n// Re-export untracked for backward compat (unused by current consumers)\nexport { untracked };\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-internals.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-internals.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-internals.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-internals.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computed,\n Injector,\n isSignal,\n runInInjectionContext,\n signal,\n Signal,\n} from '../host/craft-compat';\nimport { isGenerator, runCraftGenerator } from '../craft-generator-runtime';\nimport { injectFnWrapper } from '../fn-wrapper';\nimport { ɵcreateHostTaggedInjector } from '../craft-service';\nimport type { InsertionStateFactoryContext } from '../query.core';\nimport { Source$ as SourceDollarType } from '../source$';\nimport { MergeObject } from '../util/types/util.type';\nimport { FilterSource, IsEmptyObject } from '../util/util.type';\nimport { isSource } from '../util/util';\nimport { CraftField, CraftFieldTree } from './craft-field';\nimport {\n createYieldableInsertionMethod,\n isNonYieldableInsertionMethod,\n yieldableInvocation,\n type NonYieldableInsertionMethod,\n type YieldableInsertionMethods,\n} from '../yieldable';\nimport type { YieldableInsertionWrite } from '../query.core';\nimport {\n createYieldableReactiveValue,\n isYieldableReactiveValue,\n} from '../reactive-read';\nimport {\n type CraftFieldExceptionSourceCarrier,\n type CraftFieldValidationCasesCarrier,\n type FieldValidationCasesFromInsertions,\n} from './field-exception';\n\ntype Source$Method<SourceType> = [SourceType] extends [void]\n ? () => Generator<never, void, unknown>\n : (value: SourceType) => Generator<never, void, unknown>;\n\ntype RawExposedFormInsertions<Insertions> = YieldableInsertionMethods<\n MergeObject<\n IsEmptyObject<Insertions> extends true ? {} : FilterSource<Insertions>,\n {\n [K in keyof FilterSource<Insertions> as FilterSource<Insertions>[K] extends SourceDollarType<any>\n ? K\n : never]: FilterSource<Insertions>[K] extends SourceDollarType<\n infer SourceType\n >\n ? Source$Method<SourceType>\n : never;\n }\n >\n>;\n\ntype JoinFieldPath<\n Prefix extends string,\n Path extends string,\n> = Prefix extends ''\n ? Path\n : Path extends '[]'\n ? `${Prefix}[]`\n : `${Prefix}.${Path}`;\n\ntype PrefixSelectedFormPath<Result, Prefix extends string> =\n Result extends FormWithInsertions<\n infer Model,\n infer Insertions,\n infer Path extends string\n >\n ? FormWithInsertions<Model, Insertions, JoinFieldPath<Prefix, Path>>\n : Result;\n\ntype PrefixSelectedFormMethod<Value, Prefix extends string> =\n Value extends NonYieldableInsertionMethod<infer Args, infer Result>\n ? NonYieldableInsertionMethod<Args, PrefixSelectedFormPath<Result, Prefix>>\n : Value;\n\ntype ExposedFormInsertions<Insertions, Path extends string = ''> = {\n [Key in keyof RawExposedFormInsertions<Insertions>]: PrefixSelectedFormMethod<\n RawExposedFormInsertions<Insertions>[Key],\n Path\n >;\n};\n\ntype FormExceptionSignal<\n Insertions,\n ExceptionName extends string,\n> = `${Uncapitalize<ExceptionName>}Exceptions` extends keyof ExposedFormInsertions<Insertions>\n ? ExposedFormInsertions<Insertions>[`${Uncapitalize<ExceptionName>}Exceptions`] extends Signal<\n infer Exceptions\n >\n ? Exceptions\n : never\n : never;\n\ntype HasFormExceptionSignalPair<\n Insertions,\n ExceptionName extends string,\n HasExceptionKey extends keyof ExposedFormInsertions<Insertions>,\n> =\n ExposedFormInsertions<Insertions>[HasExceptionKey] extends Signal<boolean>\n ? `${Uncapitalize<ExceptionName>}Exceptions` extends keyof ExposedFormInsertions<Insertions>\n ? ExposedFormInsertions<Insertions>[`${Uncapitalize<ExceptionName>}Exceptions`] extends Signal<unknown>\n ? true\n : false\n : false\n : false;\n\ntype FormExceptionMap<Insertions> = {\n [K in keyof ExposedFormInsertions<Insertions> as K extends string\n ? K extends `has${infer Name}Exceptions`\n ? HasFormExceptionSignalPair<Insertions, Name, K> extends true\n ? Uncapitalize<Name>\n : never\n : never\n : never]: K extends `has${infer Name}Exceptions`\n ? FormExceptionSignal<Insertions, Name>\n : never;\n};\n\ntype FormExceptionsInsertion<Insertions> =\n keyof FormExceptionMap<Insertions> extends never\n ? {}\n : {\n hasExceptions: Signal<boolean>;\n exceptions: Signal<FormExceptionMap<Insertions>>;\n };\n\n/**\n * The full type of a craft form, exposed by `insertForm`.\n *\n * It is a `CraftFieldTree<Model>` (with sub-field navigation) merged with all the\n * insertion outputs (e.g. submit, exceptions, validators) and aggregated exception signals.\n */\nexport type FormWithInsertions<\n Model,\n Insertions,\n Path extends string = '',\n> = CraftFieldTree<Model> &\n ExposedFormInsertions<Insertions, Path> &\n CraftFieldValidationCasesCarrier<\n FieldValidationCasesFromInsertions<Insertions, Path>\n > &\n CraftFieldExceptionSourceCarrier & {\n hasAttemptedSubmit: Signal<boolean>;\n submitting: Signal<boolean>;\n validatedFormValue: Signal<ValidatedFormValue<Model>>;\n } & FormExceptionsInsertion<Insertions>;\n\nexport type InsertionFormFactoryContext<\n StateType,\n PreviousInsertionsOutputs,\n FormIdentifier extends string | number | unknown,\n> = InsertionStateFactoryContext<StateType, PreviousInsertionsOutputs> & {\n field: CraftFieldTree<StateType>;\n hasAttemptedSubmit: Signal<boolean>;\n submitting: Signal<boolean>;\n validatedFormValue: Signal<ValidatedFormValue<StateType>>;\n setAttemptedSubmit: () => void;\n setSubmitting: (submitting: boolean) => void;\n formIdentifier: FormIdentifier;\n};\n\nexport type InsertionsFormFactory<\n State,\n FormIdentifier extends string | number | unknown,\n InsertionsOutputs,\n PreviousInsertionsOutputs = {},\n Yielded = never,\n> = (\n context: InsertionFormFactoryContext<\n State,\n PreviousInsertionsOutputs,\n FormIdentifier\n >,\n) => InsertionsOutputs | Generator<Yielded, InsertionsOutputs, unknown>;\n\nexport const validatedFormValueSymbol = Symbol('validatedFormValue');\nexport type ValidatedFormValue<FormValue> =\n | (FormValue & {\n [validatedFormValueSymbol]: true;\n })\n | undefined;\n\nfunction isSource$(value: unknown): value is SourceDollarType<unknown> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'emit' in value &&\n typeof (value as SourceDollarType<unknown>).emit === 'function' &&\n 'subscribe' in value &&\n typeof (value as SourceDollarType<unknown>).subscribe === 'function'\n );\n}\n\nconst FORM_INSERTION_METHOD_INVALID_YIELD_ERROR_MESSAGE =\n 'form insertion method generators can only yield craftService dependencies or exposed dependency helpers.';\nconst FORM_INSERTION_METHOD_APP_START_ERROR_MESSAGE =\n 'form insertion method generators do not support onAppStart(...).';\n\nfunction createExposedInsertions(\n rawInsertionsOutput: Record<string, unknown>,\n injector: Injector,\n): Record<string, unknown> {\n return Object.entries(rawInsertionsOutput).reduce(\n (acc, [key, value]) => {\n if (isSource(value)) return acc;\n if (isSource$(value)) {\n const localSource = value;\n const sourceInjector = ɵcreateHostTaggedInjector(\n injector,\n `source:${key}`,\n );\n acc[key] = createYieldableInsertionMethod(\n (payload: unknown) => localSource.emit(payload as never),\n {\n injector: sourceInjector,\n invalidYieldErrorMessage:\n FORM_INSERTION_METHOD_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage:\n FORM_INSERTION_METHOD_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n FORM_INSERTION_METHOD_APP_START_ERROR_MESSAGE,\n },\n );\n return acc;\n }\n if (\n typeof value === 'function' &&\n !isSignal(value) &&\n !isYieldableReactiveValue(value) &&\n !isNonYieldableInsertionMethod(value)\n ) {\n const methodInjector = ɵcreateHostTaggedInjector(\n injector,\n `method:${key}`,\n );\n const wrappedFn = runInInjectionContext(injector, () =>\n injectFnWrapper()(value as (...args: unknown[]) => unknown),\n );\n acc[key] = createYieldableInsertionMethod(wrappedFn, {\n injector: methodInjector,\n invalidYieldErrorMessage:\n FORM_INSERTION_METHOD_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage:\n FORM_INSERTION_METHOD_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n FORM_INSERTION_METHOD_APP_START_ERROR_MESSAGE,\n });\n return acc;\n }\n acc[key] = value;\n return acc;\n },\n {} as Record<string, unknown>,\n );\n}\n\nfunction toExceptionInsertionName(name: string) {\n return `${name.charAt(0).toLowerCase()}${name.slice(1)}`;\n}\n\nfunction toExceptionRecord(value: unknown): Record<string, unknown> {\n return typeof value === 'object' && value !== null\n ? (value as Record<string, unknown>)\n : {};\n}\n\nexport function createFormExceptions(\n rawInsertionsOutput: Record<string, unknown>,\n exposedInsertionsOutput: Record<string, unknown>,\n) {\n const directHasExceptions = isSignal(exposedInsertionsOutput['hasExceptions'])\n ? (exposedInsertionsOutput['hasExceptions'] as Signal<boolean>)\n : undefined;\n const directExceptions = isSignal(exposedInsertionsOutput['exceptions'])\n ? (exposedInsertionsOutput['exceptions'] as Signal<unknown>)\n : undefined;\n\n const exceptionInsertions = Object.entries(exposedInsertionsOutput).flatMap(\n ([key, value]) => {\n const match = /^has(.+)Exceptions$/.exec(key);\n if (!match || typeof value !== 'function') return [];\n\n const insertionName = toExceptionInsertionName(match[1]);\n const exceptionsKey = `${insertionName}Exceptions`;\n const exceptionSignal = exposedInsertionsOutput[exceptionsKey];\n if (typeof exceptionSignal !== 'function') return [];\n\n return [\n {\n insertionName,\n hasExceptionSignal: value as Signal<boolean>,\n exceptionSignal: exceptionSignal as Signal<unknown>,\n },\n ];\n },\n );\n\n if (\n exceptionInsertions.length === 0 &&\n !directHasExceptions &&\n !directExceptions\n ) {\n return {};\n }\n\n return {\n hasExceptions: computed(\n () =>\n (directHasExceptions?.() ?? false) ||\n exceptionInsertions.some(({ hasExceptionSignal }) =>\n hasExceptionSignal(),\n ),\n ),\n exceptions: computed(() =>\n exceptionInsertions.reduce(\n (acc, { insertionName, exceptionSignal }) => {\n acc[insertionName] = exceptionSignal();\n return acc;\n },\n {\n ...toExceptionRecord(directExceptions?.()),\n },\n ),\n ),\n };\n}\n\nexport type SubmissionController = {\n hasAttemptedSubmit: Signal<boolean>;\n submitting: Signal<boolean>;\n setAttemptedSubmit: () => void;\n setSubmitting: (submitting: boolean) => void;\n reset: () => void;\n};\n\nexport function createSubmissionController(): SubmissionController {\n const attempted = signal(false);\n const submitting = signal(false);\n return {\n hasAttemptedSubmit: attempted.asReadonly(),\n submitting: submitting.asReadonly(),\n setAttemptedSubmit: () => attempted.set(true),\n setSubmitting: (next: boolean) => {\n if (next) attempted.set(true);\n submitting.set(next);\n },\n reset: () => {\n attempted.set(false);\n submitting.set(false);\n },\n };\n}\n\n/**\n * Wrap a CraftFieldTree with extra properties (insertion outputs, exception\n * aggregates, submission state) so the merged object behaves like a\n * `FormWithInsertions`. Used by sub-form builders.\n */\nexport function wrapSubFieldWithExtras<T>(\n subField: CraftFieldTree<T>,\n extras: Record<string, unknown>,\n): CraftFieldTree<T> {\n return new Proxy(subField as unknown as object, {\n get(_target, prop, receiver) {\n if (typeof prop === 'string' && prop in extras) return extras[prop];\n return Reflect.get(subField as object, prop, receiver);\n },\n has(_target, prop) {\n if (typeof prop === 'string' && prop in extras) return true;\n return prop in (subField as object);\n },\n ownKeys() {\n return [\n ...new Set([\n ...Reflect.ownKeys(subField as object),\n ...Object.keys(extras),\n ]),\n ];\n },\n getOwnPropertyDescriptor(_target, prop) {\n if (typeof prop === 'string' && prop in extras) {\n return {\n enumerable: true,\n configurable: true,\n value: extras[prop],\n writable: false,\n };\n }\n return Object.getOwnPropertyDescriptor(subField, prop);\n },\n }) as unknown as CraftFieldTree<T>;\n}\n\n/**\n * Build a fully-decorated sub-form (field tree + insertion outputs + exception\n * aggregates) from a sub-field plus a state read/write pair. Used by both\n * `insertSelectFormTree` (structural sub-fields) and `insertSubFormField`\n * (derived sub-fields).\n */\nexport function buildSubForm<Sub>(options: {\n parentContext: InsertionFormFactoryContext<unknown, unknown, unknown>;\n subField: CraftFieldTree<Sub>;\n subState: () => Sub;\n setSub: (next: Sub) => void;\n insertions: InsertionsFormFactory<\n Sub,\n unknown,\n Record<string, unknown>,\n Record<string, unknown>\n >[];\n injector: Injector;\n}): FormWithInsertions<Sub, Record<string, unknown>> {\n const stateSignal = computed(() => options.subState() as Sub);\n\n const subContext = {\n state: stateSignal,\n set: (next: Sub) => {\n options.setSub(next);\n return yieldableInvocation(next);\n },\n update: (fn: (curr: Sub) => Sub) => {\n const next = fn(options.subState());\n options.setSub(next);\n return yieldableInvocation(next);\n },\n patch: (fn: (curr: Sub) => Partial<Sub>) => {\n const curr = options.subState();\n const partial = fn(curr);\n const next =\n curr && typeof curr === 'object' && !Array.isArray(curr)\n ? ({ ...(curr as object), ...partial } as Sub)\n : (partial as Sub);\n options.setSub(next);\n return yieldableInvocation(next);\n },\n insertions: (options.parentContext.insertions ?? {}) as never,\n };\n\n const { rawInsertionsOutput, exposedInsertionsOutput } =\n executeFormInsertions(options.insertions, {\n field: options.subField,\n state: stateSignal,\n submission: {\n hasAttemptedSubmit: options.parentContext.hasAttemptedSubmit,\n submitting: options.parentContext.submitting,\n setAttemptedSubmit: options.parentContext.setAttemptedSubmit,\n setSubmitting: options.parentContext.setSubmitting,\n reset: () => {\n /* parent owns reset */\n },\n },\n set: subContext.set,\n update: subContext.update,\n patch: subContext.patch,\n inheritedInsertions: subContext.insertions as Record<string, unknown>,\n injector: options.injector,\n formIdentifier: options.parentContext.formIdentifier,\n });\n\n const formExceptions = createFormExceptions(\n rawInsertionsOutput,\n exposedInsertionsOutput,\n );\n\n return wrapSubFieldWithExtras(options.subField, {\n ...exposedInsertionsOutput,\n ...formExceptions,\n hasAttemptedSubmit: options.parentContext.hasAttemptedSubmit,\n submitting: options.parentContext.submitting,\n }) as unknown as FormWithInsertions<Sub, Record<string, unknown>>;\n}\n\nexport function executeFormInsertions<Model>(\n formInsertions: InsertionsFormFactory<\n Model,\n unknown,\n Record<string, unknown>,\n Record<string, unknown>\n >[],\n options: {\n field: CraftFieldTree<Model>;\n state: Signal<Model>;\n submission: SubmissionController;\n set: YieldableInsertionWrite<[newState: Model], Model>;\n update: YieldableInsertionWrite<[\n updateFn: (currentState: Model) => Model,\n ], Model>;\n patch: YieldableInsertionWrite<[\n patchFn: (currentState: Model) => Partial<Model>,\n ], Model>;\n inheritedInsertions: Record<string, unknown>;\n injector: Injector;\n formIdentifier: string | number | unknown;\n },\n) {\n const validatedFormValue = computed<ValidatedFormValue<Model>>(() => {\n const fieldRoot = options.field as unknown as CraftField<Model>;\n if (!fieldRoot.valid()) return undefined;\n const value = fieldRoot.value();\n if (value && typeof value === 'object') {\n return Object.assign(value as object, {\n [validatedFormValueSymbol]: true,\n }) as ValidatedFormValue<Model>;\n }\n return value as ValidatedFormValue<Model>;\n });\n\n const FORM_INSERTION_INVALID_YIELD_ERROR_MESSAGE =\n 'insertSelectFormTree generators can only yield craftService dependencies or exposed dependency helpers.';\n const FORM_INSERTION_APP_START_ERROR_MESSAGE =\n 'insertSelectFormTree generators do not support onAppStart(...).';\n\n return formInsertions.reduce(\n (acc, insertion) => {\n const wrappedInsertion = runInInjectionContext(options.injector, () =>\n injectFnWrapper()(insertion),\n );\n const insertionCallResult = runInInjectionContext(options.injector, () =>\n wrappedInsertion({\n state: createYieldableReactiveValue(options.state, 'state', {\n primitive: 'form',\n path: 'form.state',\n }),\n set: options.set,\n update: options.update,\n patch: options.patch,\n field: options.field,\n hasAttemptedSubmit: options.submission.hasAttemptedSubmit,\n submitting: options.submission.submitting,\n validatedFormValue,\n setAttemptedSubmit: options.submission.setAttemptedSubmit,\n setSubmitting: options.submission.setSubmitting,\n formIdentifier: options.formIdentifier!,\n insertions: {\n ...options.inheritedInsertions,\n ...acc.exposedInsertionsOutput,\n },\n }),\n );\n const nextRawInsertions = (\n isGenerator(insertionCallResult)\n ? runInInjectionContext(\n options.injector,\n () =>\n runCraftGenerator({\n iterator: insertionCallResult,\n injector: options.injector,\n hostScope: 'function',\n invalidYieldErrorMessage:\n FORM_INSERTION_INVALID_YIELD_ERROR_MESSAGE,\n multipleAppStartErrorMessage:\n FORM_INSERTION_APP_START_ERROR_MESSAGE,\n onAppStartNotSupportedErrorMessage:\n FORM_INSERTION_APP_START_ERROR_MESSAGE,\n }).value,\n )\n : insertionCallResult\n ) as Record<string, unknown>;\n const nextExposedInsertions = createExposedInsertions(\n nextRawInsertions,\n options.injector,\n );\n\n return {\n rawInsertionsOutput: {\n ...acc.rawInsertionsOutput,\n ...nextRawInsertions,\n },\n exposedInsertionsOutput: {\n ...acc.exposedInsertionsOutput,\n ...nextExposedInsertions,\n },\n };\n },\n {\n rawInsertionsOutput: {} as Record<string, unknown>,\n exposedInsertionsOutput: {} as Record<string, unknown>,\n },\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-schema.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;CACpE,CAAC;AAuDF,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,WAAW,EACzD,MAAM,EAAE,MAAM,GACb,qBAAqB,CACtB,WAAW,CAAC,MAAM,CAAC,EACnB,OAAO,EACP,0BAA0B,EAC1B,EAAE,CACH,CAuBA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-schema.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { computed, inject, Injector, type Signal } from '../host/craft-compat';\nimport {\n createSchemaValidationException,\n parseSchema,\n type CraftSchema,\n type SchemaInput,\n type SchemaValidationException,\n} from '../schema-validation';\nimport type { StandardSchemaV1PathSegment } from '../standard-schema';\nimport { rawReactiveValue } from '../reactive-read';\nimport { craftLinkedSignal } from '../host/craft-linked-signal';\nimport type {\n InsertionFormFactoryContext,\n InsertionsFormFactory,\n} from './insert-form-internals';\nimport type {\n CraftFieldSchemaErrorEntry,\n CraftFieldSchemaErrorSource,\n} from './craft-field';\n\nexport type FormSchemaInsertionOutputs = {\n hasSchema: Signal<true>;\n hasSchemaExceptions: Signal<boolean>;\n schemaExceptions: Signal<ReadonlyArray<SchemaValidationException>>;\n};\n\nfunction normalizeIssuePath(\n path: ReadonlyArray<PropertyKey | StandardSchemaV1PathSegment> | undefined,\n): ReadonlyArray<string | number> {\n if (!path) return [];\n\n const normalized: Array<string | number> = [];\n for (const segment of path) {\n const key =\n typeof segment === 'object' && segment !== null && 'key' in segment\n ? segment.key\n : segment;\n if (typeof key !== 'string' && typeof key !== 'number') return [];\n normalized.push(key);\n }\n return normalized;\n}\n\nfunction createSchemaErrorEntries<Schema extends CraftSchema>(\n schema: Schema,\n value: SchemaInput<Schema>,\n context: InsertionFormFactoryContext<SchemaInput<Schema>, {}, unknown>,\n): ReadonlyArray<CraftFieldSchemaErrorEntry> {\n const parsed = parseSchema<unknown>(schema, value, {\n primitive: 'form',\n name: 'form',\n stage: 'form',\n operation: 'validate',\n });\n\n if (parsed instanceof Promise) {\n throw new Error(\n 'Form schemas must be synchronous. Use cAsyncValidate or an async resource for asynchronous validation.',\n );\n }\n\n if (parsed.ok) return [];\n\n return parsed.exception.payload.issues.map((issue) => ({\n path: normalizeIssuePath(issue.path),\n error: createSchemaValidationException({\n issues: [issue],\n value,\n primitive: 'form',\n name: 'form',\n stage: 'form',\n operation: 'validate',\n ...(context.formIdentifier === undefined\n ? {}\n : { identifier: String(context.formIdentifier) }),\n }),\n }));\n}\n\nexport function insertFormSchema<Schema extends CraftSchema>(\n schema: Schema,\n): InsertionsFormFactory<\n SchemaInput<Schema>,\n unknown,\n FormSchemaInsertionOutputs,\n {}\n> {\n return (\n context: InsertionFormFactoryContext<SchemaInput<Schema>, {}, unknown>,\n ) => {\n const stateValue = craftLinkedSignal({\n source: () => rawReactiveValue(context.state)(),\n computation: (value) => value,\n injector: inject(Injector),\n });\n const errors = computed(() =>\n createSchemaErrorEntries(schema, stateValue(), context),\n ) as CraftFieldSchemaErrorSource;\n\n context.field.ɵregisterSchemaErrorSource(errors);\n\n return {\n hasSchema: computed(() => true as const),\n hasSchemaExceptions: computed(() => errors().length > 0),\n schemaExceptions: computed(() =>\n errors().map((entry) => entry.error as SchemaValidationException),\n ),\n };\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-submit.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-submit.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form-submit.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form-submit.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computed,\n effect,\n inject,\n Injector,\n Signal,\n untracked,\n} from '../host/craft-compat';\nimport {\n AnyCraftException,\n ExcludeByCode,\n ExtractCodeFromCraftResultUnion,\n InsertMetaInCraftExceptionIfExists,\n} from '../craft-exception';\nimport {\n ResourceByIdLikeMutationRef,\n ResourceLikeMutationRef,\n} from '../mutation';\nimport { ResourceExceptionConstraints } from '../query.core';\nimport { MergeObjects } from '../util/util.type';\nimport { rawReactiveFacade } from '../reactive-read';\nimport type { YieldableReactiveValue } from '../reactive-read';\nimport { executeYieldable } from '../yieldable';\nimport {\n FormWithInsertions,\n InsertionsFormFactory,\n ValidatedFormValue,\n} from './insert-form-internals';\n\ntype SubmitContext<\n FormValue,\n SubmitCraftResource,\n CurrentExceptions,\n SubmitExceptions = ExtractCodeFromCraftResultUnion<CurrentExceptions>,\n> = {\n submitCraftResource: SubmitCraftResource;\n form: FormWithInsertions<FormValue, {}>;\n exceptions: CurrentExceptions[];\n omit: <C extends string>(\n codes: readonly C[],\n ) => ExcludeByCode<CurrentExceptions, Extract<C, SubmitExceptions>>[];\n};\n\ntype MutationSubmitExceptions<\n MutationExceptions extends ResourceExceptionConstraints,\n Identifier extends string | number | unknown,\n> =\n | InsertMetaInCraftExceptionIfExists<\n MutationExceptions['params'],\n 'params',\n Identifier\n >\n | InsertMetaInCraftExceptionIfExists<\n MutationExceptions['loader'],\n 'loader',\n Identifier\n >;\n\ntype SubmitExceptionUnion<SubmitCraftResource> =\n SubmitCraftResource extends ResourceLikeMutationRef<\n any,\n any,\n any,\n any,\n any,\n any,\n infer MutationExceptions,\n any\n >\n ? MutationSubmitExceptions<MutationExceptions, unknown>\n : SubmitCraftResource extends ResourceByIdLikeMutationRef<\n any,\n any,\n any,\n any,\n any,\n any,\n infer GroupIdentifier,\n infer MutationExceptions,\n any\n >\n ? MutationSubmitExceptions<MutationExceptions, GroupIdentifier>\n : SubmitCraftResource extends {\n exceptions: YieldableReactiveValue<{\n list: (infer ExceptionList)[];\n }>;\n }\n ? ExceptionList\n : SubmitCraftResource extends {\n exceptions: Signal<{ list: (infer ExceptionList)[] }>;\n }\n ? ExceptionList\n : never;\n\ntype SelectedSubmitCraftResource<SubmitCraftResourceById> =\n SubmitCraftResourceById extends {\n select: (id: any) => infer SelectedResource;\n }\n ? NonNullable<SelectedResource>\n : never;\n\ntype MutationIdentifierOf<SubmitCraftResourceById> =\n SubmitCraftResourceById extends ResourceByIdLikeMutationRef<\n any,\n any,\n any,\n any,\n any,\n any,\n infer GroupIdentifier,\n any,\n any\n >\n ? GroupIdentifier\n : never;\n\ntype MaybeExceptions =\n | AnyCraftException\n | readonly AnyCraftException[]\n | undefined;\ntype MaybeYieldableExceptions =\n | MaybeExceptions\n | Generator<any, MaybeExceptions, unknown>;\n\ntype ExceptionRuleReturn<T> = T extends (...args: any[]) => infer Return\n ? Return extends Generator<any, infer Result, any>\n ? Result\n : Return\n : never;\n\ntype ExtractExceptionReturn<T> =\n Exclude<T, undefined> extends readonly (infer Exception)[]\n ? Exception\n : Exclude<T, undefined>;\n\ntype ResolvedCallbackReturn<T> =\n T extends Generator<any, infer Result, any> ? Result : T;\n\ntype ApplyExceptionRule<CurrentExceptions, Rule> =\n Exclude<ExceptionRuleReturn<Rule>, undefined> extends readonly unknown[]\n ? ExtractExceptionReturn<ExceptionRuleReturn<Rule>>\n : CurrentExceptions | ExtractExceptionReturn<ExceptionRuleReturn<Rule>>;\n\ntype ApplyExceptionRules<\n CurrentExceptions,\n Rules extends readonly unknown[],\n> = Rules extends readonly [infer Rule, ...infer Tail]\n ? ApplyExceptionRules<ApplyExceptionRule<CurrentExceptions, Rule>, Tail>\n : CurrentExceptions;\n\ntype InsertMetaInCraftExceptionIfKnown<\n Exception,\n Scope extends string | undefined,\n Identifier extends string | number | unknown,\n> = [unknown] extends [Exception]\n ? never\n : InsertMetaInCraftExceptionIfExists<Exception, Scope, Identifier>;\n\ntype InsertFormSubmitConfig<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions,\n MutationIdentifier extends string | number | unknown,\n FormIdentifier extends string | number | unknown,\n> = MergeObjects<\n [\n {\n success?: (\n context: SubmitContext<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions\n >,\n ) => MaybeYieldableExceptions;\n exception?: (\n context: SubmitContext<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions\n >,\n ) => MaybeYieldableExceptions;\n exceptions?: readonly ((\n context: SubmitContext<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions\n >,\n ) => MaybeYieldableExceptions)[];\n },\n [unknown] extends [FormIdentifier]\n ? {}\n : {\n filter?: ({\n formIdentifier,\n mutationIdentifier,\n mutationResource,\n }: {\n formIdentifier: FormIdentifier;\n mutationIdentifier: MutationIdentifier;\n mutationResource: SubmitCraftResource;\n }) => boolean;\n },\n ]\n>;\n\nfunction isCraftExceptionLike(value: unknown): value is AnyCraftException {\n return (\n typeof value === 'object' &&\n value !== null &&\n '_tag' in value &&\n typeof (value as { _tag?: unknown })._tag === 'string'\n );\n}\n\nfunction normalizeExceptionList(\n value: unknown,\n): AnyCraftException[] | undefined {\n if (value === undefined) return undefined;\n if (Array.isArray(value)) return value.filter(isCraftExceptionLike);\n if (isCraftExceptionLike(value)) return [value];\n return undefined;\n}\n\nfunction* triggerSubmitResource<FormValue>(\n submitCraftResource: ResourceLikeMutationRef<\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >,\n validatedFormValue: ValidatedFormValue<FormValue>,\n): Generator<unknown, void, unknown> {\n if ('mutate' in submitCraftResource && submitCraftResource.mutate) {\n yield* submitCraftResource.mutate(validatedFormValue);\n }\n}\n\ntype ToSubmitExceptions<\n SubmitExceptions extends AnyCraftException | undefined | unknown,\n Config,\n FormIdentifier extends string | number | unknown,\n> = Exclude<\n | (Config extends {\n exceptions: infer ExceptionRules extends readonly unknown[];\n }\n ? ExceptionRules extends readonly []\n ? SubmitExceptions\n : ApplyExceptionRules<SubmitExceptions, ExceptionRules>\n : SubmitExceptions)\n | InsertMetaInCraftExceptionIfKnown<\n Config extends { success: (...args: any[]) => infer SuccessExceptions }\n ? ResolvedCallbackReturn<SuccessExceptions>\n : never,\n 'insertFormSubmitSuccess',\n FormIdentifier\n >\n | InsertMetaInCraftExceptionIfKnown<\n Config extends {\n exception: (...args: any[]) => infer ExceptionExceptions;\n }\n ? ResolvedCallbackReturn<ExceptionExceptions>\n : never,\n 'insertFormSubmitError',\n FormIdentifier\n >,\n undefined\n>;\n\nexport function insertFormSubmit<\n FormValue,\n SubmitCraftResource extends {\n type: 'resourceLike';\n kind: 'mutation';\n mutate: (args: any) => any;\n },\n SubmitExceptions = SubmitExceptionUnion<SubmitCraftResource>,\n const Config extends object = {},\n>(\n submitCraftResource: SubmitCraftResource,\n config?: Config &\n InsertFormSubmitConfig<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions,\n unknown,\n unknown\n >,\n): InsertionsFormFactory<\n FormValue,\n unknown,\n {\n submit: () => void;\n hasSubmitExceptions: Signal<boolean>;\n submitExceptions: Signal<\n ToSubmitExceptions<SubmitExceptions, Config, unknown>[]\n >;\n }\n>;\nexport function insertFormSubmit<\n FormValue,\n SubmitCraftResourceById extends {\n type: 'resourceByGroupLike';\n kind: 'mutation';\n select: (id: any) => any;\n mutate?: (args: any) => any;\n },\n MutationIdentifier extends\n | string\n | number = MutationIdentifierOf<SubmitCraftResourceById> &\n (string | number),\n FormIdentifier extends string | number = MutationIdentifier,\n SubmitCraftResource = SelectedSubmitCraftResource<SubmitCraftResourceById>,\n SubmitExceptions = SubmitExceptionUnion<SubmitCraftResourceById>,\n const Config extends object = {},\n>(\n submitCraftResourceById: SubmitCraftResourceById,\n config?: Config &\n InsertFormSubmitConfig<\n FormValue,\n SubmitCraftResource,\n SubmitExceptions,\n NoInfer<MutationIdentifier>,\n NoInfer<FormIdentifier>\n >,\n): InsertionsFormFactory<\n FormValue,\n FormIdentifier,\n {\n submit: () => void;\n hasSubmitExceptions: Signal<boolean>;\n submitExceptions: Signal<\n ToSubmitExceptions<SubmitExceptions, Config, FormIdentifier>[]\n >;\n }\n>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function insertFormSubmit(submitCraftResource: any, config?: any): any {\n return ({\n field,\n setAttemptedSubmit,\n setSubmitting,\n formIdentifier,\n injector,\n validatedFormValue: validatedFormValueSignal,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n field: any;\n setAttemptedSubmit: () => void;\n setSubmitting: (submitting: boolean) => void;\n formIdentifier: unknown;\n injector: Injector;\n validatedFormValue: Signal<ValidatedFormValue<unknown>>;\n }) => {\n const callbackInjector = injector ?? inject(Injector);\n const submitCraftResourceTarget = computed(() => {\n if (\n formIdentifier !== undefined &&\n typeof submitCraftResource?.select === 'function'\n ) {\n return (\n submitCraftResource as ResourceByIdLikeMutationRef<\n unknown,\n unknown,\n true,\n unknown,\n unknown,\n unknown,\n unknown,\n ResourceExceptionConstraints\n >\n ).select(formIdentifier as never);\n }\n\n return submitCraftResource as any;\n });\n\n const rawSubmitCraftResourceTarget = computed(() =>\n rawReactiveFacade(submitCraftResourceTarget()),\n );\n\n effect(() => {\n const target = rawSubmitCraftResourceTarget();\n const isLoading = target?.isLoading?.() ?? false;\n untracked(() => setSubmitting(isLoading));\n });\n\n effect(() => {\n const target = rawSubmitCraftResourceTarget();\n if (target?.status?.() === 'resolved') {\n untracked(() => field.reset?.());\n }\n });\n\n const hasSubmitExceptions = computed(() => {\n const target = rawSubmitCraftResourceTarget();\n return target &&\n 'hasException' in target &&\n typeof target.hasException === 'function'\n ? !!target.hasException()\n : false;\n }) as Signal<boolean>;\n\n const submitExceptions = computed(() => {\n const target = rawSubmitCraftResourceTarget();\n const publicTarget = submitCraftResourceTarget();\n const resourceExceptions =\n target &&\n 'exceptions' in target &&\n typeof target.exceptions === 'function'\n ? ((target.exceptions() as { list?: AnyCraftException[] })?.list ??\n [])\n : [];\n\n const omit = (codes: readonly string[]) =>\n resourceExceptions.filter(\n (e: AnyCraftException) => !codes.includes(e._tag as string),\n );\n\n const ctx = {\n submitCraftResource: publicTarget,\n form: field,\n exceptions: resourceExceptions,\n omit,\n };\n\n const status = target?.status?.();\n const hasResourceException =\n target &&\n 'hasException' in target &&\n typeof target.hasException === 'function' &&\n target.hasException();\n\n let merged: AnyCraftException[] = resourceExceptions;\n\n // `exceptions` rules run as a small pipeline over the mutation exceptions.\n // Returning an array replaces the current list (used by `omit`), while\n // returning one exception appends it.\n if (hasResourceException && Array.isArray(config?.exceptions)) {\n for (const exceptionRule of config.exceptions) {\n const next = executeYieldable(\n exceptionRule,\n [{ ...ctx, exceptions: merged }],\n callbackInjector,\n );\n const normalized = normalizeExceptionList(next);\n if (!normalized) continue;\n merged = Array.isArray(next)\n ? normalized\n : [...merged, ...normalized];\n }\n }\n\n // `success` only fires when the mutation resolved without exception.\n if (\n status === 'resolved' &&\n !hasResourceException &&\n typeof config?.success === 'function'\n ) {\n const next = normalizeExceptionList(\n executeYieldable(\n config.success,\n [{ ...ctx, exceptions: merged }],\n callbackInjector,\n ),\n );\n if (next?.length) merged = [...merged, ...next];\n }\n\n // `exception` only fires on residual technical failures (not on\n // craft-exception responses, which flow through `exceptions`).\n if (status === 'exception' && typeof config?.exception === 'function') {\n const next = normalizeExceptionList(\n executeYieldable(\n config.exception,\n [{ ...ctx, exceptions: merged }],\n callbackInjector,\n ),\n );\n if (next?.length) merged = [...merged, ...next];\n }\n\n return merged;\n });\n\n const submitForm = function* () {\n setAttemptedSubmit();\n const validatedFormValue = validatedFormValueSignal();\n if (!validatedFormValue) return;\n if (!submitCraftResource) {\n\n console.warn(\n 'No submit resource found for form submission. Please check that the resource is correctly passed to insertFormSubmit and that the formIdentifier (if used) is correct.',\n );\n return;\n }\n yield* triggerSubmitResource(submitCraftResource, validatedFormValue);\n };\n\n return {\n submit: submitForm,\n hasSubmitExceptions,\n submitExceptions,\n };\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-form.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-form.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n computed,\n DestroyRef,\n inject,\n Injector,\n runInInjectionContext,\n Signal,\n untracked,\n type EnvironmentInjector,\n} from '../host/craft-compat';\nimport { ɵcreateHostTaggedInjector } from '../craft-service';\nimport {\n InsertionStateFactoryContext,\n InsertionsStateFactory,\n} from '../query.core';\nimport { createCraftFieldTree, CraftFieldTree } from './craft-field';\nimport {\n craftLinkedSignal,\n type CraftLinkedSignal,\n} from '../host/craft-linked-signal';\nimport {\n createFormExceptions,\n createSubmissionController,\n executeFormInsertions,\n validatedFormValueSymbol,\n} from './insert-form-internals';\nimport type {\n FormWithInsertions,\n InsertionsFormFactory,\n ValidatedFormValue,\n} from './insert-form-internals';\nimport {\n markNonYieldableInsertionMethod,\n yieldableInvocation,\n type NonYieldableInsertionMethod,\n} from '../yieldable';\nimport type { YieldableInsertionWrite } from '../query.core';\nimport {\n createYieldableReactiveValue,\n rawReactiveValue,\n} from '../reactive-read';\n\nexport { validatedFormValueSymbol } from './insert-form-internals';\nexport type {\n FormWithInsertions,\n InsertionFormFactoryContext,\n InsertionsFormFactory,\n ValidatedFormValue,\n} from './insert-form-internals';\n\ntype ExtractItemType<T> = T extends readonly (infer Item)[] ? Item : never;\n\ntype InsertFormSimpleOutput<StateType, Insertions> = {\n form: FormWithInsertions<StateType, Insertions>;\n};\n\ntype InsertFormParallelOutput<StateType, Insertions> = {\n forms: Signal<FormWithInsertions<ExtractItemType<StateType>, Insertions>[]>;\n select: NonYieldableInsertionMethod<\n [formIdentifier: string | number],\n FormWithInsertions<ExtractItemType<StateType>, Insertions> | undefined\n >;\n};\n\ntype InsertFormSimpleReturn<StateType, Insertions, PreviousInsertionsOutputs> =\n InsertionsStateFactory<\n StateType,\n InsertFormSimpleOutput<StateType, Insertions>,\n PreviousInsertionsOutputs\n >;\n\ntype InsertFormParallelReturn<\n StateType,\n Insertions,\n PreviousInsertionsOutputs,\n> = InsertionsStateFactory<\n StateType,\n InsertFormParallelOutput<StateType, Insertions>,\n PreviousInsertionsOutputs\n>;\n\ntype ParallelInsertFormConfig<\n ItemType,\n GroupIdentifier extends string | number,\n> = {\n identifier: (context: { item: ItemType; index: number }) => GroupIdentifier;\n};\n\nfunction isParallelInsertFormConfig(\n value: unknown,\n): value is ParallelInsertFormConfig<unknown, string | number> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'identifier' in value &&\n typeof (value as ParallelInsertFormConfig<unknown, string | number>)\n .identifier === 'function'\n );\n}\n\nfunction buildSimpleForm<Model>(\n context: InsertionStateFactoryContext<Model, Record<string, unknown>>,\n formInsertions: InsertionsFormFactory<\n Model,\n unknown,\n Record<string, unknown>,\n Record<string, unknown>\n >[],\n inheritedInsertions: Record<string, unknown>,\n injector: Injector,\n formIdentifier: string | number | unknown,\n): FormWithInsertions<Model, Record<string, unknown>> {\n const submission = createSubmissionController();\n const rawState = rawReactiveValue(context.state);\n const fieldState = craftLinkedSignal({\n source: rawState,\n computation: (current) => current,\n injector,\n });\n const field = createCraftFieldTree<Model>({\n read: () => rawState(),\n set: (next: Model) => context.set(next),\n asReadonly: () => fieldState,\n });\n\n const { rawInsertionsOutput, exposedInsertionsOutput } =\n executeFormInsertions(formInsertions, {\n field,\n state: rawState,\n submission,\n set: (newState: Model) => context.set(newState),\n update: (fn: (current: Model) => Model) => context.update(fn),\n patch: (fn: (current: Model) => Partial<Model>) =>\n context.patch(fn as (current: Model) => Partial<Model>),\n inheritedInsertions,\n injector,\n formIdentifier,\n });\n\n const formExceptions = createFormExceptions(\n rawInsertionsOutput,\n exposedInsertionsOutput,\n );\n\n const validatedFormValue = computed<ValidatedFormValue<Model>>(() => {\n if (!field.valid()) return undefined;\n const value = field.value() as Model;\n if (value && typeof value === 'object') {\n return Object.assign(value as object, {\n [validatedFormValueSymbol]: true,\n }) as unknown as ValidatedFormValue<Model>;\n }\n return value as ValidatedFormValue<Model>;\n });\n\n // Merge insertion outputs onto the field tree proxy. We use a wrapping object\n // because the proxy's `set` trap doesn't store new properties on the target.\n // `Object.assign` would not work on the proxy, so we wrap.\n const merged = wrapFieldWithExtras<Model>(field, {\n ...exposedInsertionsOutput,\n ...formExceptions,\n reset: () => {\n submission.reset();\n field.reset();\n },\n hasAttemptedSubmit: submission.hasAttemptedSubmit,\n submitting: submission.submitting,\n validatedFormValue,\n });\n\n return merged as unknown as FormWithInsertions<\n Model,\n Record<string, unknown>\n >;\n}\n\n/**\n * Wraps a CraftFieldTree<T> in an outer Proxy that overlays a record of extras\n * (insertion outputs, submit signals, ...) on top. Property reads are checked\n * against the extras first, falling back to the field tree.\n */\nfunction wrapFieldWithExtras<T>(\n field: CraftFieldTree<T>,\n extras: Record<string, unknown>,\n): CraftFieldTree<T> {\n return new Proxy(field as unknown as object, {\n get(_target, prop, receiver) {\n if (typeof prop === 'string' && prop in extras) {\n return extras[prop];\n }\n return Reflect.get(field as object, prop, receiver);\n },\n has(_target, prop) {\n if (typeof prop === 'string' && prop in extras) return true;\n return prop in (field as object);\n },\n ownKeys() {\n return [\n ...new Set([\n ...Reflect.ownKeys(field as object),\n ...Object.keys(extras),\n ]),\n ];\n },\n getOwnPropertyDescriptor(_target, prop) {\n if (typeof prop === 'string' && prop in extras) {\n return {\n enumerable: true,\n configurable: true,\n value: extras[prop],\n writable: false,\n };\n }\n return Object.getOwnPropertyDescriptor(field, prop);\n },\n }) as unknown as CraftFieldTree<T>;\n}\n\nfunction findItemIndexByIdentifier<Item>(\n state: readonly Item[],\n formIdentifier: string | number,\n identifier: (context: { item: Item; index: number }) => string | number,\n) {\n return state.findIndex((item, index) => {\n return identifier({ item, index }) === formIdentifier;\n });\n}\n\n// =====================================================================\n// Public API — overload signatures (simple mode)\n// =====================================================================\n\nexport function insertForm<\n StateType,\n PreviousInsertionsOutputs = {},\n>(): InsertFormSimpleReturn<StateType, {}, PreviousInsertionsOutputs>;\nexport function insertForm<\n StateType,\n Insertion1,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n): InsertFormSimpleReturn<StateType, Insertion1, PreviousInsertionsOutputs>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 & Insertion2,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3 & Insertion4,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n Insertion5,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n insertion5: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion5,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3 & Insertion4 & Insertion5,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n Insertion5,\n Insertion6,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n insertion5: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion5,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4\n >,\n insertion6: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion6,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3 & Insertion4 & Insertion5 & Insertion6,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n Insertion5,\n Insertion6,\n Insertion7,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n insertion5: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion5,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4\n >,\n insertion6: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion6,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5\n >,\n insertion7: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion7,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5 &\n Insertion6\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5 &\n Insertion6 &\n Insertion7,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n Insertion5,\n Insertion6,\n Insertion7,\n Insertion8,\n PreviousInsertionsOutputs = {},\n>(\n insertion1: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n insertion5: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion5,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4\n >,\n insertion6: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion6,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5\n >,\n insertion7: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion7,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5 &\n Insertion6\n >,\n insertion8: InsertionsFormFactory<\n StateType,\n unknown,\n Insertion8,\n PreviousInsertionsOutputs &\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5 &\n Insertion6 &\n Insertion7\n >,\n): InsertFormSimpleReturn<\n StateType,\n Insertion1 &\n Insertion2 &\n Insertion3 &\n Insertion4 &\n Insertion5 &\n Insertion6 &\n Insertion7 &\n Insertion8,\n PreviousInsertionsOutputs\n>;\n\n// =====================================================================\n// Public API — overload signatures (parallel mode)\n// =====================================================================\n\nexport function insertForm<\n StateType extends unknown[],\n GroupIdentifier extends string | number,\n PreviousInsertionsOutputs = {},\n>(\n config: ParallelInsertFormConfig<ExtractItemType<StateType>, GroupIdentifier>,\n): InsertFormParallelReturn<StateType, {}, PreviousInsertionsOutputs>;\nexport function insertForm<\n StateType extends unknown[],\n GroupIdentifier extends string | number,\n Insertion1,\n PreviousInsertionsOutputs = {},\n>(\n config: ParallelInsertFormConfig<ExtractItemType<StateType>, GroupIdentifier>,\n insertion1: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n): InsertFormParallelReturn<StateType, Insertion1, PreviousInsertionsOutputs>;\nexport function insertForm<\n StateType extends unknown[],\n GroupIdentifier extends string | number,\n Insertion1,\n Insertion2,\n PreviousInsertionsOutputs = {},\n>(\n config: ParallelInsertFormConfig<ExtractItemType<StateType>, GroupIdentifier>,\n insertion1: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n): InsertFormParallelReturn<\n StateType,\n Insertion1 & Insertion2,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType extends unknown[],\n GroupIdentifier extends string | number,\n Insertion1,\n Insertion2,\n Insertion3,\n PreviousInsertionsOutputs = {},\n>(\n config: ParallelInsertFormConfig<ExtractItemType<StateType>, GroupIdentifier>,\n insertion1: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n): InsertFormParallelReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3,\n PreviousInsertionsOutputs\n>;\nexport function insertForm<\n StateType extends unknown[],\n GroupIdentifier extends string | number,\n Insertion1,\n Insertion2,\n Insertion3,\n Insertion4,\n PreviousInsertionsOutputs = {},\n>(\n config: ParallelInsertFormConfig<ExtractItemType<StateType>, GroupIdentifier>,\n insertion1: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n insertion2: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1\n >,\n insertion3: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion3,\n PreviousInsertionsOutputs & Insertion1 & Insertion2\n >,\n insertion4: InsertionsFormFactory<\n ExtractItemType<StateType>,\n GroupIdentifier,\n Insertion4,\n PreviousInsertionsOutputs & Insertion1 & Insertion2 & Insertion3\n >,\n): InsertFormParallelReturn<\n StateType,\n Insertion1 & Insertion2 & Insertion3 & Insertion4,\n PreviousInsertionsOutputs\n>;\n\n// =====================================================================\n// Implementation\n// =====================================================================\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function insertForm(...args: any[]): any {\n const hasParallelConfig = isParallelInsertFormConfig(args[0]);\n const parallelConfig = hasParallelConfig ? args[0] : undefined;\n const formInsertions = (\n hasParallelConfig ? args.slice(1) : args\n ) as InsertionsFormFactory<\n unknown,\n unknown,\n Record<string, unknown>,\n Record<string, unknown>\n >[];\n\n return (\n context: InsertionStateFactoryContext<unknown, Record<string, unknown>>,\n ) => {\n const inheritedInsertions =\n (context.insertions as Record<string, unknown> | undefined) ?? {};\n const formInjector = ɵcreateHostTaggedInjector(inject(Injector), 'form');\n\n if (!parallelConfig) {\n const form = buildSimpleForm<unknown>(\n context,\n formInsertions,\n inheritedInsertions,\n formInjector,\n undefined,\n );\n return { form };\n }\n\n type ParallelEntry = {\n formIdentifier: string | number;\n form: FormWithInsertions<unknown, Record<string, unknown>>;\n itemState: CraftLinkedSignal<unknown>;\n itemInjector: EnvironmentInjector;\n };\n\n const formsByIdentifier = new Map<string | number, ParallelEntry>();\n const identifier = parallelConfig.identifier;\n const evictEntry = (formIdentifier: string | number): void => {\n const entry = formsByIdentifier.get(formIdentifier);\n entry?.itemState.destroy();\n if (entry && !entry.itemInjector.destroyed) {\n entry.itemInjector.destroy();\n }\n formsByIdentifier.delete(formIdentifier);\n };\n\n const selectItem = (formIdentifier: string | number) => {\n const currentState = rawReactiveValue(context.state)();\n if (!Array.isArray(currentState)) return undefined;\n const index = findItemIndexByIdentifier(\n currentState,\n formIdentifier,\n identifier,\n );\n if (index === -1) return undefined;\n return currentState[index];\n };\n\n const setItem = (formIdentifier: string | number, nextItem: unknown) => {\n context.update((currentState: unknown) => {\n if (!Array.isArray(currentState)) return currentState;\n const index = findItemIndexByIdentifier(\n currentState,\n formIdentifier,\n identifier,\n );\n if (index === -1) return currentState;\n const nextState = [...currentState];\n nextState[index] = nextItem;\n return nextState;\n });\n return nextItem;\n };\n\n const getOrCreateEntry = (\n formIdentifier: string | number,\n ): ParallelEntry => {\n const existing = formsByIdentifier.get(formIdentifier);\n if (existing) return existing;\n\n const itemState = craftLinkedSignal({\n source: () => selectItem(formIdentifier),\n computation: (current) => current,\n injector: formInjector,\n });\n const itemContext: InsertionStateFactoryContext<\n unknown,\n Record<string, unknown>\n > = {\n state: createYieldableReactiveValue(itemState, 'state', {\n primitive: 'form',\n path: `form.${String(formIdentifier)}.state`,\n }),\n set: (next: unknown) => {\n setItem(formIdentifier, next);\n return yieldableInvocation(next);\n },\n update: (fn: (curr: unknown) => unknown) => {\n const next = fn(selectItem(formIdentifier));\n setItem(formIdentifier, next);\n return yieldableInvocation(next);\n },\n patch: (fn: (curr: unknown) => Partial<unknown>) => {\n const curr = selectItem(formIdentifier);\n const partial = fn(curr);\n const next =\n curr && typeof curr === 'object' && !Array.isArray(curr)\n ? { ...(curr as object), ...partial }\n : partial;\n setItem(formIdentifier, next);\n return yieldableInvocation(next);\n },\n insertions: inheritedInsertions as Record<string, unknown> as never,\n };\n\n // Per-item tagged injector so DI inside this entry is scoped under\n // `form/<identifier>`, mirroring the pattern in `insertSelect`.\n const itemInjector = ɵcreateHostTaggedInjector(\n formInjector,\n `formItem:${formIdentifier}`,\n ) as EnvironmentInjector;\n // `getOrCreateEntry` runs in the `formsSignal` computation, so\n // `ɵcreateHostTaggedInjector` cannot see an ambient DestroyRef.\n // Bind remaining rows to the form injector so host teardown\n // destroys them even when they were never evicted.\n formInjector.get(DestroyRef).onDestroy(() => {\n if (!itemInjector.destroyed) {\n itemInjector.destroy();\n }\n });\n\n // `buildSimpleForm` may create effects (e.g. via insertFormSubmit). When\n // `getOrCreateEntry` is invoked from within a reactive context (such as\n // the `linkedSignal` below), Angular forbids effect creation (NG0602).\n // We wrap construction in `untracked` to detach from the surrounding\n // reactive context.\n const form = untracked(() =>\n runInInjectionContext(itemInjector, () =>\n buildSimpleForm(\n itemContext,\n formInsertions,\n inheritedInsertions,\n itemInjector,\n formIdentifier,\n ),\n ),\n );\n const entry: ParallelEntry = {\n formIdentifier,\n form,\n itemState,\n itemInjector,\n };\n formsByIdentifier.set(formIdentifier, entry);\n return entry;\n };\n\n const formsSignal = craftLinkedSignal({\n source: () => rawReactiveValue(context.state)(),\n injector: formInjector,\n computation: (currentState) => {\n if (!Array.isArray(currentState)) {\n for (const cachedId of [...formsByIdentifier.keys()]) {\n evictEntry(cachedId);\n }\n return [] as ParallelEntry[];\n }\n\n const seen = new Set<string | number>();\n const entries = currentState.map((item, index) => {\n const id = identifier({ item, index });\n if (seen.has(id)) {\n throw new Error(\n `Duplicate form identifier \"${String(id)}\" in state.`,\n );\n }\n seen.add(id);\n return getOrCreateEntry(id);\n });\n\n for (const cachedId of [...formsByIdentifier.keys()]) {\n if (!seen.has(cachedId)) evictEntry(cachedId);\n }\n\n return entries;\n },\n });\n\n return {\n forms: computed(() => formsSignal().map((entry) => entry.form)),\n select: markNonYieldableInsertionMethod(\n (formIdentifier: string | number) => {\n const selected = formsSignal().find(\n (entry) => entry.formIdentifier === formIdentifier,\n );\n return selected?.form;\n },\n ),\n };\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-select-form-tree.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-select-form-tree.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-select-form-tree.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-select-form-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { inject, Injector } from '../host/craft-compat';\nimport { ɵcreateHostTaggedInjector } from '../craft-service';\nimport { markNonYieldableInsertionMethod } from '../yieldable';\nimport { CraftFieldTree } from './craft-field';\nimport {\n buildSubForm,\n type FormWithInsertions,\n type InsertionFormFactoryContext,\n type InsertionsFormFactory,\n} from './insert-form-internals';\nimport type { NonYieldableInsertionMethod } from '../yieldable';\nimport { rawReactiveValue } from '../reactive-read';\n\ntype ExtractItemType<T> = T extends readonly (infer Item)[] ? Item : never;\n\ntype MergeInsertions<\n Insertions extends readonly unknown[],\n Acc = {},\n> = Insertions extends readonly [infer Head, ...infer Tail]\n ? MergeInsertions<Tail, Acc & Head>\n : Acc;\n\ntype SelectedFormTreeTarget<\n StateType,\n Name extends string,\n> = StateType extends readonly (infer Item)[]\n ? Extract<Item, object>\n : StateType extends Record<string, unknown>\n ? Name extends keyof StateType\n ? StateType[Name]\n : never\n : never;\n\ntype MaybeFormWithInsertions<Model, Insertions, Path extends string> = [\n Model,\n] extends [never]\n ? never\n : undefined extends Model\n ? FormWithInsertions<NonNullable<Model>, Insertions, Path> | undefined\n : FormWithInsertions<Model, Insertions, Path>;\n\ntype SelectFormTreeMethodName<Name extends string> =\n `select${Capitalize<Name>}`;\n\ntype ArrayInsertSelectFormTreeOutput<\n StateType,\n Name extends string,\n Insertions extends readonly unknown[],\n> = {\n [K in SelectFormTreeMethodName<Name>]: NonYieldableInsertionMethod<\n [id: number],\n | FormWithInsertions<\n ExtractItemType<StateType>,\n MergeInsertions<Insertions>,\n '[]'\n >\n | undefined\n >;\n} & {\n items: NonYieldableInsertionMethod<\n [],\n Array<\n FormWithInsertions<\n ExtractItemType<StateType>,\n MergeInsertions<Insertions>,\n '[]'\n >\n >\n >;\n};\n\ntype ObjectInsertSelectFormTreeOutput<\n StateType,\n Name extends string,\n Insertions extends readonly unknown[],\n> = {\n [K in SelectFormTreeMethodName<Name>]: NonYieldableInsertionMethod<\n [],\n MaybeFormWithInsertions<\n StateType extends Record<string, unknown>\n ? Name extends keyof StateType\n ? StateType[Name]\n : never\n : never,\n MergeInsertions<Insertions>,\n Name\n >\n >;\n};\n\ntype InsertSelectFormTreeReturn<\n StateType,\n Name extends string,\n FormIdentifier extends string | number | unknown,\n Insertions extends readonly unknown[],\n PreviousInsertionsOutputs,\n> = InsertionsFormFactory<\n StateType,\n FormIdentifier,\n SelectFormTreeOutput<StateType, Name, Insertions>,\n PreviousInsertionsOutputs\n>;\n\ntype SelectFormTreeOutput<\n StateType,\n Name extends string,\n Insertions extends readonly unknown[],\n> = StateType extends readonly unknown[]\n ? ArrayInsertSelectFormTreeOutput<StateType, Name, Insertions>\n : ObjectInsertSelectFormTreeOutput<StateType, Name, Insertions>;\n\nfunction createObjectRuntime(\n propertyKey: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertions: InsertionsFormFactory<any, any, any, any>[],\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: InsertionFormFactoryContext<any, any, any>,\n ) => {\n const injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `selectProperty:${propertyKey}`,\n );\n const methodName = `select${propertyKey.charAt(0).toUpperCase()}${propertyKey.slice(1)}`;\n\n let cachedForm:\n | FormWithInsertions<unknown, Record<string, unknown>>\n | undefined;\n let cachedSubFieldKey: object | undefined;\n\n const buildIfNeeded = () => {\n const subField = (context.field as unknown as Record<string, unknown>)[\n propertyKey\n ] as CraftFieldTree<unknown> | undefined;\n if (!subField) return undefined;\n if (cachedSubFieldKey === (subField as unknown as object))\n return cachedForm;\n\n const subState = () => {\n const curr = rawReactiveValue(context.state)();\n return curr && typeof curr === 'object'\n ? (curr as Record<string, unknown>)[propertyKey]\n : undefined;\n };\n const setSub = (next: unknown) => {\n context.update((curr: unknown) => {\n if (!curr || typeof curr !== 'object') return curr;\n return { ...(curr as Record<string, unknown>), [propertyKey]: next };\n });\n };\n\n cachedForm = buildSubForm({\n parentContext: context,\n subField,\n subState,\n setSub,\n insertions,\n injector,\n });\n cachedSubFieldKey = subField as unknown as object;\n return cachedForm;\n };\n\n return {\n [methodName]: markNonYieldableInsertionMethod(() => buildIfNeeded()),\n };\n };\n}\n\nfunction createArrayItemRuntime(\n entityName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertions: InsertionsFormFactory<any, any, any, any>[],\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: InsertionFormFactoryContext<any, any, any>,\n ) => {\n const injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `selectEntity:${entityName}`,\n );\n const methodName = `select${entityName.charAt(0).toUpperCase()}${entityName.slice(1)}`;\n const cache = new Map<\n number,\n FormWithInsertions<unknown, Record<string, unknown>>\n >();\n\n const buildItemForm = (id: number) => {\n const tree = context.field as unknown as {\n item?: (index: number) => CraftFieldTree<unknown> | undefined;\n };\n const subField = tree.item ? tree.item(id) : undefined;\n if (!subField) return undefined;\n\n const cached = cache.get(id);\n if (cached) return cached;\n\n const itemInjector = ɵcreateHostTaggedInjector(\n injector,\n `selectItem:${id}`,\n );\n const subState = () => {\n const curr = rawReactiveValue(context.state)();\n if (!Array.isArray(curr)) return undefined;\n return curr[id];\n };\n const setSub = (next: unknown) => {\n context.update((curr: unknown) => {\n if (!Array.isArray(curr)) return curr;\n if (id < 0 || id >= curr.length || !Number.isInteger(id)) return curr;\n const nextArr = [...curr];\n nextArr[id] = next;\n return nextArr;\n });\n };\n\n const form = buildSubForm({\n parentContext: context,\n subField,\n subState,\n setSub,\n insertions,\n injector: itemInjector,\n });\n cache.set(id, form);\n return form;\n };\n\n const items = () => {\n const curr = rawReactiveValue(context.state)();\n if (!Array.isArray(curr)) return [];\n return curr\n .map((_unused, index) => buildItemForm(index))\n .filter(\n (f): f is FormWithInsertions<unknown, Record<string, unknown>> => !!f,\n );\n };\n\n return {\n [methodName]: markNonYieldableInsertionMethod(buildItemForm),\n items: markNonYieldableInsertionMethod(items),\n };\n };\n}\n\n// =====================================================================\n// Public API\n// =====================================================================\n//\n// Supports one or two insertion slots. The second slot receives the output of\n// the first, just like consecutive insertions passed to `insertForm`.\n\nexport function insertSelectFormTree<\n StateType,\n const Name extends AutoCompleteName & string,\n FormIdentifier extends string | number | unknown = unknown,\n Insertion1 = {},\n PreviousInsertionsOutputs = {},\n Insertion1Yielded = never,\n AutoCompleteName = NoInfer<StateType> extends readonly object[]\n ? string\n : keyof NoInfer<StateType>,\n>(\n name: Name,\n insertion1: InsertionsFormFactory<\n SelectedFormTreeTarget<StateType, Name>,\n FormIdentifier,\n Insertion1,\n PreviousInsertionsOutputs,\n Insertion1Yielded\n >,\n): InsertSelectFormTreeReturn<\n StateType,\n Name,\n FormIdentifier,\n [Insertion1],\n PreviousInsertionsOutputs\n>;\n\nexport function insertSelectFormTree<\n StateType,\n const Name extends AutoCompleteName & string,\n FormIdentifier extends string | number | unknown = unknown,\n Insertion1 = {},\n Insertion2 = {},\n PreviousInsertionsOutputs = {},\n Insertion1Yielded = never,\n Insertion2Yielded = never,\n AutoCompleteName = NoInfer<StateType> extends readonly object[]\n ? string\n : keyof NoInfer<StateType>,\n>(\n name: Name,\n insertion1: InsertionsFormFactory<\n SelectedFormTreeTarget<StateType, Name>,\n FormIdentifier,\n Insertion1,\n PreviousInsertionsOutputs,\n Insertion1Yielded\n >,\n insertion2: InsertionsFormFactory<\n SelectedFormTreeTarget<StateType, Name>,\n FormIdentifier,\n Insertion2,\n PreviousInsertionsOutputs & Insertion1,\n Insertion2Yielded\n >,\n): InsertSelectFormTreeReturn<\n StateType,\n Name,\n FormIdentifier,\n [Insertion1, Insertion2],\n PreviousInsertionsOutputs\n>;\n\n// =====================================================================\n// Implementation\n// =====================================================================\n\nexport function insertSelectFormTree(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertion1: InsertionsFormFactory<any, any, any, any>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertion2?: InsertionsFormFactory<any, any, any, any>,\n): InsertionsFormFactory<any, any, any, any> {\n const insertions = insertion2 ? [insertion1, insertion2] : [insertion1];\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: InsertionFormFactoryContext<any, any, any>,\n ) => {\n const currentState = rawReactiveValue(context.state)();\n if (Array.isArray(currentState)) {\n return createArrayItemRuntime(name, insertions)(context);\n }\n return createObjectRuntime(name, insertions)(context);\n };\n}\n\n// =====================================================================\n// Public API — `selectFormTree` (context-first variant)\n// =====================================================================\n//\n// Single insertion slot only — to compose several insertions, use `craftPipe`\n// inside that slot: `selectFormTree(context, 'name', (c) => craftPipe(c, m1, m2))`.\n\nexport function selectFormTree<\n StateType,\n const Name extends AutoCompleteName & string,\n FormIdentifier extends string | number | unknown = unknown,\n Insertion1 = {},\n PreviousInsertionsOutputs = {},\n AutoCompleteName = NoInfer<StateType> extends readonly object[]\n ? string\n : keyof NoInfer<StateType>,\n>(\n context: InsertionFormFactoryContext<\n StateType,\n PreviousInsertionsOutputs,\n FormIdentifier\n >,\n name: Name,\n insertion1: InsertionsFormFactory<\n SelectedFormTreeTarget<StateType, Name>,\n FormIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n): SelectFormTreeOutput<StateType, Name, [Insertion1]>;\n\n// =====================================================================\n// Implementation\n// =====================================================================\n\nexport function selectFormTree(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: InsertionFormFactoryContext<any, any, any>,\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertion1: InsertionsFormFactory<any, any, any, any>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n const currentState = rawReactiveValue(context.state)();\n if (Array.isArray(currentState)) {\n return createArrayItemRuntime(name, [insertion1])(context);\n }\n return createObjectRuntime(name, [insertion1])(context);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-sub-form-field.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-sub-form-field.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,cAAc,CAAC;AAGtB,KAAK,eAAe,CAClB,UAAU,SAAS,SAAS,OAAO,EAAE,EACrC,GAAG,GAAG,EAAE,IACN,UAAU,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACvD,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GACjC,GAAG,CAAC;AAER,KAAK,sBAAsB,CAAC,IAAI,SAAS,MAAM,IAAI,SAAS,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAE/E,KAAK,wBAAwB,CAC3B,GAAG,EACH,IAAI,SAAS,MAAM,EACnB,UAAU,SAAS,SAAS,OAAO,EAAE,IACnC;KACD,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAC9D;KAAE,EACF,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CACrD;CACF,CAAC;AAEF,KAAK,wBAAwB,CAC3B,MAAM,EACN,GAAG,EACH,IAAI,SAAS,MAAM,EACnB,cAAc,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EAChD,UAAU,SAAS,SAAS,OAAO,EAAE,EACrC,yBAAyB,IACvB,qBAAqB,CACvB,MAAM,EACN,cAAc,EACd,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,EAC/C,yBAAyB,CAC1B,CAAC;AASF,wBAAgB,kBAAkB,CAChC,MAAM,EACN,GAAG,EACH,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,cAAc,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAC1D,yBAAyB,GAAG,EAAE,EAE9B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,wBAAwB,CACzB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,cAAc,EACd;CAAE,EACF,yBAAyB,CAC1B,CAAC;AACF,wBAAgB,kBAAkB,CAChC,MAAM,EACN,GAAG,EACH,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,cAAc,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAC1D,UAAU,GAAG,EAAE,EACf,yBAAyB,GAAG,EAAE,EAE9B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,UAAU,EAAE,qBAAqB,CAC/B,GAAG,EACH,cAAc,EACd,UAAU,EACV,yBAAyB,CAC1B,GACA,wBAAwB,CACzB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,cAAc,EACd;IAAC,UAAU;CAAC,EACZ,yBAAyB,CAC1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert-sub-form-field.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/insert-sub-form-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAkB,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EACL,YAAY,GAIb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,+BAA+B,GAEhC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAqFpD,wEAAwE;AACxE,kBAAkB;AAClB,wEAAwE;AAExE,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,IAAiC;AACjC,8DAA8D;AAC9D,UAAsD;IAGtD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO;IACL,8DAA8D;IAC9D,OAAmD,EACnD,EAAE;QACF,MAAM,QAAQ,GAAG,yBAAyB,CACxC,MAAM,CAAC,QAAQ,CAAC,EAChB,WAAW,IAAI,EAAE,CAClB,CAAC;QACF,MAAM,UAAU,GAAG,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3E,IAAI,UAES,CAAC;QAEd,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC;YAElC,MAAM,QAAQ,GAAG,wBAAwB,CACvC,OAAO,CAAC,KAA2C,EACnD,IAAI,EACJ,IAAI,CACsB,CAAC;YAE7B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAC/B,OAAO,CAAC,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAE5D,UAAU,GAAG,YAAY,CAAC;gBACxB,aAAa,EAAE,OAAO;gBACtB,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,UAAU,EAAE,UAAmB;gBAC/B,QAAQ;aACT,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO;YACL,CAAC,UAAU,CAAC,EAAE,+BAA+B,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { inject, Injector } from '../host/craft-compat';\nimport { ɵcreateHostTaggedInjector } from '../craft-service';\nimport { CraftFieldTree, ɵgetOrCreateDerivedChild } from './craft-field';\nimport type { FieldLens } from './field-lens';\nimport {\n buildSubForm,\n type FormWithInsertions,\n type InsertionFormFactoryContext,\n type InsertionsFormFactory,\n} from './insert-form-internals';\nimport {\n markNonYieldableInsertionMethod,\n type NonYieldableInsertionMethod,\n} from '../yieldable';\nimport { rawReactiveValue } from '../reactive-read';\n\ntype MergeInsertions<\n Insertions extends readonly unknown[],\n Acc = {},\n> = Insertions extends readonly [infer Head, ...infer Tail]\n ? MergeInsertions<Tail, Acc & Head>\n : Acc;\n\ntype SubFormFieldMethodName<Name extends string> = `select${Capitalize<Name>}`;\n\ntype InsertSubFormFieldOutput<\n Sub,\n Name extends string,\n Insertions extends readonly unknown[],\n> = {\n [K in SubFormFieldMethodName<Name>]: NonYieldableInsertionMethod<\n [],\n FormWithInsertions<Sub, MergeInsertions<Insertions>>\n >;\n};\n\ntype InsertSubFormFieldReturn<\n Source,\n Sub,\n Name extends string,\n FormIdentifier extends string | number | unknown,\n Insertions extends readonly unknown[],\n PreviousInsertionsOutputs,\n> = InsertionsFormFactory<\n Source,\n FormIdentifier,\n InsertSubFormFieldOutput<Sub, Name, Insertions>,\n PreviousInsertionsOutputs\n>;\n\n// =====================================================================\n// Public API\n// =====================================================================\n//\n// At most one insertion slot — to compose several insertions, use `craftPipe`\n// inside that slot: `insertSubFormField('name', lens, (context) => craftPipe(context, m1, m2))`.\n\nexport function insertSubFormField<\n Source,\n Sub,\n const Name extends string,\n FormIdentifier extends string | number | unknown = unknown,\n PreviousInsertionsOutputs = {},\n>(\n name: Name,\n lens: FieldLens<Source, Sub>,\n): InsertSubFormFieldReturn<\n Source,\n Sub,\n Name,\n FormIdentifier,\n [],\n PreviousInsertionsOutputs\n>;\nexport function insertSubFormField<\n Source,\n Sub,\n const Name extends string,\n FormIdentifier extends string | number | unknown = unknown,\n Insertion1 = {},\n PreviousInsertionsOutputs = {},\n>(\n name: Name,\n lens: FieldLens<Source, Sub>,\n insertion1: InsertionsFormFactory<\n Sub,\n FormIdentifier,\n Insertion1,\n PreviousInsertionsOutputs\n >,\n): InsertSubFormFieldReturn<\n Source,\n Sub,\n Name,\n FormIdentifier,\n [Insertion1],\n PreviousInsertionsOutputs\n>;\n\n// =====================================================================\n// Implementation\n// =====================================================================\n\nexport function insertSubFormField(\n name: string,\n lens: FieldLens<unknown, unknown>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n insertion1?: InsertionsFormFactory<any, any, any, any>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): InsertionsFormFactory<any, any, any, any> {\n const insertions = insertion1 ? [insertion1] : [];\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: InsertionFormFactoryContext<any, any, any>,\n ) => {\n const injector = ɵcreateHostTaggedInjector(\n inject(Injector),\n `subForm:${name}`,\n );\n const methodName = `select${name.charAt(0).toUpperCase()}${name.slice(1)}`;\n\n let cachedForm:\n | FormWithInsertions<unknown, Record<string, unknown>>\n | undefined;\n\n const buildIfNeeded = () => {\n if (cachedForm) return cachedForm;\n\n const subField = ɵgetOrCreateDerivedChild(\n context.field as unknown as CraftFieldTree<unknown>,\n name,\n lens,\n ) as CraftFieldTree<unknown>;\n\n const subState = () => lens.read(rawReactiveValue(context.state)());\n const setSub = (next: unknown) =>\n context.update((curr: unknown) => lens.write(curr, next));\n\n cachedForm = buildSubForm({\n parentContext: context,\n subField,\n subState,\n setSub,\n insertions: insertions as never,\n injector,\n });\n\n return cachedForm;\n };\n\n return {\n [methodName]: markNonYieldableInsertionMethod(() => buildIfNeeded()),\n };\n };\n}\n"]}