@cohesivesystems/presentation-core 0.1.0-alpha.1

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 (447) hide show
  1. package/LICENSE +55 -0
  2. package/dist/api-scope-request.d.ts +43 -0
  3. package/dist/api-scope-request.d.ts.map +1 -0
  4. package/dist/api-scope-request.js +96 -0
  5. package/dist/api-scope-request.js.map +1 -0
  6. package/dist/collection-chrome-icons.d.ts +18 -0
  7. package/dist/collection-chrome-icons.d.ts.map +1 -0
  8. package/dist/collection-chrome-icons.js +57 -0
  9. package/dist/collection-chrome-icons.js.map +1 -0
  10. package/dist/collection-chrome-runtime.d.ts +25 -0
  11. package/dist/collection-chrome-runtime.d.ts.map +1 -0
  12. package/dist/collection-chrome-runtime.js +72 -0
  13. package/dist/collection-chrome-runtime.js.map +1 -0
  14. package/dist/collection-chrome-slot-renderer-registry.d.ts +110 -0
  15. package/dist/collection-chrome-slot-renderer-registry.d.ts.map +1 -0
  16. package/dist/collection-chrome-slot-renderer-registry.js +136 -0
  17. package/dist/collection-chrome-slot-renderer-registry.js.map +1 -0
  18. package/dist/collection-selection-state.d.ts +18 -0
  19. package/dist/collection-selection-state.d.ts.map +1 -0
  20. package/dist/collection-selection-state.js +2 -0
  21. package/dist/collection-selection-state.js.map +1 -0
  22. package/dist/data-source-projection.d.ts +475 -0
  23. package/dist/data-source-projection.d.ts.map +1 -0
  24. package/dist/data-source-projection.js +880 -0
  25. package/dist/data-source-projection.js.map +1 -0
  26. package/dist/data-source-query-lowering.d.ts +35 -0
  27. package/dist/data-source-query-lowering.d.ts.map +1 -0
  28. package/dist/data-source-query-lowering.js +104 -0
  29. package/dist/data-source-query-lowering.js.map +1 -0
  30. package/dist/date-time-filter-model.d.ts +20 -0
  31. package/dist/date-time-filter-model.d.ts.map +1 -0
  32. package/dist/date-time-filter-model.js +115 -0
  33. package/dist/date-time-filter-model.js.map +1 -0
  34. package/dist/document-badge-icons.d.ts +4 -0
  35. package/dist/document-badge-icons.d.ts.map +1 -0
  36. package/dist/document-badge-icons.js +4 -0
  37. package/dist/document-badge-icons.js.map +1 -0
  38. package/dist/document-module.d.ts +268 -0
  39. package/dist/document-module.d.ts.map +1 -0
  40. package/dist/document-module.js +347 -0
  41. package/dist/document-module.js.map +1 -0
  42. package/dist/document-summary-model.d.ts +2 -0
  43. package/dist/document-summary-model.d.ts.map +1 -0
  44. package/dist/document-summary-model.js +2 -0
  45. package/dist/document-summary-model.js.map +1 -0
  46. package/dist/document-workspace-chrome-projection.d.ts +18 -0
  47. package/dist/document-workspace-chrome-projection.d.ts.map +1 -0
  48. package/dist/document-workspace-chrome-projection.js +35 -0
  49. package/dist/document-workspace-chrome-projection.js.map +1 -0
  50. package/dist/document-workspace-surface-slots.d.ts +75 -0
  51. package/dist/document-workspace-surface-slots.d.ts.map +1 -0
  52. package/dist/document-workspace-surface-slots.js +268 -0
  53. package/dist/document-workspace-surface-slots.js.map +1 -0
  54. package/dist/endpoint-executor.d.ts +62 -0
  55. package/dist/endpoint-executor.d.ts.map +1 -0
  56. package/dist/endpoint-executor.js +35 -0
  57. package/dist/endpoint-executor.js.map +1 -0
  58. package/dist/field-display-resolution.d.ts +5 -0
  59. package/dist/field-display-resolution.d.ts.map +1 -0
  60. package/dist/field-display-resolution.js +50 -0
  61. package/dist/field-display-resolution.js.map +1 -0
  62. package/dist/index.d.ts +90 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +89 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/module.d.ts +48 -0
  67. package/dist/module.d.ts.map +1 -0
  68. package/dist/module.js +108 -0
  69. package/dist/module.js.map +1 -0
  70. package/dist/navigation-shell-frame-renderer-registry.d.ts +12 -0
  71. package/dist/navigation-shell-frame-renderer-registry.d.ts.map +1 -0
  72. package/dist/navigation-shell-frame-renderer-registry.js +29 -0
  73. package/dist/navigation-shell-frame-renderer-registry.js.map +1 -0
  74. package/dist/navigation-shell-layout-runtime.d.ts +29 -0
  75. package/dist/navigation-shell-layout-runtime.d.ts.map +1 -0
  76. package/dist/navigation-shell-layout-runtime.js +50 -0
  77. package/dist/navigation-shell-layout-runtime.js.map +1 -0
  78. package/dist/navigation-shell-region-component-registry.d.ts +96 -0
  79. package/dist/navigation-shell-region-component-registry.d.ts.map +1 -0
  80. package/dist/navigation-shell-region-component-registry.js +108 -0
  81. package/dist/navigation-shell-region-component-registry.js.map +1 -0
  82. package/dist/navigation-shell-runtime.d.ts +48 -0
  83. package/dist/navigation-shell-runtime.d.ts.map +1 -0
  84. package/dist/navigation-shell-runtime.js +457 -0
  85. package/dist/navigation-shell-runtime.js.map +1 -0
  86. package/dist/navigation-shell-slot-renderer-registry.d.ts +15 -0
  87. package/dist/navigation-shell-slot-renderer-registry.d.ts.map +1 -0
  88. package/dist/navigation-shell-slot-renderer-registry.js +48 -0
  89. package/dist/navigation-shell-slot-renderer-registry.js.map +1 -0
  90. package/dist/navigation.d.ts +84 -0
  91. package/dist/navigation.d.ts.map +1 -0
  92. package/dist/navigation.js +167 -0
  93. package/dist/navigation.js.map +1 -0
  94. package/dist/object-path.d.ts +23 -0
  95. package/dist/object-path.d.ts.map +1 -0
  96. package/dist/object-path.js +63 -0
  97. package/dist/object-path.js.map +1 -0
  98. package/dist/page-host-renderer-registry.d.ts +119 -0
  99. package/dist/page-host-renderer-registry.d.ts.map +1 -0
  100. package/dist/page-host-renderer-registry.js +305 -0
  101. package/dist/page-host-renderer-registry.js.map +1 -0
  102. package/dist/presentation-action-endpoint-request-projection.d.ts +23 -0
  103. package/dist/presentation-action-endpoint-request-projection.d.ts.map +1 -0
  104. package/dist/presentation-action-endpoint-request-projection.js +117 -0
  105. package/dist/presentation-action-endpoint-request-projection.js.map +1 -0
  106. package/dist/presentation-action-endpoint.d.ts +24 -0
  107. package/dist/presentation-action-endpoint.d.ts.map +1 -0
  108. package/dist/presentation-action-endpoint.js +56 -0
  109. package/dist/presentation-action-endpoint.js.map +1 -0
  110. package/dist/presentation-action-icons.d.ts +4 -0
  111. package/dist/presentation-action-icons.d.ts.map +1 -0
  112. package/dist/presentation-action-icons.js +4 -0
  113. package/dist/presentation-action-icons.js.map +1 -0
  114. package/dist/presentation-action-result-state.d.ts +48 -0
  115. package/dist/presentation-action-result-state.d.ts.map +1 -0
  116. package/dist/presentation-action-result-state.js +109 -0
  117. package/dist/presentation-action-result-state.js.map +1 -0
  118. package/dist/presentation-action-runtime-binding.d.ts +48 -0
  119. package/dist/presentation-action-runtime-binding.d.ts.map +1 -0
  120. package/dist/presentation-action-runtime-binding.js +52 -0
  121. package/dist/presentation-action-runtime-binding.js.map +1 -0
  122. package/dist/presentation-action-runtime-diagnostics.d.ts +18 -0
  123. package/dist/presentation-action-runtime-diagnostics.d.ts.map +1 -0
  124. package/dist/presentation-action-runtime-diagnostics.js +69 -0
  125. package/dist/presentation-action-runtime-diagnostics.js.map +1 -0
  126. package/dist/presentation-action-runtime-labels.d.ts +15 -0
  127. package/dist/presentation-action-runtime-labels.d.ts.map +1 -0
  128. package/dist/presentation-action-runtime-labels.js +28 -0
  129. package/dist/presentation-action-runtime-labels.js.map +1 -0
  130. package/dist/presentation-action-runtime-projection.d.ts +17 -0
  131. package/dist/presentation-action-runtime-projection.d.ts.map +1 -0
  132. package/dist/presentation-action-runtime-projection.js +31 -0
  133. package/dist/presentation-action-runtime-projection.js.map +1 -0
  134. package/dist/presentation-badge-resolution.d.ts +8 -0
  135. package/dist/presentation-badge-resolution.d.ts.map +1 -0
  136. package/dist/presentation-badge-resolution.js +73 -0
  137. package/dist/presentation-badge-resolution.js.map +1 -0
  138. package/dist/presentation-collection-pagination.d.ts +32 -0
  139. package/dist/presentation-collection-pagination.d.ts.map +1 -0
  140. package/dist/presentation-collection-pagination.js +275 -0
  141. package/dist/presentation-collection-pagination.js.map +1 -0
  142. package/dist/presentation-content-diagnostics.d.ts +17 -0
  143. package/dist/presentation-content-diagnostics.d.ts.map +1 -0
  144. package/dist/presentation-content-diagnostics.js +61 -0
  145. package/dist/presentation-content-diagnostics.js.map +1 -0
  146. package/dist/presentation-content-resolution.d.ts +9 -0
  147. package/dist/presentation-content-resolution.d.ts.map +1 -0
  148. package/dist/presentation-content-resolution.js +19 -0
  149. package/dist/presentation-content-resolution.js.map +1 -0
  150. package/dist/presentation-data-source-binding-model.d.ts +81 -0
  151. package/dist/presentation-data-source-binding-model.d.ts.map +1 -0
  152. package/dist/presentation-data-source-binding-model.js +56 -0
  153. package/dist/presentation-data-source-binding-model.js.map +1 -0
  154. package/dist/presentation-data-source-runtime.d.ts +62 -0
  155. package/dist/presentation-data-source-runtime.d.ts.map +1 -0
  156. package/dist/presentation-data-source-runtime.js +80 -0
  157. package/dist/presentation-data-source-runtime.js.map +1 -0
  158. package/dist/presentation-design-intent-diagnostics.d.ts +25 -0
  159. package/dist/presentation-design-intent-diagnostics.d.ts.map +1 -0
  160. package/dist/presentation-design-intent-diagnostics.js +55 -0
  161. package/dist/presentation-design-intent-diagnostics.js.map +1 -0
  162. package/dist/presentation-icon-diagnostics.d.ts +45 -0
  163. package/dist/presentation-icon-diagnostics.d.ts.map +1 -0
  164. package/dist/presentation-icon-diagnostics.js +235 -0
  165. package/dist/presentation-icon-diagnostics.js.map +1 -0
  166. package/dist/presentation-icon-registry.d.ts +36 -0
  167. package/dist/presentation-icon-registry.d.ts.map +1 -0
  168. package/dist/presentation-icon-registry.js +81 -0
  169. package/dist/presentation-icon-registry.js.map +1 -0
  170. package/dist/presentation-navigation-action-runtime-bindings.d.ts +13 -0
  171. package/dist/presentation-navigation-action-runtime-bindings.d.ts.map +1 -0
  172. package/dist/presentation-navigation-action-runtime-bindings.js +29 -0
  173. package/dist/presentation-navigation-action-runtime-bindings.js.map +1 -0
  174. package/dist/presentation-pagination.d.ts +98 -0
  175. package/dist/presentation-pagination.d.ts.map +1 -0
  176. package/dist/presentation-pagination.js +427 -0
  177. package/dist/presentation-pagination.js.map +1 -0
  178. package/dist/presentation-projection-coverage.d.ts +38 -0
  179. package/dist/presentation-projection-coverage.d.ts.map +1 -0
  180. package/dist/presentation-projection-coverage.js +2429 -0
  181. package/dist/presentation-projection-coverage.js.map +1 -0
  182. package/dist/presentation-projection-diagnostics.d.ts +33 -0
  183. package/dist/presentation-projection-diagnostics.d.ts.map +1 -0
  184. package/dist/presentation-projection-diagnostics.js +17 -0
  185. package/dist/presentation-projection-diagnostics.js.map +1 -0
  186. package/dist/presentation-projection-trace.d.ts +97 -0
  187. package/dist/presentation-projection-trace.d.ts.map +1 -0
  188. package/dist/presentation-projection-trace.js +110 -0
  189. package/dist/presentation-projection-trace.js.map +1 -0
  190. package/dist/presentation-query-form-state.d.ts +15 -0
  191. package/dist/presentation-query-form-state.d.ts.map +1 -0
  192. package/dist/presentation-query-form-state.js +20 -0
  193. package/dist/presentation-query-form-state.js.map +1 -0
  194. package/dist/presentation-renderer-registry.d.ts +86 -0
  195. package/dist/presentation-renderer-registry.d.ts.map +1 -0
  196. package/dist/presentation-renderer-registry.js +108 -0
  197. package/dist/presentation-renderer-registry.js.map +1 -0
  198. package/dist/presentation-semantics.d.ts +288 -0
  199. package/dist/presentation-semantics.d.ts.map +1 -0
  200. package/dist/presentation-semantics.js +560 -0
  201. package/dist/presentation-semantics.js.map +1 -0
  202. package/dist/presentation-standards.d.ts +8 -0
  203. package/dist/presentation-standards.d.ts.map +1 -0
  204. package/dist/presentation-standards.js +9 -0
  205. package/dist/presentation-standards.js.map +1 -0
  206. package/dist/presentation-test-selectors.d.ts +146 -0
  207. package/dist/presentation-test-selectors.d.ts.map +1 -0
  208. package/dist/presentation-test-selectors.js +113 -0
  209. package/dist/presentation-test-selectors.js.map +1 -0
  210. package/dist/presentation-value-formatting.d.ts +12 -0
  211. package/dist/presentation-value-formatting.d.ts.map +1 -0
  212. package/dist/presentation-value-formatting.js +33 -0
  213. package/dist/presentation-value-formatting.js.map +1 -0
  214. package/dist/presentation-value-resolution.d.ts +7 -0
  215. package/dist/presentation-value-resolution.d.ts.map +1 -0
  216. package/dist/presentation-value-resolution.js +69 -0
  217. package/dist/presentation-value-resolution.js.map +1 -0
  218. package/dist/presentation-view-tree.d.ts +6 -0
  219. package/dist/presentation-view-tree.d.ts.map +1 -0
  220. package/dist/presentation-view-tree.js +15 -0
  221. package/dist/presentation-view-tree.js.map +1 -0
  222. package/dist/process-task-model.d.ts +80 -0
  223. package/dist/process-task-model.d.ts.map +1 -0
  224. package/dist/process-task-model.js +52 -0
  225. package/dist/process-task-model.js.map +1 -0
  226. package/dist/process-task-projection.d.ts +46 -0
  227. package/dist/process-task-projection.d.ts.map +1 -0
  228. package/dist/process-task-projection.js +233 -0
  229. package/dist/process-task-projection.js.map +1 -0
  230. package/dist/projected-action-status-projection.d.ts +18 -0
  231. package/dist/projected-action-status-projection.d.ts.map +1 -0
  232. package/dist/projected-action-status-projection.js +19 -0
  233. package/dist/projected-action-status-projection.js.map +1 -0
  234. package/dist/projected-activity-state-model.d.ts +22 -0
  235. package/dist/projected-activity-state-model.d.ts.map +1 -0
  236. package/dist/projected-activity-state-model.js +87 -0
  237. package/dist/projected-activity-state-model.js.map +1 -0
  238. package/dist/projected-collection-action-runtime-bindings.d.ts +12 -0
  239. package/dist/projected-collection-action-runtime-bindings.d.ts.map +1 -0
  240. package/dist/projected-collection-action-runtime-bindings.js +37 -0
  241. package/dist/projected-collection-action-runtime-bindings.js.map +1 -0
  242. package/dist/projected-collection-action-runtime-diagnostics.d.ts +23 -0
  243. package/dist/projected-collection-action-runtime-diagnostics.d.ts.map +1 -0
  244. package/dist/projected-collection-action-runtime-diagnostics.js +168 -0
  245. package/dist/projected-collection-action-runtime-diagnostics.js.map +1 -0
  246. package/dist/projected-collection-runtime.d.ts +475 -0
  247. package/dist/projected-collection-runtime.d.ts.map +1 -0
  248. package/dist/projected-collection-runtime.js +832 -0
  249. package/dist/projected-collection-runtime.js.map +1 -0
  250. package/dist/projected-document-action-diagnostics.d.ts +16 -0
  251. package/dist/projected-document-action-diagnostics.d.ts.map +1 -0
  252. package/dist/projected-document-action-diagnostics.js +113 -0
  253. package/dist/projected-document-action-diagnostics.js.map +1 -0
  254. package/dist/projected-document-action-enablements.d.ts +25 -0
  255. package/dist/projected-document-action-enablements.d.ts.map +1 -0
  256. package/dist/projected-document-action-enablements.js +38 -0
  257. package/dist/projected-document-action-enablements.js.map +1 -0
  258. package/dist/projected-document-action-projection.d.ts +45 -0
  259. package/dist/projected-document-action-projection.d.ts.map +1 -0
  260. package/dist/projected-document-action-projection.js +201 -0
  261. package/dist/projected-document-action-projection.js.map +1 -0
  262. package/dist/projected-document-action-runtime-profile-diagnostics.d.ts +16 -0
  263. package/dist/projected-document-action-runtime-profile-diagnostics.d.ts.map +1 -0
  264. package/dist/projected-document-action-runtime-profile-diagnostics.js +168 -0
  265. package/dist/projected-document-action-runtime-profile-diagnostics.js.map +1 -0
  266. package/dist/projected-document-action-runtime-profile.d.ts +64 -0
  267. package/dist/projected-document-action-runtime-profile.d.ts.map +1 -0
  268. package/dist/projected-document-action-runtime-profile.js +33 -0
  269. package/dist/projected-document-action-runtime-profile.js.map +1 -0
  270. package/dist/projected-document-action-status-notice-diagnostics.d.ts +10 -0
  271. package/dist/projected-document-action-status-notice-diagnostics.d.ts.map +1 -0
  272. package/dist/projected-document-action-status-notice-diagnostics.js +64 -0
  273. package/dist/projected-document-action-status-notice-diagnostics.js.map +1 -0
  274. package/dist/projected-document-badge-formatting.d.ts +2 -0
  275. package/dist/projected-document-badge-formatting.d.ts.map +1 -0
  276. package/dist/projected-document-badge-formatting.js +7 -0
  277. package/dist/projected-document-badge-formatting.js.map +1 -0
  278. package/dist/projected-document-editor-model.d.ts +4 -0
  279. package/dist/projected-document-editor-model.d.ts.map +1 -0
  280. package/dist/projected-document-editor-model.js +2 -0
  281. package/dist/projected-document-editor-model.js.map +1 -0
  282. package/dist/projected-document-field-navigation.d.ts +72 -0
  283. package/dist/projected-document-field-navigation.d.ts.map +1 -0
  284. package/dist/projected-document-field-navigation.js +143 -0
  285. package/dist/projected-document-field-navigation.js.map +1 -0
  286. package/dist/projected-document-field-semantics.d.ts +5 -0
  287. package/dist/projected-document-field-semantics.d.ts.map +1 -0
  288. package/dist/projected-document-field-semantics.js +16 -0
  289. package/dist/projected-document-field-semantics.js.map +1 -0
  290. package/dist/projected-document-workspace-data-source-bindings.d.ts +69 -0
  291. package/dist/projected-document-workspace-data-source-bindings.d.ts.map +1 -0
  292. package/dist/projected-document-workspace-data-source-bindings.js +81 -0
  293. package/dist/projected-document-workspace-data-source-bindings.js.map +1 -0
  294. package/dist/projected-document-workspace-notice-diagnostics.d.ts +12 -0
  295. package/dist/projected-document-workspace-notice-diagnostics.d.ts.map +1 -0
  296. package/dist/projected-document-workspace-notice-diagnostics.js +13 -0
  297. package/dist/projected-document-workspace-notice-diagnostics.js.map +1 -0
  298. package/dist/projected-input-form-runtime.d.ts +62 -0
  299. package/dist/projected-input-form-runtime.d.ts.map +1 -0
  300. package/dist/projected-input-form-runtime.js +2 -0
  301. package/dist/projected-input-form-runtime.js.map +1 -0
  302. package/dist/projected-process-task-notice-diagnostics.d.ts +13 -0
  303. package/dist/projected-process-task-notice-diagnostics.d.ts.map +1 -0
  304. package/dist/projected-process-task-notice-diagnostics.js +170 -0
  305. package/dist/projected-process-task-notice-diagnostics.js.map +1 -0
  306. package/dist/projected-query-form-runtime.d.ts +46 -0
  307. package/dist/projected-query-form-runtime.d.ts.map +1 -0
  308. package/dist/projected-query-form-runtime.js +2 -0
  309. package/dist/projected-query-form-runtime.js.map +1 -0
  310. package/dist/prompt-document-preview-projection.d.ts +46 -0
  311. package/dist/prompt-document-preview-projection.d.ts.map +1 -0
  312. package/dist/prompt-document-preview-projection.js +173 -0
  313. package/dist/prompt-document-preview-projection.js.map +1 -0
  314. package/dist/prompt-icons.d.ts +4 -0
  315. package/dist/prompt-icons.d.ts.map +1 -0
  316. package/dist/prompt-icons.js +4 -0
  317. package/dist/prompt-icons.js.map +1 -0
  318. package/dist/prompt-status-message-resolution.d.ts +18 -0
  319. package/dist/prompt-status-message-resolution.d.ts.map +1 -0
  320. package/dist/prompt-status-message-resolution.js +83 -0
  321. package/dist/prompt-status-message-resolution.js.map +1 -0
  322. package/dist/query-form-lowering.d.ts +16 -0
  323. package/dist/query-form-lowering.d.ts.map +1 -0
  324. package/dist/query-form-lowering.js +38 -0
  325. package/dist/query-form-lowering.js.map +1 -0
  326. package/dist/query-form-url-state.d.ts +44 -0
  327. package/dist/query-form-url-state.d.ts.map +1 -0
  328. package/dist/query-form-url-state.js +197 -0
  329. package/dist/query-form-url-state.js.map +1 -0
  330. package/dist/query-offset-page.d.ts +13 -0
  331. package/dist/query-offset-page.d.ts.map +1 -0
  332. package/dist/query-offset-page.js +24 -0
  333. package/dist/query-offset-page.js.map +1 -0
  334. package/dist/relation-query-input-form-target.d.ts +10 -0
  335. package/dist/relation-query-input-form-target.d.ts.map +1 -0
  336. package/dist/relation-query-input-form-target.js +30 -0
  337. package/dist/relation-query-input-form-target.js.map +1 -0
  338. package/dist/scope-selection.d.ts +94 -0
  339. package/dist/scope-selection.d.ts.map +1 -0
  340. package/dist/scope-selection.js +95 -0
  341. package/dist/scope-selection.js.map +1 -0
  342. package/dist/target-bindings.d.ts +39 -0
  343. package/dist/target-bindings.d.ts.map +1 -0
  344. package/dist/target-bindings.js +40 -0
  345. package/dist/target-bindings.js.map +1 -0
  346. package/dist/view-chrome-content-diagnostics.d.ts +8 -0
  347. package/dist/view-chrome-content-diagnostics.d.ts.map +1 -0
  348. package/dist/view-chrome-content-diagnostics.js +84 -0
  349. package/dist/view-chrome-content-diagnostics.js.map +1 -0
  350. package/dist/view-chrome-icons.d.ts +12 -0
  351. package/dist/view-chrome-icons.d.ts.map +1 -0
  352. package/dist/view-chrome-icons.js +50 -0
  353. package/dist/view-chrome-icons.js.map +1 -0
  354. package/dist/view-chrome-slot-renderer-registry.d.ts +19 -0
  355. package/dist/view-chrome-slot-renderer-registry.d.ts.map +1 -0
  356. package/dist/view-chrome-slot-renderer-registry.js +62 -0
  357. package/dist/view-chrome-slot-renderer-registry.js.map +1 -0
  358. package/package.json +53 -0
  359. package/src/api-scope-request.ts +186 -0
  360. package/src/collection-chrome-icons.ts +89 -0
  361. package/src/collection-chrome-runtime.ts +151 -0
  362. package/src/collection-chrome-slot-renderer-registry.ts +227 -0
  363. package/src/collection-selection-state.ts +32 -0
  364. package/src/data-source-projection.ts +2149 -0
  365. package/src/data-source-query-lowering.ts +217 -0
  366. package/src/date-time-filter-model.ts +156 -0
  367. package/src/document-badge-icons.ts +3 -0
  368. package/src/document-module.ts +741 -0
  369. package/src/document-summary-model.ts +1 -0
  370. package/src/document-workspace-chrome-projection.ts +62 -0
  371. package/src/document-workspace-surface-slots.ts +458 -0
  372. package/src/endpoint-executor.ts +122 -0
  373. package/src/field-display-resolution.ts +99 -0
  374. package/src/index.ts +104 -0
  375. package/src/module.ts +281 -0
  376. package/src/navigation-shell-frame-renderer-registry.ts +65 -0
  377. package/src/navigation-shell-layout-runtime.ts +124 -0
  378. package/src/navigation-shell-region-component-registry.ts +242 -0
  379. package/src/navigation-shell-runtime.ts +579 -0
  380. package/src/navigation-shell-slot-renderer-registry.ts +94 -0
  381. package/src/navigation.ts +364 -0
  382. package/src/object-path.ts +99 -0
  383. package/src/page-host-renderer-registry.ts +615 -0
  384. package/src/presentation-action-endpoint-request-projection.ts +223 -0
  385. package/src/presentation-action-endpoint.ts +130 -0
  386. package/src/presentation-action-icons.ts +3 -0
  387. package/src/presentation-action-result-state.ts +189 -0
  388. package/src/presentation-action-runtime-binding.ts +177 -0
  389. package/src/presentation-action-runtime-diagnostics.ts +120 -0
  390. package/src/presentation-action-runtime-labels.ts +57 -0
  391. package/src/presentation-action-runtime-projection.ts +67 -0
  392. package/src/presentation-badge-resolution.ts +138 -0
  393. package/src/presentation-collection-pagination.ts +436 -0
  394. package/src/presentation-content-diagnostics.ts +121 -0
  395. package/src/presentation-content-resolution.ts +46 -0
  396. package/src/presentation-data-source-binding-model.ts +140 -0
  397. package/src/presentation-data-source-runtime.ts +190 -0
  398. package/src/presentation-design-intent-diagnostics.ts +104 -0
  399. package/src/presentation-icon-diagnostics.ts +368 -0
  400. package/src/presentation-icon-registry.ts +181 -0
  401. package/src/presentation-navigation-action-runtime-bindings.ts +54 -0
  402. package/src/presentation-pagination.ts +694 -0
  403. package/src/presentation-projection-coverage.ts +3257 -0
  404. package/src/presentation-projection-diagnostics.ts +71 -0
  405. package/src/presentation-projection-trace.ts +293 -0
  406. package/src/presentation-query-form-state.ts +54 -0
  407. package/src/presentation-renderer-registry.ts +269 -0
  408. package/src/presentation-semantics.ts +1028 -0
  409. package/src/presentation-standards.ts +14 -0
  410. package/src/presentation-test-selectors.ts +312 -0
  411. package/src/presentation-value-formatting.ts +65 -0
  412. package/src/presentation-value-resolution.ts +100 -0
  413. package/src/presentation-view-tree.ts +33 -0
  414. package/src/process-task-model.ts +158 -0
  415. package/src/process-task-projection.ts +398 -0
  416. package/src/projected-action-status-projection.ts +43 -0
  417. package/src/projected-activity-state-model.ts +123 -0
  418. package/src/projected-collection-action-runtime-bindings.ts +76 -0
  419. package/src/projected-collection-action-runtime-diagnostics.ts +289 -0
  420. package/src/projected-collection-runtime.ts +1772 -0
  421. package/src/projected-document-action-diagnostics.ts +196 -0
  422. package/src/projected-document-action-enablements.ts +99 -0
  423. package/src/projected-document-action-projection.ts +464 -0
  424. package/src/projected-document-action-runtime-profile-diagnostics.ts +250 -0
  425. package/src/projected-document-action-runtime-profile.ts +133 -0
  426. package/src/projected-document-action-status-notice-diagnostics.ts +116 -0
  427. package/src/projected-document-badge-formatting.ts +7 -0
  428. package/src/projected-document-editor-model.ts +7 -0
  429. package/src/projected-document-field-navigation.ts +300 -0
  430. package/src/projected-document-field-semantics.ts +27 -0
  431. package/src/projected-document-workspace-data-source-bindings.ts +182 -0
  432. package/src/projected-document-workspace-notice-diagnostics.ts +41 -0
  433. package/src/projected-input-form-runtime.ts +86 -0
  434. package/src/projected-process-task-notice-diagnostics.ts +283 -0
  435. package/src/projected-query-form-runtime.ts +62 -0
  436. package/src/prompt-document-preview-projection.ts +345 -0
  437. package/src/prompt-icons.ts +3 -0
  438. package/src/prompt-status-message-resolution.ts +158 -0
  439. package/src/query-form-lowering.ts +77 -0
  440. package/src/query-form-url-state.ts +346 -0
  441. package/src/query-offset-page.ts +50 -0
  442. package/src/relation-query-input-form-target.ts +61 -0
  443. package/src/scope-selection.ts +201 -0
  444. package/src/target-bindings.ts +123 -0
  445. package/src/view-chrome-content-diagnostics.ts +139 -0
  446. package/src/view-chrome-icons.ts +81 -0
  447. package/src/view-chrome-slot-renderer-registry.ts +128 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-summary-model.js","sourceRoot":"","sources":["../src/document-summary-model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yCAAyC,GAAG,mBAAmB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type PresentationModuleDefinition, type ViewDefinition } from './module.js';
