@yuuvis/client-framework 0.6.5

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 (392) hide show
  1. package/README.md +62 -0
  2. package/actions/README.md +3 -0
  3. package/actions/index.d.ts +6 -0
  4. package/actions/lib/actions/copy-action/copy-action.d.ts +17 -0
  5. package/actions/lib/actions/cut-action/cut-action.d.ts +17 -0
  6. package/actions/lib/actions/delete-action/delete/delete.component.d.ts +22 -0
  7. package/actions/lib/actions/delete-action/delete-action.d.ts +17 -0
  8. package/actions/lib/actions/download-action/download-action.d.ts +17 -0
  9. package/actions/lib/actions.icon.d.ts +7 -0
  10. package/actions/lib/actions.interface.d.ts +86 -0
  11. package/actions/lib/actions.module.d.ts +8 -0
  12. package/actions/lib/actions.service.d.ts +38 -0
  13. package/actions/lib/components/contextmenu/contextmenu.component.d.ts +11 -0
  14. package/app-bar/README.md +3 -0
  15. package/app-bar/index.d.ts +1 -0
  16. package/app-bar/lib/app-bar.component.d.ts +47 -0
  17. package/clipboard/README.md +3 -0
  18. package/clipboard/index.d.ts +1 -0
  19. package/clipboard/lib/clipboard.component.d.ts +16 -0
  20. package/common/README.md +3 -0
  21. package/common/index.d.ts +5 -0
  22. package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +7 -0
  23. package/common/lib/components/token-input/token-input.component.d.ts +55 -0
  24. package/common/lib/components/token-input/token-input.interface.d.ts +8 -0
  25. package/common/lib/directives/busy-overlay.directive.d.ts +25 -0
  26. package/common/lib/directives/click-double.directive.d.ts +17 -0
  27. package/common/lib/directives/container-size.directive.d.ts +30 -0
  28. package/common/lib/directives/drag-select.directive.d.ts +21 -0
  29. package/common/lib/directives/file-drop-zone/file-drop-zone.directive.d.ts +18 -0
  30. package/common/lib/directives/file-drop-zone/file-drop-zone.interface.d.ts +5 -0
  31. package/common/lib/directives/focus-within.directive.d.ts +36 -0
  32. package/common/lib/directives/index.d.ts +8 -0
  33. package/common/lib/directives/light-dismiss.directive.d.ts +19 -0
  34. package/common/lib/directives/longpress.directive.d.ts +13 -0
  35. package/common/lib/directives/noop-value-accessor.directive.d.ts +10 -0
  36. package/esm2022/actions/index.mjs +7 -0
  37. package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +31 -0
  38. package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +30 -0
  39. package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +67 -0
  40. package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +44 -0
  41. package/esm2022/actions/lib/actions/download-action/download-action.mjs +33 -0
  42. package/esm2022/actions/lib/actions.icon.mjs +8 -0
  43. package/esm2022/actions/lib/actions.interface.mjs +19 -0
  44. package/esm2022/actions/lib/actions.module.mjs +16 -0
  45. package/esm2022/actions/lib/actions.service.mjs +89 -0
  46. package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +27 -0
  47. package/esm2022/actions/yuuvis-client-framework-actions.mjs +5 -0
  48. package/esm2022/app-bar/index.mjs +2 -0
  49. package/esm2022/app-bar/lib/app-bar.component.mjs +89 -0
  50. package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +5 -0
  51. package/esm2022/clipboard/index.mjs +2 -0
  52. package/esm2022/clipboard/lib/clipboard.component.mjs +48 -0
  53. package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +5 -0
  54. package/esm2022/common/index.mjs +6 -0
  55. package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +41 -0
  56. package/esm2022/common/lib/components/token-input/token-input.component.mjs +324 -0
  57. package/esm2022/common/lib/components/token-input/token-input.interface.mjs +2 -0
  58. package/esm2022/common/lib/directives/busy-overlay.directive.mjs +88 -0
  59. package/esm2022/common/lib/directives/click-double.directive.mjs +61 -0
  60. package/esm2022/common/lib/directives/container-size.directive.mjs +56 -0
  61. package/esm2022/common/lib/directives/drag-select.directive.mjs +114 -0
  62. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +153 -0
  63. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +2 -0
  64. package/esm2022/common/lib/directives/focus-within.directive.mjs +81 -0
  65. package/esm2022/common/lib/directives/index.mjs +9 -0
  66. package/esm2022/common/lib/directives/light-dismiss.directive.mjs +44 -0
  67. package/esm2022/common/lib/directives/longpress.directive.mjs +36 -0
  68. package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +42 -0
  69. package/esm2022/common/yuuvis-client-framework-common.mjs +5 -0
  70. package/esm2022/forms/index.mjs +19 -0
  71. package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +118 -0
  72. package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +82 -0
  73. package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +166 -0
  74. package/esm2022/forms/lib/elements/number/number.component.mjs +195 -0
  75. package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +176 -0
  76. package/esm2022/forms/lib/elements/organization/organization.component.mjs +268 -0
  77. package/esm2022/forms/lib/elements/string/string.component.mjs +254 -0
  78. package/esm2022/forms/lib/form-input/form-input.component.mjs +88 -0
  79. package/esm2022/forms/lib/forms.module.mjs +58 -0
  80. package/esm2022/forms/yuuvis-client-framework-forms.mjs +5 -0
  81. package/esm2022/icons/index.mjs +4 -0
  82. package/esm2022/icons/lib/icon.service.mjs +59 -0
  83. package/esm2022/icons/lib/icons.mjs +31 -0
  84. package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +29 -0
  85. package/esm2022/icons/yuuvis-client-framework-icons.mjs +5 -0
  86. package/esm2022/index.mjs +2 -0
  87. package/esm2022/lib/yuuvis-client-framework.module.mjs +15 -0
  88. package/esm2022/list/index.mjs +3 -0
  89. package/esm2022/list/lib/list-item.directive.mjs +72 -0
  90. package/esm2022/list/lib/list.component.mjs +133 -0
  91. package/esm2022/list/yuuvis-client-framework-list.mjs +5 -0
  92. package/esm2022/metadata-form/index.mjs +4 -0
  93. package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +31 -0
  94. package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +99 -0
  95. package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +126 -0
  96. package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +52 -0
  97. package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +5 -0
  98. package/esm2022/object-details/index.mjs +7 -0
  99. package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +195 -0
  100. package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +127 -0
  101. package/esm2022/object-details/lib/object-details.component.mjs +61 -0
  102. package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +17 -0
  103. package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +201 -0
  104. package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +2 -0
  105. package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +5 -0
  106. package/esm2022/object-flavor/index.mjs +6 -0
  107. package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +25 -0
  108. package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +21 -0
  109. package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +35 -0
  110. package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +93 -0
  111. package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +43 -0
  112. package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +5 -0
  113. package/esm2022/object-form/index.mjs +5 -0
  114. package/esm2022/object-form/lib/form-scripting.api.interface.mjs +2 -0
  115. package/esm2022/object-form/lib/form-scripting.service.mjs +160 -0
  116. package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +87 -0
  117. package/esm2022/object-form/lib/object-form-extension.interface.mjs +36 -0
  118. package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +85 -0
  119. package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +23 -0
  120. package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +115 -0
  121. package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +251 -0
  122. package/esm2022/object-form/lib/object-form-translate.service.mjs +73 -0
  123. package/esm2022/object-form/lib/object-form.component.mjs +627 -0
  124. package/esm2022/object-form/lib/object-form.interface.mjs +9 -0
  125. package/esm2022/object-form/lib/object-form.model.mjs +20 -0
  126. package/esm2022/object-form/lib/object-form.service.mjs +127 -0
  127. package/esm2022/object-form/lib/object-form.utils.mjs +55 -0
  128. package/esm2022/object-form/lib/object-form.validation.mjs +48 -0
  129. package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +5 -0
  130. package/esm2022/object-preview/index.mjs +3 -0
  131. package/esm2022/object-preview/lib/components/index.mjs +3 -0
  132. package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +45 -0
  133. package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +78 -0
  134. package/esm2022/object-preview/lib/services/object-preview.service.mjs +92 -0
  135. package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +5 -0
  136. package/esm2022/object-summary/index.mjs +5 -0
  137. package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +33 -0
  138. package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +273 -0
  139. package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +80 -0
  140. package/esm2022/object-summary/lib/object-summary.module.mjs +15 -0
  141. package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +5 -0
  142. package/esm2022/pagination/index.mjs +3 -0
  143. package/esm2022/pagination/lib/pagination.component.mjs +48 -0
  144. package/esm2022/pagination/lib/pagination.interface.mjs +2 -0
  145. package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +5 -0
  146. package/esm2022/panel/index.mjs +2 -0
  147. package/esm2022/panel/lib/panel.component.mjs +20 -0
  148. package/esm2022/panel/yuuvis-client-framework-panel.mjs +5 -0
  149. package/esm2022/renderer/index.mjs +11 -0
  150. package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +29 -0
  151. package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +13 -0
  152. package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +12 -0
  153. package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +28 -0
  154. package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +23 -0
  155. package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +12 -0
  156. package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +19 -0
  157. package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +12 -0
  158. package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +12 -0
  159. package/esm2022/renderer/lib/renderer.directive.mjs +51 -0
  160. package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +2 -0
  161. package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +84 -0
  162. package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +5 -0
  163. package/esm2022/sequence-list/index.mjs +6 -0
  164. package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +99 -0
  165. package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +183 -0
  166. package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +114 -0
  167. package/esm2022/sequence-list/lib/sequence-list.component.mjs +146 -0
  168. package/esm2022/sequence-list/lib/sequence-list.interface.mjs +2 -0
  169. package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +5 -0
  170. package/esm2022/simple-search/index.mjs +3 -0
  171. package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +111 -0
  172. package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +2 -0
  173. package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +5 -0
  174. package/esm2022/tile-list/index.mjs +11 -0
  175. package/esm2022/tile-list/lib/tile/tile.component.mjs +53 -0
  176. package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +22 -0
  177. package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +33 -0
  178. package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +91 -0
  179. package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +66 -0
  180. package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +46 -0
  181. package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +156 -0
  182. package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +37 -0
  183. package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +42 -0
  184. package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +35 -0
  185. package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +510 -0
  186. package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +2 -0
  187. package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +5 -0
  188. package/esm2022/token-search/index.mjs +3 -0
  189. package/esm2022/token-search/token-search.component.mjs +78 -0
  190. package/esm2022/token-search/token-search.interface.mjs +2 -0
  191. package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +5 -0
  192. package/esm2022/tree/index.mjs +3 -0
  193. package/esm2022/tree/lib/tree-node/tree-node.component.mjs +65 -0
  194. package/esm2022/tree/lib/tree.component.mjs +148 -0
  195. package/esm2022/tree/lib/tree.interface.mjs +2 -0
  196. package/esm2022/tree/lib/tree.service.mjs +95 -0
  197. package/esm2022/tree/yuuvis-client-framework-tree.mjs +5 -0
  198. package/esm2022/upload-progress/index.mjs +2 -0
  199. package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +49 -0
  200. package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +37 -0
  201. package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +5 -0
  202. package/esm2022/user-avatar/index.mjs +3 -0
  203. package/esm2022/user-avatar/lib/user-avatar.component.mjs +69 -0
  204. package/esm2022/user-avatar/lib/user-avatar.module.mjs +24 -0
  205. package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +5 -0
  206. package/esm2022/yuuvis-client-framework.mjs +5 -0
  207. package/fesm2022/yuuvis-client-framework-actions.mjs +333 -0
  208. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -0
  209. package/fesm2022/yuuvis-client-framework-app-bar.mjs +96 -0
  210. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -0
  211. package/fesm2022/yuuvis-client-framework-clipboard.mjs +55 -0
  212. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -0
  213. package/fesm2022/yuuvis-client-framework-common.mjs +1020 -0
  214. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -0
  215. package/fesm2022/yuuvis-client-framework-forms.mjs +1355 -0
  216. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -0
  217. package/fesm2022/yuuvis-client-framework-icons.mjs +123 -0
  218. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -0
  219. package/fesm2022/yuuvis-client-framework-list.mjs +209 -0
  220. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -0
  221. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +302 -0
  222. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -0
  223. package/fesm2022/yuuvis-client-framework-object-details.mjs +583 -0
  224. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -0
  225. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +200 -0
  226. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -0
  227. package/fesm2022/yuuvis-client-framework-object-form.mjs +1664 -0
  228. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -0
  229. package/fesm2022/yuuvis-client-framework-object-preview.mjs +213 -0
  230. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -0
  231. package/fesm2022/yuuvis-client-framework-object-summary.mjs +397 -0
  232. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -0
  233. package/fesm2022/yuuvis-client-framework-pagination.mjs +55 -0
  234. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -0
  235. package/fesm2022/yuuvis-client-framework-panel.mjs +27 -0
  236. package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -0
  237. package/fesm2022/yuuvis-client-framework-renderer.mjs +262 -0
  238. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -0
  239. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +519 -0
  240. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -0
  241. package/fesm2022/yuuvis-client-framework-simple-search.mjs +118 -0
  242. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -0
  243. package/fesm2022/yuuvis-client-framework-tile-list.mjs +1036 -0
  244. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -0
  245. package/fesm2022/yuuvis-client-framework-token-search.mjs +85 -0
  246. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -0
  247. package/fesm2022/yuuvis-client-framework-tree.mjs +307 -0
  248. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -0
  249. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +84 -0
  250. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -0
  251. package/fesm2022/yuuvis-client-framework-user-avatar.mjs +96 -0
  252. package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +1 -0
  253. package/fesm2022/yuuvis-client-framework.mjs +22 -0
  254. package/fesm2022/yuuvis-client-framework.mjs.map +1 -0
  255. package/forms/README.md +3 -0
  256. package/forms/index.d.ts +9 -0
  257. package/forms/lib/elements/catalog/catalog.component.d.ts +68 -0
  258. package/forms/lib/elements/datetime/datetime.component.d.ts +32 -0
  259. package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +51 -0
  260. package/forms/lib/elements/number/number.component.d.ts +77 -0
  261. package/forms/lib/elements/number-range/number-range.component.d.ts +66 -0
  262. package/forms/lib/elements/organization/organization.component.d.ts +93 -0
  263. package/forms/lib/elements/string/string.component.d.ts +104 -0
  264. package/forms/lib/form-input/form-input.component.d.ts +48 -0
  265. package/forms/lib/forms.module.d.ts +16 -0
  266. package/icons/README.md +5 -0
  267. package/icons/index.d.ts +3 -0
  268. package/icons/lib/icon.service.d.ts +38 -0
  269. package/icons/lib/icons.d.ts +1 -0
  270. package/icons/lib/object-type-icon/object-type-icon.component.d.ts +11 -0
  271. package/index.d.ts +1 -0
  272. package/lib/yuuvis-client-framework.module.d.ts +7 -0
  273. package/list/README.md +3 -0
  274. package/list/index.d.ts +2 -0
  275. package/list/lib/list-item.directive.d.ts +15 -0
  276. package/list/lib/list.component.d.ts +36 -0
  277. package/metadata-form/README.md +21 -0
  278. package/metadata-form/index.d.ts +3 -0
  279. package/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.d.ts +5 -0
  280. package/metadata-form/lib/metadata-form-element-registry.service.d.ts +47 -0
  281. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +31 -0
  282. package/metadata-form/lib/object-metadata-element-template.directive.d.ts +27 -0
  283. package/object-details/README.md +28 -0
  284. package/object-details/index.d.ts +6 -0
  285. package/object-details/lib/object-audit/object-audit.component.d.ts +59 -0
  286. package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +51 -0
  287. package/object-details/lib/object-details.component.d.ts +36 -0
  288. package/object-details/lib/object-metadata/form-section-group.pipe.d.ts +8 -0
  289. package/object-details/lib/object-metadata/object-metadata.component.d.ts +48 -0
  290. package/object-details/lib/object-metadata/object-metadata.interface.d.ts +26 -0
  291. package/object-flavor/README.md +3 -0
  292. package/object-flavor/index.d.ts +5 -0
  293. package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +12 -0
  294. package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +12 -0
  295. package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +17 -0
  296. package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +26 -0
  297. package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +10 -0
  298. package/object-form/README.md +3 -0
  299. package/object-form/index.d.ts +4 -0
  300. package/object-form/lib/form-scripting.api.interface.d.ts +131 -0
  301. package/object-form/lib/form-scripting.service.d.ts +30 -0
  302. package/object-form/lib/object-form-element/object-form-element.component.d.ts +22 -0
  303. package/object-form/lib/object-form-extension.interface.d.ts +22 -0
  304. package/object-form/lib/object-form-group/object-form-group.component.d.ts +22 -0
  305. package/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.d.ts +10 -0
  306. package/object-form/lib/object-form-script/object-form-script.service.d.ts +45 -0
  307. package/object-form/lib/object-form-script/object-form-scripting-scope.d.ts +50 -0
  308. package/object-form/lib/object-form-translate.service.d.ts +15 -0
  309. package/object-form/lib/object-form.component.d.ts +60 -0
  310. package/object-form/lib/object-form.interface.d.ts +113 -0
  311. package/object-form/lib/object-form.model.d.ts +18 -0
  312. package/object-form/lib/object-form.service.d.ts +39 -0
  313. package/object-form/lib/object-form.utils.d.ts +20 -0
  314. package/object-form/lib/object-form.validation.d.ts +21 -0
  315. package/object-preview/README.md +3 -0
  316. package/object-preview/index.d.ts +2 -0
  317. package/object-preview/lib/components/index.d.ts +2 -0
  318. package/object-preview/lib/components/object-email-preview/object-email-preview.component.d.ts +16 -0
  319. package/object-preview/lib/components/object-preview/object-preview.component.d.ts +13 -0
  320. package/object-preview/lib/services/object-preview.service.d.ts +37 -0
  321. package/object-summary/README.md +3 -0
  322. package/object-summary/index.d.ts +4 -0
  323. package/object-summary/lib/multi-object-summary/multi-object-summary.component.d.ts +7 -0
  324. package/object-summary/lib/object-summary/object-summary.component.d.ts +73 -0
  325. package/object-summary/lib/object-summary-data/object-summary-data.component.d.ts +11 -0
  326. package/object-summary/lib/object-summary.module.d.ts +7 -0
  327. package/package.json +173 -0
  328. package/pagination/README.md +3 -0
  329. package/pagination/index.d.ts +2 -0
  330. package/pagination/lib/pagination.component.d.ts +18 -0
  331. package/pagination/lib/pagination.interface.d.ts +5 -0
  332. package/panel/README.md +3 -0
  333. package/panel/index.d.ts +1 -0
  334. package/panel/lib/panel.component.d.ts +12 -0
  335. package/renderer/README.md +5 -0
  336. package/renderer/index.d.ts +10 -0
  337. package/renderer/lib/property-renderer/abstract.renderer.d.ts +14 -0
  338. package/renderer/lib/property-renderer/datetime.renderer.d.ts +6 -0
  339. package/renderer/lib/property-renderer/decimal.renderer.component.d.ts +6 -0
  340. package/renderer/lib/property-renderer/filesize.renderer.component.d.ts +7 -0
  341. package/renderer/lib/property-renderer/icon.renderer.component.d.ts +6 -0
  342. package/renderer/lib/property-renderer/integer.renderer.component.d.ts +6 -0
  343. package/renderer/lib/property-renderer/organization.renderer.d.ts +7 -0
  344. package/renderer/lib/property-renderer/string.renderer.component.d.ts +6 -0
  345. package/renderer/lib/property-renderer/unknown.renderer.d.ts +6 -0
  346. package/renderer/lib/renderer.directive.d.ts +17 -0
  347. package/renderer/lib/services/renderer/renderer.interface.d.ts +8 -0
  348. package/renderer/lib/services/renderer/renderer.service.d.ts +35 -0
  349. package/sequence-list/README.md +3 -0
  350. package/sequence-list/index.d.ts +5 -0
  351. package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +28 -0
  352. package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +52 -0
  353. package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +36 -0
  354. package/sequence-list/lib/sequence-list.component.d.ts +43 -0
  355. package/sequence-list/lib/sequence-list.interface.d.ts +16 -0
  356. package/simple-search/README.md +3 -0
  357. package/simple-search/index.d.ts +2 -0
  358. package/simple-search/lib/simple-search/simple-search.component.d.ts +55 -0
  359. package/simple-search/lib/simple-search/simple-search.interface.d.ts +4 -0
  360. package/styles/client-framework.scss +27 -0
  361. package/tile-list/README.md +3 -0
  362. package/tile-list/index.d.ts +10 -0
  363. package/tile-list/lib/tile/tile.component.d.ts +22 -0
  364. package/tile-list/lib/tile-config/action-select/action-select.component.d.ts +13 -0
  365. package/tile-list/lib/tile-config/icon-select/icon-select.component.d.ts +11 -0
  366. package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +25 -0
  367. package/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.d.ts +20 -0
  368. package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +17 -0
  369. package/tile-list/lib/tile-config/tile-config.component.d.ts +47 -0
  370. package/tile-list/lib/tile-extension/directive/tile-extension.directive.d.ts +11 -0
  371. package/tile-list/lib/tile-extension/extensions/email.extension.d.ts +10 -0
  372. package/tile-list/lib/tile-extension/tile-extension.service.d.ts +16 -0
  373. package/tile-list/lib/tile-list/tile-list.component.d.ts +116 -0
  374. package/tile-list/lib/tile-list/tile-list.interface.d.ts +18 -0
  375. package/token-search/README.md +3 -0
  376. package/token-search/index.d.ts +2 -0
  377. package/token-search/token-search.component.d.ts +22 -0
  378. package/token-search/token-search.interface.d.ts +4 -0
  379. package/tree/README.md +3 -0
  380. package/tree/index.d.ts +2 -0
  381. package/tree/lib/tree-node/tree-node.component.d.ts +21 -0
  382. package/tree/lib/tree.component.d.ts +53 -0
  383. package/tree/lib/tree.interface.d.ts +11 -0
  384. package/tree/lib/tree.service.d.ts +35 -0
  385. package/upload-progress/README.md +3 -0
  386. package/upload-progress/index.d.ts +1 -0
  387. package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +17 -0
  388. package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +16 -0
  389. package/user-avatar/README.md +3 -0
  390. package/user-avatar/index.d.ts +2 -0
  391. package/user-avatar/lib/user-avatar.component.d.ts +44 -0
  392. package/user-avatar/lib/user-avatar.module.d.ts +8 -0
