@yuuvis/client-framework 1.0.3 → 2.0.0-beta.2

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 (389) hide show
  1. package/actions/lib/actions/delete-action/delete/delete.component.d.ts +3 -3
  2. package/actions/lib/actions/delete-action/delete-action.d.ts +1 -1
  3. package/actions/lib/actions.service.d.ts +7 -3
  4. package/actions/lib/components/contextmenu/contextmenu.component.d.ts +3 -1
  5. package/autocomplete/README.md +3 -0
  6. package/autocomplete/index.d.ts +3 -0
  7. package/autocomplete/lib/autocomplete.component.d.ts +72 -0
  8. package/autocomplete/lib/autocomplete.interface.d.ts +4 -0
  9. package/autocomplete/lib/autocomplete.module.d.ts +7 -0
  10. package/common/index.d.ts +4 -4
  11. package/common/lib/common.module.d.ts +19 -0
  12. package/common/lib/common.utils.d.ts +2 -0
  13. package/common/lib/components/confirm/confirm.component.d.ts +7 -0
  14. package/common/lib/components/confirm/confirm.interface.d.ts +7 -0
  15. package/common/lib/components/confirm/confirm.service.d.ts +9 -0
  16. package/common/lib/components/dialog/dialog.component.d.ts +6 -0
  17. package/common/lib/components/dialog/dialog.options.d.ts +7 -0
  18. package/common/lib/components/index.d.ts +5 -0
  19. package/common/lib/directives/autofocus-child.directive.d.ts +13 -0
  20. package/common/lib/directives/autofocus-delayed.directive.d.ts +18 -0
  21. package/common/lib/directives/drag-scroll.directive.d.ts +20 -0
  22. package/common/lib/directives/index.d.ts +8 -4
  23. package/common/lib/directives/noop-value-accessor.directive.d.ts +2 -2
  24. package/common/lib/mat-form-field.abstract.d.ts +41 -0
  25. package/common/lib/services/index.d.ts +1 -1
  26. package/common/lib/services/layout-settings/layout-settings.service.d.ts +18 -0
  27. package/datepicker/README.md +3 -0
  28. package/datepicker/index.d.ts +5 -0
  29. package/datepicker/lib/calendar/calendar.component.d.ts +72 -0
  30. package/datepicker/lib/date-input/date-input-element/date-input-element.component.d.ts +43 -0
  31. package/datepicker/lib/date-input/date-input-hour-element/date-input-hour-element.component.d.ts +11 -0
  32. package/datepicker/lib/date-input/date-input.component.d.ts +61 -0
  33. package/datepicker/lib/datepicker-calendar/datepicker-calendar-trigger.component.d.ts +7 -0
  34. package/datepicker/lib/datepicker-calendar/datepicker-calendar.component.d.ts +12 -0
  35. package/datepicker/lib/datepicker.component.d.ts +80 -0
  36. package/datepicker/lib/datepicker.interface.d.ts +34 -0
  37. package/datepicker/lib/datepicker.module.d.ts +9 -0
  38. package/datepicker/lib/datepicker.service.d.ts +46 -0
  39. package/datepicker/lib/datepicker.utils.d.ts +23 -0
  40. package/datepicker/lib/time-input/time-input.component.d.ts +36 -0
  41. package/datepicker/lib/time-input/time-input.interface.d.ts +6 -0
  42. package/fesm2022/yuuvis-client-framework-actions.mjs +147 -105
  43. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  44. package/fesm2022/yuuvis-client-framework-app-bar.mjs +7 -8
  45. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
  46. package/fesm2022/yuuvis-client-framework-autocomplete.mjs +210 -0
  47. package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -0
  48. package/fesm2022/yuuvis-client-framework-clipboard.mjs +9 -9
  49. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  50. package/fesm2022/yuuvis-client-framework-common.mjs +853 -780
  51. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  52. package/fesm2022/yuuvis-client-framework-datepicker.mjs +1688 -0
  53. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -0
  54. package/fesm2022/yuuvis-client-framework-forms.mjs +945 -1157
  55. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  56. package/fesm2022/yuuvis-client-framework-icons.mjs +85 -12
  57. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  58. package/fesm2022/yuuvis-client-framework-list.mjs +81 -45
  59. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  60. package/fesm2022/yuuvis-client-framework-master-details.mjs +112 -0
  61. package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -0
  62. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +60 -0
  63. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -0
  64. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +125 -100
  65. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  66. package/fesm2022/yuuvis-client-framework-object-details.mjs +49 -59
  67. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  68. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +188 -77
  69. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  70. package/fesm2022/yuuvis-client-framework-object-form.mjs +99 -184
  71. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  72. package/fesm2022/yuuvis-client-framework-object-preview.mjs +11 -11
  73. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  74. package/fesm2022/yuuvis-client-framework-object-summary.mjs +46 -42
  75. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  76. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +126 -0
  77. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -0
  78. package/fesm2022/yuuvis-client-framework-pagination.mjs +7 -9
  79. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  80. package/fesm2022/yuuvis-client-framework-panel.mjs +8 -7
  81. package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -1
  82. package/fesm2022/yuuvis-client-framework-popout.mjs +212 -0
  83. package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -0
  84. package/fesm2022/yuuvis-client-framework-renderer.mjs +99 -72
  85. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  86. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +29 -112
  87. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  88. package/fesm2022/yuuvis-client-framework-simple-search.mjs +40 -21
  89. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
  90. package/fesm2022/yuuvis-client-framework-split-view.mjs +188 -0
  91. package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -0
  92. package/fesm2022/yuuvis-client-framework-tile-list.mjs +100 -93
  93. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  94. package/fesm2022/yuuvis-client-framework-tree.mjs +15 -15
  95. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
  96. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +16 -21
  97. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
  98. package/fesm2022/yuuvis-client-framework.mjs +4 -4
  99. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  100. package/forms/index.d.ts +7 -1
  101. package/forms/lib/elements/catalog/catalog.component.d.ts +17 -56
  102. package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +5 -4
  103. package/forms/lib/elements/datetime/datetime.component.d.ts +19 -10
  104. package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +12 -27
  105. package/forms/lib/elements/index.d.ts +0 -1
  106. package/forms/lib/elements/number/number.component.d.ts +21 -30
  107. package/forms/lib/elements/number-range/number-range.component.d.ts +12 -7
  108. package/forms/lib/elements/organization/organization.component.d.ts +23 -51
  109. package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +12 -7
  110. package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +12 -7
  111. package/forms/lib/elements/string/string.component.d.ts +15 -20
  112. package/forms/lib/forms.module.d.ts +8 -11
  113. package/icons/index.d.ts +1 -0
  114. package/icons/lib/icon.component.d.ts +20 -0
  115. package/lib/assets/i18n/de.json +7 -23
  116. package/lib/assets/i18n/en.json +10 -26
  117. package/list/index.d.ts +1 -0
  118. package/list/lib/list-item.directive.d.ts +5 -4
  119. package/list/lib/list.component.d.ts +6 -3
  120. package/list/lib/list.module.d.ts +8 -0
  121. package/master-details/README.md +3 -0
  122. package/master-details/index.d.ts +2 -0
  123. package/master-details/lib/master-details.component.d.ts +58 -0
  124. package/master-details/lib/master-details.interface.d.ts +7 -0
  125. package/master-details/lib/master-details.module.d.ts +7 -0
  126. package/metadata-form/index.d.ts +4 -1
  127. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +4 -17
  128. package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +11 -0
  129. package/metadata-form/lib/object-metadata-element-error.directive.d.ts +13 -0
  130. package/metadata-form/lib/object-metadata-element-label.directive.d.ts +10 -0
  131. package/metadata-form/lib/object-metadata-element-template.directive.d.ts +3 -3
  132. package/metadata-form-defaults/README.md +3 -0
  133. package/metadata-form-defaults/index.d.ts +2 -0
  134. package/metadata-form-defaults/lib/metadata-form-defaults.module.d.ts +7 -0
  135. package/object-details/lib/object-audit/object-audit.component.d.ts +3 -9
  136. package/object-details/lib/object-details.component.d.ts +0 -2
  137. package/object-details/lib/object-metadata/object-metadata.component.d.ts +4 -3
  138. package/object-details/lib/retention-badge/retention-badge.component.d.ts +0 -3
  139. package/object-flavor/index.d.ts +1 -0
  140. package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +1 -2
  141. package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +3 -2
  142. package/object-flavor/lib/default-apply-flavor/default-apply-flavor.component.d.ts +19 -0
  143. package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +1 -1
  144. package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +3 -6
  145. package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +0 -1
  146. package/object-form/index.d.ts +1 -1
  147. package/object-form/lib/object-form-element/object-form-element.component.d.ts +2 -2
  148. package/object-form/lib/object-form-group/object-form-group.component.d.ts +1 -3
  149. package/object-form/lib/object-form.component.d.ts +2 -2
  150. package/object-form/lib/object-form.interface.d.ts +0 -44
  151. package/object-form/lib/object-form.module.d.ts +7 -0
  152. package/object-form/lib/object-form.service.d.ts +1 -2
  153. package/object-form/lib/object-form.utils.d.ts +1 -1
  154. package/object-summary/lib/object-summary/object-summary.component.d.ts +13 -15
  155. package/overflow-menu/README.md +3 -0
  156. package/overflow-menu/index.d.ts +3 -0
  157. package/overflow-menu/lib/overflow-menu.component.d.ts +31 -0
  158. package/overflow-menu/lib/overflow-menu.interface.d.ts +9 -0
  159. package/overflow-menu/lib/overflow-menu.module.d.ts +7 -0
  160. package/package.json +40 -66
  161. package/popout/README.md +3 -0
  162. package/popout/index.d.ts +3 -0
  163. package/popout/lib/popout.component.d.ts +58 -0
  164. package/popout/lib/popout.interface.d.ts +17 -0
  165. package/popout/lib/popout.module.d.ts +7 -0
  166. package/renderer/lib/property-renderer/abstract.renderer.d.ts +4 -4
  167. package/renderer/lib/property-renderer/icon.renderer.component.d.ts +2 -0
  168. package/renderer/lib/renderer.directive.d.ts +4 -3
  169. package/sequence-list/index.d.ts +0 -1
  170. package/sequence-list/lib/sequence-list.component.d.ts +0 -4
  171. package/simple-search/index.d.ts +0 -1
  172. package/simple-search/lib/simple-search/simple-search.component.d.ts +6 -10
  173. package/split-view/README.md +3 -0
  174. package/split-view/index.d.ts +4 -0
  175. package/split-view/lib/split-area.directive.d.ts +16 -0
  176. package/split-view/lib/split-view.component.d.ts +76 -0
  177. package/split-view/lib/split-view.interface.d.ts +10 -0
  178. package/split-view/lib/split-view.module.d.ts +8 -0
  179. package/styles/client-framework.scss +21 -67
  180. package/tile-list/lib/tile/tile.component.d.ts +1 -2
  181. package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +0 -1
  182. package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +1 -2
  183. package/tile-list/lib/tile-config/tile-config.component.d.ts +0 -3
  184. package/tile-list/lib/tile-list/tile-list.component.d.ts +5 -5
  185. package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +0 -5
  186. package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +0 -4
  187. package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +0 -7
  188. package/common/lib/components/token-input/token-input.component.d.ts +0 -55
  189. package/common/lib/components/token-input/token-input.interface.d.ts +0 -8
  190. package/common/lib/services/error-messages/error-messages.service.d.ts +0 -7
  191. package/esm2022/actions/index.mjs +0 -7
  192. package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +0 -31
  193. package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +0 -30
  194. package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +0 -67
  195. package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +0 -38
  196. package/esm2022/actions/lib/actions/download-action/download-action.mjs +0 -33
  197. package/esm2022/actions/lib/actions.icon.mjs +0 -8
  198. package/esm2022/actions/lib/actions.interface.mjs +0 -19
  199. package/esm2022/actions/lib/actions.module.mjs +0 -16
  200. package/esm2022/actions/lib/actions.service.mjs +0 -89
  201. package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +0 -27
  202. package/esm2022/actions/yuuvis-client-framework-actions.mjs +0 -5
  203. package/esm2022/app-bar/index.mjs +0 -2
  204. package/esm2022/app-bar/lib/app-bar.component.mjs +0 -89
  205. package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +0 -5
  206. package/esm2022/clipboard/index.mjs +0 -2
  207. package/esm2022/clipboard/lib/clipboard.component.mjs +0 -48
  208. package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +0 -5
  209. package/esm2022/common/index.mjs +0 -7
  210. package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +0 -41
  211. package/esm2022/common/lib/components/token-input/token-input.component.mjs +0 -324
  212. package/esm2022/common/lib/components/token-input/token-input.interface.mjs +0 -2
  213. package/esm2022/common/lib/directives/busy-overlay.directive.mjs +0 -88
  214. package/esm2022/common/lib/directives/click-double.directive.mjs +0 -61
  215. package/esm2022/common/lib/directives/container-size.directive.mjs +0 -56
  216. package/esm2022/common/lib/directives/drag-select.directive.mjs +0 -114
  217. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +0 -153
  218. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +0 -2
  219. package/esm2022/common/lib/directives/focus-within.directive.mjs +0 -81
  220. package/esm2022/common/lib/directives/index.mjs +0 -9
  221. package/esm2022/common/lib/directives/light-dismiss.directive.mjs +0 -44
  222. package/esm2022/common/lib/directives/longpress.directive.mjs +0 -36
  223. package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +0 -42
  224. package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +0 -68
  225. package/esm2022/common/lib/services/index.mjs +0 -2
  226. package/esm2022/common/yuuvis-client-framework-common.mjs +0 -5
  227. package/esm2022/forms/index.mjs +0 -24
  228. package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +0 -118
  229. package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +0 -172
  230. package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +0 -95
  231. package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +0 -9
  232. package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +0 -82
  233. package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +0 -166
  234. package/esm2022/forms/lib/elements/index.mjs +0 -11
  235. package/esm2022/forms/lib/elements/number/number.component.mjs +0 -195
  236. package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +0 -176
  237. package/esm2022/forms/lib/elements/organization/organization.component.mjs +0 -286
  238. package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +0 -38
  239. package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +0 -181
  240. package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +0 -2
  241. package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +0 -98
  242. package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +0 -2
  243. package/esm2022/forms/lib/elements/string/string.component.mjs +0 -261
  244. package/esm2022/forms/lib/form-input/form-input.component.mjs +0 -88
  245. package/esm2022/forms/lib/forms.module.mjs +0 -58
  246. package/esm2022/forms/yuuvis-client-framework-forms.mjs +0 -5
  247. package/esm2022/icons/index.mjs +0 -4
  248. package/esm2022/icons/lib/icon.service.mjs +0 -59
  249. package/esm2022/icons/lib/icons.mjs +0 -32
  250. package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +0 -29
  251. package/esm2022/icons/yuuvis-client-framework-icons.mjs +0 -5
  252. package/esm2022/index.mjs +0 -2
  253. package/esm2022/lib/yuuvis-client-framework.module.mjs +0 -15
  254. package/esm2022/list/index.mjs +0 -3
  255. package/esm2022/list/lib/list-item.directive.mjs +0 -72
  256. package/esm2022/list/lib/list.component.mjs +0 -135
  257. package/esm2022/list/yuuvis-client-framework-list.mjs +0 -5
  258. package/esm2022/metadata-form/index.mjs +0 -4
  259. package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +0 -32
  260. package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +0 -99
  261. package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +0 -83
  262. package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +0 -52
  263. package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +0 -5
  264. package/esm2022/object-details/index.mjs +0 -8
  265. package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +0 -195
  266. package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +0 -127
  267. package/esm2022/object-details/lib/object-details.component.mjs +0 -61
  268. package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +0 -17
  269. package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +0 -202
  270. package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +0 -2
  271. package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +0 -27
  272. package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +0 -5
  273. package/esm2022/object-flavor/index.mjs +0 -6
  274. package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +0 -25
  275. package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +0 -21
  276. package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +0 -35
  277. package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +0 -93
  278. package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +0 -43
  279. package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +0 -5
  280. package/esm2022/object-form/index.mjs +0 -5
  281. package/esm2022/object-form/lib/form-scripting.api.interface.mjs +0 -2
  282. package/esm2022/object-form/lib/form-scripting.service.mjs +0 -160
  283. package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +0 -87
  284. package/esm2022/object-form/lib/object-form-extension.interface.mjs +0 -36
  285. package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +0 -85
  286. package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +0 -23
  287. package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +0 -115
  288. package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +0 -251
  289. package/esm2022/object-form/lib/object-form-translate.service.mjs +0 -73
  290. package/esm2022/object-form/lib/object-form.component.mjs +0 -628
  291. package/esm2022/object-form/lib/object-form.interface.mjs +0 -9
  292. package/esm2022/object-form/lib/object-form.model.mjs +0 -20
  293. package/esm2022/object-form/lib/object-form.service.mjs +0 -130
  294. package/esm2022/object-form/lib/object-form.utils.mjs +0 -55
  295. package/esm2022/object-form/lib/object-form.validation.mjs +0 -48
  296. package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +0 -5
  297. package/esm2022/object-preview/index.mjs +0 -3
  298. package/esm2022/object-preview/lib/components/index.mjs +0 -3
  299. package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +0 -45
  300. package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +0 -78
  301. package/esm2022/object-preview/lib/services/object-preview.service.mjs +0 -119
  302. package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +0 -5
  303. package/esm2022/object-summary/index.mjs +0 -5
  304. package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +0 -33
  305. package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +0 -275
  306. package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +0 -80
  307. package/esm2022/object-summary/lib/object-summary.module.mjs +0 -15
  308. package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +0 -5
  309. package/esm2022/pagination/index.mjs +0 -3
  310. package/esm2022/pagination/lib/pagination.component.mjs +0 -46
  311. package/esm2022/pagination/lib/pagination.interface.mjs +0 -2
  312. package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +0 -5
  313. package/esm2022/panel/index.mjs +0 -2
  314. package/esm2022/panel/lib/panel.component.mjs +0 -20
  315. package/esm2022/panel/yuuvis-client-framework-panel.mjs +0 -5
  316. package/esm2022/renderer/index.mjs +0 -11
  317. package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +0 -29
  318. package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +0 -13
  319. package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +0 -12
  320. package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +0 -28
  321. package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +0 -23
  322. package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +0 -12
  323. package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +0 -19
  324. package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +0 -12
  325. package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +0 -12
  326. package/esm2022/renderer/lib/renderer.directive.mjs +0 -51
  327. package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +0 -2
  328. package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +0 -84
  329. package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +0 -5
  330. package/esm2022/sequence-list/index.mjs +0 -4
  331. package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +0 -99
  332. package/esm2022/sequence-list/lib/sequence-list.component.mjs +0 -141
  333. package/esm2022/sequence-list/lib/sequence-list.interface.mjs +0 -2
  334. package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +0 -5
  335. package/esm2022/simple-search/index.mjs +0 -3
  336. package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +0 -111
  337. package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +0 -2
  338. package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +0 -5
  339. package/esm2022/tile-list/index.mjs +0 -11
  340. package/esm2022/tile-list/lib/tile/tile.component.mjs +0 -53
  341. package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +0 -25
  342. package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +0 -33
  343. package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +0 -91
  344. package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +0 -66
  345. package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +0 -46
  346. package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +0 -156
  347. package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +0 -37
  348. package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +0 -42
  349. package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +0 -35
  350. package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +0 -510
  351. package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +0 -2
  352. package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +0 -5
  353. package/esm2022/token-search/index.mjs +0 -3
  354. package/esm2022/token-search/token-search.component.mjs +0 -78
  355. package/esm2022/token-search/token-search.interface.mjs +0 -2
  356. package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +0 -5
  357. package/esm2022/tree/index.mjs +0 -3
  358. package/esm2022/tree/lib/tree-node/tree-node.component.mjs +0 -65
  359. package/esm2022/tree/lib/tree.component.mjs +0 -148
  360. package/esm2022/tree/lib/tree.interface.mjs +0 -2
  361. package/esm2022/tree/lib/tree.service.mjs +0 -95
  362. package/esm2022/tree/yuuvis-client-framework-tree.mjs +0 -5
  363. package/esm2022/upload-progress/index.mjs +0 -2
  364. package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +0 -49
  365. package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +0 -37
  366. package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +0 -5
  367. package/esm2022/user-avatar/index.mjs +0 -3
  368. package/esm2022/user-avatar/lib/user-avatar.component.mjs +0 -69
  369. package/esm2022/user-avatar/lib/user-avatar.module.mjs +0 -24
  370. package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +0 -5
  371. package/esm2022/yuuvis-client-framework.mjs +0 -5
  372. package/fesm2022/yuuvis-client-framework-token-search.mjs +0 -85
  373. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +0 -1
  374. package/fesm2022/yuuvis-client-framework-user-avatar.mjs +0 -96
  375. package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +0 -1
  376. package/forms/lib/form-input/form-input.component.d.ts +0 -48
  377. package/object-form/lib/object-form-translate.service.d.ts +0 -15
  378. package/object-form/lib/object-form.model.d.ts +0 -18
  379. package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +0 -28
  380. package/simple-search/lib/simple-search/simple-search.interface.d.ts +0 -4
  381. package/token-search/README.md +0 -3
  382. package/token-search/index.d.ts +0 -2
  383. package/token-search/token-search.component.d.ts +0 -22
  384. package/token-search/token-search.interface.d.ts +0 -4
  385. package/user-avatar/README.md +0 -3
  386. package/user-avatar/index.d.ts +0 -2
  387. package/user-avatar/lib/user-avatar.component.d.ts +0 -44
  388. package/user-avatar/lib/user-avatar.module.d.ts +0 -8
  389. /package/{metadata-form → metadata-form-defaults}/lib/metadata-default-templates/metadata-default-templates.component.d.ts +0 -0