2
+ /**
3
+ * Resolves document workspace metadata fields from page/header chrome.
4
+ *
5
+ * The document editor surface renders these same badge-strip field ids. Keeping
6
+ * this helper in the projection layer lets adapters build field renderers and
7
+ * diagnostics from the same IR locations instead of repeating view ids.
8
+ */
9
+ export declare function resolveDocumentWorkspaceMetadataFieldIds(module: Pick<PresentationModuleDefinition, 'Views'> | null, pageView: ViewDefinition | null): string[];
10
+ /**
11
+ * Resolves the page-region id used for document workspace header chrome.
12
+ *
13
+ * Profile-level notices target region ids, while page layout regions carry
14
+ * enum kinds. This helper keeps that cross-reference in the projection layer
15
+ * instead of repeating product constants in workspace hosts.
16
+ */
17
+ export declare function resolveDocumentWorkspaceHeaderRegionId(pageView: ViewDefinition | null): string | null;
18
+ //# sourceMappingURL=document-workspace-chrome-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-workspace-chrome-projection.d.ts","sourceRoot":"","sources":["../src/document-workspace-chrome-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACpB,MAAM,UAAU,CAAA;AAMjB;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,GAAG,IAAI,EAC1D,QAAQ,EAAE,cAAc,GAAG,IAAI,YAOhC;AAED;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,iBAGrF"}
@@ -0,0 +1,35 @@
1
+ import { findPresentationView, } from './module.js';
2
+ import { viewChromeSlotKinds, viewRegionKinds, } from '@cohesivesystems/presentation-contracts';
3
+ /**
4
+ * Resolves document workspace metadata fields from page/header chrome.
5
+ *
6
+ * The document editor surface renders these same badge-strip field ids. Keeping
7
+ * this helper in the projection layer lets adapters build field renderers and
8
+ * diagnostics from the same IR locations instead of repeating view ids.
9
+ */
10
+ export function resolveDocumentWorkspaceMetadataFieldIds(module, pageView) {
11
+ const headerView = findHostedView(module, pageView, viewRegionKinds.header, 'Header');
12
+ const badgeSlot = headerView?.Chrome?.Slots?.find((slot) => matchesEnum(slot.Kind, viewChromeSlotKinds.badgeStrip, 'BadgeStrip'));
13
+ return badgeSlot?.FieldIds ?? [];
14
+ }
15
+ /**
16
+ * Resolves the page-region id used for document workspace header chrome.
17
+ *
18
+ * Profile-level notices target region ids, while page layout regions carry
19
+ * enum kinds. This helper keeps that cross-reference in the projection layer
20
+ * instead of repeating product constants in workspace hosts.
21
+ */
22
+ export function resolveDocumentWorkspaceHeaderRegionId(pageView) {
23
+ return pageView?.Regions?.find((region) => matchesEnum(region.Kind, viewRegionKinds.header, 'Header'))?.Id ?? null;
24
+ }
25
+ function findHostedView(module, view, regionKind, regionKindLabel) {
26
+ const region = view?.Regions?.find((candidate) => matchesEnum(candidate.Kind, regionKind, regionKindLabel));
27
+ const viewId = region?.ViewIds?.[0];
28
+ return viewId ? findPresentationView(module, viewId) : null;
29
+ }
30
+ function matchesEnum(value, numericValue, label) {
31
+ return value === numericValue ||
32
+ String(value) === String(numericValue) ||
33
+ String(value) === label;
34
+ }
35
+ //# sourceMappingURL=document-workspace-chrome-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-workspace-chrome-projection.js","sourceRoot":"","sources":["../src/document-workspace-chrome-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAGrB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,yCAAyC,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,wCAAwC,CACtD,MAA0D,EAC1D,QAA+B;IAE/B,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzD,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;IAEvE,OAAO,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CAAC,QAA+B;IACpF,OAAO,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAA;AAC3E,CAAC;AAED,SAAS,cAAc,CACrB,MAA0D,EAC1D,IAA2B,EAC3B,UAA2B,EAC3B,eAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/C,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC;AAED,SAAS,WAAW,CAClB,KAAyC,EACzC,YAA6B,EAC7B,KAAa;IAEb,OAAO,KAAK,KAAK,YAAY;QAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;AAC3B,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { type PresentationBindingDefinition, type PresentationModuleDefinition, type ViewDefinition, type ViewRegionDefinition, type WorkspaceDefinition } from './module.js';
2
+ import { type PresentationProjectionDiagnostic } from './presentation-projection-diagnostics.js';
3
+ export interface DocumentWorkspaceSurfaceSlotDescriptor {
4
+ readonly expectsHostedView: boolean;
5
+ readonly id: string;
6
+ readonly regionKind?: string | number | null;
7
+ readonly regionKindLabel?: string;
8
+ readonly role: string | number;
9
+ readonly roleLabel?: string;
10
+ readonly renderer?: PresentationBindingDefinition | null;
11
+ }
12
+ export interface ResolvedDocumentWorkspaceSurfaceSlot {
13
+ readonly descriptor: DocumentWorkspaceSurfaceSlotDescriptor;
14
+ readonly expectsHostedView: boolean;
15
+ readonly id: string;
16
+ readonly region: ViewRegionDefinition | null;
17
+ readonly role: string | number;
18
+ readonly roleLabel?: string;
19
+ readonly renderer?: PresentationBindingDefinition | null;
20
+ readonly view: ViewDefinition | null;
21
+ }
22
+ export interface ResolvedDocumentWorkspaceSurfaceSlots {
23
+ readonly all: readonly ResolvedDocumentWorkspaceSurfaceSlot[];
24
+ readonly auxiliary: ResolvedDocumentWorkspaceSurfaceSlot;
25
+ readonly header: ResolvedDocumentWorkspaceSurfaceSlot;
26
+ readonly primarySurface: ResolvedDocumentWorkspaceSurfaceSlot;
27
+ }
28
+ export declare const documentWorkspaceSurfaceSlotRoleKeys: {
29
+ readonly header: "header";
30
+ readonly primarySurface: "primarySurface";
31
+ readonly auxiliary: "auxiliary";
32
+ readonly custom: "custom";
33
+ };
34
+ export declare const documentWorkspaceSurfaceSlotIds: {
35
+ readonly auxiliary: "auxiliary";
36
+ readonly header: "header";
37
+ readonly workspace: "workspace";
38
+ };
39
+ export declare const documentWorkspaceSurfaceSlotDescriptors: {
40
+ readonly header: {
41
+ readonly expectsHostedView: true;
42
+ readonly id: "header";
43
+ readonly regionKind: 2;
44
+ readonly regionKindLabel: string;
45
+ readonly role: 0;
46
+ readonly roleLabel: string;
47
+ readonly renderer: null;
48
+ };
49
+ readonly workspace: {
50
+ readonly expectsHostedView: true;
51
+ readonly id: "workspace";
52
+ readonly regionKind: 18;
53
+ readonly regionKindLabel: string;
54
+ readonly role: 1;
55
+ readonly roleLabel: string;
56
+ readonly renderer: null;
57
+ };
58
+ readonly auxiliary: {
59
+ readonly expectsHostedView: false;
60
+ readonly id: "auxiliary";
61
+ readonly role: 2;
62
+ readonly roleLabel: string;
63
+ readonly renderer: null;
64
+ };
65
+ };
66
+ export declare function resolveDocumentWorkspaceSurfaceSlots(module: Pick<PresentationModuleDefinition, 'Views'> | null, pageView: ViewDefinition | null, workspace?: Pick<WorkspaceDefinition, 'SurfaceSlots'> | null): ResolvedDocumentWorkspaceSurfaceSlots;
67
+ export declare function projectDocumentWorkspaceSurfaceSlotDiagnostics({ declaredSlots, pageView, renderedSlots, sourceId, }: {
68
+ readonly declaredSlots: readonly ResolvedDocumentWorkspaceSurfaceSlot[];
69
+ readonly pageView: ViewDefinition | null;
70
+ readonly renderedSlots: readonly ResolvedDocumentWorkspaceSurfaceSlot[];
71
+ readonly sourceId: string;
72
+ }): readonly PresentationProjectionDiagnostic[];
73
+ export declare function resolveDocumentWorkspaceSurfaceSlotRoleKey(role: string | number, roleLabel?: string): string;
74
+ export declare function isStandardDocumentWorkspaceSurfaceSlotRoleKey(roleKey: string): roleKey is "header" | "primarySurface" | "auxiliary";
75
+ //# sourceMappingURL=document-workspace-surface-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-workspace-surface-slots.d.ts","sourceRoot":"","sources":["../src/document-workspace-surface-slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAA;AACjB,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,uCAAuC,CAAA;AAQ9C,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAA;CACzD;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAA;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,6BAA6B,GAAG,IAAI,CAAA;IACxD,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,GAAG,EAAE,SAAS,oCAAoC,EAAE,CAAA;IAC7D,QAAQ,CAAC,SAAS,EAAE,oCAAoC,CAAA;IACxD,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAA;IACrD,QAAQ,CAAC,cAAc,EAAE,oCAAoC,CAAA;CAC9D;AAED,eAAO,MAAM,oCAAoC;;;;;CAKvC,CAAA;AAEV,eAAO,MAAM,+BAA+B;;;;CAIlC,CAAA;AAEV,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCuB,CAAA;AAE3E,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,GAAG,IAAI,EAC1D,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,SAAS,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,IAAI,GAC3D,qCAAqC,CAiCvC;AAED,wBAAgB,8CAA8C,CAAC,EAC7D,aAAa,EACb,QAAQ,EACR,aAAa,EACb,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,aAAa,EAAE,SAAS,oCAAoC,EAAE,CAAA;IACvE,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,oCAAoC,EAAE,CAAA;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GAAG,SAAS,gCAAgC,EAAE,CA2F9C;AAED,wBAAgB,0CAA0C,CACxD,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,UAiBnB;AAED,wBAAgB,6CAA6C,CAAC,OAAO,EAAE,MAAM,wDAM5E"}
@@ -0,0 +1,268 @@
1
+ import { findPresentationView, } from './module.js';
2
+ import { createPresentationProjectionDiagnostic, } from './presentation-projection-diagnostics.js';
3
+ import { documentWorkspaceSurfaceSlotRoleLabels, documentWorkspaceSurfaceSlotRoles, viewRegionKindLabels, viewRegionKinds, } from '@cohesivesystems/presentation-contracts';
4
+ export const documentWorkspaceSurfaceSlotRoleKeys = {
5
+ header: 'header',
6
+ primarySurface: 'primarySurface',
7
+ auxiliary: 'auxiliary',
8
+ custom: 'custom',
9
+ };
10
+ export const documentWorkspaceSurfaceSlotIds = {
11
+ auxiliary: 'auxiliary',
12
+ header: 'header',
13
+ workspace: 'workspace',
14
+ };
15
+ export const documentWorkspaceSurfaceSlotDescriptors = {
16
+ header: {
17
+ expectsHostedView: true,
18
+ id: documentWorkspaceSurfaceSlotIds.header,
19
+ regionKind: viewRegionKinds.header,
20
+ regionKindLabel: viewRegionKindLabels[viewRegionKinds.header],
21
+ role: documentWorkspaceSurfaceSlotRoles.header,
22
+ roleLabel: documentWorkspaceSurfaceSlotRoleLabels[documentWorkspaceSurfaceSlotRoles.header],
23
+ renderer: null,
24
+ },
25
+ workspace: {
26
+ expectsHostedView: true,
27
+ id: documentWorkspaceSurfaceSlotIds.workspace,
28
+ regionKind: viewRegionKinds.surface,
29
+ regionKindLabel: viewRegionKindLabels[viewRegionKinds.surface],
30
+ role: documentWorkspaceSurfaceSlotRoles.primarySurface,
31
+ roleLabel: documentWorkspaceSurfaceSlotRoleLabels[documentWorkspaceSurfaceSlotRoles.primarySurface],
32
+ renderer: null,
33
+ },
34
+ auxiliary: {
35
+ expectsHostedView: false,
36
+ id: documentWorkspaceSurfaceSlotIds.auxiliary,
37
+ role: documentWorkspaceSurfaceSlotRoles.auxiliary,
38
+ roleLabel: documentWorkspaceSurfaceSlotRoleLabels[documentWorkspaceSurfaceSlotRoles.auxiliary],
39
+ renderer: null,
40
+ },
41
+ };
42
+ export function resolveDocumentWorkspaceSurfaceSlots(module, pageView, workspace) {
43
+ const descriptors = resolveDocumentWorkspaceSurfaceSlotDescriptors(workspace);
44
+ const resolvedSlots = descriptors.map((descriptor) => resolveDocumentWorkspaceSurfaceSlot(module, pageView, descriptor));
45
+ const header = resolveDocumentWorkspaceSurfaceSlotByRole(resolvedSlots, module, pageView, documentWorkspaceSurfaceSlotDescriptors.header);
46
+ const primarySurface = resolveDocumentWorkspaceSurfaceSlotByRole(resolvedSlots, module, pageView, documentWorkspaceSurfaceSlotDescriptors.workspace);
47
+ const auxiliary = resolveDocumentWorkspaceSurfaceSlotByRole(resolvedSlots, module, pageView, documentWorkspaceSurfaceSlotDescriptors.auxiliary);
48
+ return {
49
+ all: resolvedSlots,
50
+ auxiliary,
51
+ header,
52
+ primarySurface,
53
+ };
54
+ }
55
+ export function projectDocumentWorkspaceSurfaceSlotDiagnostics({ declaredSlots, pageView, renderedSlots, sourceId, }) {
56
+ const diagnostics = [];
57
+ const declaredSlotIds = new Set(declaredSlots.map((slot) => slot.id));
58
+ const renderedSlotIds = new Set(renderedSlots.map((slot) => slot.id));
59
+ diagnostics.push(...projectDuplicateDocumentWorkspaceSurfaceSlotRoleDiagnostics({
60
+ declaredSlots,
61
+ sourceId,
62
+ }));
63
+ for (const slotId of declaredSlotIds) {
64
+ if (!renderedSlotIds.has(slotId)) {
65
+ diagnostics.push(createPresentationProjectionDiagnostic({
66
+ category: 'incomplete-projection',
67
+ id: `document-workspace-surface-slot:${slotId}:not-rendered`,
68
+ interpretation: {
69
+ status: 'unbound',
70
+ target: 'react',
71
+ },
72
+ message: `Document workspace surface slot '${slotId}' is declared but is not rendered by the ` +
73
+ 'document editor surface interpreter.',
74
+ severity: 'warning',
75
+ source: sourceId,
76
+ subject: {
77
+ id: slotId,
78
+ kind: 'document-workspace-surface-slot',
79
+ },
80
+ suggestedNextStep: 'Bind a surface-slot renderer for this slot role or remove it from the workspace SurfaceSlots IR.',
81
+ }));
82
+ }
83
+ }
84
+ for (const slot of distinctDocumentWorkspaceSurfaceSlots([
85
+ ...declaredSlots,
86
+ ...renderedSlots,
87
+ ])) {
88
+ if (slot.expectsHostedView && !slot.view) {
89
+ diagnostics.push(createPresentationProjectionDiagnostic({
90
+ category: 'missing-definition',
91
+ details: {
92
+ pageViewId: pageView?.Id ?? null,
93
+ regionId: slot.region?.Id ?? null,
94
+ role: resolveDocumentWorkspaceSurfaceSlotRoleKey(slot.role, slot.roleLabel),
95
+ },
96
+ id: `document-workspace-surface-slot:${slot.id}:missing-hosted-view`,
97
+ interpretation: {
98
+ status: 'unbound',
99
+ target: 'react',
100
+ },
101
+ message: `Document workspace surface slot '${slot.id}' requires a hosted view but has no ` +
102
+ 'hosted view on the page view.',
103
+ severity: 'warning',
104
+ source: sourceId,
105
+ subject: {
106
+ id: slot.id,
107
+ kind: 'document-workspace-surface-slot',
108
+ },
109
+ suggestedNextStep: 'Declare a page region with the expected ViewRegionKind and a hosted view id for this slot.',
110
+ }));
111
+ }
112
+ }
113
+ for (const slot of renderedSlots) {
114
+ if (!declaredSlotIds.has(slot.id)) {
115
+ diagnostics.push(createPresentationProjectionDiagnostic({
116
+ category: 'local-interpretation',
117
+ id: `document-workspace-surface-slot:${slot.id}:fallback`,
118
+ interpretation: {
119
+ status: 'locally-interpreted',
120
+ target: 'react',
121
+ },
122
+ message: `Document workspace surface slot '${slot.id}' is rendered through the default ` +
123
+ 'surface-slot fallback because it is not declared on the workspace SurfaceSlots IR.',
124
+ severity: 'info',
125
+ source: sourceId,
126
+ subject: {
127
+ id: slot.id,
128
+ kind: 'document-workspace-surface-slot',
129
+ },
130
+ suggestedNextStep: 'Add this slot to the workspace SurfaceSlots declaration if it is a first-class slot.',
131
+ }));
132
+ }
133
+ }
134
+ return diagnostics;
135
+ }
136
+ export function resolveDocumentWorkspaceSurfaceSlotRoleKey(role, roleLabel) {
137
+ for (const [roleKey, roleValue] of Object.entries(documentWorkspaceSurfaceSlotRoles)) {
138
+ if (isEnumDiscriminator(role, roleValue, documentWorkspaceSurfaceSlotRoleLabels[roleValue])) {
139
+ return roleKey;
140
+ }
141
+ }
142
+ return normalizeEnumDiscriminator(roleLabel ?? role);
143
+ }
144
+ export function isStandardDocumentWorkspaceSurfaceSlotRoleKey(roleKey) {
145
+ return (roleKey === documentWorkspaceSurfaceSlotRoleKeys.header ||
146
+ roleKey === documentWorkspaceSurfaceSlotRoleKeys.primarySurface ||
147
+ roleKey === documentWorkspaceSurfaceSlotRoleKeys.auxiliary);
148
+ }
149
+ function resolveDocumentWorkspaceSurfaceSlotDescriptors(workspace) {
150
+ const slots = workspace?.SurfaceSlots ?? [];
151
+ if (slots.length === 0) {
152
+ return Object.values(documentWorkspaceSurfaceSlotDescriptors);
153
+ }
154
+ return slots.map(createDocumentWorkspaceSurfaceSlotDescriptor);
155
+ }
156
+ function createDocumentWorkspaceSurfaceSlotDescriptor(slot) {
157
+ const regionKind = slot.RegionKind ?? undefined;
158
+ return {
159
+ expectsHostedView: slot.RequiresHostedView,
160
+ id: slot.Id,
161
+ regionKind,
162
+ regionKindLabel: resolveViewRegionKindLabel(regionKind),
163
+ role: slot.Role,
164
+ roleLabel: resolveDocumentWorkspaceSurfaceSlotRoleLabel(slot.Role),
165
+ renderer: slot.Renderer ?? null,
166
+ };
167
+ }
168
+ function resolveDocumentWorkspaceSurfaceSlotByRole(resolvedSlots, module, pageView, fallbackDescriptor) {
169
+ return (resolvedSlots.find((slot) => isEnumDiscriminator(slot.role, fallbackDescriptor.role, fallbackDescriptor.roleLabel ?? String(fallbackDescriptor.role))) ??
170
+ resolveDocumentWorkspaceSurfaceSlot(module, pageView, fallbackDescriptor));
171
+ }
172
+ function resolveDocumentWorkspaceSurfaceSlot(module, pageView, descriptor) {
173
+ const regionKind = descriptor.regionKind;
174
+ const regionKindLabel = descriptor.regionKindLabel;
175
+ const region = regionKind === undefined || regionKind === null || regionKindLabel === undefined
176
+ ? null
177
+ : pageView?.Regions?.find((candidate) => isEnumDiscriminator(candidate.Kind, regionKind, regionKindLabel)) ?? null;
178
+ const viewId = region?.ViewIds?.[0];
179
+ return {
180
+ descriptor,
181
+ expectsHostedView: descriptor.expectsHostedView,
182
+ id: descriptor.id,
183
+ region,
184
+ role: descriptor.role,
185
+ roleLabel: descriptor.roleLabel,
186
+ renderer: descriptor.renderer ?? null,
187
+ view: viewId ? findPresentationView(module, viewId) : null,
188
+ };
189
+ }
190
+ function isEnumDiscriminator(value, expected, expectedLabel) {
191
+ const valueLabel = resolveViewRegionKindLabel(value);
192
+ return (value === expected ||
193
+ String(value) === String(expected) ||
194
+ (valueLabel !== undefined &&
195
+ normalizeEnumDiscriminator(valueLabel) === normalizeEnumDiscriminator(expectedLabel)) ||
196
+ normalizeEnumDiscriminator(value) === normalizeEnumDiscriminator(expectedLabel));
197
+ }
198
+ function normalizeEnumDiscriminator(value) {
199
+ return String(value).replace(/[-_\s]/g, '').toLocaleLowerCase();
200
+ }
201
+ function resolveViewRegionKindLabel(regionKind) {
202
+ if (regionKind === null || regionKind === undefined) {
203
+ return undefined;
204
+ }
205
+ if (typeof regionKind === 'number' &&
206
+ Object.prototype.hasOwnProperty.call(viewRegionKindLabels, regionKind)) {
207
+ return viewRegionKindLabels[regionKind];
208
+ }
209
+ return String(regionKind);
210
+ }
211
+ function resolveDocumentWorkspaceSurfaceSlotRoleLabel(role) {
212
+ if (role === null || role === undefined) {
213
+ return undefined;
214
+ }
215
+ if (typeof role === 'number' &&
216
+ Object.prototype.hasOwnProperty.call(documentWorkspaceSurfaceSlotRoleLabels, role)) {
217
+ return documentWorkspaceSurfaceSlotRoleLabels[role];
218
+ }
219
+ return String(role);
220
+ }
221
+ function projectDuplicateDocumentWorkspaceSurfaceSlotRoleDiagnostics({ declaredSlots, sourceId, }) {
222
+ const slotsByRoleKey = new Map();
223
+ for (const slot of declaredSlots) {
224
+ const roleKey = resolveDocumentWorkspaceSurfaceSlotRoleKey(slot.role, slot.roleLabel);
225
+ if (!isStandardDocumentWorkspaceSurfaceSlotRoleKey(roleKey)) {
226
+ continue;
227
+ }
228
+ const slots = slotsByRoleKey.get(roleKey) ?? [];
229
+ slots.push(slot);
230
+ slotsByRoleKey.set(roleKey, slots);
231
+ }
232
+ const diagnostics = [];
233
+ for (const [roleKey, slots] of slotsByRoleKey) {
234
+ if (slots.length <= 1) {
235
+ continue;
236
+ }
237
+ diagnostics.push(createPresentationProjectionDiagnostic({
238
+ category: 'incomplete-projection',
239
+ details: {
240
+ role: roleKey,
241
+ slotIds: slots.map((slot) => slot.id),
242
+ },
243
+ id: `document-workspace-surface-slot-role:${roleKey}:duplicate`,
244
+ interpretation: {
245
+ status: 'unbound',
246
+ target: 'react',
247
+ },
248
+ message: `Document workspace surface role '${roleKey}' is declared by multiple slots: ` +
249
+ slots.map((slot) => `'${slot.id}'`).join(', '),
250
+ severity: 'warning',
251
+ source: sourceId,
252
+ subject: {
253
+ id: roleKey,
254
+ kind: 'document-workspace-surface-slot-role',
255
+ },
256
+ suggestedNextStep: 'Keep one standard slot per role, or introduce a custom role with an explicit renderer.',
257
+ }));
258
+ }
259
+ return diagnostics;
260
+ }
261
+ function distinctDocumentWorkspaceSurfaceSlots(slots) {
262
+ const distinctSlots = new Map();
263
+ for (const slot of slots) {
264
+ distinctSlots.set(slot.id, slot);
265
+ }
266
+ return [...distinctSlots.values()];
267
+ }
268
+ //# sourceMappingURL=document-workspace-surface-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-workspace-surface-slots.js","sourceRoot":"","sources":["../src/document-workspace-surface-slots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Transport-neutral request envelope passed to an endpoint executor after a
3
+ * presentation runtime has projected semantic inputs into concrete API inputs.
4
+ *
5
+ * @typeParam TBody - Request body payload shape.
6
+ * @typeParam TQuery - Query payload shape.
7
+ */
8
+ export interface EndpointExecutionRequest<TBody = unknown, TQuery = unknown> {
9
+ /** Request body payload for mutation/action endpoints. */
10
+ readonly body?: TBody;
11
+ /** Query payload for query/read endpoints. */
12
+ readonly query?: TQuery | null;
13
+ /** Route parameters substituted into endpoint paths by the host adapter. */
14
+ readonly routeParameters?: Readonly<Record<string, string | null | undefined>>;
15
+ }
16
+ /**
17
+ * Executes a concrete endpoint request.
18
+ *
19
+ * Endpoint executors are supplied by applications or adapters because only the
20
+ * host knows how endpoint ids map to generated clients, fetch calls, auth, and
21
+ * transport concerns.
22
+ *
23
+ * @typeParam TResult - Result shape returned by the endpoint executor.
24
+ * @typeParam TBody - Request body payload shape.
25
+ * @typeParam TQuery - Query payload shape.
26
+ */
27
+ export type EndpointExecutor<TResult = unknown, TBody = unknown, TQuery = unknown> = (request: EndpointExecutionRequest<TBody, TQuery>) => Promise<TResult>;
28
+ /**
29
+ * Registry keyed by semantic endpoint id.
30
+ */
31
+ export type EndpointExecutorRegistry = Readonly<Record<string, EndpointExecutor>>;
32
+ /**
33
+ * Dispatches an endpoint id through a host-provided endpoint executor registry.
34
+ *
35
+ * @typeParam TResult - Result shape returned by the selected executor.
36
+ * @typeParam TBody - Request body payload shape.
37
+ * @typeParam TQuery - Query payload shape.
38
+ */
39
+ export type EndpointRegistryExecutor = <TResult = unknown, TBody = unknown, TQuery = unknown>(endpointId: string, request?: EndpointExecutionRequest<TBody, TQuery>) => Promise<TResult>;
40
+ /**
41
+ * Options for creating an endpoint registry dispatcher.
42
+ */
43
+ export interface CreateEndpointExecutorOptions {
44
+ /** Human-readable endpoint family label used in diagnostic errors. */
45
+ readonly label?: string;
46
+ }
47
+ /**
48
+ * Creates a generic dispatcher from semantic endpoint ids to concrete endpoint
49
+ * executors.
50
+ */
51
+ export declare function createEndpointExecutor(registry: EndpointExecutorRegistry, { label }?: CreateEndpointExecutorOptions): EndpointRegistryExecutor;
52
+ /**
53
+ * Reads a required route parameter from a projected endpoint request.
54
+ */
55
+ export declare function readRequiredEndpointRouteParameter(endpointId: string, request: EndpointExecutionRequest, parameterName: string): string;
56
+ /**
57
+ * Reads a required request body from a projected endpoint request.
58
+ *
59
+ * @typeParam TBody - Expected request body payload shape.
60
+ */
61
+ export declare function readRequiredEndpointBody<TBody>(endpointId: string, request: EndpointExecutionRequest): TBody;
62
+ //# sourceMappingURL=endpoint-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-executor.d.ts","sourceRoot":"","sources":["../src/endpoint-executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IACzE,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;IAErB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAA;CAC/E;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,OAAO,IACd,CAAC,OAAO,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE1E;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,OAAO,EAEhB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,KAC9C,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,wBAAwB,EAClC,EAAE,KAAa,EAAE,GAAE,6BAAkC,GACpD,wBAAwB,CAgB1B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,wBAAwB,EACjC,aAAa,EAAE,MAAM,GACpB,MAAM,CASR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAC5C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,wBAAwB,GAChC,KAAK,CAMP"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Creates a generic dispatcher from semantic endpoint ids to concrete endpoint
3
+ * executors.
4
+ */
5
+ export function createEndpointExecutor(registry, { label = 'API' } = {}) {
6
+ return async function executeEndpoint(endpointId, request = {}) {
7
+ const executor = registry[endpointId];
8
+ if (!executor) {
9
+ throw new Error(`No ${label} endpoint executor is registered for endpoint '${endpointId}'.`);
10
+ }
11
+ return await executor(request);
12
+ };
13
+ }
14
+ /**
15
+ * Reads a required route parameter from a projected endpoint request.
16
+ */
17
+ export function readRequiredEndpointRouteParameter(endpointId, request, parameterName) {
18
+ const value = request.routeParameters?.[parameterName];
19
+ if (value === null || value === undefined || value === '') {
20
+ throw new Error(`Endpoint '${endpointId}' requires route parameter '${parameterName}'.`);
21
+ }
22
+ return value;
23
+ }
24
+ /**
25
+ * Reads a required request body from a projected endpoint request.
26
+ *
27
+ * @typeParam TBody - Expected request body payload shape.
28
+ */
29
+ export function readRequiredEndpointBody(endpointId, request) {
30
+ if (request.body === undefined) {
31
+ throw new Error(`Endpoint '${endpointId}' requires a request body.`);
32
+ }
33
+ return request.body;
34
+ }
35
+ //# sourceMappingURL=endpoint-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-executor.js","sourceRoot":"","sources":["../src/endpoint-executor.ts"],"names":[],"mappings":"AAgEA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAkC,EAClC,EAAE,KAAK,GAAG,KAAK,KAAoC,EAAE;IAErD,OAAO,KAAK,UAAU,eAAe,CAKnC,UAAkB,EAClB,UAAmD,EAAE;QAErD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,kDAAkD,UAAU,IAAI,CAAC,CAAA;QAC9F,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAY,CAAA;IAC3C,CAAC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAChD,UAAkB,EAClB,OAAiC,EACjC,aAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAA;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,aAAa,UAAU,+BAA+B,aAAa,IAAI,CACxE,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,OAAiC;IAEjC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,4BAA4B,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,OAAO,CAAC,IAAa,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { FieldPresentationDefinition } from './module.js';
2
+ export declare function resolvePresentationFieldValueLabel(field: FieldPresentationDefinition | null | undefined, value: unknown): string | null;
3
+ export declare function resolvePresentationFieldValueTone(field: FieldPresentationDefinition | null | undefined, value: unknown, resource?: unknown): string | null;
4
+ export declare function resolvePresentationFieldValueIcon(field: FieldPresentationDefinition | null | undefined, value: unknown): string | null;
5
+ //# sourceMappingURL=field-display-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-display-resolution.d.ts","sourceRoot":"","sources":["../src/field-display-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAI5B,MAAM,UAAU,CAAA;AAKjB,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,2BAA2B,GAAG,IAAI,GAAG,SAAS,EACrD,KAAK,EAAE,OAAO,iBAGf;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,2BAA2B,GAAG,IAAI,GAAG,SAAS,EACrD,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,OAAO,iBAQnB;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,2BAA2B,GAAG,IAAI,GAAG,SAAS,EACrD,KAAK,EAAE,OAAO,iBAGf"}
@@ -0,0 +1,50 @@
1
+ import { readObjectPath, } from './object-path.js';
2
+ export function resolvePresentationFieldValueLabel(field, value) {
3
+ return readDisplayValueLabel(field?.Display?.ValueLabels, value);
4
+ }
5
+ export function resolvePresentationFieldValueTone(field, value, resource) {
6
+ return (readFirstDisplayFieldPathValue(field?.Display?.ToneFieldPaths, resource) ??
7
+ readDisplayValueTone(field?.Display?.ValueTones, value) ??
8
+ field?.Display?.Tone ??
9
+ null);
10
+ }
11
+ export function resolvePresentationFieldValueIcon(field, value) {
12
+ return readDisplayValueIcon(field?.Display?.ValueIcons, value);
13
+ }
14
+ function readDisplayValueLabel(labels, value) {
15
+ if (!labels) {
16
+ return null;
17
+ }
18
+ const key = String(value);
19
+ return labels.find((label) => label.Value === key ||
20
+ label.Value.toLocaleLowerCase() === key.toLocaleLowerCase())?.Label ?? null;
21
+ }
22
+ function readDisplayValueTone(tones, value) {
23
+ if (!tones) {
24
+ return null;
25
+ }
26
+ const key = String(value);
27
+ return tones.find((tone) => tone.Value === key ||
28
+ tone.Value.toLocaleLowerCase() === key.toLocaleLowerCase())?.Tone ?? null;
29
+ }
30
+ function readDisplayValueIcon(icons, value) {
31
+ if (!icons) {
32
+ return null;
33
+ }
34
+ const key = String(value);
35
+ return icons.find((icon) => icon.Value === key ||
36
+ icon.Value.toLocaleLowerCase() === key.toLocaleLowerCase())?.Icon ?? null;
37
+ }
38
+ function readFirstDisplayFieldPathValue(fieldPaths, resource) {
39
+ if (!fieldPaths || fieldPaths.length === 0) {
40
+ return null;
41
+ }
42
+ for (const path of fieldPaths) {
43
+ const value = readObjectPath(resource, path);
44
+ if (value !== null && value !== undefined && value !== '') {
45
+ return String(value);
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ //# sourceMappingURL=field-display-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-display-resolution.js","sourceRoot":"","sources":["../src/field-display-resolution.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,kCAAkC,CAChD,KAAqD,EACrD,KAAc;IAEd,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAqD,EACrD,KAAc,EACd,QAAkB;IAElB,OAAO,CACL,8BAA8B,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC;QACxE,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC;QACvD,KAAK,EAAE,OAAO,EAAE,IAAI;QACpB,IAAI,CACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAqD,EACrD,KAAc;IAEd,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA+D,EAC/D,KAAc;IAEd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,KAAK,KAAK,GAAG;QACnB,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE,CAC5D,EAAE,KAAK,IAAI,IAAI,CAAA;AAClB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA6D,EAC7D,KAAc;IAEd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,KAAK,KAAK,GAAG;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE,CAC3D,EAAE,IAAI,IAAI,IAAI,CAAA;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA6D,EAC7D,KAAc;IAEd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,KAAK,KAAK,GAAG;QAClB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE,CAC3D,EAAE,IAAI,IAAI,IAAI,CAAA;AACjB,CAAC;AAED,SAAS,8BAA8B,CACrC,UAAgD,EAChD,QAAiB;IAEjB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}