@@ -0,0 +1,133 @@
1
+ import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
+ import { Directionality } from '@angular/cdk/bidi';
3
+ import { CommonModule } from '@angular/common';
4
+ import { Component, HostAttributeToken, HostListener, ViewEncapsulation, contentChildren, effect, inject, input, output } from '@angular/core';
5
+ import { ListItemDirective } from './list-item.directive';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Component rendering a simple list of items. It supports keyboard
9
+ * navigation as well as accessability. To create a list just wrapp
10
+ * `yuvListItem` elements into this component:
11
+ *
12
+ * ```ts
13
+ * <yuv-list (itemSelect)="itemSelected($event)">
14
+ * <div yuvListItem>Entry #1</div>
15
+ * <div yuvListItem>Entry #2</div>
16
+ * </yuv-list>
17
+ * ```
18
+ */
19
+ export class ListComponent {
20
+ constructor() {
21
+ this.#dir = inject(Directionality);
22
+ this.items = contentChildren(ListItemDirective);
23
+ this.#itemsEffect = effect(() => {
24
+ if (this._keyManager)
25
+ this._keyManager.destroy();
26
+ this._keyManager = this.horizontal
27
+ ? new ActiveDescendantKeyManager(this.items()).withWrap().withHorizontalOrientation(this.#dir.value)
28
+ : new ActiveDescendantKeyManager(this.items()).withWrap();
29
+ this.items().forEach((item, index) => {
30
+ item.onClick = (evt) => {
31
+ this.select(index, evt.shiftKey, evt.ctrlKey);
32
+ };
33
+ item.active = false;
34
+ });
35
+ if (this._lastSelection !== undefined && this._lastSelection <= this.items().length) {
36
+ this.select(this._lastSelection);
37
+ }
38
+ });
39
+ this._selection = [];
40
+ this.multiselect = input(false);
41
+ this.itemSelect = output();
42
+ this.itemFocus = output();
43
+ // autoselectFirst: boolean = (inject(new HostAttributeToken('autoselectFirst'), { optional: true }) || 'false') === 'true';
44
+ this.selectOnEnter = (inject(new HostAttributeToken('selectOnEnter'), { optional: true }) || 'false') === 'true';
45
+ this.horizontal = (inject(new HostAttributeToken('horizontal'), { optional: true }) || 'false') === 'true';
46
+ this.disableSelection = input(false);
47
+ }
48
+ #dir;
49
+ onKeydown(event) {
50
+ if (this.disableSelection())
51
+ return;
52
+ if (event.code === 'Escape') {
53
+ this.clear();
54
+ }
55
+ if (event.code === 'Space' || (this.selectOnEnter && event.code === 'Enter')) {
56
+ const aii = this._keyManager.activeItemIndex !== null ? this._keyManager.activeItemIndex : -1;
57
+ if (aii >= 0) {
58
+ this._select(aii);
59
+ this._emitSelection();
60
+ }
61
+ }
62
+ else
63
+ this._keyManager?.onKeydown(event);
64
+ }
65
+ #itemsEffect;
66
+ select(index, shiftKey = false, ctrlKey = false) {
67
+ if (this.disableSelection())
68
+ return;
69
+ if (this._keyManager) {
70
+ this._keyManager.setActiveItem(index);
71
+ }
72
+ this._select(index, shiftKey, ctrlKey);
73
+ this._emitSelection();
74
+ }
75
+ clear() {
76
+ if (this._selection.length !== 0) {
77
+ this._select(-1);
78
+ this._keyManager.setActiveItem(-1);
79
+ this._emitSelection();
80
+ }
81
+ }
82
+ _select(index, shiftKey = false, ctrlKey = false) {
83
+ if (index === -1)
84
+ this._selection = [];
85
+ else {
86
+ if (this.multiselect()) {
87
+ this._selection = this._selection.filter((i) => i !== index);
88
+ if (ctrlKey) {
89
+ // if ctrl key add to selection
90
+ this._selection.push(index);
91
+ }
92
+ else if (shiftKey) {
93
+ // add range
94
+ if (this._lastSelection) {
95
+ for (let i = this._lastSelection < index ? this._lastSelection : index; i < (this._lastSelection > index ? this._lastSelection : index); i++) {
96
+ this._selection.push(i);
97
+ }
98
+ }
99
+ else {
100
+ this._selection = [index];
101
+ }
102
+ }
103
+ else {
104
+ this._selection = [index];
105
+ }
106
+ }
107
+ else
108
+ this._selection = [index];
109
+ }
110
+ this._lastSelection = this._selection.length === 0 ? undefined : index;
111
+ this._selection.sort();
112
+ this.items().forEach((item, i) => (item.selected = this._selection.includes(i)));
113
+ }
114
+ _emitSelection() {
115
+ this.itemSelect.emit(this._selection);
116
+ }
117
+ ngOnDestroy() {
118
+ this._keyManager?.destroy();
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: ListComponent, isStandalone: true, selector: "yuv-list", inputs: { multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, disableSelection: { classPropertyName: "disableSelection", publicName: "disableSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", itemFocus: "itemFocus" }, host: { attributes: { "role": "listbox", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)" } }, queries: [{ propertyName: "items", predicate: ListItemDirective, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["yuv-list{--_list-item-border-color: var(--list-item-border-color, var(--panel-divider-color));--_list-item-selected-background: var(--list-item-selected-background, var(--item-selected-background-color));--_list-item-selected-border-color: var(--list-item-selected-border-color, var(--color-accent));--_list-item-current-background: var(--list-item-current-background, var(--item-focus-background-color));--_list-item-current-border-color: var(--list-item-current-border-color, var(--panel-divider-color));display:block;max-height:100%;overflow-y:auto}yuv-list [yuvListItem][aria-current=true]{background-color:var(--_list-item-current-background);border-color:var(--_list-item-current-border-color)}yuv-list [yuvListItem][aria-selected=true]{background-color:var(--_list-item-selected-background);border-color:var(--_list-item-selected-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }], encapsulation: i0.ViewEncapsulation.None }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListComponent, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'yuv-list', standalone: true, imports: [CommonModule, A11yModule], template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, host: {
126
+ role: 'listbox',
127
+ tabindex: '0'
128
+ }, styles: ["yuv-list{--_list-item-border-color: var(--list-item-border-color, var(--panel-divider-color));--_list-item-selected-background: var(--list-item-selected-background, var(--item-selected-background-color));--_list-item-selected-border-color: var(--list-item-selected-border-color, var(--color-accent));--_list-item-current-background: var(--list-item-current-background, var(--item-focus-background-color));--_list-item-current-border-color: var(--list-item-current-border-color, var(--panel-divider-color));display:block;max-height:100%;overflow-y:auto}yuv-list [yuvListItem][aria-current=true]{background-color:var(--_list-item-current-background);border-color:var(--_list-item-current-border-color)}yuv-list [yuvListItem][aria-selected=true]{background-color:var(--_list-item-selected-background);border-color:var(--_list-item-selected-border-color)}\n"] }]
129
+ }], propDecorators: { onKeydown: [{
130
+ type: HostListener,
131
+ args: ['keydown', ['$event']]
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBYSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRDs7Ozs7Ozs7Ozs7R0FXRztBQWFILE1BQU0sT0FBTyxhQUFhO0lBWjFCO1FBYUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQWU5QixVQUFLLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsaUJBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVO2dCQUNoQyxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDcEcsQ0FBQyxDQUFDLElB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NEZBU3ZCLGFBQWE7a0JBWnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFDekIsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLElBQUksRUFBRSxTQUFTO3dCQUNmLFFBQVEsRUFBRSxHQUFHO3FCQUNkOzhCQUtvQyxTQUFTO3NCQUE3QyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUsIEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QXR0cmlidXRlVG9rZW4sIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29udGVudENoaWxkcmVuLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2xpc3QtaXRlbS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCByZW5kZXJpbmcgYSBzaW1wbGUgbGlzdCBvZiBpdGVtcy4gSXQgc3VwcG9ydHMga2V5Ym9hcmRcbiAqIG5hdmlnYXRpb24gYXMgd2VsbCBhcyBhY2Nlc3NhYmlsaXR5LiBUbyBjcmVhdGUgYSBsaXN0IGp1c3Qgd3JhcHBcbiAqIGB5dXZMaXN0SXRlbWAgZWxlbWVudHMgaW50byB0aGlzIGNvbXBvbmVudDpcbiAqXG4gKiBgYGB0c1xuICogPHl1di1saXN0IChpdGVtU2VsZWN0KT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCI+XG4gKiAgIDxkaXYgeXV2TGlzdEl0ZW0+RW50cnkgIzE8L2Rpdj5cbiAqICAgPGRpdiB5dXZMaXN0SXRlbT5FbnRyeSAjMjwvZGl2PlxuICogPC95dXYtbGlzdD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEExMXlNb2R1bGVdLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdHlsZVVybDogJy4vbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnbGlzdGJveCcsXG4gICAgdGFiaW5kZXg6ICcwJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAjZGlyID0gaW5qZWN0KERpcmVjdGlvbmFsaXR5KTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZVNlbGVjdGlvbigpKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuICAgIGlmIChldmVudC5jb2RlID09PSAnU3BhY2UnIHx8ICh0aGlzLnNlbGVjdE9uRW50ZXIgJiYgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykpIHtcbiAgICAgIGNvbnN0IGFpaTogbnVtYmVyID0gdGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggIT09IG51bGwgPyB0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA6IC0xO1xuICAgICAgaWYgKGFpaSA+PSAwKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdChhaWkpO1xuICAgICAgICB0aGlzLl9lbWl0U2VsZWN0aW9uKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHRoaXMuX2tleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gIH1cbiAgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oTGlzdEl0ZW1EaXJlY3RpdmUpO1xuICAjaXRlbXNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB0aGlzLl9rZXlNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5ob3Jpem9udGFsXG4gICAgICA/IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLml0ZW1zKCkpLndpdGhXcmFwKCkud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLiNkaXIudmFsdWUpXG4gICAgICA6IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLml0ZW1zKCkpLndpdGhXcmFwKCk7XG5cbiAgICB0aGlzLml0ZW1zKCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGl0ZW0ub25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3QoaW5kZXgsIGV2dC5zaGlmdEtleSwgZXZ0LmN0cmxLZXkpO1xuICAgICAgfTtcbiAgICAgIGl0ZW0uYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX2xhc3RTZWxlY3Rpb24gIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9sYXN0U2VsZWN0aW9uIDw9IHRoaXMuaXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0KHRoaXMuX2xhc3RTZWxlY3Rpb24pO1xuICAgIH1cbiAgfSk7XG4gIHByaXZhdGUgX2tleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxMaXN0SXRlbURpcmVjdGl2ZT47XG4gIHByaXZhdGUgX3NlbGVjdGlvbjogbnVtYmVyW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFNlbGVjdGlvbj86IG51bWJlcjtcblxuICBtdWx0aXNlbGVjdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBpdGVtU2VsZWN0ID0gb3V0cHV0PG51bWJlcltdPigpO1xuICBpdGVtRm9jdXMgPSBvdXRwdXQ8bnVtYmVyPigpO1xuXG4gIC8vIGF1dG9zZWxlY3RGaXJzdDogYm9vbGVhbiA9IChpbmplY3QobmV3IEhvc3RBdHRyaWJ1dGVUb2tlbignYXV0b3NlbGVjdEZpcnN0JyksIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgJ2ZhbHNlJykgPT09ICd0cnVlJztcbiAgc2VsZWN0T25FbnRlcjogYm9vbGVhbiA9IChpbmplY3QobmV3IEhvc3RBdHRyaWJ1dGVUb2tlbignc2VsZWN0T25FbnRlcicpLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8ICdmYWxzZScpID09PSAndHJ1ZSc7XG4gIGhvcml6b250YWw6IGJvb2xlYW4gPSAoaW5qZWN0KG5ldyBIb3N0QXR0cmlidXRlVG9rZW4oJ2hvcml6b250YWwnKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCAnZmFsc2UnKSA9PT0gJ3RydWUnO1xuICBkaXNhYmxlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHNlbGVjdChpbmRleDogbnVtYmVyLCBzaGlmdEtleSA9IGZhbHNlLCBjdHJsS2V5ID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlU2VsZWN0aW9uKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5fa2V5TWFuYWdlcikge1xuICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5fc2VsZWN0KGluZGV4LCBzaGlmdEtleSwgY3RybEtleSk7XG4gICAgdGhpcy5fZW1pdFNlbGVjdGlvbigpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbi5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMuX3NlbGVjdCgtMSk7XG4gICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpO1xuICAgICAgdGhpcy5fZW1pdFNlbGVjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdChpbmRleDogbnVtYmVyLCBzaGlmdEtleSA9IGZhbHNlLCBjdHJsS2V5ID0gZmFsc2UpIHtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB0aGlzLl9zZWxlY3Rpb24gPSBbXTtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KCkpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdGhpcy5fc2VsZWN0aW9uLmZpbHRlcigoaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgICAgICBpZiAoY3RybEtleSkge1xuICAgICAgICAgIC8vIGlmIGN0cmwga2V5IGFkZCB0byBzZWxlY3Rpb25cbiAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24ucHVzaChpbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hpZnRLZXkpIHtcbiAgICAgICAgICAvLyBhZGQgcmFuZ2VcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdFNlbGVjdGlvbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX2xhc3RTZWxlY3Rpb24gPCBpbmRleCA/IHRoaXMuX2xhc3RTZWxlY3Rpb24gOiBpbmRleDsgaSA8ICh0aGlzLl9sYXN0U2VsZWN0aW9uID4gaW5kZXggPyB0aGlzLl9sYXN0U2VsZWN0aW9uIDogaW5kZXgpOyBpKyspIHtcbiAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFtpbmRleF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB0aGlzLl9zZWxlY3Rpb24gPSBbaW5kZXhdO1xuICAgIH1cbiAgICB0aGlzLl9sYXN0U2VsZWN0aW9uID0gdGhpcy5fc2VsZWN0aW9uLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGluZGV4O1xuICAgIHRoaXMuX3NlbGVjdGlvbi5zb3J0KCk7XG5cbiAgICB0aGlzLml0ZW1zKCkuZm9yRWFjaCgoaXRlbTogTGlzdEl0ZW1EaXJlY3RpdmUsIGk6IG51bWJlcikgPT4gKGl0ZW0uc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3Rpb24uaW5jbHVkZXMoaSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5pdGVtU2VsZWN0LmVtaXQodGhpcy5fc2VsZWN0aW9uKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbGlzdC9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './lib/metadata-form-element-registry.service';
2
+ export * from './lib/metadata-form-field/metadata-form-field.component';
3
+ export * from './lib/metadata-default-templates/metadata-default-templates.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHVFQUF1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXRhZGF0YS1kZWZhdWx0LXRlbXBsYXRlcy9tZXRhZGF0YS1kZWZhdWx0LXRlbXBsYXRlcy5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,31 @@
1
+ import { Component } from '@angular/core';
2
+ import { CatalogComponent, DatetimeComponent, DatetimeRangeComponent, FormInputComponent, NumberComponent, NumberRangeComponent, OrganizationComponent, StringComponent } from '@yuuvis/client-framework/forms';
3
+ import { MetadataElementTemplateDirective } from '../object-metadata-element-template.directive';
4
+ import { CommonModule } from '@angular/common';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { YvcCheckboxModule } from '@yuuvis/components/checkbox';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@yuuvis/components/checkbox";
10
+ export class MetadataDefaultTemplatesComponent {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDefaultTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataDefaultTemplatesComponent, isStandalone: true, selector: "yuv-metadata-default-templates", ngImport: i0, template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n > \n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n<yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number> \n } @else {\n \n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime> \n } @else {\n <yuv-datetime-range\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range> \n }\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["placeholder", "situation", "multiselect", "classifications", "readonly", "autofocus", "appendTo", "excludeMe", "withMetadata"], outputs: ["userSelect"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "component", type: NumberRangeComponent, selector: "yuv-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly", "classifications", "minValue", "maxValue"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["onlyFutureDates", "readonly", "withTime"] }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator"] }, { kind: "directive", type: MetadataElementTemplateDirective, selector: "[yuvMetadataElementTemplate]", inputs: ["yuvMetadataElementTemplate", "propertyType", "situation"] }, { kind: "ngmodule", type: YvcCheckboxModule }, { kind: "component", type: i2.CheckboxComponent, selector: "yvc-checkbox", inputs: ["tristate", "readonly"] }] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDefaultTemplatesComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'yuv-metadata-default-templates', standalone: true, imports: [
17
+ CommonModule,
18
+ ReactiveFormsModule,
19
+ FormInputComponent,
20
+ CatalogComponent,
21
+ StringComponent,
22
+ OrganizationComponent,
23
+ NumberComponent,
24
+ NumberRangeComponent,
25
+ DatetimeComponent,
26
+ DatetimeRangeComponent,
27
+ MetadataElementTemplateDirective,
28
+ YvcCheckboxModule
29
+ ], template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n > \n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n<yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number> \n } @else {\n \n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime> \n } @else {\n <yuv-datetime-range\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range> \n }\n</ng-template>\n" }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDaEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFzQmhFLE1BQU0sT0FBTyxpQ0FBaUM7K0dBQWpDLGlDQUFpQzttR0FBakMsaUNBQWlDLDBGQ3BDOUMsOGpKQXNJQSx5RERsSEksWUFBWSw4QkFDWixtQkFBbUIsbWRBR25CLGVBQWUsb0xBQ2YscUJBQXFCLGdPQUNyQixlQUFlLDBLQUNmLG9CQUFvQiwyS0FDcEIsaUJBQWlCLDhHQUNqQixzQkFBc0IsNkdBQ3RCLGdDQUFnQyw2SUFDaEMsaUJBQWlCOzs0RkFLUixpQ0FBaUM7a0JBcEI3QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixnQ0FBZ0M7d0JBQ2hDLGlCQUFpQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhdGFsb2dDb21wb25lbnQsXG4gIERhdGV0aW1lQ29tcG9uZW50LFxuICBEYXRldGltZVJhbmdlQ29tcG9uZW50LFxuICBGb3JtSW5wdXRDb21wb25lbnQsXG4gIE51bWJlckNvbXBvbmVudCxcbiAgTnVtYmVyUmFuZ2VDb21wb25lbnQsXG4gIE9yZ2FuaXphdGlvbkNvbXBvbmVudCxcbiAgU3RyaW5nQ29tcG9uZW50XG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL29iamVjdC1tZXRhZGF0YS1lbGVtZW50LXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFl2Y0NoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2NoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW1ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBDYXRhbG9nQ29tcG9uZW50LFxuICAgIFN0cmluZ0NvbXBvbmVudCxcbiAgICBPcmdhbml6YXRpb25Db21wb25lbnQsXG4gICAgTnVtYmVyQ29tcG9uZW50LFxuICAgIE51bWJlclJhbmdlQ29tcG9uZW50LFxuICAgIERhdGV0aW1lQ29tcG9uZW50LFxuICAgIERhdGV0aW1lUmFuZ2VDb21wb25lbnQsXG4gICAgTWV0YWRhdGFFbGVtZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgWXZjQ2hlY2tib3hNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YURlZmF1bHRUZW1wbGF0ZXNDb21wb25lbnQge31cbiIsIjwhLS0gZm9ybSBlbGVtZW50IHRlbXBsYXRlcyAtLT5cbjwhLS0gU1RSSU5HIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cInN0cmluZ1wiIGxldC1jdHg+XG5cbiAgPHl1di1zdHJpbmdcbiAgICAgIFtzaXR1YXRpb25dPVwiY3R4LnNpdHVhdGlvblwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgW211bHRpc2VsZWN0XT1cImN0eC5maWVsZC5jYXJkaW5hbGl0eSA9PT0gJ211bHRpJyB8fCBjdHguc2l0dWF0aW9uID09PSAnU0VBUkNIJ1wiXG4gICAgICBbcm93c109XCJjdHguZmllbGQucm93c1wiXG4gICAgICBbY2xhc3NpZmljYXRpb25zXT1cImN0eC5maWVsZC5jbGFzc2lmaWNhdGlvbnNcIlxuICAgICAgW3JlZ2V4XT1cImN0eC5maWVsZC5yZWdleFwiXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFttaW5MZW5ndGhdPVwiY3R4LmZpZWxkLm1pbkxlbmd0aFwiXG4gICAgICBbbWF4TGVuZ3RoXT1cImN0eC5maWVsZC5tYXhMZW5ndGhcIlxuICAgID4gXG4gICAgPC95dXYtc3RyaW5nPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPUkdBTklaQVRJT04gLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwic3RyaW5nOm9yZ2FuaXphdGlvblwiIGxldC1jdHg+XG4gPHl1di1vcmdhbml6YXRpb25cbiAgICAgIFtzaXR1YXRpb25dPVwiY3R4LnNpdHVhdGlvblwiXG4gICAgICBbbXVsdGlzZWxlY3RdPVwiY3R4LmZpZWxkLmNhcmRpbmFsaXR5ID09PSAnbXVsdGknIHx8IGN0eC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnXCJcbiAgICAgICh1c2VyU2VsZWN0KT1cImN0eC5maWVsZC5kYXRhTWV0YSA9ICRldmVudFwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgID5cbiAgICA8L3l1di1vcmdhbml6YXRpb24+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIElOVEVHRVIgLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwiaW50ZWdlclwiIGxldC1jdHg+XG4gIEBpZiAoY3R4LnNpdHVhdGlvbiAhPT0gJ1NFQVJDSCcpIHtcbjx5dXYtbnVtYmVyXG4gICAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgICBbcHJlY2lzaW9uXT1cImN0eC5maWVsZC5wcmVjaXNpb25cIlxuICAgICAgICBbc2NhbGVdPVwiMFwiXG4gICAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgICBbbWluVmFsdWVdPVwiY3R4LmZpZWxkLm1pblZhbHVlXCJcbiAgICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICAgICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICAgID5cbiAgICAgIDwveXV2LW51bWJlcj4gXG4gIH0gQGVsc2Uge1xuICAgIFxuICAgIDx5dXYtbnVtYmVyLXJhbmdlXG4gICAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgICBbcHJlY2lzaW9uXT1cImN0eC5maWVsZC5wcmVjaXNpb25cIlxuICAgICAgICBbc2NhbGVdPVwiMFwiXG4gICAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgICBbbWluVmFsdWVdPVwiY3R4LmZpZWxkLm1pblZhbHVlXCJcbiAgICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgICBbY2xhc3NpZmljYXRpb25zXT1cImN0eC5maWVsZC5jbGFzc2lmaWNhdGlvbnNcIlxuICAgICAgPjwveXV2LW51bWJlci1yYW5nZT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBERUNJTUFMIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImRlY2ltYWxcIiBsZXQtY3R4PlxuICBAaWYgKGN0eC5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSB7XG4gIDx5dXYtbnVtYmVyXG4gICAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgICBbcHJlY2lzaW9uXT1cImN0eC5maWVsZC5wcmVjaXNpb25cIlxuICAgICAgICBbc2NhbGVdPVwiY3R4LmZpZWxkLnNjYWxlXCJcbiAgICAgICAgW2dyb3VwaW5nXT1cImN0eC5maWVsZC5ncm91cGluZ1wiXG4gICAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgICAgW21pblZhbHVlXT1cImN0eC5maWVsZC5taW5WYWx1ZVwiXG4gICAgICAgIFttYXhWYWx1ZV09XCJjdHguZmllbGQubWF4VmFsdWVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgICA+XG4gICAgICAgID5cbiAgICAgIDwveXV2LW51bWJlcj5cbiAgfSBAZWxzZSB7XG4gICAgPHl1di1udW1iZXItcmFuZ2VcbiAgICAgICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgICAgIFtwcmVjaXNpb25dPVwiY3R4LmZpZWxkLnByZWNpc2lvblwiXG4gICAgICAgIFtzY2FsZV09XCJjdHguZmllbGQuc2NhbGVcIlxuICAgICAgICBbcGF0dGVybl09XCJjdHguZmllbGQucGF0dGVyblwiXG4gICAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgICBbbWluVmFsdWVdPVwiY3R4LmZpZWxkLm1pblZhbHVlXCJcbiAgICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICAgID48L3l1di1udW1iZXItcmFuZ2U+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gQk9PTEVBTiAtLT5cbjxuZy10ZW1wbGF0ZSB5dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZT1cImRlZmF1bHRcIiBwcm9wZXJ0eVR5cGU9XCJib29sZWFuXCIgbGV0LWN0eD5cbiAgPHl2Yy1jaGVja2JveFxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgIFt0cmlzdGF0ZV09XCJjdHguZmllbGQudHJpc3RhdGUgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlXCJcbiAgPjwveXZjLWNoZWNrYm94PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBCT09MRUFOIFNXSVRDSCAtLT5cbjxuZy10ZW1wbGF0ZSB5dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZT1cImRlZmF1bHRcIiBwcm9wZXJ0eVR5cGU9XCJib29sZWFuOnN3aXRjaFwiIGxldC1jdHg+XG4gIDx5dmMtY2hlY2tib3hcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgc3dpdGNoPVwidHJ1ZVwiXG4gICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICBbdHJpc3RhdGVdPVwiY3R4LmZpZWxkLnRyaXN0YXRlID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZVwiXG4gID48L3l2Yy1jaGVja2JveD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSB5dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZT1cImRlZmF1bHRcIiBwcm9wZXJ0eVR5cGU9XCJkYXRldGltZVwiIGxldC1jdHg+XG4gIEBpZiAoY3R4LnNpdHVhdGlvbiAhPT0gJ1NFQVJDSCcpIHtcbiAgICA8eXV2LWRhdGV0aW1lXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgW3dpdGhUaW1lXT1cImN0eC5maWVsZC5yZXNvbHV0aW9uICE9PSAnZGF0ZSdcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgID48L3l1di1kYXRldGltZT4gXG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtZGF0ZXRpbWUtcmFuZ2VcbiAgICAgICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt3aXRoVGltZV09XCJjdHguZmllbGQucmVzb2x1dGlvbiAhPT0gJ2RhdGUnXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgPjwveXV2LWRhdGV0aW1lLXJhbmdlPiBcbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Situation } from '@yuuvis/client-core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Registration service for form elements rendered within an object form.
6
+ */
7
+ export class MetadataFormElementRegistry {
8
+ constructor() {
9
+ this._defaults = {};
10
+ this._edit = {};
11
+ this._search = {};
12
+ this._create = {};
13
+ }
14
+ /**
15
+ * Get a template to render a certain form element
16
+ * @param propertyType The internal type to get the template for
17
+ * @param situation Form situation
18
+ * @returns TemplateRef or undefined
19
+ */
20
+ getElementTemplate(propertyType, situation = Situation.EDIT) {
21
+ let cmps = { ...this._defaults, ...this._edit };
22
+ if (situation === Situation.SEARCH)
23
+ cmps = { ...this._defaults, ...this._edit, ...this._search };
24
+ else if (situation === Situation.CREATE)
25
+ cmps = { ...this._defaults, ...this._edit, ...this._create };
26
+ return cmps[propertyType];
27
+ }
28
+ /**
29
+ * Register an object form element for a certain internal type. You might add a new component
30
+ * or overwrite an existung one.
31
+ * @param propertyType The internal type to provide the component for
32
+ * @param component The component
33
+ * @param situation Form situation to provide thew form element for (defaults to EDIT)
34
+ */
35
+ addElementTemplate(propertyType, templateRef, situation = Situation.EDIT) {
36
+ if (propertyType && templateRef) {
37
+ switch (situation) {
38
+ case Situation.SEARCH: {
39
+ this._search[propertyType] = templateRef;
40
+ break;
41
+ }
42
+ case Situation.CREATE: {
43
+ this._create[propertyType] = templateRef;
44
+ break;
45
+ }
46
+ default: {
47
+ this._edit[propertyType] = templateRef;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * Remove a registered form element.
54
+ * @param propertyType The internal type to remove the component for
55
+ * @param situation Form situation to provide thew form element for (defaults to EDIT)
56
+ */
57
+ removeElementTemplate(propertyType, situation = Situation.EDIT) {
58
+ switch (situation) {
59
+ case Situation.SEARCH: {
60
+ delete this._search[propertyType];
61
+ break;
62
+ }
63
+ case Situation.CREATE: {
64
+ delete this._create[propertyType];
65
+ break;
66
+ }
67
+ default: {
68
+ delete this._edit[propertyType];
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * Register default form element component. Usually this will be done by the object
74
+ * form component itself.
75
+ * @param propertyType The internal type to provide the component for
76
+ * @param component The default component
77
+ */
78
+ _addDefaultElementTemplate(propertyType, templateRef) {
79
+ if (propertyType && templateRef) {
80
+ this._defaults[propertyType] = templateRef;
81
+ }
82
+ }
83
+ /**
84
+ * Remove a registered default form element.
85
+ * @param propertyType The internal type to remove the component for
86
+ */
87
+ _removeDefaultElementTemplate(propertyType) {
88
+ delete this._defaults[propertyType];
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, providedIn: 'root' }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, decorators: [{
94
+ type: Injectable,
95
+ args: [{
96
+ providedIn: 'root'
97
+ }]
98
+ }] });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFaEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBSVUsY0FBUyxHQUFpRCxFQUFFLENBQUM7UUFFN0QsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsWUFBTyxHQUFpRCxFQUFFLENBQUM7UUFDM0QsWUFBTyxHQUFpRCxFQUFFLENBQUM7S0FnRnBFO0lBOUVDOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxZQUFvQixTQUFTLENBQUMsSUFBSTtRQUN6RSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUYsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFdBQTZCLEVBQUUsWUFBdUIsU0FBUyxDQUFDLElBQUk7UUFDM0csSUFBSSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxZQUF1QixTQUFTLENBQUMsSUFBSTtRQUMvRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLFdBQTZCO1FBQzVFLElBQUksWUFBWSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBcEZVLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogUmVnaXN0cmF0aW9uIHNlcnZpY2UgZm9yIGZvcm0gZWxlbWVudHMgcmVuZGVyZWQgd2l0aGluIGFuIG9iamVjdCBmb3JtLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkge1xuICBwcml2YXRlIF9kZWZhdWx0czogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICBwcml2YXRlIF9lZGl0OiB7IFtwcm9wZXJ0eVR5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfSA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2g6IHsgW3Byb3BlcnR5VHlwZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG4gIHByaXZhdGUgX2NyZWF0ZTogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICAvKipcbiAgICogR2V0IGEgdGVtcGxhdGUgdG8gcmVuZGVyIGEgY2VydGFpbiBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBnZXQgdGhlIHRlbXBsYXRlIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uXG4gICAqIEByZXR1cm5zIFRlbXBsYXRlUmVmIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZyA9IFNpdHVhdGlvbi5FRElUKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNtcHMgPSB7IC4uLnRoaXMuX2RlZmF1bHRzLCAuLi50aGlzLl9lZGl0IH07XG4gICAgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLlNFQVJDSCkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX3NlYXJjaCB9O1xuICAgIGVsc2UgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLkNSRUFURSkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX2NyZWF0ZSB9O1xuICAgIHJldHVybiBjbXBzW3Byb3BlcnR5VHlwZV07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gb2JqZWN0IGZvcm0gZWxlbWVudCBmb3IgYSBjZXJ0YWluIGludGVybmFsIHR5cGUuIFlvdSBtaWdodCBhZGQgYSBuZXcgY29tcG9uZW50XG4gICAqIG9yIG92ZXJ3cml0ZSBhbiBleGlzdHVuZyBvbmUuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcHJvdmlkZSB0aGUgY29tcG9uZW50IGZvclxuICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHNpdHVhdGlvbiBGb3JtIHNpdHVhdGlvbiB0byBwcm92aWRlIHRoZXcgZm9ybSBlbGVtZW50IGZvciAoZGVmYXVsdHMgdG8gRURJVClcbiAgICovXG4gIGFkZEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQpOiB2b2lkIHtcbiAgICBpZiAocHJvcGVydHlUeXBlICYmIHRlbXBsYXRlUmVmKSB7XG4gICAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgICBjYXNlIFNpdHVhdGlvbi5TRUFSQ0g6IHtcbiAgICAgICAgICB0aGlzLl9zZWFyY2hbcHJvcGVydHlUeXBlXSA9IHRlbXBsYXRlUmVmO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgU2l0dWF0aW9uLkNSRUFURToge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZVtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHRoaXMuX2VkaXRbcHJvcGVydHlUeXBlXSA9IHRlbXBsYXRlUmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHJlZ2lzdGVyZWQgZm9ybSBlbGVtZW50LlxuICAgKiBAcGFyYW0gcHJvcGVydHlUeXBlIFRoZSBpbnRlcm5hbCB0eXBlIHRvIHJlbW92ZSB0aGUgY29tcG9uZW50IGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uIHRvIHByb3ZpZGUgdGhldyBmb3JtIGVsZW1lbnQgZm9yIChkZWZhdWx0cyB0byBFRElUKVxuICAgKi9cbiAgcmVtb3ZlRWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IFNpdHVhdGlvbiA9IFNpdHVhdGlvbi5FRElUKSB7XG4gICAgc3dpdGNoIChzaXR1YXRpb24pIHtcbiAgICAgIGNhc2UgU2l0dWF0aW9uLlNFQVJDSDoge1xuICAgICAgICBkZWxldGUgdGhpcy5fc2VhcmNoW3Byb3BlcnR5VHlwZV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTaXR1YXRpb24uQ1JFQVRFOiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9jcmVhdGVbcHJvcGVydHlUeXBlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0W3Byb3BlcnR5VHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGRlZmF1bHQgZm9ybSBlbGVtZW50IGNvbXBvbmVudC4gVXN1YWxseSB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgb2JqZWN0XG4gICAqIGZvcm0gY29tcG9uZW50IGl0c2VsZi5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBwcm92aWRlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGRlZmF1bHQgY29tcG9uZW50XG4gICAqL1xuICBfYWRkRGVmYXVsdEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcbiAgICBpZiAocHJvcGVydHlUeXBlICYmIHRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0c1twcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHJlZ2lzdGVyZWQgZGVmYXVsdCBmb3JtIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcmVtb3ZlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqL1xuICBfcmVtb3ZlRGVmYXVsdEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZykge1xuICAgIGRlbGV0ZSB0aGlzLl9kZWZhdWx0c1twcm9wZXJ0eVR5cGVdO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
2
+ import { Component, effect, inject, input, signal, untracked, ViewEncapsulation } from '@angular/core';
3
+ import { Situation, SystemService, TranslateService, Utils } from '@yuuvis/client-core';
4
+ import { injectNgControl, NoopValueAccessorDirective } from '@yuuvis/client-framework/common';
5
+ import { FormInputComponent } from '@yuuvis/client-framework/forms';
6
+ import { MetadataFormElementRegistry } from '../metadata-form-element-registry.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@yuuvis/client-framework/common";
9
+ export class MetadataFormFieldComponent {
10
+ constructor() {
11
+ this.#registry = inject(MetadataFormElementRegistry);
12
+ this.#system = inject(SystemService);
13
+ this.translate = inject(TranslateService);
14
+ this._subs = [];
15
+ this.ngControl = injectNgControl();
16
+ this.elementTemplate = signal(undefined);
17
+ this.errors = null;
18
+ this.label = '';
19
+ this.readonly = false;
20
+ this.formField = input.required({ alias: 'field' });
21
+ this.#fieldEffect = effect(() => {
22
+ const field = this.formField();
23
+ untracked(() => {
24
+ this.elementTemplate.set(this.#registry.getElementTemplate(field._internalType, this.situation()));
25
+ this.label = this.#system.getLocalizedLabel(field.name) || field.name;
26
+ // TODO: set readonly state based on ...????... schema?
27
+ this.readonly = false;
28
+ this.ngControl.statusChanges;
29
+ this.fetchTags();
30
+ });
31
+ });
32
+ /**
33
+ * Form situation, if not set default will be 'EDIT'
34
+ */
35
+ this.situation = input(Situation.EDIT);
36
+ }
37
+ #registry;
38
+ #system;
39
+ #fieldEffect;
40
+ fetchTags() {
41
+ this.tag = undefined;
42
+ if (this.situation() === Situation.CREATE &&
43
+ (Utils.hasProperty(this.formField(), 'defaultvaluefunction') || Utils.hasProperty(this.formField(), 'defaultvalue'))) {
44
+ this.tag =
45
+ this.formField().defaultvaluefunction === 'EXTRACTION'
46
+ ? {
47
+ label: 'ex',
48
+ title: this.translate.instant('yuv.object-form-element.tag.ex')
49
+ }
50
+ : {
51
+ label: 'df',
52
+ title: this.translate.instant('yuv.object-form-element.tag.df')
53
+ };
54
+ }
55
+ }
56
+ _getErrorLabel(error, params) {
57
+ switch (error) {
58
+ case 'daterange':
59
+ return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);
60
+ case 'daterangeorder':
61
+ return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);
62
+ case 'numberrange':
63
+ return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);
64
+ case 'numberrangeorder':
65
+ return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);
66
+ case 'number':
67
+ return this.translate.instant('yuv.object-form-element.error.number', params);
68
+ case 'precision':
69
+ return this.translate.instant('yuv.object-form-element.error.number.precision', params);
70
+ case 'scale':
71
+ return this.translate.instant('yuv.object-form-element.error.number.scale', params);
72
+ case 'regex':
73
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
74
+ case 'pattern':
75
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
76
+ case 'classificationemail':
77
+ return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);
78
+ case 'classificationphone':
79
+ return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);
80
+ case 'classificationurl':
81
+ return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);
82
+ case 'onlyWhitespaces':
83
+ return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);
84
+ case 'datecontrol':
85
+ return this.translate.instant('yuv.object-form-element.error.date.invalid', params);
86
+ case 'required':
87
+ return this.translate.instant('yuv.object-form-element.error.required', params);
88
+ case 'maxlength':
89
+ return this.translate.instant('yuv.object-form-element.error.maxlength', params);
90
+ case 'minlength':
91
+ return this.translate.instant('yuv.object-form-element.error.minlength', params);
92
+ case 'minmax':
93
+ return this.translate.instant('yuv.object-form-element.error.minmax', params);
94
+ case 'minvalue':
95
+ return this.translate.instant('yuv.object-form-element.error.minvalue', params);
96
+ case 'maxvalue':
97
+ return this.translate.instant('yuv.object-form-element.error.maxvalue', params);
98
+ case 'empty':
99
+ return this.translate.instant('yuv.object-form-element.recent-activities.list.empty', params);
100
+ default:
101
+ return this.translate.instant(error, params);
102
+ }
103
+ }
104
+ ngOnInit() {
105
+ if (this.ngControl.statusChanges)
106
+ this._subs.push(this.ngControl.statusChanges.subscribe(() => {
107
+ this.errors = this.ngControl.control.errors
108
+ ? Object.keys(this.ngControl.control.errors).map((key) => {
109
+ return this.ngControl.control.errors ? this._getErrorLabel(key, this.ngControl.control.errors[key].params) : null;
110
+ })
111
+ : null;
112
+ }));
113
+ }
114
+ ngOnDestroy() {
115
+ this._subs.forEach((s) => s.unsubscribe());
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataFormFieldComponent, isStandalone: true, selector: "yuv-metadata-form-field", inputs: { formField: { classPropertyName: "formField", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, situation: { classPropertyName: "situation", publicName: "situation", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-metadata-form-field" }, hostDirectives: [{ directive: i1.NoopValueAccessorDirective }], ngImport: i0, template: "@let field = formField();\n@if (field) {\n @let et = elementTemplate();\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"field.required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'yuv-metadata-form-field', standalone: true, imports: [NgClass, NgTemplateOutlet, FormInputComponent], hostDirectives: [NoopValueAccessorDirective], encapsulation: ViewEncapsulation.None, host: {
123
+ class: 'yuv-metadata-form-field'
124
+ }, template: "@let field = formField();\n@if (field) {\n @let et = elementTemplate();\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"field.required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
125
+ }] });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWZpZWxkL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQWN4RixNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYVcsY0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTlDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUM5QixvQkFBZSxHQUFHLE1BQU0sQ0FBK0IsU0FBUyxDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUE0QixJQUFJLENBQUM7UUFDdkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFTakIsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQWtCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFaEUsaUJBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUUvQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBRXRFLHVEQUF1RDtnQkFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBc0Z2RDtJQTNIVSxTQUFTLENBQXVDO0lBQ2hELE9BQU8sQ0FBeUI7SUFtQnpDLFlBQVksQ0FZVDtJQU9ILFNBQVM7UUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUNyQixJQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUNyQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLHNCQUFzQixDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFDcEgsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHO2dCQUNMLElBQUksQ0FBQyxTQUFTLEVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxZQUFZO29CQUM3RCxDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFLElBQUk7d0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO3FCQUNoRTtvQkFDSCxDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFLElBQUk7d0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO3FCQUNoRSxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYSxFQUFFLE1BQVk7UUFDaEQsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssV0FBVztnQkFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlEQUFpRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNGLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNEQUFzRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hHLEtBQUssYUFBYTtnQkFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3RixLQUFLLGtCQUFrQjtnQkFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3REFBd0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5RixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5RixLQUFLLHFCQUFxQjtnQkFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyRyxLQUFLLHFCQUFxQjtnQkFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyREFBMkQsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyRyxLQUFLLG1CQUFtQjtnQkFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRyxLQUFLLGlCQUFpQjtnQkFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1RixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNENBQTRDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMseUNBQXlDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMseUNBQXlDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkYsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEYsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0RBQXNELEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEc7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNO29CQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNwSCxDQUFDLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQTNIVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1ZENyQnZDLG1sQ0FvQ0EsZ29DRHhCWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQVM1QywwQkFBMEI7a0JBWnRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxrQkFHeEMsQ0FBQywwQkFBMEIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUseUJBQXlCO3FCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUZpZWxkLCBTaXR1YXRpb24sIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ0NvbnRyb2wsIE5vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkgfSBmcm9tICcuLi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1tZXRhZGF0YS1mb3JtLWZpZWxkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIEZvcm1JbnB1dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxuICBob3N0RGlyZWN0aXZlczogW05vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAneXV2LW1ldGFkYXRhLWZvcm0tZmllbGQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5ICNyZWdpc3RyeSA9IGluamVjdChNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkpO1xuICByZWFkb25seSAjc3lzdGVtID0gaW5qZWN0KFN5c3RlbVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBuZ0NvbnRyb2wgPSBpbmplY3ROZ0NvbnRyb2woKTtcbiAgZWxlbWVudFRlbXBsYXRlID0gc2lnbmFsPFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuICBsYWJlbCA9ICcnO1xuICByZWFkb25seSA9IGZhbHNlO1xuICB0YWc6XG4gICAgfCB7XG4gICAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2ZpZWxkITogT2JqZWN0VHlwZUZpZWxkO1xuXG4gIGZvcm1GaWVsZCA9IGlucHV0LnJlcXVpcmVkPE9iamVjdFR5cGVGaWVsZD4oeyBhbGlhczogJ2ZpZWxkJyB9KTtcblxuICAjZmllbGRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5mb3JtRmllbGQoKTtcblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRUZW1wbGF0ZS5zZXQodGhpcy4jcmVnaXN0cnkuZ2V0RWxlbWVudFRlbXBsYXRlKGZpZWxkLl9pbnRlcm5hbFR5cGUsIHRoaXMuc2l0dWF0aW9uKCkpKTtcbiAgICAgIHRoaXMubGFiZWwgPSB0aGlzLiNzeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoZmllbGQubmFtZSkgfHwgZmllbGQubmFtZTtcblxuICAgICAgLy8gVE9ETzogc2V0IHJlYWRvbmx5IHN0YXRlIGJhc2VkIG9uIC4uLj8/Pz8uLi4gc2NoZW1hP1xuICAgICAgdGhpcy5yZWFkb25seSA9IGZhbHNlO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcztcbiAgICAgIHRoaXMuZmV0Y2hUYWdzKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBGb3JtIHNpdHVhdGlvbiwgaWYgbm90IHNldCBkZWZhdWx0IHdpbGwgYmUgJ0VESVQnXG4gICAqL1xuICBzaXR1YXRpb24gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KFNpdHVhdGlvbi5FRElUKTtcblxuICBmZXRjaFRhZ3MoKSB7XG4gICAgdGhpcy50YWcgPSB1bmRlZmluZWQ7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zaXR1YXRpb24oKSA9PT0gU2l0dWF0aW9uLkNSRUFURSAmJlxuICAgICAgKFV0aWxzLmhhc1Byb3BlcnR5KHRoaXMuZm9ybUZpZWxkKCksICdkZWZhdWx0dmFsdWVmdW5jdGlvbicpIHx8IFV0aWxzLmhhc1Byb3BlcnR5KHRoaXMuZm9ybUZpZWxkKCksICdkZWZhdWx0dmFsdWUnKSlcbiAgICApIHtcbiAgICAgIHRoaXMudGFnID1cbiAgICAgICAgKHRoaXMuZm9ybUZpZWxkKCkgYXMgYW55KS5kZWZhdWx0dmFsdWVmdW5jdGlvbiA9PT0gJ0VYVFJBQ1RJT04nXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZXgnLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQudGFnLmV4JylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdkZicsXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC50YWcuZGYnKVxuICAgICAgICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRFcnJvckxhYmVsKGVycm9yOiBzdHJpbmcsIHBhcmFtcz86IGFueSkge1xuICAgIHN3aXRjaCAoZXJyb3IpIHtcbiAgICAgIGNhc2UgJ2RhdGVyYW5nZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5kYXRlcmFuZ2UuaW52YWxpZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdkYXRlcmFuZ2VvcmRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5kYXRlcmFuZ2VvcmRlci5pbnZhbGlkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ251bWJlcnJhbmdlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm51bWJlcnJhbmdlLmludmFsaWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbnVtYmVycmFuZ2VvcmRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5udW1iZXJyYW5nZW9yZGVyLmludmFsaWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm51bWJlcicsIHBhcmFtcyk7XG4gICAgICBjYXNlICdwcmVjaXNpb24nOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubnVtYmVyLnByZWNpc2lvbicsIHBhcmFtcyk7XG4gICAgICBjYXNlICdzY2FsZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5udW1iZXIuc2NhbGUnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAncmVnZXgnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLnJlZ2V4Lm5vbWF0Y2gnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAncGF0dGVybic6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcucmVnZXgubm9tYXRjaCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdjbGFzc2lmaWNhdGlvbmVtYWlsJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy5jbGFzc2lmaWNhdGlvbi5lbWFpbCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdjbGFzc2lmaWNhdGlvbnBob25lJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy5jbGFzc2lmaWNhdGlvbi5waG9uZScsIHBhcmFtcyk7XG4gICAgICBjYXNlICdjbGFzc2lmaWNhdGlvbnVybCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcuY2xhc3NpZmljYXRpb24udXJsJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ29ubHlXaGl0ZXNwYWNlcyc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcud2hpdGVzcGFjZXMnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnZGF0ZWNvbnRyb2wnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IuZGF0ZS5pbnZhbGlkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnJlcXVpcmVkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ21heGxlbmd0aCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5tYXhsZW5ndGgnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbWlubGVuZ3RoJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm1pbmxlbmd0aCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdtaW5tYXgnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubWlubWF4JywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ21pbnZhbHVlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm1pbnZhbHVlJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ21heHZhbHVlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm1heHZhbHVlJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2VtcHR5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LnJlY2VudC1hY3Rpdml0aWVzLmxpc3QuZW1wdHknLCBwYXJhbXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZXJyb3IsIHBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzXG4gICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9ycyA/IHRoaXMuX2dldEVycm9yTGFiZWwoa2V5LCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9yc1trZXldLnBhcmFtcykgOiBudWxsO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiQGxldCBmaWVsZCA9IGZvcm1GaWVsZCgpO1xuQGlmIChmaWVsZCkge1xuICBAbGV0IGV0ID0gZWxlbWVudFRlbXBsYXRlKCk7XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkIHQte3sgZmllbGQuX2ludGVybmFsVHlwZSB9fVwiICNmb3JtRmllbGQgW2F0dHIuZGF0YS1uYW1lXT1cImZpZWxkLm5hbWVcIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAhIXJlYWRvbmx5IH1cIj5cbiAgICBAaWYgKGV0KSB7XG4gICAgICA8eXV2LWZvcm0taW5wdXRcbiAgICAgICAgW25nQ2xhc3NdPVwieyBjaGVja2JveDogZmllbGQuX2ludGVybmFsVHlwZSA9PT0gJ2Jvb2xlYW4nIH1cIlxuICAgICAgICBbdGFnXT1cInRhZ1wiXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cIiEhZXJyb3JzXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImV0OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBzaXR1YXRpb246IHNpdHVhdGlvbigpLCBuZ0NvbnRyb2w6IG5nQ29udHJvbC5jb250cm9sLCBmaWVsZCB9IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwveXV2LWZvcm0taW5wdXQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZW0+XG4gICAgICAgIDxzdHJvbmc+e3sgZmllbGQuX2ludGVybmFsVHlwZSB9fTwvc3Ryb25nPlxuICAgICAgPC9lbT5cbiAgICB9XG5cbiAgICA8IS0tIHRoZSBmaWVsZHMgZGVzY3JpcHRpb24gLS0+XG4gICAgQGlmIChmaWVsZC5kZXNjcmlwdGlvbikge1xuICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgIHt7IGZpZWxkLmRlc2NyaXB0aW9uIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8IS0tIGVycm9yL3ZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gICAgQGlmIChlcnJvcnMpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCI+XG4gICAgICAgIDxkaXY+e3sgZXJyb3JzW2Vycm9yc1snbGVuZ3RoJ10gLSAxXSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Directive, Input, TemplateRef, inject } from '@angular/core';
2
+ import { Situation } from '@yuuvis/client-core';
3
+ import { MetadataFormElementRegistry } from './metadata-form-element-registry.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Directive to be applied to a `ng-template`. It will register the template as a
7
+ * form element used by object-form component.
8
+ *
9
+ * Context is provided with the following fields:
10
+ * - situation: form situation 'EDIT', 'CREATE', 'SEARCH'
11
+ * - field: ObjectTypeField
12
+ * - ngControl: Reactive FormControl
13
+ *
14
+ * @example
15
+ * <ng-template yuvMetadataElementTemplate propertyType="boolean:switch" let-ctx>...</ng-template>
16
+ *
17
+ */
18
+ export class MetadataElementTemplateDirective {
19
+ constructor() {
20
+ this.registry = inject(MetadataFormElementRegistry);
21
+ this.template = inject((TemplateRef));
22
+ this.situation = Situation.EDIT;
23
+ }
24
+ ngOnInit() {
25
+ if (this.yuvMetadataElementTemplate === 'default')
26
+ this.registry._addDefaultElementTemplate(this.propertyType, this.template);
27
+ else
28
+ this.registry.addElementTemplate(this.propertyType, this.template, this.situation);
29
+ }
30
+ ngOnDestroy() {
31
+ if (this.yuvMetadataElementTemplate === 'default')
32
+ this.registry._removeDefaultElementTemplate(this.propertyType);
33
+ else
34
+ this.registry.removeElementTemplate(this.propertyType, this.situation);
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataElementTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MetadataElementTemplateDirective, isStandalone: true, selector: "[yuvMetadataElementTemplate]", inputs: { yuvMetadataElementTemplate: "yuvMetadataElementTemplate", propertyType: "propertyType", situation: "situation" }, ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataElementTemplateDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[yuvMetadataElementTemplate]',
43
+ standalone: true,
44
+ }]
45
+ }], propDecorators: { yuvMetadataElementTemplate: [{
46
+ type: Input
47
+ }], propertyType: [{
48
+ type: Input
49
+ }], situation: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvb2JqZWN0LW1ldGFkYXRhLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFdkY7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLGdDQUFnQztJQUo3QztRQUtVLGFBQVEsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBZ0IsQ0FBQSxDQUFDLENBQUM7UUFJbkMsY0FBUyxHQUFjLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FXaEQ7SUFUQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsMEJBQTBCLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBQ3pILElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLDBCQUEwQixLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzs7WUFDN0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWhCVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS1UsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXR1YXRpb24gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE1ldGFkYXRhRm9ybUVsZW1lbnRSZWdpc3RyeSB9IGZyb20gJy4vbWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBiZSBhcHBsaWVkIHRvIGEgYG5nLXRlbXBsYXRlYC4gSXQgd2lsbCByZWdpc3RlciB0aGUgdGVtcGxhdGUgYXMgYVxuICogZm9ybSBlbGVtZW50IHVzZWQgYnkgb2JqZWN0LWZvcm0gY29tcG9uZW50LlxuICpcbiAqIENvbnRleHQgaXMgcHJvdmlkZWQgd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAqIC0gc2l0dWF0aW9uOiBmb3JtIHNpdHVhdGlvbiAnRURJVCcsICdDUkVBVEUnLCAnU0VBUkNIJ1xuICogLSBmaWVsZDogT2JqZWN0VHlwZUZpZWxkXG4gKiAtIG5nQ29udHJvbDogUmVhY3RpdmUgRm9ybUNvbnRyb2xcbiAqXG4gKiBAZXhhbXBsZVxuICogPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cImJvb2xlYW46c3dpdGNoXCIgbGV0LWN0eD4uLi48L25nLXRlbXBsYXRlPlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3l1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRWxlbWVudFRlbXBsYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlZ2lzdHJ5ID0gaW5qZWN0KE1ldGFkYXRhRm9ybUVsZW1lbnRSZWdpc3RyeSk7XG4gIHByaXZhdGUgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWY8YW55Pik7XG5cbiAgQElucHV0KCkgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BlcnR5VHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy55dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnKSB0aGlzLnJlZ2lzdHJ5Ll9hZGREZWZhdWx0RWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnRlbXBsYXRlKTtcbiAgICBlbHNlIHRoaXMucmVnaXN0cnkuYWRkRWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnRlbXBsYXRlLCB0aGlzLnNpdHVhdGlvbik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy55dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnKSB0aGlzLnJlZ2lzdHJ5Ll9yZW1vdmVEZWZhdWx0RWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlKTtcbiAgICBlbHNlIHRoaXMucmVnaXN0cnkucmVtb3ZlRWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnNpdHVhdGlvbik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbWV0YWRhdGEtZm9ybS9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './lib/object-details.component';
2
+ export * from './lib/object-metadata/form-section-group.pipe';
3
+ export * from './lib/object-metadata/object-metadata.interface';
4
+ export * from './lib/object-audit/object-audit.component';
5
+ export * from './lib/object-metadata/object-metadata.component';
6
+ export * from './lib/object-details-shell/object-details-shell.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvZm9ybS1zZWN0aW9uLWdyb3VwLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LW1ldGFkYXRhL29iamVjdC1tZXRhZGF0YS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWF1ZGl0L29iamVjdC1hdWRpdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LW1ldGFkYXRhL29iamVjdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWRldGFpbHMtc2hlbGwvb2JqZWN0LWRldGFpbHMtc2hlbGwuY29tcG9uZW50JztcbiJdfQ==