@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,119 +0,0 @@
1
- import { inject, Injectable, signal } from '@angular/core';
2
- import { ContentStreamField, DmsService, UserService } from '@yuuvis/client-core';
3
- import { defaultViewers, MediaViewerService } from '@yuuvis/media-viewer';
4
- import { tap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class ObjectPreviewService {
7
- constructor() {
8
- this.#dms = inject(DmsService);
9
- this.#userService = inject(UserService);
10
- this.#mediaViewerService = inject(MediaViewerService);
11
- this.#dmsObject = signal(undefined);
12
- this.dmsObject = this.#dmsObject.asReadonly();
13
- }
14
- #dms;
15
- #userService;
16
- #mediaViewerService;
17
- #dmsObject;
18
- setDmsObject(object) {
19
- this.#dmsObject.set(object);
20
- }
21
- getDmsObject(id) {
22
- return this.#dms.getDmsObject(id).pipe(tap((dmsObject) => this.#dmsObject.set(dmsObject)));
23
- }
24
- getMediaViewerSrc(id, mimeType, version) {
25
- if (mimeType) {
26
- if (mimeType === 'image/tiff') {
27
- return version
28
- ? `/api/dms/objects/${id}/versions/${version}/contents/renditions/slide?timeout=50000`
29
- : `/api/dms/objects/${id}/contents/renditions/slide`;
30
- }
31
- return version ? `/api/dms/objects/${id}/versions/${version}/contents/file` : `/api/dms/objects/${id}/contents/file`;
32
- }
33
- return '';
34
- }
35
- #isEmailViewer(object) {
36
- return defaultViewers.filter((viewer) => viewer.type === 'EMAIL')[0].mimeType.includes(object.data[ContentStreamField.MIME_TYPE]);
37
- }
38
- getViewerDetails(object, version) {
39
- if (object) {
40
- const type = object?.content && this.#mediaViewerService.getComponentType(object.content.mimeType);
41
- // console.log('type', type);
42
- return this.#isEmailViewer(object)
43
- ? this.getEmailViewerDetails(object)
44
- : {
45
- mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType, version),
46
- id: object.id,
47
- mimeType: object.content?.mimeType,
48
- metadata: {
49
- type,
50
- name: object.data[ContentStreamField.FILENAME],
51
- dmsObject: object?.data,
52
- id: object?.id,
53
- editable: true,
54
- user: signal(this.#userService.getCurrentUser()),
55
- theme: 'light',
56
- ...(object.content?.mimeType === 'application/pdf'
57
- ? {
58
- options: {
59
- showToolbar: true,
60
- showSidebarButton: true,
61
- showFindButton: true,
62
- showPagingButtons: true,
63
- showDrawEditor: false,
64
- showStampEditor: false,
65
- showTextEditor: false,
66
- showZoomButtons: true,
67
- showPresentationModeButton: false,
68
- showOpenFileButton: false,
69
- showPrintButton: false,
70
- showDownloadButton: false,
71
- showSecondaryToolbarButton: true,
72
- showRotateCwButton: false,
73
- showRotateCcwButton: false,
74
- showHandToolButton: false,
75
- showScrollingButtons: false,
76
- showSpreadButton: false,
77
- showPropertiesButton: false,
78
- showHighlightEditor: false
79
- }
80
- }
81
- : {})
82
- }
83
- };
84
- }
85
- return undefined;
86
- }
87
- getEmailViewerDetails(object, MAIL_APP_ID = 'appSystemmail:') {
88
- return {
89
- mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType),
90
- id: object.id,
91
- mimeType: object.content?.mimeType,
92
- metadata: this.getEmailMetadata(object, MAIL_APP_ID)
93
- };
94
- }
95
- getEmailMetadata(object, MAIL_APP_ID = 'appSystemmail:') {
96
- return {
97
- type: 'EMAIL',
98
- header: {
99
- subject: object.data[`${MAIL_APP_ID}subject`],
100
- sent: new Date(object.data[`${MAIL_APP_ID}sent`]),
101
- from: object.data[`${MAIL_APP_ID}from`],
102
- to: object.data[`${MAIL_APP_ID}to`],
103
- cc: object.data[`${MAIL_APP_ID}cc`],
104
- bcc: object.data[`${MAIL_APP_ID}bcc`]
105
- },
106
- theme: 'light',
107
- attachments: object.data[`${MAIL_APP_ID}attachments`]
108
- };
109
- }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectPreviewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectPreviewService, providedIn: 'root' }); }
112
- }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectPreviewService, decorators: [{
114
- type: Injectable,
115
- args: [{
116
- providedIn: 'root'
117
- }]
118
- }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByZXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXByZXZpZXcvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3QtcHJldmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQWlCLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtyQyxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSVcsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxRCxlQUFVLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUV0RCxjQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQXNHMUM7SUE1R1UsSUFBSSxDQUFzQjtJQUMxQixZQUFZLENBQXVCO0lBQ25DLG1CQUFtQixDQUE4QjtJQUUxRCxVQUFVLENBQTRDO0lBSXRELFlBQVksQ0FBQyxNQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlB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QyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsSUFBSSxDQUFhO2dCQUMvQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsS0FBSyxDQUFhO2FBQ2xEO1lBQ0QsS0FBSyxFQUFFLE9BQU87WUFDZCxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsYUFBYSxDQUFhO1NBQ2xFLENBQUM7SUFDSixDQUFDOytHQTVHVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnRTdHJlYW1GaWVsZCwgRG1zT2JqZWN0LCBEbXNTZXJ2aWNlLCBVc2VyU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgZGVmYXVsdFZpZXdlcnMsIEVtYWlsTWV0YWRhdGEsIE1lZGlhVmlld2VyU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvbWVkaWEtdmlld2VyJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0UHJldmlld1NlcnZpY2Uge1xuICByZWFkb25seSAjZG1zID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuICByZWFkb25seSAjdXNlclNlcnZpY2UgPSBpbmplY3QoVXNlclNlcnZpY2UpO1xuICByZWFkb25seSAjbWVkaWFWaWV3ZXJTZXJ2aWNlID0gaW5qZWN0KE1lZGlhVmlld2VyU2VydmljZSk7XG5cbiAgI2Rtc09iamVjdCA9IHNpZ25hbDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgZG1zT2JqZWN0ID0gdGhpcy4jZG1zT2JqZWN0LmFzUmVhZG9ubHkoKTtcblxuICBzZXREbXNPYmplY3Qob2JqZWN0OiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLiNkbXNPYmplY3Quc2V0KG9iamVjdCk7XG4gIH1cblxuICBnZXREbXNPYmplY3QoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiNkbXMuZ2V0RG1zT2JqZWN0KGlkKS5waXBlKHRhcCgoZG1zT2JqZWN0KSA9PiB0aGlzLiNkbXNPYmplY3Quc2V0KGRtc09iamVjdCkpKTtcbiAgfVxuXG4gIGdldE1lZGlhVmlld2VyU3JjKGlkOiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHZlcnNpb24/OiBudW1iZXIpIHtcbiAgICBpZiAobWltZVR5cGUpIHtcbiAgICAgIGlmIChtaW1lVHlwZSA9PT0gJ2ltYWdlL3RpZmYnKSB7XG4gICAgICAgIHJldHVybiB2ZXJzaW9uXG4gICAgICAgICAgPyBgL2FwaS9kbXMvb2JqZWN0cy8ke2lkfS92ZXJzaW9ucy8ke3ZlcnNpb259L2NvbnRlbnRzL3JlbmRpdGlvbnMvc2xpZGU/dGltZW91dD01MDAwMGBcbiAgICAgICAgICA6IGAvYXBpL2Rtcy9vYmplY3RzLyR7aWR9L2NvbnRlbnRzL3JlbmRpdGlvbnMvc2xpZGVgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZlcnNpb24gPyBgL2FwaS9kbXMvb2JqZWN0cy8ke2lkfS92ZXJzaW9ucy8ke3ZlcnNpb259L2NvbnRlbnRzL2ZpbGVgIDogYC9hcGkvZG1zL29iamVjdHMvJHtpZH0vY29udGVudHMvZmlsZWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gICNpc0VtYWlsVmlld2VyKG9iamVjdDogRG1zT2JqZWN0KSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWaWV3ZXJzLmZpbHRlcigodmlld2VyKSA9PiB2aWV3ZXIudHlwZSA9PT0gJ0VNQUlMJylbMF0ubWltZVR5cGUuaW5jbHVkZXMob2JqZWN0LmRhdGFbQ29udGVudFN0cmVhbUZpZWxkLk1JTUVfVFlQRV0gYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldFZpZXdlckRldGFpbHMob2JqZWN0OiBEbXNPYmplY3QsIHZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvYmplY3QpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBvYmplY3Q/LmNvbnRlbnQgJiYgdGhpcy4jbWVkaWFWaWV3ZXJTZXJ2aWNlLmdldENvbXBvbmVudFR5cGUob2JqZWN0LmNvbnRlbnQubWltZVR5cGUpO1xuXG4gICAgICAvLyBjb25zb2xlLmxvZygndHlwZScsIHR5cGUpO1xuXG4gICAgICByZXR1cm4gdGhpcy4jaXNFbWFpbFZpZXdlcihvYmplY3QpXG4gICAgICAgID8gdGhpcy5nZXRFbWFpbFZpZXdlckRldGFpbHMob2JqZWN0KVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG1lZGlhVmlld2VyU3JjOiB0aGlzLmdldE1lZGlhVmlld2VyU3JjKG9iamVjdC5pZCwgb2JqZWN0LmNvbnRlbnQ/Lm1pbWVUeXBlLCB2ZXJzaW9uKSxcbiAgICAgICAgICAgIGlkOiBvYmplY3QuaWQsXG4gICAgICAgICAgICBtaW1lVHlwZTogb2JqZWN0LmNvbnRlbnQ/Lm1pbWVUeXBlLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgbmFtZTogb2JqZWN0LmRhdGFbQ29udGVudFN0cmVhbUZpZWxkLkZJTEVOQU1FXSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIGRtc09iamVjdDogb2JqZWN0Py5kYXRhLFxuICAgICAgICAgICAgICBpZDogb2JqZWN0Py5pZCxcbiAgICAgICAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHVzZXI6IHNpZ25hbCh0aGlzLiN1c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpKSxcbiAgICAgICAgICAgICAgdGhlbWU6ICdsaWdodCcsXG4gICAgICAgICAgICAgIC4uLihvYmplY3QuY29udGVudD8ubWltZVR5cGUgPT09ICdhcHBsaWNhdGlvbi9wZGYnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VG9vbGJhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93U2lkZWJhckJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93RmluZEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnaW5nQnV0dG9uczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93RHJhd0VkaXRvcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1N0YW1wRWRpdG9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VGV4dEVkaXRvcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1pvb21CdXR0b25zOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93T3BlbkZpbGVCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dQcmludEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0Rvd25sb2FkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93U2Vjb25kYXJ5VG9vbGJhckJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93Um90YXRlQ3dCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dSb3RhdGVDY3dCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dIYW5kVG9vbEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1Njcm9sbGluZ0J1dHRvbnM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dTcHJlYWRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3dQcm9wZXJ0aWVzQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG93SGlnaGxpZ2h0RWRpdG9yOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RW1haWxWaWV3ZXJEZXRhaWxzKG9iamVjdDogRG1zT2JqZWN0LCBNQUlMX0FQUF9JRCA9ICdhcHBTeXN0ZW1tYWlsOicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVkaWFWaWV3ZXJTcmM6IHRoaXMuZ2V0TWVkaWFWaWV3ZXJTcmMob2JqZWN0LmlkLCBvYmplY3QuY29udGVudD8ubWltZVR5cGUpLFxuICAgICAgaWQ6IG9iamVjdC5pZCxcbiAgICAgIG1pbWVUeXBlOiBvYmplY3QuY29udGVudD8ubWltZVR5cGUsXG4gICAgICBtZXRhZGF0YTogdGhpcy5nZXRFbWFpbE1ldGFkYXRhKG9iamVjdCwgTUFJTF9BUFBfSUQpXG4gICAgfTtcbiAgfVxuXG4gIGdldEVtYWlsTWV0YWRhdGEob2JqZWN0OiBEbXNPYmplY3QsIE1BSUxfQVBQX0lEID0gJ2FwcFN5c3RlbW1haWw6Jyk6IEVtYWlsTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRU1BSUwnLFxuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHN1YmplY3Q6IG9iamVjdC5kYXRhW2Ake01BSUxfQVBQX0lEfXN1YmplY3RgXSBhcyBzdHJpbmcsXG4gICAgICAgIHNlbnQ6IG5ldyBEYXRlKG9iamVjdC5kYXRhW2Ake01BSUxfQVBQX0lEfXNlbnRgXSBhcyBzdHJpbmcpLFxuICAgICAgICBmcm9tOiBvYmplY3QuZGF0YVtgJHtNQUlMX0FQUF9JRH1mcm9tYF0gYXMgc3RyaW5nLFxuICAgICAgICB0bzogb2JqZWN0LmRhdGFbYCR7TUFJTF9BUFBfSUR9dG9gXSBhcyBzdHJpbmdbXSxcbiAgICAgICAgY2M6IG9iamVjdC5kYXRhW2Ake01BSUxfQVBQX0lEfWNjYF0gYXMgc3RyaW5nW10sXG4gICAgICAgIGJjYzogb2JqZWN0LmRhdGFbYCR7TUFJTF9BUFBfSUR9YmNjYF0gYXMgc3RyaW5nW11cbiAgICAgIH0sXG4gICAgICB0aGVtZTogJ2xpZ2h0JyxcbiAgICAgIGF0dGFjaG1lbnRzOiBvYmplY3QuZGF0YVtgJHtNQUlMX0FQUF9JRH1hdHRhY2htZW50c2BdIGFzIHN0cmluZ1tdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstb2JqZWN0LXByZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1wcmV2aWV3L3NyYy95dXV2aXMtY2xpZW50LWZyYW1ld29yay1vYmplY3QtcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './lib/object-summary.module';
2
- export * from './lib/object-summary/object-summary.component';
3
- export * from './lib/multi-object-summary/multi-object-summary.component';
4
- export * from './lib/object-summary-data/object-summary-data.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1zdW1tYXJ5L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHlEQUF5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LXN1bW1hcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1zdW1tYXJ5L29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tdWx0aS1vYmplY3Qtc3VtbWFyeS9tdWx0aS1vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LXN1bW1hcnktZGF0YS9vYmplY3Qtc3VtbWFyeS1kYXRhLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,33 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';
2
- import { YvcIconModule } from '@yuuvis/components/icon';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@yuuvis/components/icon";
5
- export class MultiObjectSummaryComponent {
6
- constructor() {
7
- this.icon = signal('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#5f6368" viewBox="0 -960 960 960"><path d="m200-120-80-480h720l-80 480H200Zm67-80h426l51-320H216l51 320Zm133-160h160q17 0 28.5-11.5T600-400q0-17-11.5-28.5T560-440H400q-17 0-28.5 11.5T360-400q0 17 11.5 28.5T400-360ZM240-640q-17 0-28.5-11.5T200-680q0-17 11.5-28.5T240-720h480q17 0 28.5 11.5T760-680q0 17-11.5 28.5T720-640H240Zm80-120q-17 0-28.5-11.5T280-800q0-17 11.5-28.5T320-840h320q17 0 28.5 11.5T680-800q0 17-11.5 28.5T640-760H320Zm-53 560h426-426Z"/></svg>');
8
- this.headline = input('this could be your headline');
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiObjectSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: MultiObjectSummaryComponent, isStandalone: true, selector: "yuv-multi-object-summary", inputs: { headline: { classPropertyName: "headline", publicName: "headline", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
12
- <section class="slide">
13
- <yvc-icon [svg]="icon()"></yvc-icon>
14
- </section>
15
-
16
- <section class="title">
17
- <h1>{{ headline() }}</h1>
18
- </section>
19
- `, isInline: true, styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiObjectSummaryComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'yuv-multi-object-summary', standalone: true, imports: [YvcIconModule], template: `
24
- <section class="slide">
25
- <yvc-icon [svg]="icon()"></yvc-icon>
26
- </section>
27
-
28
- <section class="title">
29
- <h1>{{ headline() }}</h1>
30
- </section>
31
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}\n"] }]
32
- }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktb2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL211bHRpLW9iamVjdC1zdW1tYXJ5L211bHRpLW9iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFrQnhELE1BQU0sT0FBTywyQkFBMkI7SUFoQnhDO1FBaUJFLFNBQUksR0FBRyxNQUFNLENBQ1gsa2hCQUFraEIsQ0FDbmhCLENBQUM7UUFFRixhQUFRLEdBQUcsS0FBSyxDQUFTLDZCQUE2QixDQUFDLENBQUM7S0FDekQ7K0dBTlksMkJBQTJCO21HQUEzQiwyQkFBMkIsaU9BWjVCOzs7Ozs7OztHQVFULCt2Q0FUUyxhQUFhOzs0RkFhWiwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUMsWUFDZDs7Ozs7Ozs7R0FRVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFl2Y0ljb25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1tdWx0aS1vYmplY3Qtc3VtbWFyeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtZdmNJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2VjdGlvbiBjbGFzcz1cInNsaWRlXCI+XG4gICAgICA8eXZjLWljb24gW3N2Z109XCJpY29uKClcIj48L3l2Yy1pY29uPlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwidGl0bGVcIj5cbiAgICAgIDxoMT57eyBoZWFkbGluZSgpIH19PC9oMT5cbiAgICA8L3NlY3Rpb24+XG4gIGAsXG4gIHN0eWxlVXJsOiAnLi9tdWx0aS1vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB7XG4gIGljb24gPSBzaWduYWwoXG4gICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCIjNWY2MzY4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCI+PHBhdGggZD1cIm0yMDAtMTIwLTgwLTQ4MGg3MjBsLTgwIDQ4MEgyMDBabTY3LTgwaDQyNmw1MS0zMjBIMjE2bDUxIDMyMFptMTMzLTE2MGgxNjBxMTcgMCAyOC41LTExLjVUNjAwLTQwMHEwLTE3LTExLjUtMjguNVQ1NjAtNDQwSDQwMHEtMTcgMC0yOC41IDExLjVUMzYwLTQwMHEwIDE3IDExLjUgMjguNVQ0MDAtMzYwWk0yNDAtNjQwcS0xNyAwLTI4LjUtMTEuNVQyMDAtNjgwcTAtMTcgMTEuNS0yOC41VDI0MC03MjBoNDgwcTE3IDAgMjguNSAxMS41VDc2MC02ODBxMCAxNy0xMS41IDI4LjVUNzIwLTY0MEgyNDBabTgwLTEyMHEtMTcgMC0yOC41LTExLjVUMjgwLTgwMHEwLTE3IDExLjUtMjguNVQzMjAtODQwaDMyMHExNyAwIDI4LjUgMTEuNVQ2ODAtODAwcTAgMTctMTEuNSAyOC41VDY0MC03NjBIMzIwWm0tNTMgNTYwaDQyNi00MjZaXCIvPjwvc3ZnPidcbiAgKTtcblxuICBoZWFkbGluZSA9IGlucHV0PHN0cmluZz4oJ3RoaXMgY291bGQgYmUgeW91ciBoZWFkbGluZScpO1xufVxuIl19
@@ -1,275 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectorRef, Component, effect, inject, input, signal, untracked, viewChild } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { BaseObjectTypeField, ContentStreamField, DmsService, EventService, ObjectConfigService, Operator, SearchService, SystemService, SystemSOT, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
5
- import { BusyOverlayDirective } from '@yuuvis/client-framework/common';
6
- import { YUV_ICONS } from '@yuuvis/client-framework/icons';
7
- import { RetentionBadgeComponent } from '@yuuvis/client-framework/object-details';
8
- import { ObjectFlavorComponent } from '@yuuvis/client-framework/object-flavor';
9
- import { RendererDirective } from '@yuuvis/client-framework/renderer';
10
- import { YvcIconModule } from '@yuuvis/components/icon';
11
- import { YvcOverflowMenuComponent } from '@yuuvis/components/overflow-menu';
12
- import { YvcOverlayModule } from '@yuuvis/components/overlay';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@yuuvis/client-framework/common";
15
- import * as i2 from "@yuuvis/components/icon";
16
- /**
17
- * Component showing a summary of the given dms object.
18
- */
19
- export class ObjectSummaryComponent {
20
- #eventService;
21
- #dmsService;
22
- #systemService;
23
- #objectConfigService;
24
- #searchService;
25
- #cd;
26
- #oc;
27
- #dmsObjectInputEffect;
28
- #objectIdEffect;
29
- constructor() {
30
- this.#eventService = inject(EventService);
31
- this.#dmsService = inject(DmsService);
32
- this.translate = inject(TranslateService);
33
- this.#systemService = inject(SystemService);
34
- this.#objectConfigService = inject(ObjectConfigService);
35
- this.#searchService = inject(SearchService);
36
- this.#cd = inject(ChangeDetectorRef);
37
- this.flavorCmp = viewChild(ObjectFlavorComponent);
38
- this.slide = signal({
39
- loading: false
40
- });
41
- this.busy = true;
42
- this.headerData = signal(undefined);
43
- this.baseData = [];
44
- this.icons = {
45
- folder: YUV_ICONS.folder
46
- };
47
- this.actions = input([]);
48
- /**
49
- * DmsObject to show the details for.
50
- */
51
- this.dmsObject = signal(undefined);
52
- this.dmsObjectInput = input(undefined, { alias: 'dmsObject' });
53
- this.#dmsObjectInputEffect = effect(() => {
54
- const dmsObject = this.dmsObjectInput();
55
- const contentChanged = this.dmsObject()?.content?.contentStreamId !== dmsObject?.content?.contentStreamId;
56
- untracked(() => {
57
- this.dmsObject.set(dmsObject);
58
- contentChanged && this.slide.update((slide) => ({ ...slide, uri: undefined, icon: undefined, iconSvg: undefined }));
59
- if (dmsObject) {
60
- this.#getHeaderData();
61
- this.#getBaseData();
62
- (contentChanged || dmsObject.isFolder) && this.#setupSlide();
63
- this.folderInfo = undefined;
64
- if (dmsObject.isFolder)
65
- this.#fetchFolderInfo(dmsObject.id);
66
- // if a flavor has been selected and a new object comes in, we'll check if
67
- // the new object has the same flavor and update the flavor data
68
- if (this.flavorData && dmsObject.sots.includes(this.flavorData.flavor.sot)) {
69
- this.#getFlavorData(this.flavorData.flavor);
70
- }
71
- else
72
- this.flavorData = undefined;
73
- }
74
- else {
75
- this.flavorData = undefined;
76
- }
77
- });
78
- });
79
- /**
80
- * ID of a DmsObject. The object will be fetched from the backend upfront.
81
- */
82
- this.objectId = input(null);
83
- this.#objectIdEffect = effect(() => {
84
- const id = this.objectId();
85
- untracked(() => {
86
- id && this.#getDmsObject(id);
87
- });
88
- });
89
- // virtual object type to be used for header data
90
- this.configType = input();
91
- this.#objectConfigService
92
- .getObjectConfigs$(undefined, true)
93
- .pipe(takeUntilDestroyed())
94
- .subscribe((res) => {
95
- this.#oc = res;
96
- const dmsObject = this.dmsObject();
97
- if (dmsObject)
98
- this.#getHeaderData();
99
- });
100
- this.#eventService
101
- .on(YuvEventType.DMS_OBJECT_UPDATED)
102
- .pipe(takeUntilDestroyed())
103
- .subscribe((e) => {
104
- const o = e.data;
105
- const dmsObject = this.dmsObject();
106
- if (dmsObject?.id === o.id) {
107
- this.dmsObject.set(o);
108
- }
109
- });
110
- }
111
- #setupSlide() {
112
- const dmsObject = this.dmsObject();
113
- if (dmsObject) {
114
- if (dmsObject.content) {
115
- const slideUri = this.#dmsService.getSlideURI(dmsObject.id, dmsObject.content?.mimeType);
116
- if (slideUri) {
117
- this.slide.update((slide) => ({ ...slide, loading: true }));
118
- const img = new Image();
119
- img.onload = () => {
120
- this.slide.update((slide) => ({
121
- ...slide,
122
- orientation: img.width > img.height ? 'landscape' : 'portrait',
123
- uri: `${slideUri}?${new Date().getTime()}`, // add Timestamp to force image reload
124
- loading: false
125
- }));
126
- this.#cd.markForCheck();
127
- };
128
- img.onerror = () => {
129
- const headerData = this.headerData();
130
- this.slide.update((slide) => ({ ...slide, icon: headerData?.icon, loading: false }));
131
- this.#cd.markForCheck();
132
- };
133
- img.src = slideUri;
134
- }
135
- }
136
- else {
137
- const headerData = this.headerData();
138
- this.slide.update((slide) => ({ ...slide, icon: headerData?.icon }));
139
- }
140
- }
141
- }
142
- onFlavorClick(flavor) {
143
- this.#getFlavorData(flavor);
144
- }
145
- #fetchFolderInfo(id) {
146
- const q = {
147
- fields: [`SUM(${ContentStreamField.LENGTH})`],
148
- aggs: [BaseObjectTypeField.BASE_TYPE_ID],
149
- filters: [
150
- {
151
- f: BaseObjectTypeField.PARENT_ID,
152
- o: Operator.EQUAL,
153
- v1: id
154
- }
155
- ]
156
- };
157
- this.#searchService.aggregate(q, [BaseObjectTypeField.BASE_TYPE_ID]).subscribe((res) => {
158
- const entries = res.aggregations[0].entries;
159
- this.folderInfo = {
160
- size: entries.reduce((s, v) => s + v.count, 0),
161
- entries
162
- };
163
- });
164
- }
165
- #getDmsObject(id) {
166
- this.busy = true;
167
- this.#dmsService.getDmsObject(id).subscribe({
168
- next: (dmsObject) => this.dmsObject.set(dmsObject),
169
- error: () => {
170
- this.dmsObject.set(undefined);
171
- this.contextError = this.translate.instant('yuv.object-summary.load.error');
172
- },
173
- complete: () => {
174
- this.busy = false;
175
- }
176
- });
177
- }
178
- #getObjectConfig(type, bucket) {
179
- const dmsObject = this.dmsObject();
180
- return dmsObject
181
- ? this.#objectConfigService.getResolvedObjectConfig(dmsObject.data, type || {
182
- id: dmsObject.objectTypeId,
183
- objectType: dmsObject.objectTypeId
184
- }, bucket, true)
185
- : undefined;
186
- }
187
- #getFlavorData(flavor) {
188
- if (!flavor) {
189
- this.flavorData = undefined;
190
- return;
191
- }
192
- const sot = this.#systemService.getSecondaryObjectType(flavor.sot, true);
193
- const dmsObject = this.dmsObject();
194
- if (dmsObject && sot) {
195
- this.flavorData = {
196
- flavor,
197
- label: this.translate.instant(flavor.id),
198
- properties: sot.fields.filter(f => f._internalType !== 'table').map((f) => ({
199
- label: this.#systemService.getLocalizedLabel(f.id) || f.id,
200
- value: {
201
- propertyName: f.id,
202
- value: dmsObject.data[f.id]
203
- }
204
- }))
205
- };
206
- }
207
- else
208
- this.flavorData = undefined;
209
- }
210
- #getHeaderData() {
211
- const oc = this.#getObjectConfig(this.configType()?.type, this.configType()?.bucket);
212
- const dmsObject = this.dmsObject();
213
- if (oc && dmsObject) {
214
- this.headerData.update((data) => ({
215
- ...data,
216
- title: oc.title.value,
217
- description: oc.description?.value,
218
- icon: {
219
- title: oc.title.value,
220
- ...(oc.icon ? { svg: oc.icon.value } : { src: this.#systemService.getObjectTypeIconUri(dmsObject.objectTypeId) })
221
- }
222
- }));
223
- // this.headerData.icon =;
224
- }
225
- else
226
- this.headerData.set(undefined);
227
- }
228
- #getBaseData() {
229
- this.baseData = [];
230
- const fields = [
231
- BaseObjectTypeField.CREATION_DATE,
232
- `${BaseObjectTypeField.CREATED_BY}_title`,
233
- BaseObjectTypeField.MODIFICATION_DATE,
234
- `${BaseObjectTypeField.MODIFIED_BY}_title`
235
- ];
236
- const contentFields = [ContentStreamField.FILENAME, ContentStreamField.LENGTH, ContentStreamField.MIME_TYPE];
237
- const dmsObject = this.dmsObject();
238
- if (dmsObject) {
239
- const retentionFields = dmsObject.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS].includes(SystemSOT.DESTRUCTION_RETENTION)
240
- ? [BaseObjectTypeField.RETENTION_START, BaseObjectTypeField.RETENTION_END]
241
- : [];
242
- (dmsObject.content ? [...fields, ...contentFields, ...retentionFields] : fields).forEach((f) => {
243
- this.baseData.push({
244
- label: this.#systemService.getLocalizedLabel(f.replace('_title', '')) || f,
245
- value: {
246
- propertyName: f,
247
- value: dmsObject.data[f]
248
- }
249
- });
250
- });
251
- }
252
- }
253
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectSummaryComponent, isStandalone: true, selector: "yuv-object-summary", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, dmsObjectInput: { classPropertyName: "dmsObjectInput", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, objectId: { classPropertyName: "objectId", publicName: "objectId", isSignal: true, isRequired: false, transformFunction: null }, configType: { classPropertyName: "configType", publicName: "configType", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "flavorCmp", first: true, predicate: ObjectFlavorComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.BusyOverlayDirective, inputs: ["yuvBusyOverlay", "busy"] }], ngImport: i0, template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (o) {\n <section class=\"badges\">\n <yuv-retention-badge [dmsObject]=\"o\"></yuv-retention-badge>\n </section>\n }\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section:not(.badges){padding:var(--app-pane-padding)}:host section:not(.badges) h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.badges{display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-start;gap:calc(var(--app-pane-padding) / 4);padding-inline:var(--app-pane-padding)}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "component", type: ObjectFlavorComponent, selector: "yuv-object-flavor", inputs: ["dmsObject"], outputs: ["flavorClick"] }, { kind: "ngmodule", type: YvcOverlayModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "component", type: YvcOverflowMenuComponent, selector: "yvc-overflow-menu", inputs: ["overflowIcon", "groupLabels", "menuItems", "hideLabels"] }, { kind: "component", type: RetentionBadgeComponent, selector: "yuv-retention-badge", inputs: ["dmsObject"] }] }); }
255
- }
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, decorators: [{
257
- type: Component,
258
- args: [{ selector: 'yuv-object-summary', standalone: true, imports: [
259
- NgClass,
260
- BusyOverlayDirective,
261
- TranslateModule,
262
- RendererDirective,
263
- ObjectFlavorComponent,
264
- YvcOverlayModule,
265
- YvcIconModule,
266
- YvcOverflowMenuComponent,
267
- RetentionBadgeComponent
268
- ], hostDirectives: [
269
- {
270
- directive: BusyOverlayDirective,
271
- inputs: ['yuvBusyOverlay: busy']
272
- }
273
- ], template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (o) {\n <section class=\"badges\">\n <yuv-retention-badge [dmsObject]=\"o\"></yuv-retention-badge>\n </section>\n }\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section:not(.badges){padding:var(--app-pane-padding)}:host section:not(.badges) h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.badges{display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-start;gap:calc(var(--app-pane-padding) / 4);padding-inline:var(--app-pane-padding)}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"] }]
274
- }], ctorParameters: () => [] });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL29iamVjdC1zdW1tYXJ5L29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnkvc3JjL2xpYi9vYmplY3Qtc3VtbWFyeS9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGtCQUFrQixFQUVsQixVQUFVLEVBQ1YsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixRQUFRLEVBR1IsYUFBYSxFQUNiLGFBQWEsRUFDYixTQUFTLEVBQ1QsZUFBZSxFQUNmLGdCQUFnQixFQUdoQixZQUFZLEVBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxF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LEVBQUUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQzFFLEtBQUssRUFBRTt3QkFDTCxZQUFZLEVBQUUsQ0FBQzt3QkFDZixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ3pCO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBL1JVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlwQkFTWCxxQkFBcUIsOEpDckU3QywyNERBNERBLG1oRURuQkksT0FBTyxvRkFDUCxvQkFBb0Isd0ZBQ3BCLGVBQWUsK0JBQ2YsaUJBQWlCLG1GQUNqQixxQkFBcUIsOEdBQ3JCLGdCQUFnQiw4QkFDaEIsYUFBYSwrSEFDYix3QkFBd0Isa0lBQ3hCLHVCQUF1Qjs7NEZBV2Qsc0JBQXNCO2tCQXZCbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1Asb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4Qix1QkFBdUI7cUJBQ3hCLGtCQUdlO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSxvQkFBb0I7NEJBQy9CLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixDQUFDO3lCQUNqQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwsIHVudHJhY2tlZCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBCYXNlT2JqZWN0VHlwZUZpZWxkLFxuICBDb25maWdUeXBlT3B0aW9uLFxuICBDb250ZW50U3RyZWFtRmllbGQsXG4gIERtc09iamVjdCxcbiAgRG1zU2VydmljZSxcbiAgRXZlbnRTZXJ2aWNlLFxuICBPYmplY3RDb25maWdSZWNvcmQsXG4gIE9iamVjdENvbmZpZ1NlcnZpY2UsXG4gIE9wZXJhdG9yLFxuICBSZXNvbHZlZE9iamVjdENvbmZpZyxcbiAgU2VhcmNoUXVlcnksXG4gIFNlYXJjaFNlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFN5c3RlbVNPVCxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBWaXJ0dWFsT2JqZWN0VHlwZSxcbiAgWXV2RXZlbnQsXG4gIFl1dkV2ZW50VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEJ1c3lPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgUmV0ZW50aW9uQmFkZ2VDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMnO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3InO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUsIFJlbmRlcmVyRGlyZWN0aXZlSW5wdXQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTWVudUl0ZW0sIFl2Y092ZXJmbG93TWVudUNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51JztcbmltcG9ydCB7IFl2Y092ZXJsYXlNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHNob3dpbmcgYSBzdW1tYXJ5IG9mIHRoZSBnaXZlbiBkbXMgb2JqZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtb2JqZWN0LXN1bW1hcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBCdXN5T3ZlcmxheURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgT2JqZWN0Rmxhdm9yQ29tcG9uZW50LFxuICAgIFl2Y092ZXJsYXlNb2R1bGUsXG4gICAgWXZjSWNvbk1vZHVsZSxcbiAgICBZdmNPdmVyZmxvd01lbnVDb21wb25lbnQsXG4gICAgUmV0ZW50aW9uQmFkZ2VDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEJ1c3lPdmVybGF5RGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ3l1dkJ1c3lPdmVybGF5OiBidXN5J11cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5ICNldmVudFNlcnZpY2UgPSBpbmplY3QoRXZlbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI29iamVjdENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoT2JqZWN0Q29uZmlnU2VydmljZSk7XG4gIHJlYWRvbmx5ICNzZWFyY2hTZXJ2aWNlID0gaW5qZWN0KFNlYXJjaFNlcnZpY2UpO1xuICByZWFkb25seSAjY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGZsYXZvckNtcCA9IHZpZXdDaGlsZChPYmplY3RGbGF2b3JDb21wb25lbnQpO1xuXG4gICNvYz86IE9iamVjdENvbmZpZ1JlY29yZDtcblxuICBzbGlkZSA9IHNpZ25hbDx7XG4gICAgaWNvbj86IHtcbiAgICAgIHNyYz86IHN0cmluZztcbiAgICAgIHN2Zz86IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIH07XG4gICAgdXJpPzogc3RyaW5nO1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG4gIH0+KHtcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9KTtcbiAgYnVzeSA9IHRydWU7XG5cbiAgY29udGV4dEVycm9yPzogc3RyaW5nO1xuICBoZWFkZXJEYXRhID0gc2lnbmFsPFxuICAgIHwge1xuICAgICAgICBpY29uPzoge1xuICAgICAgICAgIHNyYz86IHN0cmluZztcbiAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG5cbiAgYmFzZURhdGE6IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICB9W10gPSBbXTtcblxuICBmbGF2b3JEYXRhPzoge1xuICAgIGZsYXZvcjogT2JqZWN0Rmxhdm9yO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICAgIH1bXTtcbiAgfTtcblxuICBpY29ucyA9IHtcbiAgICBmb2xkZXI6IFlVVl9JQ09OUy5mb2xkZXJcbiAgfTtcblxuICBhY3Rpb25zID0gaW5wdXQ8TWVudUl0ZW1bXT4oW10pO1xuICBmb2xkZXJJbmZvPzoge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBlbnRyaWVzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEbXNPYmplY3QgdG8gc2hvdyB0aGUgZGV0YWlscyBmb3IuXG4gICAqL1xuXG4gIGRtc09iamVjdCA9IHNpZ25hbDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgZG1zT2JqZWN0SW5wdXQgPSBpbnB1dDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2Rtc09iamVjdCcgfSk7XG4gICNkbXNPYmplY3RJbnB1dEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3RJbnB1dCgpO1xuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5kbXNPYmplY3QoKT8uY29udGVudD8uY29udGVudFN0cmVhbUlkICE9PSBkbXNPYmplY3Q/LmNvbnRlbnQ/LmNvbnRlbnRTdHJlYW1JZDtcblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICB0aGlzLmRtc09iamVjdC5zZXQoZG1zT2JqZWN0KTtcbiAgICAgIGNvbnRlbnRDaGFuZ2VkICYmIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIHVyaTogdW5kZWZpbmVkLCBpY29uOiB1bmRlZmluZWQsIGljb25Tdmc6IHVuZGVmaW5lZCB9KSk7XG4gICAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuI2dldEhlYWRlckRhdGEoKTtcbiAgICAgICAgdGhpcy4jZ2V0QmFzZURhdGEoKTtcbiAgICAgICAgKGNvbnRlbnRDaGFuZ2VkIHx8IGRtc09iamVjdC5pc0ZvbGRlcikgJiYgdGhpcy4jc2V0dXBTbGlkZSgpO1xuICAgICAgICB0aGlzLmZvbGRlckluZm8gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGRtc09iamVjdC5pc0ZvbGRlcikgdGhpcy4jZmV0Y2hGb2xkZXJJbmZvKGRtc09iamVjdC5pZCk7XG5cbiAgICAgICAgLy8gaWYgYSBmbGF2b3IgaGFzIGJlZW4gc2VsZWN0ZWQgYW5kIGEgbmV3IG9iamVjdCBjb21lcyBpbiwgd2UnbGwgY2hlY2sgaWZcbiAgICAgICAgLy8gdGhlIG5ldyBvYmplY3QgaGFzIHRoZSBzYW1lIGZsYXZvciBhbmQgdXBkYXRlIHRoZSBmbGF2b3IgZGF0YVxuICAgICAgICBpZiAodGhpcy5mbGF2b3JEYXRhICYmIGRtc09iamVjdC5zb3RzLmluY2x1ZGVzKHRoaXMuZmxhdm9yRGF0YS5mbGF2b3Iuc290KSkge1xuICAgICAgICAgIHRoaXMuI2dldEZsYXZvckRhdGEodGhpcy5mbGF2b3JEYXRhLmZsYXZvcik7XG4gICAgICAgIH0gZWxzZSB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBJRCBvZiBhIERtc09iamVjdC4gVGhlIG9iamVjdCB3aWxsIGJlIGZldGNoZWQgZnJvbSB0aGUgYmFja2VuZCB1cGZyb250LlxuICAgKi9cbiAgb2JqZWN0SWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPihudWxsKTtcbiAgI29iamVjdElkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpZCA9IHRoaXMub2JqZWN0SWQoKTtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgaWQgJiYgdGhpcy4jZ2V0RG1zT2JqZWN0KGlkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gdmlydHVhbCBvYmplY3QgdHlwZSB0byBiZSB1c2VkIGZvciBoZWFkZXIgZGF0YVxuICBjb25maWdUeXBlID0gaW5wdXQ8Q29uZmlnVHlwZU9wdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNvYmplY3RDb25maWdTZXJ2aWNlXG4gICAgICAuZ2V0T2JqZWN0Q29uZmlncyQodW5kZWZpbmVkLCB0cnVlKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IE9iamVjdENvbmZpZ1JlY29yZCkgPT4ge1xuICAgICAgICB0aGlzLiNvYyA9IHJlcztcbiAgICAgICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICAgICAgaWYgKGRtc09iamVjdCkgdGhpcy4jZ2V0SGVhZGVyRGF0YSgpO1xuICAgICAgfSk7XG4gICAgdGhpcy4jZXZlbnRTZXJ2aWNlXG4gICAgICAub24oWXV2RXZlbnRUeXBlLkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoZTogWXV2RXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgbyA9IGUuZGF0YSBhcyBEbXNPYmplY3Q7XG4gICAgICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgICAgIGlmIChkbXNPYmplY3Q/LmlkID09PSBvLmlkKSB7XG4gICAgICAgICAgdGhpcy5kbXNPYmplY3Quc2V0KG8pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gICNzZXR1cFNsaWRlKCkge1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgaWYgKGRtc09iamVjdC5jb250ZW50KSB7XG4gICAgICAgIGNvbnN0IHNsaWRlVXJpID0gdGhpcy4jZG1zU2VydmljZS5nZXRTbGlkZVVSSShkbXNPYmplY3QuaWQsIGRtc09iamVjdC5jb250ZW50Py5taW1lVHlwZSk7XG4gICAgICAgIGlmIChzbGlkZVVyaSkge1xuICAgICAgICAgIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIGxvYWRpbmc6IHRydWUgfSkpO1xuICAgICAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlLnVwZGF0ZSgoc2xpZGUpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnNsaWRlLFxuICAgICAgICAgICAgICBvcmllbnRhdGlvbjogaW1nLndpZHRoID4gaW1nLmhlaWdodCA/ICdsYW5kc2NhcGUnIDogJ3BvcnRyYWl0JyxcbiAgICAgICAgICAgICAgdXJpOiBgJHtzbGlkZVVyaX0/JHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gLCAvLyBhZGQgVGltZXN0YW1wIHRvIGZvcmNlIGltYWdlIHJlbG9hZFxuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy4jY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlckRhdGEgPSB0aGlzLmhlYWRlckRhdGEoKTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIGljb246IGhlYWRlckRhdGE/Lmljb24sIGxvYWRpbmc6IGZhbHNlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuI2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgaW1nLnNyYyA9IHNsaWRlVXJpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoZWFkZXJEYXRhID0gdGhpcy5oZWFkZXJEYXRhKCk7XG4gICAgICAgIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIGljb246IGhlYWRlckRhdGE/Lmljb24gfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRmxhdm9yQ2xpY2soZmxhdm9yOiBPYmplY3RGbGF2b3IpIHtcbiAgICB0aGlzLiNnZXRGbGF2b3JEYXRhKGZsYXZvcik7XG4gIH1cblxuICAjZmV0Y2hGb2xkZXJJbmZvKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxOiBTZWFyY2hRdWVyeSA9IHtcbiAgICAgIGZpZWxkczogW2BTVU0oJHtDb250ZW50U3RyZWFtRmllbGQuTEVOR1RIfSlgXSxcbiAgICAgIGFnZ3M6IFtCYXNlT2JqZWN0VHlwZUZpZWxkLkJBU0VfVFlQRV9JRF0sXG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmOiBCYXNlT2JqZWN0VHlwZUZpZWxkLlBBUkVOVF9JRCxcbiAgICAgICAgICBvOiBPcGVyYXRvci5FUVVBTCxcbiAgICAgICAgICB2MTogaWRcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gICAgdGhpcy4jc2VhcmNoU2VydmljZS5hZ2dyZWdhdGUocSwgW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSByZXMuYWdncmVnYXRpb25zWzBdLmVudHJpZXM7XG4gICAgICB0aGlzLmZvbGRlckluZm8gPSB7XG4gICAgICAgIHNpemU6IGVudHJpZXMucmVkdWNlKChzLCB2KSA9PiBzICsgdi5jb3VudCwgMCksXG4gICAgICAgIGVudHJpZXNcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAjZ2V0RG1zT2JqZWN0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuI2Rtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KGlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRtc09iamVjdCkgPT4gdGhpcy5kbXNPYmplY3Quc2V0KGRtc09iamVjdCksXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRtc09iamVjdC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LXN1bW1hcnkubG9hZC5lcnJvcicpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI2dldE9iamVjdENvbmZpZyh0eXBlPzogVmlydHVhbE9iamVjdFR5cGUsIGJ1Y2tldD86IHN0cmluZyk6IFJlc29sdmVkT2JqZWN0Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIHJldHVybiBkbXNPYmplY3RcbiAgICAgID8gdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRSZXNvbHZlZE9iamVjdENvbmZpZyhcbiAgICAgICAgICBkbXNPYmplY3QuZGF0YSxcbiAgICAgICAgICB0eXBlIHx8IHtcbiAgICAgICAgICAgIGlkOiBkbXNPYmplY3Qub2JqZWN0VHlwZUlkLFxuICAgICAgICAgICAgb2JqZWN0VHlwZTogZG1zT2JqZWN0Lm9iamVjdFR5cGVJZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVja2V0LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0Rmxhdm9yRGF0YShmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIGlmICghZmxhdm9yKSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNvdCA9IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0U2Vjb25kYXJ5T2JqZWN0VHlwZShmbGF2b3Iuc290LCB0cnVlKTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QgJiYgc290KSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB7XG4gICAgICAgIGZsYXZvcixcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZmxhdm9yLmlkKSxcbiAgICAgICAgcHJvcGVydGllczogc290LmZpZWxkcy5maWx0ZXIoZiA9PiBmLl9pbnRlcm5hbFR5cGUgIT09ICd0YWJsZScpLm1hcCgoZikgPT4gKHtcbiAgICAgICAgICBsYWJlbDogdGhpcy4jc3lzdGVtU2VydmljZS5nZXRMb2NhbGl6ZWRMYWJlbChmLmlkKSB8fCBmLmlkLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGYuaWQsXG4gICAgICAgICAgICB2YWx1ZTogZG1zT2JqZWN0LmRhdGFbZi5pZF1cbiAgICAgICAgICB9XG4gICAgICAgIH0pKVxuICAgICAgfTtcbiAgICB9IGVsc2UgdGhpcy5mbGF2b3JEYXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI2dldEhlYWRlckRhdGEoKSB7XG4gICAgY29uc3Qgb2MgPSB0aGlzLiNnZXRPYmplY3RDb25maWcodGhpcy5jb25maWdUeXBlKCk/LnR5cGUsIHRoaXMuY29uZmlnVHlwZSgpPy5idWNrZXQpO1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKG9jICYmIGRtc09iamVjdCkge1xuICAgICAgdGhpcy5oZWFkZXJEYXRhLnVwZGF0ZSgoZGF0YSkgPT4gKHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgdGl0bGU6IG9jLnRpdGxlLnZhbHVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogb2MuZGVzY3JpcHRpb24/LnZhbHVlLFxuICAgICAgICBpY29uOiB7XG4gICAgICAgICAgdGl0bGU6IG9jLnRpdGxlLnZhbHVlLFxuICAgICAgICAgIC4uLihvYy5pY29uID8geyBzdmc6IG9jLmljb24udmFsdWUgfSA6IHsgc3JjOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVJY29uVXJpKGRtc09iamVjdC5vYmplY3RUeXBlSWQpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pKTtcblxuICAgICAgLy8gdGhpcy5oZWFkZXJEYXRhLmljb24gPTtcbiAgICB9IGVsc2UgdGhpcy5oZWFkZXJEYXRhLnNldCh1bmRlZmluZWQpO1xuICB9XG5cbiAgI2dldEJhc2VEYXRhKCkge1xuICAgIHRoaXMuYmFzZURhdGEgPSBbXTtcblxuICAgIGNvbnN0IGZpZWxkcyA9IFtcbiAgICAgIEJhc2VPYmplY3RUeXBlRmllbGQuQ1JFQVRJT05fREFURSxcbiAgICAgIGAke0Jhc2VPYmplY3RUeXBlRmllbGQuQ1JFQVRFRF9CWX1fdGl0bGVgLFxuICAgICAgQmFzZU9iamVjdFR5cGVGaWVsZC5NT0RJRklDQVRJT05fREFURSxcbiAgICAgIGAke0Jhc2VPYmplY3RUeXBlRmllbGQuTU9ESUZJRURfQll9X3RpdGxlYFxuICAgIF07XG4gICAgY29uc3QgY29udGVudEZpZWxkcyA9IFtDb250ZW50U3RyZWFtRmllbGQuRklMRU5BTUUsIENvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEgsIENvbnRlbnRTdHJlYW1GaWVsZC5NSU1FX1RZUEVdO1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgY29uc3QgcmV0ZW50aW9uRmllbGRzID0gKGRtc09iamVjdC5kYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gYXMgc3RyaW5nW10pLmluY2x1ZGVzKFN5c3RlbVNPVC5ERVNUUlVDVElPTl9SRVRFTlRJT04pXG4gICAgICAgID8gW0Jhc2VPYmplY3RUeXBlRmllbGQuUkVURU5USU9OX1NUQVJULCBCYXNlT2JqZWN0VHlwZUZpZWxkLlJFVEVOVElPTl9FTkRdXG4gICAgICAgIDogW107XG5cbiAgICAgIChkbXNPYmplY3QuY29udGVudCA/IFsuLi5maWVsZHMsIC4uLmNvbnRlbnRGaWVsZHMsIC4uLnJldGVudGlvbkZpZWxkc10gOiBmaWVsZHMpLmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgdGhpcy5iYXNlRGF0YS5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogdGhpcy4jc3lzdGVtU2VydmljZS5nZXRMb2NhbGl6ZWRMYWJlbChmLnJlcGxhY2UoJ190aXRsZScsICcnKSkgfHwgZixcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBmLFxuICAgICAgICAgICAgdmFsdWU6IGRtc09iamVjdC5kYXRhW2ZdXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGxldCBpbWFnZVNsaWRlID0gc2xpZGUoKTtcbjxzZWN0aW9uIGNsYXNzPVwic2xpZGVcIiBbeXV2QnVzeU92ZXJsYXldPVwiaW1hZ2VTbGlkZS5sb2FkaW5nXCI+XG4gIEBpZiAoaW1hZ2VTbGlkZS51cmkgfHwgaW1hZ2VTbGlkZS5sb2FkaW5nKSB7XG4gICAgPGltZyBkcmFnZ2FibGU9XCJmYWxzZVwiIFtuZ0NsYXNzXT1cInsgbG9hZGluZzogaW1hZ2VTbGlkZS5sb2FkaW5nIH1cIiBbYXR0ci5kYXRhLW9yaWVudGF0aW9uXT1cImltYWdlU2xpZGUub3JpZW50YXRpb25cIiBbc3JjXT1cImltYWdlU2xpZGUudXJpXCIgLz5cbiAgfSBAZWxzZSBpZiAoaW1hZ2VTbGlkZS5pY29uPy5zdmcpIHtcbiAgICA8eXZjLWljb24gZHJhZ2dhYmxlPVwiZmFsc2VcIiBbc3ZnXT1cImltYWdlU2xpZGUuaWNvbj8uc3ZnIVwiPjwveXZjLWljb24+XG4gIH0gQGVsc2UgaWYgKGltYWdlU2xpZGUuaWNvbj8uc3JjKSB7XG4gICAgPHl2Yy1pY29uIGRyYWdnYWJsZT1cImZhbHNlXCIgW3N2Z1NyY109XCJpbWFnZVNsaWRlLmljb24/LnNyYyFcIj48L3l2Yy1pY29uPlxuICB9XG4gIEBpZiAoZm9sZGVySW5mbykge1xuICAgIDxkaXYgY2xhc3M9XCJiYWRnZVwiPnt7IGZvbGRlckluZm8uc2l6ZSB9fTwvZGl2PlxuICB9XG48L3NlY3Rpb24+XG5cbkBsZXQgbyA9IGRtc09iamVjdCgpO1xuQGlmIChvICYmICFvLmlzRm9sZGVyKSB7XG4gIDx5dXYtb2JqZWN0LWZsYXZvciBbZG1zT2JqZWN0XT1cIm9cIiAoZmxhdm9yQ2xpY2spPVwib25GbGF2b3JDbGljaygkZXZlbnQpXCI+PC95dXYtb2JqZWN0LWZsYXZvcj5cbn1cblxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgQGxldCBoZWFkZXIgPSBoZWFkZXJEYXRhKCk7XG4gIDxzZWN0aW9uIGNsYXNzPVwidGl0bGVcIj5cbiAgICA8aDE+e3sgaGVhZGVyPy50aXRsZSB9fTwvaDE+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPHl2Yy1vdmVyZmxvdy1tZW51IFtoaWRlTGFiZWxzXT1cInRydWVcIiBbbWVudUl0ZW1zXT1cImFjdGlvbnMoKVwiPjwveXZjLW92ZXJmbG93LW1lbnU+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cblxuICBAaWYgKG8pIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cImJhZGdlc1wiPlxuICAgICAgPHl1di1yZXRlbnRpb24tYmFkZ2UgW2Rtc09iamVjdF09XCJvXCI+PC95dXYtcmV0ZW50aW9uLWJhZGdlPlxuICAgIDwvc2VjdGlvbj5cbiAgfVxuXG4gIEBpZiAoZmxhdm9yRGF0YSkge1xuICAgIDxzZWN0aW9uIGNsYXNzPVwiZmxhdm9yIHByb3BlcnRpZXNcIj5cbiAgICAgIDwhLS0gPGgyPnt7IGZsYXZvckRhdGEubGFiZWwgfX08L2gyPiAtLT5cbiAgICAgIEBmb3IgKHAgb2YgZmxhdm9yRGF0YS5wcm9wZXJ0aWVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7IHAubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicC52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG4gIH1cblxuICA8c2VjdGlvbiBjbGFzcz1cInByb3BlcnRpZXNcIj5cbiAgICBAZm9yIChwIG9mIGJhc2VEYXRhOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3sgcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICp5dXZSZW5kZXJlcj1cInAudmFsdWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19