@@ -1,99 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFaEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBSVUsY0FBUyxHQUFpRCxFQUFFLENBQUM7UUFFN0QsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsWUFBTyxHQUFpRCxFQUFFLENBQUM7UUFDM0QsWUFBTyxHQUFpRCxFQUFFLENBQUM7S0FpRnBFO0lBL0VDOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxZQUFvQixTQUFTLENBQUMsSUFBSTtRQUN6RSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUYsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXRHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFdBQTZCLEVBQUUsWUFBdUIsU0FBUyxDQUFDLElBQUk7UUFDM0csSUFBSSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxZQUF1QixTQUFTLENBQUMsSUFBSTtRQUMvRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLFdBQTZCO1FBQzVFLElBQUksWUFBWSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBckZVLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogUmVnaXN0cmF0aW9uIHNlcnZpY2UgZm9yIGZvcm0gZWxlbWVudHMgcmVuZGVyZWQgd2l0aGluIGFuIG9iamVjdCBmb3JtLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkge1xuICBwcml2YXRlIF9kZWZhdWx0czogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICBwcml2YXRlIF9lZGl0OiB7IFtwcm9wZXJ0eVR5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfSA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2g6IHsgW3Byb3BlcnR5VHlwZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG4gIHByaXZhdGUgX2NyZWF0ZTogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICAvKipcbiAgICogR2V0IGEgdGVtcGxhdGUgdG8gcmVuZGVyIGEgY2VydGFpbiBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBnZXQgdGhlIHRlbXBsYXRlIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uXG4gICAqIEByZXR1cm5zIFRlbXBsYXRlUmVmIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZyA9IFNpdHVhdGlvbi5FRElUKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNtcHMgPSB7IC4uLnRoaXMuX2RlZmF1bHRzLCAuLi50aGlzLl9lZGl0IH07XG4gICAgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLlNFQVJDSCkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX3NlYXJjaCB9O1xuICAgIGVsc2UgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLkNSRUFURSkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX2NyZWF0ZSB9O1xuXG4gICAgcmV0dXJuIGNtcHNbcHJvcGVydHlUeXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBvYmplY3QgZm9ybSBlbGVtZW50IGZvciBhIGNlcnRhaW4gaW50ZXJuYWwgdHlwZS4gWW91IG1pZ2h0IGFkZCBhIG5ldyBjb21wb25lbnRcbiAgICogb3Igb3ZlcndyaXRlIGFuIGV4aXN0dW5nIG9uZS5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBwcm92aWRlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uIHRvIHByb3ZpZGUgdGhldyBmb3JtIGVsZW1lbnQgZm9yIChkZWZhdWx0cyB0byBFRElUKVxuICAgKi9cbiAgYWRkRWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Piwgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVCk6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHN3aXRjaCAoc2l0dWF0aW9uKSB7XG4gICAgICAgIGNhc2UgU2l0dWF0aW9uLlNFQVJDSDoge1xuICAgICAgICAgIHRoaXMuX3NlYXJjaFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBTaXR1YXRpb24uQ1JFQVRFOiB7XG4gICAgICAgICAgdGhpcy5fY3JlYXRlW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdGhpcy5fZWRpdFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBmb3JtIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcmVtb3ZlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gRm9ybSBzaXR1YXRpb24gdG8gcHJvdmlkZSB0aGV3IGZvcm0gZWxlbWVudCBmb3IgKGRlZmF1bHRzIHRvIEVESVQpXG4gICAqL1xuICByZW1vdmVFbGVtZW50VGVtcGxhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQpIHtcbiAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgY2FzZSBTaXR1YXRpb24uU0VBUkNIOiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9zZWFyY2hbcHJvcGVydHlUeXBlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNpdHVhdGlvbi5DUkVBVEU6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2NyZWF0ZVtwcm9wZXJ0eVR5cGVdO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2VkaXRbcHJvcGVydHlUeXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZGVmYXVsdCBmb3JtIGVsZW1lbnQgY29tcG9uZW50LiBVc3VhbGx5IHRoaXMgd2lsbCBiZSBkb25lIGJ5IHRoZSBvYmplY3RcbiAgICogZm9ybSBjb21wb25lbnQgaXRzZWxmLlxuICAgKiBAcGFyYW0gcHJvcGVydHlUeXBlIFRoZSBpbnRlcm5hbCB0eXBlIHRvIHByb3ZpZGUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgZGVmYXVsdCBjb21wb25lbnRcbiAgICovXG4gIF9hZGREZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBkZWZhdWx0IGZvcm0gZWxlbWVudC5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byByZW1vdmUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICovXG4gIF9yZW1vdmVEZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nKSB7XG4gICAgZGVsZXRlIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV07XG4gIH1cbn1cbiJdfQ==
@@ -1,83 +0,0 @@
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 { ErrorMessagesService } from '@yuuvis/client-framework/common';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@yuuvis/client-framework/common";
10
- export class MetadataFormFieldComponent {
11
- constructor() {
12
- this.#registry = inject(MetadataFormElementRegistry);
13
- this.#system = inject(SystemService);
14
- this.translate = inject(TranslateService);
15
- this.#errorMassge = inject(ErrorMessagesService);
16
- this._subs = [];
17
- this.ngControl = injectNgControl();
18
- this.elementTemplate = signal(undefined);
19
- this.errors = null;
20
- this.label = '';
21
- this.readonly = false;
22
- this.required = false;
23
- this.formField = input.required({ alias: 'field' });
24
- this.#fieldEffect = effect(() => {
25
- const field = this.formField();
26
- untracked(() => {
27
- this.elementTemplate.set(this.#registry.getElementTemplate(field._internalType, this.situation()));
28
- this.label = this.#system.getLocalizedLabel(field.name) || field.name;
29
- // TODO: set readonly state based on ...????... schema?
30
- this.readonly = false;
31
- this.required = this.situation() !== Situation.SEARCH ? field.required : false;
32
- this.ngControl.statusChanges;
33
- this.fetchTags();
34
- });
35
- });
36
- /**
37
- * Form situation, if not set default will be 'EDIT'
38
- */
39
- this.situation = input(Situation.EDIT);
40
- }
41
- #registry;
42
- #system;
43
- #errorMassge;
44
- #fieldEffect;
45
- fetchTags() {
46
- this.tag = undefined;
47
- if (this.situation() === Situation.CREATE &&
48
- (Utils.hasProperty(this.formField(), 'defaultvaluefunction') || Utils.hasProperty(this.formField(), 'defaultvalue'))) {
49
- this.tag =
50
- this.formField().defaultvaluefunction === 'EXTRACTION'
51
- ? {
52
- label: 'ex',
53
- title: this.translate.instant('yuv.object-form-element.tag.ex')
54
- }
55
- : {
56
- label: 'df',
57
- title: this.translate.instant('yuv.object-form-element.tag.df')
58
- };
59
- }
60
- }
61
- ngOnInit() {
62
- if (this.ngControl.statusChanges)
63
- this._subs.push(this.ngControl.statusChanges.subscribe(() => {
64
- this.errors = this.ngControl.control.errors
65
- ? Object.keys(this.ngControl.control.errors).map((key) => {
66
- return this.ngControl.control.errors ? this.#errorMassge.getErrorLabel(key, this.ngControl.control.errors[key].params) : null;
67
- })
68
- : null;
69
- }));
70
- }
71
- ngOnDestroy() {
72
- this._subs.forEach((s) => s.unsubscribe());
73
- }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- 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\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"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 }\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 }); }
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, decorators: [{
78
- type: Component,
79
- args: [{ selector: 'yuv-metadata-form-field', standalone: true, imports: [NgClass, NgTemplateOutlet, FormInputComponent], hostDirectives: [NoopValueAccessorDirective], encapsulation: ViewEncapsulation.None, host: {
80
- class: 'yuv-metadata-form-field'
81
- }, template: "@let field = formField();\n\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"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 }\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"] }]
82
- }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWZpZWxkL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQWN2RSxNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYVcsY0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFN0MsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQUcsTUFBTSxDQUErQixTQUFTLENBQUMsQ0FBQztRQUNsRSxXQUFNLEdBQTRCLElBQUksQ0FBQztRQUN2QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBU2pCLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFrQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUV0RSx1REFBdUQ7Z0JBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBcUN2RDtJQTdFVSxTQUFTLENBQXVDO0lBQ2hELE9BQU8sQ0FBeUI7SUFFaEMsWUFBWSxDQUFnQztJQW1CckQsWUFBWSxDQWFUO0lBT0gsU0FBUztRQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLElBQ0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxNQUFNO1lBQ3JDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUNwSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUc7Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBVSxDQUFDLG9CQUFvQixLQUFLLFlBQVk7b0JBQzdELENBQUMsQ0FBQzt3QkFDRSxLQUFLLEVBQUUsSUFBSTt3QkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7cUJBQ2hFO29CQUNILENBQUMsQ0FBQzt3QkFDRSxLQUFLLEVBQUUsSUFBSTt3QkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7cUJBQ2hFLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU07b0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNoSSxDQUFDLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQTdFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1ZEN0QnZDLHUwQ0EwQ0EsZ29DRDdCWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQVM1QywwQkFBMEI7a0JBWnRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxrQkFHeEMsQ0FBQywwQkFBMEIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUseUJBQXlCO3FCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUZpZWxkLCBTaXR1YXRpb24sIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ0NvbnRyb2wsIE5vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkgfSBmcm9tICcuLi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbWV0YWRhdGEtZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3JtSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOb29wVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3l1di1tZXRhZGF0YS1mb3JtLWZpZWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjcmVnaXN0cnkgPSBpbmplY3QoTWV0YWRhdGFGb3JtRWxlbWVudFJlZ2lzdHJ5KTtcbiAgcmVhZG9ubHkgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHJlYWRvbmx5ICNlcnJvck1hc3NnZSA9IGluamVjdChFcnJvck1lc3NhZ2VzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgbmdDb250cm9sID0gaW5qZWN0TmdDb250cm9sKCk7XG4gIGVsZW1lbnRUZW1wbGF0ZSA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgbGFiZWwgPSAnJztcbiAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgcmVxdWlyZWQgPSBmYWxzZTtcbiAgdGFnOlxuICAgIHwge1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9maWVsZCE6IE9iamVjdFR5cGVGaWVsZDtcblxuICBmb3JtRmllbGQgPSBpbnB1dC5yZXF1aXJlZDxPYmplY3RUeXBlRmllbGQ+KHsgYWxpYXM6ICdmaWVsZCcgfSk7XG5cbiAgI2ZpZWxkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZm9ybUZpZWxkKCk7XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50VGVtcGxhdGUuc2V0KHRoaXMuI3JlZ2lzdHJ5LmdldEVsZW1lbnRUZW1wbGF0ZShmaWVsZC5faW50ZXJuYWxUeXBlLCB0aGlzLnNpdHVhdGlvbigpKSk7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy4jc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGZpZWxkLm5hbWUpIHx8IGZpZWxkLm5hbWU7XG5cbiAgICAgIC8vIFRPRE86IHNldCByZWFkb25seSBzdGF0ZSBiYXNlZCBvbiAuLi4/Pz8/Li4uIHNjaGVtYT9cbiAgICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnNpdHVhdGlvbigpICE9PSBTaXR1YXRpb24uU0VBUkNIID8gZmllbGQucmVxdWlyZWQgOiBmYWxzZTtcbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM7XG4gICAgICB0aGlzLmZldGNoVGFncygpO1xuICAgIH0pO1xuICB9KTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgc2l0dWF0aW9uID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPihTaXR1YXRpb24uRURJVCk7XG5cbiAgZmV0Y2hUYWdzKCkge1xuICAgIHRoaXMudGFnID0gdW5kZWZpbmVkO1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2l0dWF0aW9uKCkgPT09IFNpdHVhdGlvbi5DUkVBVEUgJiZcbiAgICAgIChVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlZnVuY3Rpb24nKSB8fCBVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlJykpXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9XG4gICAgICAgICh0aGlzLmZvcm1GaWVsZCgpIGFzIGFueSkuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdFWFRSQUNUSU9OJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDogJ2V4JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LnRhZy5leCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZGYnLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQudGFnLmRmJylcbiAgICAgICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzXG4gICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9ycyA/IHRoaXMuI2Vycm9yTWFzc2dlLmdldEVycm9yTGFiZWwoa2V5LCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9yc1trZXldLnBhcmFtcykgOiBudWxsO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiQGxldCBmaWVsZCA9IGZvcm1GaWVsZCgpO1xuXG5AaWYgKGZpZWxkKSB7XG4gIEBsZXQgZXQgPSBlbGVtZW50VGVtcGxhdGUoKTtcblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCB0LXt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX1cIiAjZm9ybUZpZWxkIFthdHRyLmRhdGEtbmFtZV09XCJmaWVsZC5uYW1lXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogISFyZWFkb25seSB9XCI+XG4gICAgQGlmIChldCkge1xuICAgICAgQGlmIChmaWVsZC5faW50ZXJuYWxUeXBlID09PSAndGFibGUnKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJldDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2l0dWF0aW9uOiBzaXR1YXRpb24oKSwgbmdDb250cm9sOiBuZ0NvbnRyb2wuY29udHJvbCwgZmllbGQgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHl1di1mb3JtLWlucHV0XG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBjaGVja2JveDogZmllbGQuX2ludGVybmFsVHlwZSA9PT0gJ2Jvb2xlYW4nIH1cIlxuICAgICAgICAgIFt0YWddPVwidGFnXCJcbiAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiISFlcnJvcnNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IHNpdHVhdGlvbjogc2l0dWF0aW9uKCksIG5nQ29udHJvbDogbmdDb250cm9sLmNvbnRyb2wsIGZpZWxkIH0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3l1di1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgPGVtPlxuICAgICAgICA8c3Ryb25nPnt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX08L3N0cm9uZz5cbiAgICAgIDwvZW0+XG4gICAgfVxuXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxuICAgIEBpZiAoZmllbGQuZGVzY3JpcHRpb24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBmaWVsZC5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgIEBpZiAoZXJyb3JzKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiPlxuICAgICAgICA8ZGl2Pnt7IGVycm9yc1tlcnJvcnNbJ2xlbmd0aCddIC0gMV0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -1,52 +0,0 @@
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==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbWV0YWRhdGEtZm9ybS9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,8 +0,0 @@
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
- export * from './lib/retention-badge/retention-badge.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1tZXRhZGF0YS9mb3JtLXNlY3Rpb24tZ3JvdXAucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtZGV0YWlscy1zaGVsbC9vYmplY3QtZGV0YWlscy1zaGVsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXRlbnRpb24tYmFkZ2UvcmV0ZW50aW9uLWJhZGdlLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,195 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, computed, effect, input, signal } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
5
- import { RouterLink } from '@angular/router';
6
- import { AppCacheService, AuditService, BackendService, EventService, LocaleDatePipe, SystemService, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
7
- import { BusyOverlayDirective } from '@yuuvis/client-framework/common';
8
- import { YUV_ICONS } from '@yuuvis/client-framework/icons';
9
- import { YvcIconModule } from '@yuuvis/components/icon';
10
- import { finalize } from 'rxjs';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@yuuvis/client-core";
13
- import * as i2 from "@angular/forms";
14
- import * as i3 from "@angular/common";
15
- import * as i4 from "@yuuvis/components/icon";
16
- export class ObjectAuditComponent {
17
- #dmsObjectEffect;
18
- get objectID() {
19
- return this._objectID;
20
- }
21
- constructor(auditService, backend, appCache, eventService, system, fb, translate
22
- // private iconRegistry: IconRegistryService,
23
- // @Inject(ROUTES) private routes: YuvRoutes
24
- ) {
25
- this.auditService = auditService;
26
- this.backend = backend;
27
- this.appCache = appCache;
28
- this.eventService = eventService;
29
- this.system = system;
30
- this.fb = fb;
31
- this.translate = translate;
32
- this.FILTER_CACHE_KEY = 'yuv.audit.filters';
33
- this.icons = {
34
- filter: YUV_ICONS.filter,
35
- arrowNext: YUV_ICONS.arrowNext
36
- };
37
- this.resolvedItems = signal([]);
38
- this.searchPanelShow = false;
39
- this.error = false;
40
- this.busy = false;
41
- this.searchActions = [];
42
- this.auditLabels = {};
43
- this.dmsObject = input(undefined);
44
- this.#dmsObjectEffect = effect(() => {
45
- const o = this.dmsObject();
46
- if (!o) {
47
- this._objectID = undefined;
48
- this._objectTypeID = undefined;
49
- this.auditsRes = undefined;
50
- }
51
- else if (!this._objectID || this._objectID !== o.id) {
52
- this._objectID = o.id;
53
- this._objectTypeID = o.objectTypeId;
54
- this.query();
55
- }
56
- else {
57
- this.query();
58
- }
59
- });
60
- /**
61
- * A list of audits that should not be shown. Use the audit codes (like 100, 301, etc.).
62
- * This will also disable the corresponding filters.
63
- */
64
- this.skipActions = input([]);
65
- /**
66
- * Whether or not to ignore admin and user separation of audit entries
67
- */
68
- this.allActions = input(false);
69
- this.link = input(undefined, { alias: 'versionsLink' });
70
- this.versionsLink = computed(() => {
71
- const link = this.link();
72
- return link ? `${link}` : undefined;
73
- });
74
- // this.versionStatePath = this.routes && this.routes.versions ? this.routes.versions.path : null;
75
- // this.versionStateQueryParam = this.routes && this.routes.versions ? this.routes.versions.queryParams.version : null;
76
- // this.iconRegistry.registerIcons([filter, arrowNext, arrowNext]);
77
- this.auditLabels = {
78
- a100: this.translate.instant('yuv.audit.label.create.metadata'),
79
- a101: this.translate.instant('yuv.audit.label.create.metadata.withcontent'),
80
- a110: this.translate.instant('yuv.audit.label.create.tag'),
81
- a200: this.translate.instant('yuv.audit.label.delete'),
82
- a201: this.translate.instant('yuv.audit.label.delete.content'), // #v
83
- a202: this.translate.instant('yuv.audit.label.delete.marked'),
84
- a210: this.translate.instant('yuv.audit.label.delete.tag'), // #v
85
- a220: this.translate.instant('yuv.audit.label.delete.version'), // #v
86
- a300: this.translate.instant('yuv.audit.label.update.metadata'),
87
- a301: this.translate.instant('yuv.audit.label.update.content'),
88
- a302: this.translate.instant('yuv.audit.label.update.metadata.withcontent'),
89
- a303: this.translate.instant('yuv.audit.label.update.move.content'),
90
- a310: this.translate.instant('yuv.audit.label.update.tag'),
91
- a325: this.translate.instant('yuv.audit.label.update.restore'),
92
- a340: this.translate.instant('yuv.audit.label.update.move'),
93
- a400: this.translate.instant('yuv.audit.label.get.content'),
94
- a401: this.translate.instant('yuv.audit.label.get.metadata'),
95
- a402: this.translate.instant('yuv.audit.label.get.rendition.text'),
96
- a403: this.translate.instant('yuv.audit.label.get.rendition.pdf'),
97
- a404: this.translate.instant('yuv.audit.label.get.rendition.thumbnail'),
98
- a10000: this.translate.instant('yuv.audit.label.get.custom')
99
- };
100
- this.eventService
101
- .on(YuvEventType.DMS_OBJECT_UPDATED)
102
- .pipe(takeUntilDestroyed())
103
- .subscribe((e) => {
104
- const dmsObject = e.data;
105
- // reload audit entries when update belongs to the current dms object
106
- if (dmsObject.id === this.objectID) {
107
- this.query();
108
- }
109
- });
110
- }
111
- fetchAuditEntries() {
112
- if (!this._objectID || !this._objectTypeID)
113
- return;
114
- this.error = false;
115
- this.busy = true;
116
- this.auditService
117
- .getAuditEntries(this._objectID, { skipActions: this.skipActions() })
118
- .pipe(finalize(() => (this.busy = false)))
119
- .subscribe({
120
- next: (res) => {
121
- this.auditsRes = res;
122
- this.resolvedItems.set(this.mapResult(res));
123
- },
124
- error: () => {
125
- this.onError();
126
- }
127
- });
128
- }
129
- mapResult(res) {
130
- return (res.items
131
- // TODO: Remove this filter once the system:ren:text audit lifecycle planning is complete and the tag's purpose is fully defined.
132
- // https://help.optimal-systems.com/yuuvis/Momentum/latest/index.html#_content_renditions_asynchronous_full_text_indexing.html
133
- .filter((i) => !i.detail.includes('[system:ren:text, 1]'))
134
- .map((i) => {
135
- const r = { ...i, label: this.auditLabels['a' + i.action] };
136
- // tag related audits
137
- if ([110, 210, 310].includes(i.action)) {
138
- const params = this.getAuditEntryParams(i);
139
- if (params) {
140
- r.more = `
141
- ${this.system.getLocalizedLabel(params[0])}: ${this.system.getLocalizedLabel(`${params[0]}:${params[1]}`)}
142
- `;
143
- }
144
- }
145
- // restore audit
146
- else if (i.action === 325) {
147
- const params = this.getAuditEntryParams(i);
148
- r.more = this.translate.instant('yuv.audit.label.update.restore.more', { version: params[0] || '[?]' });
149
- }
150
- // custom audits
151
- else if (i.action === 10000) {
152
- r.label = this.system.getLocalizedLabel(`audit:custom:${i.subaction}`) || `${i.subaction}`;
153
- }
154
- return r;
155
- }));
156
- }
157
- getAuditEntryParams(auditItem) {
158
- const m = auditItem.detail.match(/\[(.*?)\]/);
159
- return m && m[1] ? m[1].split(',').map((i) => i.trim()) : [];
160
- }
161
- /**
162
- * Execute a query from the search panel.
163
- */
164
- query() {
165
- this.fetchAuditEntries();
166
- }
167
- goToPage(page) {
168
- if (this.auditsRes) {
169
- this.busy = true;
170
- this.auditService
171
- .getPage(this.auditsRes, page)
172
- .pipe(finalize(() => (this.busy = false)))
173
- .subscribe({
174
- next: (res) => {
175
- this.auditsRes = res;
176
- this.resolvedItems.set(this.mapResult(res));
177
- },
178
- error: () => {
179
- this.onError();
180
- }
181
- });
182
- }
183
- }
184
- onError() {
185
- this.auditsRes = undefined;
186
- this.error = true;
187
- }
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectAuditComponent, deps: [{ token: i1.AuditService }, { token: i1.BackendService }, { token: i1.AppCacheService }, { token: i1.EventService }, { token: i1.SystemService }, { token: i2.UntypedFormBuilder }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectAuditComponent, isStandalone: true, selector: "yuv-object-audit", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, skipActions: { classPropertyName: "skipActions", publicName: "skipActions", isSignal: true, isRequired: false, transformFunction: null }, allActions: { classPropertyName: "allActions", publicName: "allActions", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "versionsLink", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span> \n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host .yuv-audit{position:relative;height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"items\" \"footer\";background-color:var(--panel-background-grey);container-type:inline-size;container-name:cmp}:host .yuv-audit .error{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .yuv-audit .error>div{background-color:var(--color-error);color:#fff;margin:var(--app-pane-padding);padding:var(--app-pane-padding);border-radius:calc(var(--app-pane-padding) / 2)}:host .yuv-audit .search{position:absolute;left:0;top:0;bottom:0;max-width:90%;background-color:var(--panel-background);border-right:1px solid var(--panel-divider-color);animation:yuvFadeInLeft var(--app-default-transition-duration);padding:var(--app-pane-padding);display:flex;z-index:3;flex-flow:column}:host .yuv-audit .search h3{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-title);font-weight:var(--font-weight-light)}:host .yuv-audit .search button.group{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);padding:0;cursor:pointer}:host .yuv-audit .search button.group:focus{color:var(--color-accent);outline:0;background-color:transparent;border-color:transparent}:host .yuv-audit .search .controls{flex:1;overflow-y:auto}:host .yuv-audit .search .controls .form-control{margin-top:var(--app-pane-padding)}:host .yuv-audit .search .buttons{display:flex;justify-content:flex-end}:host .yuv-audit .btn-search{position:absolute;top:var(--app-pane-padding);left:var(--app-pane-padding);background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);border:1px solid var(--panel-divider-color);z-index:1;box-shadow:0 0 10px 10px var(--panel-background-grey)}:host .yuv-audit .btn-search.badge{color:var(--color-accent)}:host .yuv-audit .btn-search yvc-icon{display:block}:host .yuv-audit .audits{grid-area:items}:host .yuv-audit .empty{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--text-color-caption)}:host .yuv-audit .footer{grid-area:footer;background-color:var(--panel-background);border-top:1px solid var(--panel-divider-color);display:flex}:host .yuv-audit .footer .paging{flex:1;display:flex;align-items:center;justify-content:flex-end;color:var(--text-color-caption)}:host .yuv-audit .footer .paging .page{padding:0 calc(var(--app-pane-padding) / 2)}:host .yuv-audit .footer .paging .prev{transform:rotate(180deg)}:host .yuv-audit .footer button{padding:0}:host .timeline{--track-color: var(--panel-divider-color);--track-size: calc(var(--app-pane-padding) * 3);overflow-y:auto;padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}@container (max-width: 450px){:host .timeline .audit{grid-template-columns:var(--track-size) auto;grid-template-rows:var(--track-size) auto;grid-template-areas:\"line date\" \"node node\"}:host .timeline .audit .date{justify-self:start}:host .timeline .audit .date,:host .timeline .audit:after{translate:0 .5em}:host .timeline .audit .node{margin:0;width:100%}:host .timeline .audit:last-child:before{height:100%}}:host .timeline :where(.audit){display:grid;grid-template-columns:1fr var(--track-size) 1fr;grid-template-areas:\"date line node\"}:host .timeline :where(.audit) .date{grid-area:date;justify-self:end;align-self:center}:host .timeline :where(.audit) .node{grid-area:node;justify-self:start;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);border-radius:.25em;margin:calc(var(--app-pane-padding) / 2) 0;padding:var(--app-pane-padding);box-sizing:border-box;display:grid;gap:calc(var(--app-pane-padding) / 8)}:host .timeline :where(.audit) .node .label{display:flex;align-items:end}:host .timeline :where(.audit) .node .label .title{flex:1;word-break:break-word;font-weight:700;color:var(--text-color-body)}:host .timeline :where(.audit) .node .label .version{line-height:1em;border-radius:2px;background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);font-size:var(--font-hint);font-family:monospace;align-self:center;margin-left:var(--app-pane-padding);padding:4px 6px;display:block}:host .timeline :where(.audit) .node .meta{color:var(--text-color-caption)}:host .timeline :where(.audit):before{grid-area:line;content:\"\";width:calc(50% - 1px);height:100%;border-inline-end:1px solid var(--track-color)}:host .timeline :where(.audit):after{grid-area:line;content:\"\";width:11px;height:11px;border-radius:50%;border:2px solid var(--track-color);background-color:var(--panel-background-grey);box-sizing:border-box;align-self:center;justify-self:center}:host .timeline :where(.audit):first-child:before{height:50%;align-self:end}:host .timeline :where(.audit):last-child:before{height:50%;align-self:start}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i4.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
190
- }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectAuditComponent, decorators: [{
192
- type: Component,
193
- args: [{ selector: 'yuv-object-audit', standalone: true, imports: [CommonModule, RouterLink, ReactiveFormsModule, BusyOverlayDirective, LocaleDatePipe, TranslateModule, YvcIconModule], template: "<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span> \n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host .yuv-audit{position:relative;height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"items\" \"footer\";background-color:var(--panel-background-grey);container-type:inline-size;container-name:cmp}:host .yuv-audit .error{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .yuv-audit .error>div{background-color:var(--color-error);color:#fff;margin:var(--app-pane-padding);padding:var(--app-pane-padding);border-radius:calc(var(--app-pane-padding) / 2)}:host .yuv-audit .search{position:absolute;left:0;top:0;bottom:0;max-width:90%;background-color:var(--panel-background);border-right:1px solid var(--panel-divider-color);animation:yuvFadeInLeft var(--app-default-transition-duration);padding:var(--app-pane-padding);display:flex;z-index:3;flex-flow:column}:host .yuv-audit .search h3{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-title);font-weight:var(--font-weight-light)}:host .yuv-audit .search button.group{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);padding:0;cursor:pointer}:host .yuv-audit .search button.group:focus{color:var(--color-accent);outline:0;background-color:transparent;border-color:transparent}:host .yuv-audit .search .controls{flex:1;overflow-y:auto}:host .yuv-audit .search .controls .form-control{margin-top:var(--app-pane-padding)}:host .yuv-audit .search .buttons{display:flex;justify-content:flex-end}:host .yuv-audit .btn-search{position:absolute;top:var(--app-pane-padding);left:var(--app-pane-padding);background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);border:1px solid var(--panel-divider-color);z-index:1;box-shadow:0 0 10px 10px var(--panel-background-grey)}:host .yuv-audit .btn-search.badge{color:var(--color-accent)}:host .yuv-audit .btn-search yvc-icon{display:block}:host .yuv-audit .audits{grid-area:items}:host .yuv-audit .empty{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--text-color-caption)}:host .yuv-audit .footer{grid-area:footer;background-color:var(--panel-background);border-top:1px solid var(--panel-divider-color);display:flex}:host .yuv-audit .footer .paging{flex:1;display:flex;align-items:center;justify-content:flex-end;color:var(--text-color-caption)}:host .yuv-audit .footer .paging .page{padding:0 calc(var(--app-pane-padding) / 2)}:host .yuv-audit .footer .paging .prev{transform:rotate(180deg)}:host .yuv-audit .footer button{padding:0}:host .timeline{--track-color: var(--panel-divider-color);--track-size: calc(var(--app-pane-padding) * 3);overflow-y:auto;padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}@container (max-width: 450px){:host .timeline .audit{grid-template-columns:var(--track-size) auto;grid-template-rows:var(--track-size) auto;grid-template-areas:\"line date\" \"node node\"}:host .timeline .audit .date{justify-self:start}:host .timeline .audit .date,:host .timeline .audit:after{translate:0 .5em}:host .timeline .audit .node{margin:0;width:100%}:host .timeline .audit:last-child:before{height:100%}}:host .timeline :where(.audit){display:grid;grid-template-columns:1fr var(--track-size) 1fr;grid-template-areas:\"date line node\"}:host .timeline :where(.audit) .date{grid-area:date;justify-self:end;align-self:center}:host .timeline :where(.audit) .node{grid-area:node;justify-self:start;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);border-radius:.25em;margin:calc(var(--app-pane-padding) / 2) 0;padding:var(--app-pane-padding);box-sizing:border-box;display:grid;gap:calc(var(--app-pane-padding) / 8)}:host .timeline :where(.audit) .node .label{display:flex;align-items:end}:host .timeline :where(.audit) .node .label .title{flex:1;word-break:break-word;font-weight:700;color:var(--text-color-body)}:host .timeline :where(.audit) .node .label .version{line-height:1em;border-radius:2px;background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);font-size:var(--font-hint);font-family:monospace;align-self:center;margin-left:var(--app-pane-padding);padding:4px 6px;display:block}:host .timeline :where(.audit) .node .meta{color:var(--text-color-caption)}:host .timeline :where(.audit):before{grid-area:line;content:\"\";width:calc(50% - 1px);height:100%;border-inline-end:1px solid var(--track-color)}:host .timeline :where(.audit):after{grid-area:line;content:\"\";width:11px;height:11px;border-radius:50%;border:2px solid var(--track-color);background-color:var(--panel-background-grey);box-sizing:border-box;align-self:center;justify-self:center}:host .timeline :where(.audit):first-child:before{height:50%;align-self:end}:host .timeline :where(.audit):last-child:before{height:50%;align-self:start}\n"] }]
194
- }], ctorParameters: () => [{ type: i1.AuditService }, { type: i1.BackendService }, { type: i1.AppCacheService }, { type: i1.EventService }, { type: i1.SystemService }, { type: i2.UntypedFormBuilder }, { type: i1.TranslateService }] });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsRUFHZixZQUFZLEVBQ1osY0FBYyxFQUVkLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZixnQkFBZ0IsRUFFaEIsWUFBWSxFQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFD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ZSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQXBwQ2FjaGVTZXJ2aWNlLFxuICBBdWRpdEVudHJ5LFxuICBBdWRpdFF1ZXJ5UmVzdWx0LFxuICBBdWRpdFNlcnZpY2UsXG4gIEJhY2tlbmRTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIEV2ZW50U2VydmljZSxcbiAgTG9jYWxlRGF0ZVBpcGUsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgWXV2RXZlbnQsXG4gIFl1dkV2ZW50VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEJ1c3lPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1vYmplY3QtYXVkaXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBCdXN5T3ZlcmxheURpcmVjdGl2ZSwgTG9jYWxlRGF0ZVBpcGUsIFRyYW5zbGF0ZU1vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtYXVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RBdWRpdENvbXBvbmVudCB7XG4gIHByaXZhdGUgRklMVEVSX0NBQ0hFX0tFWSA9ICd5dXYuYXVkaXQuZmlsdGVycyc7XG5cbiAgcHJpdmF0ZSBfb2JqZWN0SUQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX29iamVjdFR5cGVJRD86IHN0cmluZztcblxuICBpY29ucyA9IHtcbiAgICBmaWx0ZXI6IFlVVl9JQ09OUy5maWx0ZXIsXG4gICAgYXJyb3dOZXh0OiBZVVZfSUNPTlMuYXJyb3dOZXh0XG4gIH07XG5cbiAgYXVkaXRzUmVzPzogQXVkaXRRdWVyeVJlc3VsdDtcbiAgcmVzb2x2ZWRJdGVtcyA9IHNpZ25hbDxSZXNsb3ZlZEF1ZGl0RW50cnlbXT4oW10pO1xuICBzZWFyY2hQYW5lbFNob3cgPSBmYWxzZTtcbiAgZXJyb3IgPSBmYWxzZTtcbiAgYnVzeSA9IGZhbHNlO1xuICBzZWFyY2hBY3Rpb25zOiB7IGxhYmVsOiBzdHJpbmc7IGFjdGlvbnM6IHN0cmluZ1tdIH1bXSA9IFtdO1xuICBhdWRpdExhYmVsczogYW55ID0ge307XG5cbiAgZG1zT2JqZWN0ID0gaW5wdXQ8RG1zT2JqZWN0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICNkbXNPYmplY3RFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG8gPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmICghbykge1xuICAgICAgdGhpcy5fb2JqZWN0SUQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9vYmplY3RUeXBlSUQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmF1ZGl0c1JlcyA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9vYmplY3RJRCB8fCB0aGlzLl9vYmplY3RJRCAhPT0gby5pZCkge1xuICAgICAgdGhpcy5fb2JqZWN0SUQgPSBvLmlkO1xuICAgICAgdGhpcy5fb2JqZWN0VHlwZUlEID0gby5vYmplY3RUeXBlSWQ7XG4gICAgICB0aGlzLnF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnkoKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgYXVkaXRzIHRoYXQgc2hvdWxkIG5vdCBiZSBzaG93bi4gVXNlIHRoZSBhdWRpdCBjb2RlcyAobGlrZSAxMDAsIDMwMSwgZXRjLikuXG4gICAqIFRoaXMgd2lsbCBhbHNvIGRpc2FibGUgdGhlIGNvcnJlc3BvbmRpbmcgZmlsdGVycy5cbiAgICovXG4gIHNraXBBY3Rpb25zID0gaW5wdXQ8bnVtYmVyW10+KFtdKTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaWdub3JlIGFkbWluIGFuZCB1c2VyIHNlcGFyYXRpb24gb2YgYXVkaXQgZW50cmllc1xuICAgKi9cbiAgYWxsQWN0aW9ucyA9IGlucHV0KGZhbHNlKTtcblxuICBnZXQgb2JqZWN0SUQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29iamVjdElEO1xuICB9XG5cbiAgbGluayA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7IGFsaWFzOiAndmVyc2lvbnNMaW5rJyB9KTtcblxuICB2ZXJzaW9uc0xpbmsgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGluayA9IHRoaXMubGluaygpO1xuXG4gICAgcmV0dXJuIGxpbmsgPyBgJHtsaW5rfWAgOiB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlOiBBdWRpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICAvLyBwcml2YXRlIGljb25SZWdpc3RyeTogSWNvblJlZ2lzdHJ5U2VydmljZSxcbiAgICAvLyBASW5qZWN0KFJPVVRFUykgcHJpdmF0ZSByb3V0ZXM6IFl1dlJvdXRlc1xuICApIHtcbiAgICAvLyB0aGlzLnZlcnNpb25TdGF0ZVBhdGggPSB0aGlzLnJvdXRlcyAmJiB0aGlzLnJvdXRlcy52ZXJzaW9ucyA/IHRoaXMucm91dGVzLnZlcnNpb25zLnBhdGggOiBudWxsO1xuICAgIC8vIHRoaXMudmVyc2lvblN0YXRlUXVlcnlQYXJhbSA9IHRoaXMucm91dGVzICYmIHRoaXMucm91dGVzLnZlcnNpb25zID8gdGhpcy5yb3V0ZXMudmVyc2lvbnMucXVlcnlQYXJhbXMudmVyc2lvbiA6IG51bGw7XG4gICAgLy8gdGhpcy5pY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbZmlsdGVyLCBhcnJvd05leHQsIGFycm93TmV4dF0pO1xuICAgIHRoaXMuYXVkaXRMYWJlbHMgPSB7XG4gICAgICBhMTAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLm1ldGFkYXRhJyksXG4gICAgICBhMTAxOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLm1ldGFkYXRhLndpdGhjb250ZW50JyksXG4gICAgICBhMTEwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLnRhZycpLFxuXG4gICAgICBhMjAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlJyksXG4gICAgICBhMjAxOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlLmNvbnRlbnQnKSwgLy8gI3ZcbiAgICAgIGEyMDI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5kZWxldGUubWFya2VkJyksXG4gICAgICBhMjEwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlLnRhZycpLCAvLyAjdlxuICAgICAgYTIyMDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmRlbGV0ZS52ZXJzaW9uJyksIC8vICN2XG5cbiAgICAgIGEzMDA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUubWV0YWRhdGEnKSxcbiAgICAgIGEzMDE6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUuY29udGVudCcpLFxuICAgICAgYTMwMjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5tZXRhZGF0YS53aXRoY29udGVudCcpLFxuICAgICAgYTMwMzogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5tb3ZlLmNvbnRlbnQnKSxcbiAgICAgIGEzMTA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUudGFnJyksXG4gICAgICBhMzI1OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwudXBkYXRlLnJlc3RvcmUnKSxcbiAgICAgIGEzNDA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUubW92ZScpLFxuXG4gICAgICBhNDAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZ2V0LmNvbnRlbnQnKSxcbiAgICAgIGE0MDE6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQubWV0YWRhdGEnKSxcbiAgICAgIGE0MDI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQucmVuZGl0aW9uLnRleHQnKSxcbiAgICAgIGE0MDM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQucmVuZGl0aW9uLnBkZicpLFxuICAgICAgYTQwNDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmdldC5yZW5kaXRpb24udGh1bWJuYWlsJyksXG5cbiAgICAgIGExMDAwMDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmdldC5jdXN0b20nKVxuICAgIH07XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKFl1dkV2ZW50VHlwZS5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGU6IFl1dkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRtc09iamVjdCA9IGUuZGF0YSBhcyBEbXNPYmplY3Q7XG4gICAgICAgIC8vIHJlbG9hZCBhdWRpdCBlbnRyaWVzIHdoZW4gdXBkYXRlIGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgZG1zIG9iamVjdFxuICAgICAgICBpZiAoZG1zT2JqZWN0LmlkID09PSB0aGlzLm9iamVjdElEKSB7XG4gICAgICAgICAgdGhpcy5xdWVyeSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBdWRpdEVudHJpZXMoKSB7XG4gICAgaWYgKCF0aGlzLl9vYmplY3RJRCB8fCAhdGhpcy5fb2JqZWN0VHlwZUlEKSByZXR1cm47XG4gICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuYnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLmF1ZGl0U2VydmljZVxuICAgICAgLmdldEF1ZGl0RW50cmllcyh0aGlzLl9vYmplY3RJRCwgeyBza2lwQWN0aW9uczogdGhpcy5za2lwQWN0aW9ucygpIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5idXN5ID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBBdWRpdFF1ZXJ5UmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5hdWRpdHNSZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5yZXNvbHZlZEl0ZW1zLnNldCh0aGlzLm1hcFJlc3VsdChyZXMpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFJlc3VsdChyZXM6IEF1ZGl0UXVlcnlSZXN1bHQpOiBSZXNsb3ZlZEF1ZGl0RW50cnlbXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlcy5pdGVtc1xuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBmaWx0ZXIgb25jZSB0aGUgc3lzdGVtOnJlbjp0ZXh0IGF1ZGl0IGxpZmVjeWNsZSBwbGFubmluZyBpcyBjb21wbGV0ZSBhbmQgdGhlIHRhZydzIHB1cnBvc2UgaXMgZnVsbHkgZGVmaW5lZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9oZWxwLm9wdGltYWwtc3lzdGVtcy5jb20veXV1dmlzL01vbWVudHVtL2xhdGVzdC9pbmRleC5odG1sI19jb250ZW50X3JlbmRpdGlvbnNfYXN5bmNocm9ub3VzX2Z1bGxfdGV4dF9pbmRleGluZy5odG1sXG4gICAgICAgIC5maWx0ZXIoKGkpID0+ICFpLmRldGFpbC5pbmNsdWRlcygnW3N5c3RlbTpyZW46dGV4dCwgMV0nKSlcbiAgICAgICAgLm1hcCgoaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHI6IFJlc2xvdmVkQXVkaXRFbnRyeSA9IHsgLi4uaSwgbGFiZWw6IHRoaXMuYXVkaXRMYWJlbHNbJ2EnICsgaS5hY3Rpb25dIH07XG4gICAgICAgICAgLy8gdGFnIHJlbGF0ZWQgYXVkaXRzXG4gICAgICAgICAgaWYgKFsxMTAsIDIxMCwgMzEwXS5pbmNsdWRlcyhpLmFjdGlvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0QXVkaXRFbnRyeVBhcmFtcyhpKTtcbiAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgci5tb3JlID0gYFxuICAgICAgICAgICR7dGhpcy5zeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwocGFyYW1zWzBdKX06ICR7dGhpcy5zeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoYCR7cGFyYW1zWzBdfToke3BhcmFtc1sxXX1gKX1cbiAgICAgICAgICBgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyByZXN0b3JlIGF1ZGl0XG4gICAgICAgICAgZWxzZSBpZiAoaS5hY3Rpb24gPT09IDMyNSkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRBdWRpdEVudHJ5UGFyYW1zKGkpO1xuICAgICAgICAgICAgci5tb3JlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5yZXN0b3JlLm1vcmUnLCB7IHZlcnNpb246IHBhcmFtc1swXSB8fCAnWz9dJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gY3VzdG9tIGF1ZGl0c1xuICAgICAgICAgIGVsc2UgaWYgKGkuYWN0aW9uID09PSAxMDAwMCkge1xuICAgICAgICAgICAgci5sYWJlbCA9IHRoaXMuc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGBhdWRpdDpjdXN0b206JHtpLnN1YmFjdGlvbn1gKSB8fCBgJHtpLnN1YmFjdGlvbn1gO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdWRpdEVudHJ5UGFyYW1zKGF1ZGl0SXRlbTogQXVkaXRFbnRyeSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBtID0gYXVkaXRJdGVtLmRldGFpbC5tYXRjaCgvXFxbKC4qPylcXF0vKTtcbiAgICByZXR1cm4gbSAmJiBtWzFdID8gbVsxXS5zcGxpdCgnLCcpLm1hcCgoaSkgPT4gaS50cmltKCkpIDogW107XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIHF1ZXJ5IGZyb20gdGhlIHNlYXJjaCBwYW5lbC5cbiAgICovXG4gIHF1ZXJ5KCkge1xuICAgIHRoaXMuZmV0Y2hBdWRpdEVudHJpZXMoKTtcbiAgfVxuXG4gIGdvVG9QYWdlKHBhZ2U6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmF1ZGl0c1Jlcykge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuYXVkaXRTZXJ2aWNlXG4gICAgICAgIC5nZXRQYWdlKHRoaXMuYXVkaXRzUmVzLCBwYWdlKVxuICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5idXN5ID0gZmFsc2UpKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogQXVkaXRRdWVyeVJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdWRpdHNSZXMgPSByZXM7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkSXRlbXMuc2V0KHRoaXMubWFwUmVzdWx0KHJlcykpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkVycm9yKCkge1xuICAgIHRoaXMuYXVkaXRzUmVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICB9XG59XG5cbmludGVyZmFjZSBSZXNsb3ZlZEF1ZGl0RW50cnkgZXh0ZW5kcyBBdWRpdEVudHJ5IHtcbiAgbGFiZWw6IHN0cmluZztcbn1cbiIsIjxkaXYgY2xhc3M9XCJ5dXYtYXVkaXRcIiBbbmdDbGFzc109XCJ7IHNpbmdsZUVudHJ5OiBhdWRpdHNSZXM/Lml0ZW1zPy5sZW5ndGggPT09IDEsIG9uUGFnZTogYXVkaXRzUmVzICYmIGF1ZGl0c1Jlcy5wYWdlID4gMSB9XCIgW3l1dkJ1c3lPdmVybGF5XT1cImJ1c3lcIj5cbiAgQGlmIChlcnJvcikge1xuICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgPGRpdiB0cmFuc2xhdGU+eXV2LmF1ZGl0LmZldGNoLmVycm9yPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKGF1ZGl0c1Jlcykge1xuICAgIDwhLS0gbGlzdCBvZiBhdWRpdHMgLS0+XG4gICAgQGxldCByZXNJdGVtcyA9IHJlc29sdmVkSXRlbXMoKTtcbiAgICBAaWYgKHJlc0l0ZW1zLmxlbmd0aCkge1xuICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcmVzSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj57eyBpdGVtLmNyZWF0aW9uRGF0ZSB8IGxvY2FsZURhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlIG1ldGFcIj57eyBpdGVtLm1vcmUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0b3IgbWV0YVwiPnt7IGl0ZW0uY3JlYXRlZEJ5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIiB0cmFuc2xhdGU+eXV2LmF1ZGl0LnJlc3VsdC5lbXB0eTwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gY29udHJvbHMgLS0+XG4gICAgQGlmIChhdWRpdHNSZXMuaGFzTW9yZUl0ZW1zIHx8IGF1ZGl0c1Jlcy5wYWdlID4gMSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiIHl1dk9mZmxpbmVEaXNhYmxlZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luZ1wiPlxuICAgICAgICAgIDxidXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmF1ZGl0LmxhYmVsLnBhZ2luZy5wcmV2JyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJhdWRpdHNSZXMucGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvUGFnZShhdWRpdHNSZXMucGFnZSAtIDEpXCI+XG4gICAgICAgICAgICA8eXZjLWljb24gY2xhc3M9XCJwcmV2XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICAgICAgICB7eyBhdWRpdHNSZXMucGFnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmF1ZGl0LmxhYmVsLnBhZ2luZy5uZXh0JyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhYXVkaXRzUmVzLmhhc01vcmVJdGVtc1wiIChjbGljayk9XCJnb1RvUGFnZShhdWRpdHNSZXMucGFnZSArIDEpXCI+XG4gICAgICAgICAgICA8eXZjLWljb24gY2xhc3M9XCJuZXh0XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=