@yuuvis/client-framework 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/README.md +62 -0
  2. package/actions/README.md +3 -0
  3. package/actions/index.d.ts +6 -0
  4. package/actions/lib/actions/copy-action/copy-action.d.ts +17 -0
  5. package/actions/lib/actions/cut-action/cut-action.d.ts +17 -0
  6. package/actions/lib/actions/delete-action/delete/delete.component.d.ts +22 -0
  7. package/actions/lib/actions/delete-action/delete-action.d.ts +17 -0
  8. package/actions/lib/actions/download-action/download-action.d.ts +17 -0
  9. package/actions/lib/actions.icon.d.ts +7 -0
  10. package/actions/lib/actions.interface.d.ts +86 -0
  11. package/actions/lib/actions.module.d.ts +8 -0
  12. package/actions/lib/actions.service.d.ts +38 -0
  13. package/actions/lib/components/contextmenu/contextmenu.component.d.ts +11 -0
  14. package/app-bar/README.md +3 -0
  15. package/app-bar/index.d.ts +1 -0
  16. package/app-bar/lib/app-bar.component.d.ts +47 -0
  17. package/clipboard/README.md +3 -0
  18. package/clipboard/index.d.ts +1 -0
  19. package/clipboard/lib/clipboard.component.d.ts +16 -0
  20. package/common/README.md +3 -0
  21. package/common/index.d.ts +5 -0
  22. package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +7 -0
  23. package/common/lib/components/token-input/token-input.component.d.ts +55 -0
  24. package/common/lib/components/token-input/token-input.interface.d.ts +8 -0
  25. package/common/lib/directives/busy-overlay.directive.d.ts +25 -0
  26. package/common/lib/directives/click-double.directive.d.ts +17 -0
  27. package/common/lib/directives/container-size.directive.d.ts +30 -0
  28. package/common/lib/directives/drag-select.directive.d.ts +21 -0
  29. package/common/lib/directives/file-drop-zone/file-drop-zone.directive.d.ts +18 -0
  30. package/common/lib/directives/file-drop-zone/file-drop-zone.interface.d.ts +5 -0
  31. package/common/lib/directives/focus-within.directive.d.ts +36 -0
  32. package/common/lib/directives/index.d.ts +8 -0
  33. package/common/lib/directives/light-dismiss.directive.d.ts +19 -0
  34. package/common/lib/directives/longpress.directive.d.ts +13 -0
  35. package/common/lib/directives/noop-value-accessor.directive.d.ts +10 -0
  36. package/esm2022/actions/index.mjs +7 -0
  37. package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +31 -0
  38. package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +30 -0
  39. package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +67 -0
  40. package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +44 -0
  41. package/esm2022/actions/lib/actions/download-action/download-action.mjs +33 -0
  42. package/esm2022/actions/lib/actions.icon.mjs +8 -0
  43. package/esm2022/actions/lib/actions.interface.mjs +19 -0
  44. package/esm2022/actions/lib/actions.module.mjs +16 -0
  45. package/esm2022/actions/lib/actions.service.mjs +89 -0
  46. package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +27 -0
  47. package/esm2022/actions/yuuvis-client-framework-actions.mjs +5 -0
  48. package/esm2022/app-bar/index.mjs +2 -0
  49. package/esm2022/app-bar/lib/app-bar.component.mjs +89 -0
  50. package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +5 -0
  51. package/esm2022/clipboard/index.mjs +2 -0
  52. package/esm2022/clipboard/lib/clipboard.component.mjs +48 -0
  53. package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +5 -0
  54. package/esm2022/common/index.mjs +6 -0
  55. package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +41 -0
  56. package/esm2022/common/lib/components/token-input/token-input.component.mjs +324 -0
  57. package/esm2022/common/lib/components/token-input/token-input.interface.mjs +2 -0
  58. package/esm2022/common/lib/directives/busy-overlay.directive.mjs +88 -0
  59. package/esm2022/common/lib/directives/click-double.directive.mjs +61 -0
  60. package/esm2022/common/lib/directives/container-size.directive.mjs +56 -0
  61. package/esm2022/common/lib/directives/drag-select.directive.mjs +114 -0
  62. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +153 -0
  63. package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +2 -0
  64. package/esm2022/common/lib/directives/focus-within.directive.mjs +81 -0
  65. package/esm2022/common/lib/directives/index.mjs +9 -0
  66. package/esm2022/common/lib/directives/light-dismiss.directive.mjs +44 -0
  67. package/esm2022/common/lib/directives/longpress.directive.mjs +36 -0
  68. package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +42 -0
  69. package/esm2022/common/yuuvis-client-framework-common.mjs +5 -0
  70. package/esm2022/forms/index.mjs +19 -0
  71. package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +118 -0
  72. package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +82 -0
  73. package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +166 -0
  74. package/esm2022/forms/lib/elements/number/number.component.mjs +195 -0
  75. package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +176 -0
  76. package/esm2022/forms/lib/elements/organization/organization.component.mjs +268 -0
  77. package/esm2022/forms/lib/elements/string/string.component.mjs +254 -0
  78. package/esm2022/forms/lib/form-input/form-input.component.mjs +88 -0
  79. package/esm2022/forms/lib/forms.module.mjs +58 -0
  80. package/esm2022/forms/yuuvis-client-framework-forms.mjs +5 -0
  81. package/esm2022/icons/index.mjs +4 -0
  82. package/esm2022/icons/lib/icon.service.mjs +59 -0
  83. package/esm2022/icons/lib/icons.mjs +31 -0
  84. package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +29 -0
  85. package/esm2022/icons/yuuvis-client-framework-icons.mjs +5 -0
  86. package/esm2022/index.mjs +2 -0
  87. package/esm2022/lib/yuuvis-client-framework.module.mjs +15 -0
  88. package/esm2022/list/index.mjs +3 -0
  89. package/esm2022/list/lib/list-item.directive.mjs +72 -0
  90. package/esm2022/list/lib/list.component.mjs +133 -0
  91. package/esm2022/list/yuuvis-client-framework-list.mjs +5 -0
  92. package/esm2022/metadata-form/index.mjs +4 -0
  93. package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +31 -0
  94. package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +99 -0
  95. package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +126 -0
  96. package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +52 -0
  97. package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +5 -0
  98. package/esm2022/object-details/index.mjs +7 -0
  99. package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +195 -0
  100. package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +127 -0
  101. package/esm2022/object-details/lib/object-details.component.mjs +61 -0
  102. package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +17 -0
  103. package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +201 -0
  104. package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +2 -0
  105. package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +5 -0
  106. package/esm2022/object-flavor/index.mjs +6 -0
  107. package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +25 -0
  108. package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +21 -0
  109. package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +35 -0
  110. package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +93 -0
  111. package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +43 -0
  112. package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +5 -0
  113. package/esm2022/object-form/index.mjs +5 -0
  114. package/esm2022/object-form/lib/form-scripting.api.interface.mjs +2 -0
  115. package/esm2022/object-form/lib/form-scripting.service.mjs +160 -0
  116. package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +87 -0
  117. package/esm2022/object-form/lib/object-form-extension.interface.mjs +36 -0
  118. package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +85 -0
  119. package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +23 -0
  120. package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +115 -0
  121. package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +251 -0
  122. package/esm2022/object-form/lib/object-form-translate.service.mjs +73 -0
  123. package/esm2022/object-form/lib/object-form.component.mjs +627 -0
  124. package/esm2022/object-form/lib/object-form.interface.mjs +9 -0
  125. package/esm2022/object-form/lib/object-form.model.mjs +20 -0
  126. package/esm2022/object-form/lib/object-form.service.mjs +127 -0
  127. package/esm2022/object-form/lib/object-form.utils.mjs +55 -0
  128. package/esm2022/object-form/lib/object-form.validation.mjs +48 -0
  129. package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +5 -0
  130. package/esm2022/object-preview/index.mjs +3 -0
  131. package/esm2022/object-preview/lib/components/index.mjs +3 -0
  132. package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +45 -0
  133. package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +78 -0
  134. package/esm2022/object-preview/lib/services/object-preview.service.mjs +92 -0
  135. package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +5 -0
  136. package/esm2022/object-summary/index.mjs +5 -0
  137. package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +33 -0
  138. package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +273 -0
  139. package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +80 -0
  140. package/esm2022/object-summary/lib/object-summary.module.mjs +15 -0
  141. package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +5 -0
  142. package/esm2022/pagination/index.mjs +3 -0
  143. package/esm2022/pagination/lib/pagination.component.mjs +48 -0
  144. package/esm2022/pagination/lib/pagination.interface.mjs +2 -0
  145. package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +5 -0
  146. package/esm2022/panel/index.mjs +2 -0
  147. package/esm2022/panel/lib/panel.component.mjs +20 -0
  148. package/esm2022/panel/yuuvis-client-framework-panel.mjs +5 -0
  149. package/esm2022/renderer/index.mjs +11 -0
  150. package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +29 -0
  151. package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +13 -0
  152. package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +12 -0
  153. package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +28 -0
  154. package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +23 -0
  155. package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +12 -0
  156. package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +19 -0
  157. package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +12 -0
  158. package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +12 -0
  159. package/esm2022/renderer/lib/renderer.directive.mjs +51 -0
  160. package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +2 -0
  161. package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +84 -0
  162. package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +5 -0
  163. package/esm2022/sequence-list/index.mjs +6 -0
  164. package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +99 -0
  165. package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +183 -0
  166. package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +114 -0
  167. package/esm2022/sequence-list/lib/sequence-list.component.mjs +146 -0
  168. package/esm2022/sequence-list/lib/sequence-list.interface.mjs +2 -0
  169. package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +5 -0
  170. package/esm2022/simple-search/index.mjs +3 -0
  171. package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +111 -0
  172. package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +2 -0
  173. package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +5 -0
  174. package/esm2022/tile-list/index.mjs +11 -0
  175. package/esm2022/tile-list/lib/tile/tile.component.mjs +53 -0
  176. package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +22 -0
  177. package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +33 -0
  178. package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +91 -0
  179. package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +66 -0
  180. package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +46 -0
  181. package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +156 -0
  182. package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +37 -0
  183. package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +42 -0
  184. package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +35 -0
  185. package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +510 -0
  186. package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +2 -0
  187. package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +5 -0
  188. package/esm2022/token-search/index.mjs +3 -0
  189. package/esm2022/token-search/token-search.component.mjs +78 -0
  190. package/esm2022/token-search/token-search.interface.mjs +2 -0
  191. package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +5 -0
  192. package/esm2022/tree/index.mjs +3 -0
  193. package/esm2022/tree/lib/tree-node/tree-node.component.mjs +65 -0
  194. package/esm2022/tree/lib/tree.component.mjs +148 -0
  195. package/esm2022/tree/lib/tree.interface.mjs +2 -0
  196. package/esm2022/tree/lib/tree.service.mjs +95 -0
  197. package/esm2022/tree/yuuvis-client-framework-tree.mjs +5 -0
  198. package/esm2022/upload-progress/index.mjs +2 -0
  199. package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +49 -0
  200. package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +37 -0
  201. package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +5 -0
  202. package/esm2022/user-avatar/index.mjs +3 -0
  203. package/esm2022/user-avatar/lib/user-avatar.component.mjs +69 -0
  204. package/esm2022/user-avatar/lib/user-avatar.module.mjs +24 -0
  205. package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +5 -0
  206. package/esm2022/yuuvis-client-framework.mjs +5 -0
  207. package/fesm2022/yuuvis-client-framework-actions.mjs +333 -0
  208. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -0
  209. package/fesm2022/yuuvis-client-framework-app-bar.mjs +96 -0
  210. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -0
  211. package/fesm2022/yuuvis-client-framework-clipboard.mjs +55 -0
  212. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -0
  213. package/fesm2022/yuuvis-client-framework-common.mjs +1020 -0
  214. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -0
  215. package/fesm2022/yuuvis-client-framework-forms.mjs +1355 -0
  216. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -0
  217. package/fesm2022/yuuvis-client-framework-icons.mjs +123 -0
  218. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -0
  219. package/fesm2022/yuuvis-client-framework-list.mjs +209 -0
  220. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -0
  221. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +302 -0
  222. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -0
  223. package/fesm2022/yuuvis-client-framework-object-details.mjs +583 -0
  224. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -0
  225. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +200 -0
  226. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -0
  227. package/fesm2022/yuuvis-client-framework-object-form.mjs +1664 -0
  228. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -0
  229. package/fesm2022/yuuvis-client-framework-object-preview.mjs +213 -0
  230. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -0
  231. package/fesm2022/yuuvis-client-framework-object-summary.mjs +397 -0
  232. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -0
  233. package/fesm2022/yuuvis-client-framework-pagination.mjs +55 -0
  234. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -0
  235. package/fesm2022/yuuvis-client-framework-panel.mjs +27 -0
  236. package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -0
  237. package/fesm2022/yuuvis-client-framework-renderer.mjs +262 -0
  238. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -0
  239. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +519 -0
  240. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -0
  241. package/fesm2022/yuuvis-client-framework-simple-search.mjs +118 -0
  242. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -0
  243. package/fesm2022/yuuvis-client-framework-tile-list.mjs +1036 -0
  244. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -0
  245. package/fesm2022/yuuvis-client-framework-token-search.mjs +85 -0
  246. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -0
  247. package/fesm2022/yuuvis-client-framework-tree.mjs +307 -0
  248. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -0
  249. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +84 -0
  250. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -0
  251. package/fesm2022/yuuvis-client-framework-user-avatar.mjs +96 -0
  252. package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +1 -0
  253. package/fesm2022/yuuvis-client-framework.mjs +22 -0
  254. package/fesm2022/yuuvis-client-framework.mjs.map +1 -0
  255. package/forms/README.md +3 -0
  256. package/forms/index.d.ts +9 -0
  257. package/forms/lib/elements/catalog/catalog.component.d.ts +68 -0
  258. package/forms/lib/elements/datetime/datetime.component.d.ts +32 -0
  259. package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +51 -0
  260. package/forms/lib/elements/number/number.component.d.ts +77 -0
  261. package/forms/lib/elements/number-range/number-range.component.d.ts +66 -0
  262. package/forms/lib/elements/organization/organization.component.d.ts +93 -0
  263. package/forms/lib/elements/string/string.component.d.ts +104 -0
  264. package/forms/lib/form-input/form-input.component.d.ts +48 -0
  265. package/forms/lib/forms.module.d.ts +16 -0
  266. package/icons/README.md +5 -0
  267. package/icons/index.d.ts +3 -0
  268. package/icons/lib/icon.service.d.ts +38 -0
  269. package/icons/lib/icons.d.ts +1 -0
  270. package/icons/lib/object-type-icon/object-type-icon.component.d.ts +11 -0
  271. package/index.d.ts +1 -0
  272. package/lib/yuuvis-client-framework.module.d.ts +7 -0
  273. package/list/README.md +3 -0
  274. package/list/index.d.ts +2 -0
  275. package/list/lib/list-item.directive.d.ts +15 -0
  276. package/list/lib/list.component.d.ts +36 -0
  277. package/metadata-form/README.md +21 -0
  278. package/metadata-form/index.d.ts +3 -0
  279. package/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.d.ts +5 -0
  280. package/metadata-form/lib/metadata-form-element-registry.service.d.ts +47 -0
  281. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +31 -0
  282. package/metadata-form/lib/object-metadata-element-template.directive.d.ts +27 -0
  283. package/object-details/README.md +28 -0
  284. package/object-details/index.d.ts +6 -0
  285. package/object-details/lib/object-audit/object-audit.component.d.ts +59 -0
  286. package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +51 -0
  287. package/object-details/lib/object-details.component.d.ts +36 -0
  288. package/object-details/lib/object-metadata/form-section-group.pipe.d.ts +8 -0
  289. package/object-details/lib/object-metadata/object-metadata.component.d.ts +48 -0
  290. package/object-details/lib/object-metadata/object-metadata.interface.d.ts +26 -0
  291. package/object-flavor/README.md +3 -0
  292. package/object-flavor/index.d.ts +5 -0
  293. package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +12 -0
  294. package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +12 -0
  295. package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +17 -0
  296. package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +26 -0
  297. package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +10 -0
  298. package/object-form/README.md +3 -0
  299. package/object-form/index.d.ts +4 -0
  300. package/object-form/lib/form-scripting.api.interface.d.ts +131 -0
  301. package/object-form/lib/form-scripting.service.d.ts +30 -0
  302. package/object-form/lib/object-form-element/object-form-element.component.d.ts +22 -0
  303. package/object-form/lib/object-form-extension.interface.d.ts +22 -0
  304. package/object-form/lib/object-form-group/object-form-group.component.d.ts +22 -0
  305. package/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.d.ts +10 -0
  306. package/object-form/lib/object-form-script/object-form-script.service.d.ts +45 -0
  307. package/object-form/lib/object-form-script/object-form-scripting-scope.d.ts +50 -0
  308. package/object-form/lib/object-form-translate.service.d.ts +15 -0
  309. package/object-form/lib/object-form.component.d.ts +60 -0
  310. package/object-form/lib/object-form.interface.d.ts +113 -0
  311. package/object-form/lib/object-form.model.d.ts +18 -0
  312. package/object-form/lib/object-form.service.d.ts +39 -0
  313. package/object-form/lib/object-form.utils.d.ts +20 -0
  314. package/object-form/lib/object-form.validation.d.ts +21 -0
  315. package/object-preview/README.md +3 -0
  316. package/object-preview/index.d.ts +2 -0
  317. package/object-preview/lib/components/index.d.ts +2 -0
  318. package/object-preview/lib/components/object-email-preview/object-email-preview.component.d.ts +16 -0
  319. package/object-preview/lib/components/object-preview/object-preview.component.d.ts +13 -0
  320. package/object-preview/lib/services/object-preview.service.d.ts +37 -0
  321. package/object-summary/README.md +3 -0
  322. package/object-summary/index.d.ts +4 -0
  323. package/object-summary/lib/multi-object-summary/multi-object-summary.component.d.ts +7 -0
  324. package/object-summary/lib/object-summary/object-summary.component.d.ts +73 -0
  325. package/object-summary/lib/object-summary-data/object-summary-data.component.d.ts +11 -0
  326. package/object-summary/lib/object-summary.module.d.ts +7 -0
  327. package/package.json +173 -0
  328. package/pagination/README.md +3 -0
  329. package/pagination/index.d.ts +2 -0
  330. package/pagination/lib/pagination.component.d.ts +18 -0
  331. package/pagination/lib/pagination.interface.d.ts +5 -0
  332. package/panel/README.md +3 -0
  333. package/panel/index.d.ts +1 -0
  334. package/panel/lib/panel.component.d.ts +12 -0
  335. package/renderer/README.md +5 -0
  336. package/renderer/index.d.ts +10 -0
  337. package/renderer/lib/property-renderer/abstract.renderer.d.ts +14 -0
  338. package/renderer/lib/property-renderer/datetime.renderer.d.ts +6 -0
  339. package/renderer/lib/property-renderer/decimal.renderer.component.d.ts +6 -0
  340. package/renderer/lib/property-renderer/filesize.renderer.component.d.ts +7 -0
  341. package/renderer/lib/property-renderer/icon.renderer.component.d.ts +6 -0
  342. package/renderer/lib/property-renderer/integer.renderer.component.d.ts +6 -0
  343. package/renderer/lib/property-renderer/organization.renderer.d.ts +7 -0
  344. package/renderer/lib/property-renderer/string.renderer.component.d.ts +6 -0
  345. package/renderer/lib/property-renderer/unknown.renderer.d.ts +6 -0
  346. package/renderer/lib/renderer.directive.d.ts +17 -0
  347. package/renderer/lib/services/renderer/renderer.interface.d.ts +8 -0
  348. package/renderer/lib/services/renderer/renderer.service.d.ts +35 -0
  349. package/sequence-list/README.md +3 -0
  350. package/sequence-list/index.d.ts +5 -0
  351. package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +28 -0
  352. package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +52 -0
  353. package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +36 -0
  354. package/sequence-list/lib/sequence-list.component.d.ts +43 -0
  355. package/sequence-list/lib/sequence-list.interface.d.ts +16 -0
  356. package/simple-search/README.md +3 -0
  357. package/simple-search/index.d.ts +2 -0
  358. package/simple-search/lib/simple-search/simple-search.component.d.ts +55 -0
  359. package/simple-search/lib/simple-search/simple-search.interface.d.ts +4 -0
  360. package/styles/client-framework.scss +27 -0
  361. package/tile-list/README.md +3 -0
  362. package/tile-list/index.d.ts +10 -0
  363. package/tile-list/lib/tile/tile.component.d.ts +22 -0
  364. package/tile-list/lib/tile-config/action-select/action-select.component.d.ts +13 -0
  365. package/tile-list/lib/tile-config/icon-select/icon-select.component.d.ts +11 -0
  366. package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +25 -0
  367. package/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.d.ts +20 -0
  368. package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +17 -0
  369. package/tile-list/lib/tile-config/tile-config.component.d.ts +47 -0
  370. package/tile-list/lib/tile-extension/directive/tile-extension.directive.d.ts +11 -0
  371. package/tile-list/lib/tile-extension/extensions/email.extension.d.ts +10 -0
  372. package/tile-list/lib/tile-extension/tile-extension.service.d.ts +16 -0
  373. package/tile-list/lib/tile-list/tile-list.component.d.ts +116 -0
  374. package/tile-list/lib/tile-list/tile-list.interface.d.ts +18 -0
  375. package/token-search/README.md +3 -0
  376. package/token-search/index.d.ts +2 -0
  377. package/token-search/token-search.component.d.ts +22 -0
  378. package/token-search/token-search.interface.d.ts +4 -0
  379. package/tree/README.md +3 -0
  380. package/tree/index.d.ts +2 -0
  381. package/tree/lib/tree-node/tree-node.component.d.ts +21 -0
  382. package/tree/lib/tree.component.d.ts +53 -0
  383. package/tree/lib/tree.interface.d.ts +11 -0
  384. package/tree/lib/tree.service.d.ts +35 -0
  385. package/upload-progress/README.md +3 -0
  386. package/upload-progress/index.d.ts +1 -0
  387. package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +17 -0
  388. package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +16 -0
  389. package/user-avatar/README.md +3 -0
  390. package/user-avatar/index.d.ts +2 -0
  391. package/user-avatar/lib/user-avatar.component.d.ts +44 -0
  392. package/user-avatar/lib/user-avatar.module.d.ts +8 -0
@@ -0,0 +1,201 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, effect, inject, input, output, signal, viewChildren } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { DmsService, NotificationService, PendingChangesService, Situation, SystemService, TranslateModule, TranslateService } from '@yuuvis/client-core';
5
+ import { ObjectFormComponent } from '@yuuvis/client-framework/object-form';
6
+ import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@yuuvis/client-core";
10
+ import * as i3 from "@yuuvis/components/icon";
11
+ export class ObjectMetadataComponent {
12
+ constructor() {
13
+ this.#pendingChanges = inject(PendingChangesService);
14
+ this.#notificationService = inject(NotificationService);
15
+ this.translate = inject(TranslateService);
16
+ this.#system = inject(SystemService);
17
+ this.#dmsService = inject(DmsService);
18
+ this.objectForms = viewChildren(ObjectFormComponent);
19
+ this.#formSubscriptions = [];
20
+ this.#initialData = {};
21
+ this.arrow = ICONS.arrowDown;
22
+ this.busy = signal(false);
23
+ this.empty = signal(false);
24
+ this.controlsVisible = signal(false);
25
+ // form of the dms object itself
26
+ this.mainFormOptions = signal(undefined);
27
+ // forms off allpied flavors
28
+ this.flavorFormOptions = signal([]);
29
+ // state of all individual forms
30
+ this.#formStates = new Map();
31
+ /**
32
+ * Form situation, if not set default will be 'EDIT'
33
+ */
34
+ this.situation = Situation.EDIT;
35
+ /**
36
+ * Set to 'true' to prevent all metadata from being edited
37
+ */
38
+ this.formDisabled = false;
39
+ this.dmsObject = input();
40
+ this.#dmsObjectEffect = effect(() => {
41
+ this.#init(this.dmsObject());
42
+ });
43
+ this.flavoredDmsObject = input();
44
+ this.#flavoredDmsObjectEffect = effect(() => {
45
+ const flavoredDmsObject = this.flavoredDmsObject();
46
+ this.#init(flavoredDmsObject?.object, flavoredDmsObject?.flavors);
47
+ });
48
+ /**
49
+ * Emits the updated `DmsObject` when metadata have been saved.
50
+ */
51
+ this.indexDataSaved = output();
52
+ /**
53
+ * Emits the current state of the metadata form.
54
+ */
55
+ this.statusChanged = output();
56
+ }
57
+ #pendingChanges;
58
+ #notificationService;
59
+ #system;
60
+ #dmsService;
61
+ #pendingTaskId;
62
+ #dmsObject;
63
+ #formSubscriptions;
64
+ #initialData;
65
+ // state of all individual forms
66
+ #formStates;
67
+ #dmsObjectEffect;
68
+ #flavoredDmsObjectEffect;
69
+ #init(object, flavors) {
70
+ if (object && (!this.#dmsObject || this.#dmsObject !== object)) {
71
+ this.#initialData = structuredClone(object.data);
72
+ this.#objectToForm(object, flavors);
73
+ }
74
+ this.#dmsObject = object;
75
+ }
76
+ #objectToForm(object, flavors) {
77
+ if (object) {
78
+ const mappedFlavors = (flavors || []).reduce((acc, curr) => ({ ...acc, [curr.sot]: curr }), {});
79
+ this.#system.getObjectTypeForms([object.objectTypeId, ...(flavors || []).map((f) => f.sot)], this.situation).subscribe({
80
+ next: (res) => {
81
+ this.mainFormOptions.set(res[object.objectTypeId]
82
+ ? {
83
+ formModel: res[object.objectTypeId],
84
+ data: object.data,
85
+ disabled: this.formDisabled || !object.permissions?.writeIndexData,
86
+ }
87
+ : undefined);
88
+ this.flavorFormOptions.set(Object.keys(res)
89
+ .filter((id) => id !== object.objectTypeId)
90
+ .map((id) => ({
91
+ id,
92
+ label: res[id].label,
93
+ icon: mappedFlavors[id]?.icon,
94
+ formOptions: {
95
+ formModel: res[id],
96
+ data: object.data
97
+ }
98
+ })));
99
+ this.empty.set(!this.mainFormOptions() && !this.flavorFormOptions().length);
100
+ }
101
+ });
102
+ }
103
+ }
104
+ onFormStatusChanged(formId, evt) {
105
+ this.#formStates.set(formId, evt);
106
+ this.#getCombinedFormState();
107
+ if (this.combinedFormState?.dirty)
108
+ this.#startPending();
109
+ else
110
+ this.#finishPending();
111
+ this.controlsVisible.set(!!this.combinedFormState?.dirty);
112
+ if (this.combinedFormState)
113
+ this.statusChanged.emit(this.combinedFormState);
114
+ }
115
+ #getCombinedFormState() {
116
+ const combinedFormState = {
117
+ dirty: false,
118
+ indexdataChanged: false,
119
+ invalid: false,
120
+ data: {}
121
+ };
122
+ this.#formStates.forEach((s) => {
123
+ if (s.dirty) {
124
+ combinedFormState.dirty = s.dirty;
125
+ }
126
+ if (s.indexdataChanged) {
127
+ combinedFormState.indexdataChanged = s.indexdataChanged;
128
+ }
129
+ if (s.invalid) {
130
+ combinedFormState.invalid = s.invalid;
131
+ }
132
+ combinedFormState.data = { ...combinedFormState.data, ...s.data };
133
+ });
134
+ this.combinedFormState = combinedFormState;
135
+ return this.combinedFormState;
136
+ }
137
+ #setCombinedFormPristine() {
138
+ this.objectForms().forEach((f) => {
139
+ f.setFormPristine();
140
+ });
141
+ }
142
+ save() {
143
+ if (this.#dmsObject && this.combinedFormState) {
144
+ this.busy.set(true);
145
+ this.#dmsService.updateDmsObject(this.#dmsObject.id, this.combinedFormState.data).subscribe({
146
+ next: () => {
147
+ this.#setCombinedFormPristine();
148
+ this.indexDataSaved.emit(this.#dmsObject);
149
+ this.#finishPending();
150
+ },
151
+ error: (err) => {
152
+ this.#notificationService.error('',
153
+ // this._dmsObject?.title || '',
154
+ err.status === 404 ? this.translate.instant('yuv.object-metadata.context.load.error') : this.translate.instant('yuv.object-metadata.save.error'));
155
+ },
156
+ complete: () => {
157
+ this.controlsVisible.set(false);
158
+ this.busy.set(false);
159
+ }
160
+ });
161
+ }
162
+ }
163
+ /**
164
+ * Reset te form to its initial state
165
+ */
166
+ resetForm() {
167
+ if (this.objectForms()?.length) {
168
+ this.objectForms().forEach((f) => {
169
+ f.resetForm();
170
+ });
171
+ this.#formStates.clear();
172
+ }
173
+ }
174
+ #startPending() {
175
+ // because this method will be called every time the form status changes,
176
+ // pending task will only be started once until it was finished
177
+ if (!this.#pendingChanges.hasPendingTask(this.#pendingTaskId || ' ')) {
178
+ this.#pendingTaskId = this.#pendingChanges.startTask(this.translate.instant('yuv.object-metadata.pending-changes.alert'));
179
+ }
180
+ }
181
+ #finishPending() {
182
+ if (this.#pendingTaskId)
183
+ this.#pendingChanges.finishTask(this.#pendingTaskId);
184
+ }
185
+ ngOnDestroy() {
186
+ this.#formSubscriptions.forEach((s) => s.unsubscribe());
187
+ }
188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectMetadataComponent, isStandalone: true, selector: "yuv-object-metadata", inputs: { situation: { classPropertyName: "situation", publicName: "situation", isSignal: false, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: false, isRequired: false, transformFunction: null }, dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, flavoredDmsObject: { classPropertyName: "flavoredDmsObject", publicName: "flavoredDmsObject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexDataSaved: "indexDataSaved", statusChanged: "statusChanged" }, host: { properties: { "class.empty": "empty()" } }, viewQueries: [{ propertyName: "objectForms", predicate: ObjectFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ObjectFormComponent, selector: "yuv-object-form", inputs: ["formOptions", "inert", "elementExtensions", "isInnerTableForm"], outputs: ["statusChanged", "onFormReady"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
190
+ }
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectMetadataComponent, decorators: [{
192
+ type: Component,
193
+ args: [{ selector: 'yuv-object-metadata', standalone: true, imports: [CommonModule, ObjectFormComponent, TranslateModule, ReactiveFormsModule, YvcIconModule], host: {
194
+ '[class.empty]': 'empty()'
195
+ }, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"] }]
196
+ }], propDecorators: { situation: [{
197
+ type: Input
198
+ }], formDisabled: [{
199
+ type: Input
200
+ }] } });
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBRUwsVUFBVSxFQUVWLG1CQUFtQixFQUVuQixxQkFBcUIsRUFDckIsU0FBUyxFQUNULGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUEwQixtQkFBbUIsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0SCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWEvRCxNQUFNLE9BQU8sdUJBQXVCO0lBVnBDO1FBV0Usb0JBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsTUFB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QUFDLENBQUM7UUFDNUgsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBaE1VLHVCQUF1QjttR0FBdkIsdUJBQXVCLGl6QkFPYyxtQkFBbUIsZ0VDcENyRSxxcUNBd0JBLCtwRERGWSxZQUFZLDZIQUFFLG1CQUFtQixpTEFBRSxlQUFlLDJGQUFFLG1CQUFtQiw4QkFBRSxhQUFhOzs0RkFPckYsdUJBQXVCO2tCQVZuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxRQUczRjt3QkFDSixlQUFlLEVBQUUsU0FBUztxQkFDM0I7OEJBc0NRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBGbGF2b3JlZERtc09iamVjdCxcbiAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgT2JqZWN0VHlwZUZsYXZvcixcbiAgUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICBTaXR1YXRpb24sXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQsIE9iamVjdEZvcm1Db21wb25lbnQsIE9iamVjdEZvcm1PcHRpb25zIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW9iamVjdC1tZXRhZGF0YScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9iamVjdEZvcm1Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZW1wdHldJzogJ2VtcHR5KCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0TWV0YWRhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAjcGVuZGluZ0NoYW5nZXMgPSBpbmplY3QoUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKTtcbiAgI25vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG5cbiAgb2JqZWN0Rm9ybXMgPSB2aWV3Q2hpbGRyZW48T2JqZWN0Rm9ybUNvbXBvbmVudD4oT2JqZWN0Rm9ybUNvbXBvbmVudCk7XG5cbiAgI3BlbmRpbmdUYXNrSWQ/OiBzdHJpbmc7XG4gICNkbXNPYmplY3Q/OiBEbXNPYmplY3Q7XG4gICNmb3JtU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgI2luaXRpYWxEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIGFycm93ID0gSUNPTlMuYXJyb3dEb3duO1xuICBidXN5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgZW1wdHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb250cm9sc1Zpc2libGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIGZvcm0gb2YgdGhlIGRtcyBvYmplY3QgaXRzZWxmXG4gIG1haW5Gb3JtT3B0aW9ucyA9IHNpZ25hbDxPYmplY3RGb3JtT3B0aW9ucyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLy8gZm9ybXMgb2ZmIGFsbHBpZWQgZmxhdm9yc1xuICBmbGF2b3JGb3JtT3B0aW9ucyA9IHNpZ25hbDxcbiAgICB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gICAgfVtdXG4gID4oW10pO1xuICAvLyBzdGF0ZSBvZiBhbGwgaW5kaXZpZHVhbCBmb3Jtc1xuICAjZm9ybVN0YXRlczogTWFwPHN0cmluZywgRm9ybVN0YXR1c0NoYW5nZWRFdmVudD4gPSBuZXcgTWFwPHN0cmluZywgRm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgQElucHV0KCkgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVDtcbiAgLyoqXG4gICAqIFNldCB0byAndHJ1ZScgdG8gcHJldmVudCBhbGwgbWV0YWRhdGEgZnJvbSBiZWluZyBlZGl0ZWRcbiAgICovXG4gIEBJbnB1dCgpIGZvcm1EaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGRtc09iamVjdCA9IGlucHV0PERtc09iamVjdCB8IHVuZGVmaW5lZD4oKTtcbiAgI2Rtc09iamVjdEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy4jaW5pdCh0aGlzLmRtc09iamVjdCgpKTtcbiAgfSk7XG5cbiAgZmxhdm9yZWREbXNPYmplY3QgPSBpbnB1dDxGbGF2b3JlZERtc09iamVjdCB8IHVuZGVmaW5lZD4oKTtcbiAgI2ZsYXZvcmVkRG1zT2JqZWN0RWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmbGF2b3JlZERtc09iamVjdCA9IHRoaXMuZmxhdm9yZWREbXNPYmplY3QoKTtcbiAgICB0aGlzLiNpbml0KGZsYXZvcmVkRG1zT2JqZWN0Py5vYmplY3QsIGZsYXZvcmVkRG1zT2JqZWN0Py5mbGF2b3JzKTtcbiAgfSk7XG4gIGNvbWJpbmVkRm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHVwZGF0ZWQgYERtc09iamVjdGAgd2hlbiBtZXRhZGF0YSBoYXZlIGJlZW4gc2F2ZWQuXG4gICAqL1xuICBpbmRleERhdGFTYXZlZCA9IG91dHB1dDxEbXNPYmplY3Q+KCk7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWV0YWRhdGEgZm9ybS5cbiAgICovXG4gIHN0YXR1c0NoYW5nZWQgPSBvdXRwdXQ8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcblxuICAjaW5pdChvYmplY3Q/OiBEbXNPYmplY3QsIGZsYXZvcnM/OiBPYmplY3RUeXBlRmxhdm9yW10pIHtcbiAgICBpZiAob2JqZWN0ICYmICghdGhpcy4jZG1zT2JqZWN0IHx8IHRoaXMuI2Rtc09iamVjdCAhPT0gb2JqZWN0KSkge1xuICAgICAgdGhpcy4jaW5pdGlhbERhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqZWN0LmRhdGEpO1xuICAgICAgdGhpcy4jb2JqZWN0VG9Gb3JtKG9iamVjdCwgZmxhdm9ycyk7XG4gICAgfVxuICAgIHRoaXMuI2Rtc09iamVjdCA9IG9iamVjdDtcbiAgfVxuXG4gICNvYmplY3RUb0Zvcm0ob2JqZWN0PzogRG1zT2JqZWN0LCBmbGF2b3JzPzogT2JqZWN0VHlwZUZsYXZvcltdKSB7XG4gICAgaWYgKG9iamVjdCkge1xuICAgICAgY29uc3QgbWFwcGVkRmxhdm9yczogUmVjb3JkPHN0cmluZywgT2JqZWN0VHlwZUZsYXZvcj4gPSAoZmxhdm9ycyB8fCBbXSkucmVkdWNlKChhY2MsIGN1cnIpID0+ICh7IC4uLmFjYywgW2N1cnIuc290XTogY3VyciB9KSwge30pO1xuICAgICAgdGhpcy4jc3lzdGVtLmdldE9iamVjdFR5cGVGb3Jtcyhbb2JqZWN0Lm9iamVjdFR5cGVJZCwgLi4uKGZsYXZvcnMgfHwgW10pLm1hcCgoZikgPT4gZi5zb3QpXSwgdGhpcy5zaXR1YXRpb24pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLm1haW5Gb3JtT3B0aW9ucy5zZXQoXG4gICAgICAgICAgICByZXNbb2JqZWN0Lm9iamVjdFR5cGVJZF1cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmb3JtTW9kZWw6IHJlc1tvYmplY3Qub2JqZWN0VHlwZUlkXSxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IG9iamVjdC5kYXRhLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZm9ybURpc2FibGVkIHx8ICFvYmplY3QucGVybWlzc2lvbnM/LndyaXRlSW5kZXhEYXRhLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZmxhdm9yRm9ybU9wdGlvbnMuc2V0KFxuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzKVxuICAgICAgICAgICAgICAuZmlsdGVyKChpZCkgPT4gaWQgIT09IG9iamVjdC5vYmplY3RUeXBlSWQpXG4gICAgICAgICAgICAgIC5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGxhYmVsOiByZXNbaWRdLmxhYmVsLFxuICAgICAgICAgICAgICAgIGljb246IG1hcHBlZEZsYXZvcnNbaWRdPy5pY29uLFxuICAgICAgICAgICAgICAgIGZvcm1PcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBmb3JtTW9kZWw6IHJlc1tpZF0sXG4gICAgICAgICAgICAgICAgICBkYXRhOiBvYmplY3QuZGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuZW1wdHkuc2V0KCF0aGlzLm1haW5Gb3JtT3B0aW9ucygpICYmICF0aGlzLmZsYXZvckZvcm1PcHRpb25zKCkubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChmb3JtSWQ6IHN0cmluZywgZXZ0OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy4jZm9ybVN0YXRlcy5zZXQoZm9ybUlkLCBldnQpO1xuICAgIHRoaXMuI2dldENvbWJpbmVkRm9ybVN0YXRlKCk7XG4gICAgaWYgKHRoaXMuY29tYmluZWRGb3JtU3RhdGU/LmRpcnR5KSB0aGlzLiNzdGFydFBlbmRpbmcoKTtcbiAgICBlbHNlIHRoaXMuI2ZpbmlzaFBlbmRpbmcoKTtcbiAgICB0aGlzLmNvbnRyb2xzVmlzaWJsZS5zZXQoISF0aGlzLmNvbWJpbmVkRm9ybVN0YXRlPy5kaXJ0eSk7XG4gICAgaWYgKHRoaXMuY29tYmluZWRGb3JtU3RhdGUpIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHRoaXMuY29tYmluZWRGb3JtU3RhdGUpO1xuICB9XG5cbiAgI2dldENvbWJpbmVkRm9ybVN0YXRlKCk6IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQge1xuICAgIGNvbnN0IGNvbWJpbmVkRm9ybVN0YXRlID0ge1xuICAgICAgZGlydHk6IGZhbHNlLFxuICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2UsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIGRhdGE6IHt9XG4gICAgfTtcbiAgICB0aGlzLiNmb3JtU3RhdGVzLmZvckVhY2goKHMpID0+IHtcbiAgICAgIGlmIChzLmRpcnR5KSB7XG4gICAgICAgIGNvbWJpbmVkRm9ybVN0YXRlLmRpcnR5ID0gcy5kaXJ0eTtcbiAgICAgIH1cbiAgICAgIGlmIChzLmluZGV4ZGF0YUNoYW5nZWQpIHtcbiAgICAgICAgY29tYmluZWRGb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCA9IHMuaW5kZXhkYXRhQ2hhbmdlZDtcbiAgICAgIH1cbiAgICAgIGlmIChzLmludmFsaWQpIHtcbiAgICAgICAgY29tYmluZWRGb3JtU3RhdGUuaW52YWxpZCA9IHMuaW52YWxpZDtcbiAgICAgIH1cbiAgICAgIGNvbWJpbmVkRm9ybVN0YXRlLmRhdGEgPSB7IC4uLmNvbWJpbmVkRm9ybVN0YXRlLmRhdGEsIC4uLnMuZGF0YSB9O1xuICAgIH0pO1xuICAgIHRoaXMuY29tYmluZWRGb3JtU3RhdGUgPSBjb21iaW5lZEZvcm1TdGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEZvcm1TdGF0ZTtcbiAgfVxuXG4gICNzZXRDb21iaW5lZEZvcm1QcmlzdGluZSgpIHtcbiAgICB0aGlzLm9iamVjdEZvcm1zKCkuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZi5zZXRGb3JtUHJpc3RpbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKHRoaXMuI2Rtc09iamVjdCAmJiB0aGlzLmNvbWJpbmVkRm9ybVN0YXRlKSB7XG4gICAgICB0aGlzLmJ1c3kuc2V0KHRydWUpO1xuICAgICAgdGhpcy4jZG1zU2VydmljZS51cGRhdGVEbXNPYmplY3QodGhpcy4jZG1zT2JqZWN0LmlkLCB0aGlzLmNvbWJpbmVkRm9ybVN0YXRlLmRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLiNzZXRDb21iaW5lZEZvcm1QcmlzdGluZSgpO1xuICAgICAgICAgIHRoaXMuaW5kZXhEYXRhU2F2ZWQuZW1pdCh0aGlzLiNkbXNPYmplY3QhKTtcbiAgICAgICAgICB0aGlzLiNmaW5pc2hQZW5kaW5nKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgLy8gdGhpcy5fZG1zT2JqZWN0Py50aXRsZSB8fCAnJyxcbiAgICAgICAgICAgIGVyci5zdGF0dXMgPT09IDQwNCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtbWV0YWRhdGEuY29udGV4dC5sb2FkLmVycm9yJykgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LW1ldGFkYXRhLnNhdmUuZXJyb3InKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sc1Zpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXNldCB0ZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gICAqL1xuICByZXNldEZvcm0oKSB7XG4gICAgaWYgKHRoaXMub2JqZWN0Rm9ybXMoKT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9iamVjdEZvcm1zKCkuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICBmLnJlc2V0Rm9ybSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLiNmb3JtU3RhdGVzLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgI3N0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLiNwZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLiNwZW5kaW5nVGFza0lkIHx8ICcgJykpIHtcbiAgICAgIHRoaXMuI3BlbmRpbmdUYXNrSWQgPSB0aGlzLiNwZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2sodGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1tZXRhZGF0YS5wZW5kaW5nLWNoYW5nZXMuYWxlcnQnKSk7XG4gICAgfVxuICB9XG5cbiAgI2ZpbmlzaFBlbmRpbmcoKSB7XG4gICAgaWYgKHRoaXMuI3BlbmRpbmdUYXNrSWQpIHRoaXMuI3BlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy4jcGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNmb3JtU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8bWFpbj5cbiAgQGlmIChlbXB0eSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICA8cD57eyAneXV2Lm9iamVjdC1tZXRhZGF0YS5lbXB0eS5tZXNzYWdlJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPHl1di1vYmplY3QtZm9ybSAgW2Zvcm1PcHRpb25zXT1cIm1haW5Gb3JtT3B0aW9ucygpXCIgKHN0YXR1c0NoYW5nZWQpPVwib25Gb3JtU3RhdHVzQ2hhbmdlZCgnbWFpbicsICRldmVudClcIj48L3l1di1vYmplY3QtZm9ybT5cblxuICAgIEBmb3IgKGZvIG9mIGZsYXZvckZvcm1PcHRpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRldGFpbHMgW2F0dHIub3Blbl09XCIkaW5kZXggPT09IDBcIj5cbiAgICAgICAgPHN1bW1hcnk+PHl2Yy1pY29uIFtzdmddPVwiZm8uaWNvblwiPjwveXZjLWljb24+IHt7IGZvLmxhYmVsIH19PHl2Yy1pY29uIGNsYXNzPVwiYXJyXCIgW3N2Z109XCJhcnJvd1wiPjwveXZjLWljb24+PC9zdW1tYXJ5PlxuICAgICAgICA8eXV2LW9iamVjdC1mb3JtIFtmb3JtT3B0aW9uc109XCJmby5mb3JtT3B0aW9uc1wiIChzdGF0dXNDaGFuZ2VkKT1cIm9uRm9ybVN0YXR1c0NoYW5nZWQoZm8uaWQsICRldmVudClcIj48L3l1di1vYmplY3QtZm9ybT5cbiAgICAgIDwvZGV0YWlscz5cbiAgICB9XG4gIH1cbjwvbWFpbj5cbjxmb290ZXIgW25nQ2xhc3NdPVwieyB2aXNpYmxlOiBjb250cm9sc1Zpc2libGUoKSB9XCI+XG4gIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVzZXRGb3JtKClcIiBbaGlkZGVuXT1cIiFjb21iaW5lZEZvcm1TdGF0ZT8uZGlydHlcIiBbZGlzYWJsZWRdPVwiIWNvbWJpbmVkRm9ybVN0YXRlPy5kaXJ0eVwiPlxuICAgIHt7ICd5dXYub2JqZWN0LW1ldGFkYXRhLmJ1dHRvbi5yZXNldCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwieyBzcGlubmluZzogYnVzeSgpIH1cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFjb21iaW5lZEZvcm1TdGF0ZT8uZGlydHkgfHwgY29tYmluZWRGb3JtU3RhdGU/LmludmFsaWRcIj5cbiAgICB7eyAneXV2Lm9iamVjdC1tZXRhZGF0YS5idXR0b24uc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Zvb3Rlcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxGaWVsZFR5cGUsIE9iamVjdFR5cGVGaWVsZCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhU3RhdHVzQ2hhbmdlZEV2ZW50IHtcbiAgLyoqXG4gICAqIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgZm9ybSBpcyBpbnZhbGlkXG4gICAqL1xuICBpbnZhbGlkOiBib29sZWFuO1xuICAvKipcbiAgICogZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBmb3JtIGhhcyBiZWVuIGVkaXRlZFxuICAgKi9cbiAgZGlydHk6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIGZvcm1zIGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxuICAgKi9cbiAgZGF0YUNoYW5nZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiB0aGUgZXh0cmFjdGVkIGRhdGEgZnJvbSB0aGUgZm9ybVxuICAgKi9cbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhRm9ybVNlY3Rpb24ge1xuICBpZDogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBmaWVsZHM6IE9iamVjdFR5cGVGaWVsZFtdO1xuICBjb2xsYXBzZWQ/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstb2JqZWN0LWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy95dXV2aXMtY2xpZW50LWZyYW1ld29yay1vYmplY3QtZGV0YWlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './lib/object-flavor/object-flavor.component';
2
+ export * from './lib/flavor-chip/flavor-chip.component';
3
+ export * from './lib/object-flavor-picker/object-flavor-picker.component';
4
+ export * from './lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component';
5
+ export * from './lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3Ivc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYywyRUFBMkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1mbGF2b3Ivb2JqZWN0LWZsYXZvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmxhdm9yLWNoaXAvZmxhdm9yLWNoaXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1mbGF2b3ItcGlja2VyL29iamVjdC1mbGF2b3ItcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYnN0cmFjdC1hcHBseS1jcmVhdGUtZmxhdm9yL2Fic3RyYWN0LWFwcGx5LWNyZWF0ZS1mbGF2b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fic3RyYWN0LWFwcGx5LW9iamVjdC1mbGF2b3IvYWJzdHJhY3QtYXBwbHktb2JqZWN0LWZsYXZvci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,25 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, inject, output, signal } from '@angular/core';
3
+ import { YvcOverlayRef } from '@yuuvis/components/overlay';
4
+ import * as i0 from "@angular/core";
5
+ export class AbstractApplyCreateFlavorComponent {
6
+ constructor() {
7
+ this.oRef = inject(YvcOverlayRef);
8
+ this.createdObjectIDs = signal(this.oRef.data.createdObjectIDs);
9
+ this.flavor = signal(this.oRef.data.flavor);
10
+ this.data = signal(this.oRef.data.data);
11
+ this.cancel = output();
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractApplyCreateFlavorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AbstractApplyCreateFlavorComponent, isStandalone: true, selector: "yuv-abstract-apply-create-flavor", outputs: { cancel: "cancel" }, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractApplyCreateFlavorComponent, decorators: [{
17
+ type: Component,
18
+ args: [{
19
+ selector: 'yuv-abstract-apply-create-flavor',
20
+ standalone: true,
21
+ imports: [CommonModule],
22
+ template: ''
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXBwbHktY3JlYXRlLWZsYXZvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3Ivc3JjL2xpYi9hYnN0cmFjdC1hcHBseS1jcmVhdGUtZmxhdm9yL2Fic3RyYWN0LWFwcGx5LWNyZWF0ZS1mbGF2b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFRM0QsTUFBTSxPQUFnQixrQ0FBa0M7SUFOeEQ7UUFPWSxTQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQXFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELFNBQUksR0FBRyxNQUFNLENBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0tBQ25COytHQU5xQixrQ0FBa0M7bUdBQWxDLGtDQUFrQywySEFGNUMsRUFBRSwyREFERixZQUFZOzs0RkFHRixrQ0FBa0M7a0JBTnZELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYmplY3RDcmVhdGVGbGF2b3IgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y092ZXJsYXlSZWYgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1hYnN0cmFjdC1hcHBseS1jcmVhdGUtZmxhdm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFwcGx5Q3JlYXRlRmxhdm9yQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIG9SZWYgPSBpbmplY3QoWXZjT3ZlcmxheVJlZik7XG4gIGNyZWF0ZWRPYmplY3RJRHMgPSBzaWduYWw8c3RyaW5nW10+KHRoaXMub1JlZi5kYXRhLmNyZWF0ZWRPYmplY3RJRHMpO1xuICBmbGF2b3IgPSBzaWduYWw8T2JqZWN0Q3JlYXRlRmxhdm9yPih0aGlzLm9SZWYuZGF0YS5mbGF2b3IpO1xuICBkYXRhID0gc2lnbmFsPGFueT4odGhpcy5vUmVmLmRhdGEuZGF0YSk7XG4gIGNhbmNlbCA9IG91dHB1dCgpO1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, inject, input } from '@angular/core';
2
+ import { YvcOverlayRef } from '@yuuvis/components/overlay';
3
+ import * as i0 from "@angular/core";
4
+ export class AbstractApplyObjectFlavorComponent {
5
+ constructor() {
6
+ this.oRef = inject(YvcOverlayRef);
7
+ // the dmsObject the flavor should be applied to
8
+ this.dmsObject = input(this.oRef.data.dmsObject);
9
+ // the flavor that should be applied
10
+ this.flavor = input(this.oRef.data.flavor);
11
+ // Optional data
12
+ this.data = input(this.oRef.data.data);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractApplyObjectFlavorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AbstractApplyObjectFlavorComponent, isStandalone: true, selector: "yuv-apply-object-flavor", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, flavor: { classPropertyName: "flavor", publicName: "flavor", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, styles: [""] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractApplyObjectFlavorComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'yuv-apply-object-flavor', standalone: true, imports: [], template: '' }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXBwbHktb2JqZWN0LWZsYXZvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3Ivc3JjL2xpYi9hYnN0cmFjdC1hcHBseS1vYmplY3QtZmxhdm9yL2Fic3RyYWN0LWFwcGx5LW9iamVjdC1mbGF2b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUzNELE1BQU0sT0FBZ0Isa0NBQWtDO0lBUHhEO1FBUVksU0FBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxnREFBZ0Q7UUFDaEQsY0FBUyxHQUFHLEtBQUssQ0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxvQ0FBb0M7UUFDcEMsV0FBTSxHQUFHLEtBQUssQ0FBZSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxpQkFBaUI7UUFDakIsU0FBSSxHQUFHLEtBQUssQ0FBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN4QzsrR0FScUIsa0NBQWtDO21HQUFsQyxrQ0FBa0MsbWRBSDVDLEVBQUU7OzRGQUdRLGtDQUFrQztrQkFQdkQsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLEVBQUUsWUFDRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEbXNPYmplY3QgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9iamVjdEZsYXZvciB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUnO1xuaW1wb3J0IHsgWXZjT3ZlcmxheVJlZiB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9vdmVybGF5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LWFwcGx5LW9iamVjdC1mbGF2b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZXM6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QXBwbHlPYmplY3RGbGF2b3JDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgb1JlZiA9IGluamVjdChZdmNPdmVybGF5UmVmKTtcbiAgLy8gdGhlIGRtc09iamVjdCB0aGUgZmxhdm9yIHNob3VsZCBiZSBhcHBsaWVkIHRvXG4gIGRtc09iamVjdCA9IGlucHV0PERtc09iamVjdD4odGhpcy5vUmVmLmRhdGEuZG1zT2JqZWN0KTtcbiAgLy8gdGhlIGZsYXZvciB0aGF0IHNob3VsZCBiZSBhcHBsaWVkXG4gIGZsYXZvciA9IGlucHV0PE9iamVjdEZsYXZvcj4odGhpcy5vUmVmLmRhdGEuZmxhdm9yKTtcbiAgLy8gT3B0aW9uYWwgZGF0YSBcbiAgZGF0YSA9IGlucHV0PGFueT4odGhpcy5vUmVmLmRhdGEuZGF0YSk7XG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, computed, inject, input, output } from '@angular/core';
3
+ import { TranslateModule, TranslateService } from '@yuuvis/client-core';
4
+ import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@yuuvis/components/icon";
7
+ export class FlavorChipComponent {
8
+ constructor() {
9
+ this.translate = inject(TranslateService);
10
+ this.flavor = input.required();
11
+ this.labels = computed(() => {
12
+ const flavor = this.flavor();
13
+ return {
14
+ name: this.translate.instant(flavor.id),
15
+ description: flavor.descriptionKey ? this.translate.instant(flavor.descriptionKey) : undefined
16
+ };
17
+ });
18
+ this.enableRemove = input();
19
+ this.enableDescription = input();
20
+ this.flavorRemove = output();
21
+ this.clearIcon = ICONS.clear;
22
+ }
23
+ remove(e) {
24
+ e.preventDefault();
25
+ e.stopPropagation();
26
+ this.flavorRemove.emit();
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FlavorChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FlavorChipComponent, isStandalone: true, selector: "yuv-flavor-chip", inputs: { flavor: { classPropertyName: "flavor", publicName: "flavor", isSignal: true, isRequired: true, transformFunction: null }, enableRemove: { classPropertyName: "enableRemove", publicName: "enableRemove", isSignal: true, isRequired: false, transformFunction: null }, enableDescription: { classPropertyName: "enableDescription", publicName: "enableDescription", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { flavorRemove: "flavorRemove" }, ngImport: i0, template: "@if (flavor().icon) {\n <yvc-icon [svg]=\"flavor().icon!\"></yvc-icon>\n}\n@let lb = labels();\n<div>\n {{ lb.name }}\n @if (enableDescription()) {\n <span class=\"description\">{{ lb.description }}</span>\n }\n</div>\n@if (enableRemove()) {\n <button class=\"icon\" (click)=\"remove($event)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n}\n", styles: [":host{--_flavor-chip-icon-size: var(--flavor-chip-icon-size, 18px);display:flex;gap:.25em;padding:.25em .5em;align-items:center}:host yvc-icon{--icon-size: var(--_flavor-chip-icon-size);flex:0 0 auto;color:var(--text-color-caption)}:host>div{line-height:1em;display:block;white-space:nowrap}:host>div .description{display:block;margin-block-start:.5em;font-size:var(--font-caption);color:var(--text-color-caption);white-space:normal;max-width:42ch;line-height:1.3em}:host button{padding:0}:host button yvc-icon{--icon-size: var(--font-body)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: TranslateModule }] }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FlavorChipComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'yuv-flavor-chip', standalone: true, imports: [CommonModule, YvcIconModule, TranslateModule], template: "@if (flavor().icon) {\n <yvc-icon [svg]=\"flavor().icon!\"></yvc-icon>\n}\n@let lb = labels();\n<div>\n {{ lb.name }}\n @if (enableDescription()) {\n <span class=\"description\">{{ lb.description }}</span>\n }\n</div>\n@if (enableRemove()) {\n <button class=\"icon\" (click)=\"remove($event)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n}\n", styles: [":host{--_flavor-chip-icon-size: var(--flavor-chip-icon-size, 18px);display:flex;gap:.25em;padding:.25em .5em;align-items:center}:host yvc-icon{--icon-size: var(--_flavor-chip-icon-size);flex:0 0 auto;color:var(--text-color-caption)}:host>div{line-height:1em;display:block;white-space:nowrap}:host>div .description{display:block;margin-block-start:.5em;font-size:var(--font-caption);color:var(--text-color-caption);white-space:normal;max-width:42ch;line-height:1.3em}:host button{padding:0}:host button yvc-icon{--icon-size: var(--font-body)}\n"] }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yL3NyYy9saWIvZmxhdm9yLWNoaXAvZmxhdm9yLWNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yL3NyYy9saWIvZmxhdm9yLWNoaXAvZmxhdm9yLWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTL0QsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVFVLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3QyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZ0IsQ0FBQztRQUN4QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUMvRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxpQkFBWSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ2hDLHNCQUFpQixHQUFHLEtBQUssRUFBVyxDQUFDO1FBRXJDLGlCQUFZLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFeEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7S0FPekI7SUFMQyxNQUFNLENBQUMsQ0FBNkI7UUFDbEMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBdEJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHFpQkNiaEMsaVhBZUEsd2xCRE5ZLFlBQVksOEJBQUUsYUFBYSw4SEFBRSxlQUFlOzs0RkFJM0MsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYmplY3RGbGF2b3IgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtZmxhdm9yLWNoaXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBZdmNJY29uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhdm9yLWNoaXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmxhdm9yLWNoaXAuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZsYXZvckNoaXBDb21wb25lbnQge1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBmbGF2b3IgPSBpbnB1dC5yZXF1aXJlZDxPYmplY3RGbGF2b3I+KCk7XG4gIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmbGF2b3IgPSB0aGlzLmZsYXZvcigpO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGZsYXZvci5pZCksXG4gICAgICBkZXNjcmlwdGlvbjogZmxhdm9yLmRlc2NyaXB0aW9uS2V5ID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChmbGF2b3IuZGVzY3JpcHRpb25LZXkpIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfSk7XG4gIGVuYWJsZVJlbW92ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGVuYWJsZURlc2NyaXB0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICBmbGF2b3JSZW1vdmUgPSBvdXRwdXQoKTtcblxuICBjbGVhckljb24gPSBJQ09OUy5jbGVhcjtcblxuICByZW1vdmUoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZsYXZvclJlbW92ZS5lbWl0KCk7XG4gIH1cbn1cbiIsIkBpZiAoZmxhdm9yKCkuaWNvbikge1xuICA8eXZjLWljb24gW3N2Z109XCJmbGF2b3IoKS5pY29uIVwiPjwveXZjLWljb24+XG59XG5AbGV0IGxiID0gbGFiZWxzKCk7XG48ZGl2PlxuICB7eyBsYi5uYW1lIH19XG4gIEBpZiAoZW5hYmxlRGVzY3JpcHRpb24oKSkge1xuICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyBsYi5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgfVxuPC9kaXY+XG5AaWYgKGVuYWJsZVJlbW92ZSgpKSB7XG4gIDxidXR0b24gY2xhc3M9XCJpY29uXCIgKGNsaWNrKT1cInJlbW92ZSgkZXZlbnQpXCI+XG4gICAgPHl2Yy1pY29uIFtzdmddPVwiY2xlYXJJY29uXCI+PC95dmMtaWNvbj5cbiAgPC9idXR0b24+XG59XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, effect, HostAttributeToken, inject, input, output, signal, untracked, viewChild } from '@angular/core';
3
+ import { TranslateModule } from '@yuuvis/client-core';
4
+ import { YUV_ICONS } from '@yuuvis/client-framework/icons';
5
+ import { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';
6
+ import { ShellService } from '@yuuvis/client-shell-core';
7
+ import { YvcDragScrollModule } from '@yuuvis/components/drag-scroll';
8
+ import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
9
+ import { YvcOverlayService } from '@yuuvis/components/overlay';
10
+ import { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';
11
+ import { ObjectFlavorPickerComponent } from '../object-flavor-picker/object-flavor-picker.component';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@yuuvis/components/drag-scroll";
14
+ import * as i2 from "@yuuvis/components/icon";
15
+ import * as i3 from "@yuuvis/client-core";
16
+ export class ObjectFlavorComponent {
17
+ constructor() {
18
+ this.#overlay = inject(YvcOverlayService);
19
+ this.#shell = inject(ShellService);
20
+ this.list = viewChild(ListComponent);
21
+ this.icons = {
22
+ add: YUV_ICONS.add,
23
+ clear: ICONS.clear
24
+ };
25
+ this.dmsObject = input.required();
26
+ this.#dmsObjectEffect = effect(() => {
27
+ const o = this.dmsObject();
28
+ if (o)
29
+ untracked(() => this.#getAppliedFlavors(o));
30
+ });
31
+ this.flavorClick = output();
32
+ this.appliedFlavors = [];
33
+ this.applicableFlavors = [];
34
+ this.hidden = signal(false);
35
+ this.busy = signal(false);
36
+ this.selectedIndex = signal(-1);
37
+ this.disableSelection = (inject(new HostAttributeToken('disableSelection'), { optional: true }) || 'false') === 'true';
38
+ }
39
+ #overlay;
40
+ #shell;
41
+ #dmsObjectEffect;
42
+ clearSelection() {
43
+ const listCmp = this.list();
44
+ if (listCmp)
45
+ listCmp.clear();
46
+ this.selectedIndex.set(-1);
47
+ }
48
+ onItemsSelect(idx) {
49
+ this.selectedIndex.set(idx[0]);
50
+ this.flavorClick.emit(this.appliedFlavors[idx[0]]);
51
+ }
52
+ startApplyFlavor() {
53
+ this.#overlay.open(ObjectFlavorPickerComponent, {
54
+ applicableFlavors: this.applicableFlavors,
55
+ dmsObject: structuredClone(this.dmsObject())
56
+ });
57
+ }
58
+ removeFlavor(flavor, index) {
59
+ const o = this.dmsObject();
60
+ if (o) {
61
+ this.busy.set(true);
62
+ this.#shell.removeObjectFlavor(o, flavor).subscribe({
63
+ next: () => {
64
+ if (index === this.selectedIndex() || !this.appliedFlavors.length)
65
+ this.clearSelection();
66
+ this.busy.set(false);
67
+ },
68
+ error: () => {
69
+ // TODO: error handling
70
+ this.busy.set(false);
71
+ }
72
+ });
73
+ }
74
+ }
75
+ #getAppliedFlavors(dmsObject) {
76
+ const res = this.#shell.getAppliedObjectFlavors(dmsObject);
77
+ this.appliedFlavors = res.applied;
78
+ this.applicableFlavors = res.applicable;
79
+ this.hidden.set(this.applicableFlavors.length === 0 && this.appliedFlavors.length === 0);
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorComponent, isStandalone: true, selector: "yuv-object-flavor", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { flavorClick: "flavorClick" }, host: { properties: { "attr.aria-hidden": "hidden()", "class.busy": "busy()", "class.selection": "selectedIndex() > -1", "class.selectionDisabled": "disableSelection" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ListComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: [":host{position:relative;display:flex;transition:opacity .1s ease-in-out}:host.selection yuv-list{border-inline-end:1px solid var(--panel-divider-color)}:host.selection button.clear{display:flex}:host .yuv-loader-linear{position:absolute;height:1px;inset-block-start:0}:host.busy{pointer-events:none;opacity:.5}:host[aria-hidden=true]{display:none}:host span.label{margin-inline:.5em;line-height:1em;color:var(--text-color-caption);align-self:center}:host button{flex:0 0 auto;padding:0 .15em;--icon-size: 18px}:host button.add{margin:2px}:host button.clear{--icon-size: var(--font-body);border-radius:0;color:var(--text-color-caption);padding-inline:.5em;display:none}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip{cursor:pointer}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host yuv-list{display:flex;flex:1;overflow-x:auto;--_list-item-border-color: transparent;--_list-item-selected-border-color: transparent;--scrollbar-outer-size: 0px;--scrollbar-inner-size: 0px;border-inline-start:1px solid var(--panel-divider-color)}:host yuv-list yuv-flavor-chip{cursor:default;border-inline-end:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: YvcDragScrollModule }, { kind: "directive", type: i1.DragScrollDirective, selector: "[yvcDragScroll]" }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'yuv-object-flavor', standalone: true, imports: [CommonModule, FlavorChipComponent, YvcDragScrollModule, YvcIconModule, ListItemDirective, ListComponent, TranslateModule], host: {
87
+ '[attr.aria-hidden]': 'hidden()',
88
+ '[class.busy]': 'busy()',
89
+ '[class.selection]': 'selectedIndex() > -1',
90
+ '[class.selectionDisabled]': 'disableSelection'
91
+ }, template: "<span class=\"label\">{{ 'yuv.object-flavor.label' | translate }}</span>\n\n@if (applicableFlavors.length) {\n <button class=\"add secondary\" title=\"{{ 'yuv.object-flavor.button.add' | translate }}\" (click)=\"startApplyFlavor()\">\n <yvc-icon [svg]=\"icons.add\"></yvc-icon>\n </button>\n}\n@if (appliedFlavors.length) {\n <yuv-list horizontal=\"true\" [disableSelection]=\"disableSelection\" (itemSelect)=\"onItemsSelect($event)\" yvcDragScroll>\n @for (f of appliedFlavors; track $index) {\n <yuv-flavor-chip yuvListItem [flavor]=\"f\" [enableRemove]=\"true\" (flavorRemove)=\"removeFlavor(f, $index)\"></yuv-flavor-chip>\n }\n </yuv-list>\n}\n<button class=\"clear\" title=\"{{ 'yuv.object-flavor.button.clear-selection' | translate }}\" (click)=\"clearSelection()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n</button>\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: [":host{position:relative;display:flex;transition:opacity .1s ease-in-out}:host.selection yuv-list{border-inline-end:1px solid var(--panel-divider-color)}:host.selection button.clear{display:flex}:host .yuv-loader-linear{position:absolute;height:1px;inset-block-start:0}:host.busy{pointer-events:none;opacity:.5}:host[aria-hidden=true]{display:none}:host span.label{margin-inline:.5em;line-height:1em;color:var(--text-color-caption);align-self:center}:host button{flex:0 0 auto;padding:0 .15em;--icon-size: 18px}:host button.add{margin:2px}:host button.clear{--icon-size: var(--font-body);border-radius:0;color:var(--text-color-caption);padding-inline:.5em;display:none}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip{cursor:pointer}:host:not(.selectionDisabled) yuv-list yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host yuv-list{display:flex;flex:1;overflow-x:auto;--_list-item-border-color: transparent;--_list-item-selected-border-color: transparent;--scrollbar-outer-size: 0px;--scrollbar-inner-size: 0px;border-inline-start:1px solid var(--panel-divider-color)}:host yuv-list yuv-flavor-chip{cursor:default;border-inline-end:1px solid var(--panel-divider-color)}\n"] }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZsYXZvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3Ivc3JjL2xpYi9vYmplY3QtZmxhdm9yL29iamVjdC1mbGF2b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yL3NyYy9saWIvb2JqZWN0LWZsYXZvci9vYmplY3QtZmxhdm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRixPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixF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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBIb3N0QXR0cmlidXRlVG9rZW4sIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG1zT2JqZWN0LCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9saXN0JztcbmltcG9ydCB7IE9iamVjdEZsYXZvciwgU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5pbXBvcnQgeyBZdmNEcmFnU2Nyb2xsTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2RyYWctc2Nyb2xsJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgWXZjT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBGbGF2b3JDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vZmxhdm9yLWNoaXAvZmxhdm9yLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IE9iamVjdEZsYXZvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL29iamVjdC1mbGF2b3ItcGlja2VyL29iamVjdC1mbGF2b3ItcGlja2VyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1vYmplY3QtZmxhdm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRmxhdm9yQ2hpcENvbXBvbmVudCwgWXZjRHJhZ1Njcm9sbE1vZHVsZSwgWXZjSWNvbk1vZHVsZSwgTGlzdEl0ZW1EaXJlY3RpdmUsIExpc3RDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZmxhdm9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1mbGF2b3IuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFyaWEtaGlkZGVuXSc6ICdoaWRkZW4oKScsXG4gICAgJ1tjbGFzcy5idXN5XSc6ICdidXN5KCknLFxuICAgICdbY2xhc3Muc2VsZWN0aW9uXSc6ICdzZWxlY3RlZEluZGV4KCkgPiAtMScsXG4gICAgJ1tjbGFzcy5zZWxlY3Rpb25EaXNhYmxlZF0nOiAnZGlzYWJsZVNlbGVjdGlvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGbGF2b3JDb21wb25lbnQge1xuICAjb3ZlcmxheSA9IGluamVjdChZdmNPdmVybGF5U2VydmljZSk7XG4gICNzaGVsbCA9IGluamVjdChTaGVsbFNlcnZpY2UpO1xuXG4gIGxpc3QgPSB2aWV3Q2hpbGQoTGlzdENvbXBvbmVudCk7XG5cbiAgaWNvbnMgPSB7XG4gICAgYWRkOiBZVVZfSUNPTlMuYWRkLFxuICAgIGNsZWFyOiBJQ09OUy5jbGVhclxuICB9O1xuXG4gIGRtc09iamVjdCA9IGlucHV0LnJlcXVpcmVkPERtc09iamVjdD4oKTtcbiAgI2Rtc09iamVjdEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbyA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKG8pIHVudHJhY2tlZCgoKSA9PiB0aGlzLiNnZXRBcHBsaWVkRmxhdm9ycyhvKSk7XG4gIH0pO1xuXG4gIGZsYXZvckNsaWNrID0gb3V0cHV0PE9iamVjdEZsYXZvcj4oKTtcblxuICBhcHBsaWVkRmxhdm9yczogT2JqZWN0Rmxhdm9yW10gPSBbXTtcbiAgYXBwbGljYWJsZUZsYXZvcnM6IE9iamVjdEZsYXZvcltdID0gW107XG5cbiAgaGlkZGVuID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgYnVzeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgc2VsZWN0ZWRJbmRleCA9IHNpZ25hbDxudW1iZXI+KC0xKTtcblxuICBkaXNhYmxlU2VsZWN0aW9uOiBib29sZWFuID0gKGluamVjdChuZXcgSG9zdEF0dHJpYnV0ZVRva2VuKCdkaXNhYmxlU2VsZWN0aW9uJyksIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgJ2ZhbHNlJykgPT09ICd0cnVlJztcblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBsaXN0Q21wID0gdGhpcy5saXN0KCk7XG4gICAgaWYgKGxpc3RDbXApIGxpc3RDbXAuY2xlYXIoKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KC0xKTtcbiAgfVxuXG4gIG9uSXRlbXNTZWxlY3QoaWR4OiBudW1iZXJbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoaWR4WzBdKTtcbiAgICB0aGlzLmZsYXZvckNsaWNrLmVtaXQodGhpcy5hcHBsaWVkRmxhdm9yc1tpZHhbMF1dKTtcbiAgfVxuXG4gIHN0YXJ0QXBwbHlGbGF2b3IoKSB7XG4gICAgdGhpcy4jb3ZlcmxheS5vcGVuKE9iamVjdEZsYXZvclBpY2tlckNvbXBvbmVudCwge1xuICAgICAgYXBwbGljYWJsZUZsYXZvcnM6IHRoaXMuYXBwbGljYWJsZUZsYXZvcnMsXG4gICAgICBkbXNPYmplY3Q6IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRtc09iamVjdCgpKVxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlRmxhdm9yKGZsYXZvcjogT2JqZWN0Rmxhdm9yLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgbyA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKG8pIHtcbiAgICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLiNzaGVsbC5yZW1vdmVPYmplY3RGbGF2b3IobywgZmxhdm9yKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXgoKSB8fCAhdGhpcy5hcHBsaWVkRmxhdm9ycy5sZW5ndGgpIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAvLyBUT0RPOiBlcnJvciBoYW5kbGluZ1xuICAgICAgICAgIHRoaXMuYnVzeS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjZ2V0QXBwbGllZEZsYXZvcnMoZG1zT2JqZWN0OiBEbXNPYmplY3QpIHtcbiAgICBjb25zdCByZXMgPSB0aGlzLiNzaGVsbC5nZXRBcHBsaWVkT2JqZWN0Rmxhdm9ycyhkbXNPYmplY3QpO1xuICAgIHRoaXMuYXBwbGllZEZsYXZvcnMgPSByZXMuYXBwbGllZDtcbiAgICB0aGlzLmFwcGxpY2FibGVGbGF2b3JzID0gcmVzLmFwcGxpY2FibGU7XG4gICAgdGhpcy5oaWRkZW4uc2V0KHRoaXMuYXBwbGljYWJsZUZsYXZvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuYXBwbGllZEZsYXZvcnMubGVuZ3RoID09PSAwKTtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7ICd5dXYub2JqZWN0LWZsYXZvci5sYWJlbCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG5cbkBpZiAoYXBwbGljYWJsZUZsYXZvcnMubGVuZ3RoKSB7XG4gIDxidXR0b24gY2xhc3M9XCJhZGQgc2Vjb25kYXJ5XCIgdGl0bGU9XCJ7eyAneXV2Lm9iamVjdC1mbGF2b3IuYnV0dG9uLmFkZCcgfCB0cmFuc2xhdGUgfX1cIiAoY2xpY2spPVwic3RhcnRBcHBseUZsYXZvcigpXCI+XG4gICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYWRkXCI+PC95dmMtaWNvbj5cbiAgPC9idXR0b24+XG59XG5AaWYgKGFwcGxpZWRGbGF2b3JzLmxlbmd0aCkge1xuICA8eXV2LWxpc3QgaG9yaXpvbnRhbD1cInRydWVcIiBbZGlzYWJsZVNlbGVjdGlvbl09XCJkaXNhYmxlU2VsZWN0aW9uXCIgKGl0ZW1TZWxlY3QpPVwib25JdGVtc1NlbGVjdCgkZXZlbnQpXCIgeXZjRHJhZ1Njcm9sbD5cbiAgICBAZm9yIChmIG9mIGFwcGxpZWRGbGF2b3JzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDx5dXYtZmxhdm9yLWNoaXAgeXV2TGlzdEl0ZW0gW2ZsYXZvcl09XCJmXCIgW2VuYWJsZVJlbW92ZV09XCJ0cnVlXCIgKGZsYXZvclJlbW92ZSk9XCJyZW1vdmVGbGF2b3IoZiwgJGluZGV4KVwiPjwveXV2LWZsYXZvci1jaGlwPlxuICAgIH1cbiAgPC95dXYtbGlzdD5cbn1cbjxidXR0b24gY2xhc3M9XCJjbGVhclwiIHRpdGxlPVwie3sgJ3l1di5vYmplY3QtZmxhdm9yLmJ1dHRvbi5jbGVhci1zZWxlY3Rpb24nIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj5cbiAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuY2xlYXJcIj48L3l2Yy1pY29uPlxuPC9idXR0b24+XG5cbkBpZiAoYnVzeSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJ5dXYtbG9hZGVyLWxpbmVhclwiPjwvZGl2PlxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, inject } from '@angular/core';
3
+ import { TranslateModule } from '@yuuvis/client-core';
4
+ import { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';
5
+ import { ShellService } from '@yuuvis/client-shell-core';
6
+ import { YvcOverlayRef } from '@yuuvis/components/overlay';
7
+ import { FlavorChipComponent } from '../flavor-chip/flavor-chip.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@yuuvis/client-core";
10
+ export class ObjectFlavorPickerComponent {
11
+ constructor() {
12
+ this.#oRef = inject(YvcOverlayRef);
13
+ this.#shell = inject(ShellService);
14
+ this.applicableFlavors = this.#oRef.data.applicableFlavors;
15
+ this.#dmsObject = this.#oRef.data.dmsObject;
16
+ }
17
+ #oRef;
18
+ #shell;
19
+ #dmsObject;
20
+ itemSelected(idx) {
21
+ const flavor = this.applicableFlavors[idx[0]];
22
+ if (this.#dmsObject && flavor)
23
+ this.#shell.triggerApplyObjectFlavor(this.#dmsObject, flavor).subscribe({
24
+ next: () => {
25
+ if (this.#oRef)
26
+ this.#oRef.close();
27
+ }
28
+ });
29
+ }
30
+ cancel() {
31
+ if (this.#oRef)
32
+ this.#oRef.close();
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFlavorPickerComponent, isStandalone: true, selector: "yuv-object-flavor-picker", host: { properties: { "class.cmp": "!!applyComponent" } }, ngImport: i0, template: "\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n", styles: [":host{display:block;height:100%;box-sizing:border-box}:host:not(.cmp){padding:var(--app-pane-padding)}:host:not(.cmp) header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host:not(.cmp) header p{max-width:42ch;line-height:1.3em}:host:not(.cmp) main{overflow-y:auto}:host:not(.cmp) main yuv-flavor-chip{--_flavor-chip-icon-size: 24px;margin-block-end:2px;gap:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host:not(.cmp) main yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host:not(.cmp) footer{display:flex;justify-content:start;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "component", type: FlavorChipComponent, selector: "yuv-flavor-chip", inputs: ["flavor", "enableRemove", "enableDescription"], outputs: ["flavorRemove"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFlavorPickerComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'yuv-object-flavor-picker', standalone: true, imports: [CommonModule, ListComponent, FlavorChipComponent, TranslateModule, ListItemDirective], host: {
40
+ '[class.cmp]': '!!applyComponent'
41
+ }, template: "\n <header>\n <h2>{{ 'yuv.object-flavor.picker.title' | translate }}</h2>\n <p>{{ 'yuv.object-flavor.picker.text' | translate }}</p>\n </header>\n <main>\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (f of applicableFlavors; track $index) {\n <yuv-flavor-chip [flavor]=\"f\" [enableDescription]=\"true\" yuvListItem></yuv-flavor-chip>\n }\n </yuv-list>\n </main>\n <footer>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.object-flavor.picker.button.cancel' | translate }}</button>\n </footer>\n", styles: [":host{display:block;height:100%;box-sizing:border-box}:host:not(.cmp){padding:var(--app-pane-padding)}:host:not(.cmp) header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host:not(.cmp) header p{max-width:42ch;line-height:1.3em}:host:not(.cmp) main{overflow-y:auto}:host:not(.cmp) main yuv-flavor-chip{--_flavor-chip-icon-size: 24px;margin-block-end:2px;gap:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host:not(.cmp) main yuv-flavor-chip:hover{background-color:var(--item-focus-background-color)}:host:not(.cmp) footer{display:flex;justify-content:start;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"] }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZsYXZvci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yL3NyYy9saWIvb2JqZWN0LWZsYXZvci1waWNrZXIvb2JqZWN0LWZsYXZvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZmxhdm9yL3NyYy9saWIvb2JqZWN0LWZsYXZvci1waWNrZXIvb2JqZWN0LWZsYXZvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQVkzRSxNQUFNLE9BQU8sMkJBQTJCO0lBVnhDO1FBV0UsVUFBSyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QixXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTlCLHNCQUFpQixHQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN0RSxlQUFVLEdBQWMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0tBY25EO0lBbEJDLEtBQUssQ0FBeUI7SUFDOUIsTUFBTSxDQUF3QjtJQUc5QixVQUFVLENBQXdDO0lBRWxELFlBQVksQ0FBQyxHQUFhO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JHLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSzt3QkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDOytHQWxCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwrSUNsQnhDLDhpQkFlQSw4eEJESlksWUFBWSwrQkFBRSxhQUFhLHdJQUFFLG1CQUFtQiwrSUFBRSxlQUFlLDRGQUFFLGlCQUFpQjs7NEZBT25GLDJCQUEyQjtrQkFWdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUMsUUFHekY7d0JBQ0osYUFBYSxFQUFFLGtCQUFrQjtxQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERtc09iamVjdCwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9saXN0JztcbmltcG9ydCB7IE9iamVjdEZsYXZvciwgU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5pbXBvcnQgeyBZdmNPdmVybGF5UmVmIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL292ZXJsYXknO1xuaW1wb3J0IHsgRmxhdm9yQ2hpcENvbXBvbmVudCB9IGZyb20gJy4uL2ZsYXZvci1jaGlwL2ZsYXZvci1jaGlwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1vYmplY3QtZmxhdm9yLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExpc3RDb21wb25lbnQsIEZsYXZvckNoaXBDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgTGlzdEl0ZW1EaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZsYXZvci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2JqZWN0LWZsYXZvci1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbXBdJzogJyEhYXBwbHlDb21wb25lbnQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Rmxhdm9yUGlja2VyQ29tcG9uZW50IHtcbiAgI29SZWYgPSBpbmplY3QoWXZjT3ZlcmxheVJlZik7XG4gICNzaGVsbCA9IGluamVjdChTaGVsbFNlcnZpY2UpO1xuXG4gIGFwcGxpY2FibGVGbGF2b3JzOiBPYmplY3RGbGF2b3JbXSA9IHRoaXMuI29SZWYuZGF0YS5hcHBsaWNhYmxlRmxhdm9ycztcbiAgI2Rtc09iamVjdDogRG1zT2JqZWN0ID0gdGhpcy4jb1JlZi5kYXRhLmRtc09iamVjdDtcblxuICBpdGVtU2VsZWN0ZWQoaWR4OiBudW1iZXJbXSkge1xuICAgIGNvbnN0IGZsYXZvciA9IHRoaXMuYXBwbGljYWJsZUZsYXZvcnNbaWR4WzBdXTtcbiAgICBpZiAodGhpcy4jZG1zT2JqZWN0ICYmIGZsYXZvcikgdGhpcy4jc2hlbGwudHJpZ2dlckFwcGx5T2JqZWN0Rmxhdm9yKHRoaXMuI2Rtc09iamVjdCwgZmxhdm9yKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4jb1JlZikgdGhpcy4jb1JlZi5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGlmICh0aGlzLiNvUmVmKSB0aGlzLiNvUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiIsIlxuICA8aGVhZGVyPlxuICAgIDxoMj57eyAneXV2Lm9iamVjdC1mbGF2b3IucGlja2VyLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgPHA+e3sgJ3l1di5vYmplY3QtZmxhdm9yLnBpY2tlci50ZXh0JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgPC9oZWFkZXI+XG4gIDxtYWluPlxuICAgIDx5dXYtbGlzdCAoaXRlbVNlbGVjdCk9XCJpdGVtU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAoZiBvZiBhcHBsaWNhYmxlRmxhdm9yczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDx5dXYtZmxhdm9yLWNoaXAgW2ZsYXZvcl09XCJmXCIgW2VuYWJsZURlc2NyaXB0aW9uXT1cInRydWVcIiB5dXZMaXN0SXRlbT48L3l1di1mbGF2b3ItY2hpcD5cbiAgICAgIH1cbiAgICA8L3l1di1saXN0PlxuICA8L21haW4+XG4gIDxmb290ZXI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICd5dXYub2JqZWN0LWZsYXZvci5waWNrZXIuYnV0dG9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPC9mb290ZXI+XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstb2JqZWN0LWZsYXZvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZsYXZvci9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstb2JqZWN0LWZsYXZvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './lib/object-form.component';
2
+ export * from './lib/object-form-extension.interface';
3
+ export * from './lib/object-form.interface';
4
+ export * from './lib/object-form-translate.service';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWZvcm0tZXh0ZW5zaW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtZm9ybS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWZvcm0tdHJhbnNsYXRlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY3JpcHRpbmcuYXBpLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vc3JjL2xpYi9mb3JtLXNjcmlwdGluZy5hcGkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwT3B0aW9ucywgWXV2RXZlbnQsIFl1dlVzZXIgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9iamVjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYmplY3RGb3JtTW9kZWxDaGFuZ2UgfSBmcm9tICcuL29iamVjdC1mb3JtLmludGVyZmFjZSc7XG5cbi8qKlxuICogUHJvdmlkaW5nIGEgcGx1Z2luIHNlcnZpY2UgYW5kIGluamVjdGVkIGludG8gZm9ybSBzY3JpcHRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVNjcmlwdGluZ0FQSSB7XG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIG5ldyBmb3JtIHNjcmlwdGluZyBlbGVtZW50IGV4dGVuc2lvblxuICAgKi9cbiAgZWxlbWVudEV4dGVuc2lvbnM6IHtcbiAgICByZWdpc3RlcihleHRlbnNpb25zOiBGb3JtU2NyaXB0aW5nRWxlbWVudEV4dGVuc2lvbltdKTogdm9pZDtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3RlbiB0byBhIGNlcnRhaW4gdHlwZSBvZiB5dXV2aXMgZXZlbnQgKHtAbGluayBZdXZFdmVudFR5cGV9KVxuICAgKlxuICAgKi9cbiAgZXZlbnRzOiB7XG4gICAgeXV1dmlzRXZlbnRUeXBlOiBhbnk7XG4gICAgb24odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxZdXZFdmVudD47XG4gICAgLyoqXG4gICAgICogVHJpZ2dlciBhIGNlcnRhaW4gdHlwZSBvZiB5dXV2aXMgZXZlbnQgKHtAbGluayBZdXZFdmVudFR5cGV9KVxuICAgICAqIEBwYXJhbSB0eXBlIEtleSBvZiB0aGUgZXZlbnQgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICogQHBhcmFtIGRhdGEgU29tZSBkYXRhIHRvIGF0dGFjaCB0byB0aGUgZXZlbnRcbiAgICAgKi9cbiAgICB0cmlnZ2VyKHR5cGU6IHN0cmluZywgZGF0YT86IGFueSk6IHZvaWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlciB0aGF0IGlzIGN1cnJlbnRseSBsb2dnZWQgaW5cbiAgICovXG4gIHNlc3Npb246IHtcbiAgICBnZXRVc2VyKCk6IFl1dlVzZXI7XG4gICAgdXNlcjoge1xuICAgICAgZ2V0OiAoKSA9PiBZdXZVc2VyO1xuICAgICAgaGFzUm9sZTogKHJvbGU6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRXhlY3V0ZSBhIHJlcXVlc3RzIGFnYWluc3QgeXV1dmlzIGJhY2tlbmRcbiAgICovXG4gIGh0dHA6IHtcbiAgICAvKipcbiAgICAgKiBFeGVjdXRlIGEgR0VUIHJlcXVlc3QgYWdhaW5zdCB5dXV2aXMgYmFja2VuZFxuICAgICAqIEBwYXJhbSB1cmkgVVJJIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzZW50IHRvXG4gICAgICogQHBhcmFtIGJhc2UgVVJJIHBhcnQgb2YgdGhlIHNlcnZpY2UgdGhpcyByZXF1ZXN0IGJlbG9uZ3MgdG9cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIEh0dHBPcHRpb25zXG4gICAgICovXG4gICAgZ2V0KHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBhbnk7XG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBhIFBPU1QgcmVxdWVzdCBhZ2FpbnN0IHl1dXZpcyBiYWNrZW5kXG4gICAgICogQHBhcmFtIHVyaSBVUkkgdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIHNlbnQgdG9cbiAgICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlIHNlbmQgYWxvbmcgd2l0aCB0aGUgcmVxdWVzdFxuICAgICAqIEBwYXJhbSBiYXNlIFVSSSBwYXJ0IG9mIHRoZSBzZXJ2aWNlIHRoaXMgcmVxdWVzdCBiZWxvbmdzIHRvXG4gICAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBIdHRwT3B0aW9uc1xuICAgICAqL1xuICAgIHBvc3QodXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgYmFzZT86IHN0cmluZywgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogYW55O1xuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgYSBERUxFVEUgcmVxdWVzdCBhZ2FpbnN0IHl1dXZpcyBiYWNrZW5kXG4gICAgICogQHBhcmFtIHVyaSBVUkkgdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIHNlbnQgdG9cbiAgICAgKiBAcGFyYW0gYmFzZSBVUkkgcGFydCBvZiB0aGUgc2VydmljZSB0aGlzIHJlcXVlc3QgYmVsb25ncyB0b1xuICAgICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgSHR0cE9wdGlvbnNcbiAgICAgKi9cbiAgICBkZWwodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIG9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IGFueTtcbiAgICAvKipcbiAgICAgKiBFeGVjdXRlIGEgUFVUIHJlcXVlc3QgYWdhaW5zdCB5dXV2aXMgYmFja2VuZFxuICAgICAqIEBwYXJhbSB1cmkgVVJJIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzZW50IHRvXG4gICAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSBzZW5kIGFsb25nIHdpdGggdGhlIHJlcXVlc3RcbiAgICAgKiBAcGFyYW0gYmFzZSBVUkkgcGFydCBvZiB0aGUgc2VydmljZSB0aGlzIHJlcXVlc3QgYmVsb25ncyB0b1xuICAgICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgSHR0cE9wdGlvbnNcbiAgICAgKi9cbiAgICBwdXQodXJpOiBzdHJpbmcsIGRhdGE6IGFueSwgYmFzZT86IHN0cmluZywgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogYW55O1xuICB9O1xuICAvKipcbiAgICogVXRpbGl0aWVzXG4gICAqL1xuICBmb3JtOiB7XG4gICAgYWN0aXZlRm9ybXM6IE1hcDxzdHJpbmcsIE9iamVjdEZvcm1Db21wb25lbnQ+O1xuICAgIGdldFZhbHVlKGZvcm1Db250cm9sTmFtZTogc3RyaW5nKTogYW55O1xuICAgIHNldFZhbHVlKGZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBuZXdWYWx1ZTogYW55KTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBFeGVjdXRlIGEgY2hhbmdlIG9mIGZvcm0gbW9kZWxcbiAgICAgKiBAcGFyYW0gZm9ybUNvbnRyb2xOYW1lIGZvcm0gY29udHJvbCB1bmlxdWUgbmFtZSB8IGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0gY2hhbmdlIG9iamVjdCB0aGF0IGNvbnRhaW5zIG5hbWUgb2YgcGFyYW1ldGVyIHRoYXQgc2hvdWxkIGJlIGNoYW5nZWQgKCd2YWx1ZScsICdyZXF1aXJlZCcsIC4uLikgYW5kIG5ld1ZhbHVlXG4gICAgICovXG4gICAgbW9kZWxDaGFuZ2UoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGNoYW5nZTogT2JqZWN0Rm9ybU1vZGVsQ2hhbmdlKTogdm9pZDtcbiAgfTtcbiAgc3RvcmFnZToge1xuICAgIGdldEl0ZW06IChrZXk6IHN0cmluZykgPT4gYW55O1xuICAgIHNldEl0ZW06IChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IGFueTtcbiAgfTtcbiAgbm90aWZpZXI6IHtcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyIGEgU1VDQ0VTUyBub3RpZmljYXRpb25cbiAgICAgKiBAcGFyYW0gdGV4dCBNZXNzYWdlIHRvIGJlICd0b2FzdGVkJ1xuICAgICAqIEBwYXJhbSB0aXRsZSBUaXRsZVxuICAgICAqL1xuICAgIHN1Y2Nlc3ModGV4dDogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyIGEgRVJST1Igbm90aWZpY2F0aW9uXG4gICAgICogQHBhcmFtIHRleHQgTWVzc2FnZSB0byBiZSAndG9hc3RlZCdcbiAgICAgKiBAcGFyYW0gdGl0bGUgVGl0bGVcbiAgICAgKi9cbiAgICBlcnJvcih0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFRyaWdnZXIgYSBJTkZPIG5vdGlmaWNhdGlvblxuICAgICAqIEBwYXJhbSB0ZXh0IE1lc3NhZ2UgdG8gYmUgJ3RvYXN0ZWQnXG4gICAgICogQHBhcmFtIHRpdGxlIFRpdGxlXG4gICAgICovXG4gICAgaW5mbyh0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFRyaWdnZXIgYSBXQVJOSU5HIG5vdGlmaWNhdGlvblxuICAgICAqIEBwYXJhbSB0ZXh0IE1lc3NhZ2UgdG8gYmUgJ3RvYXN0ZWQnXG4gICAgICogQHBhcmFtIHRpdGxlIFRpdGxlXG4gICAgICovXG4gICAgd2FybmluZyh0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiB2b2lkO1xuICB9O1xuICAvKipcbiAgICogVXRpbGl0aWVzXG4gICAqL1xuICB1dGlsOiB7XG4gICAgdHJhbnNsYXRlOiAoa2V5OiBzdHJpbmcsIGRhdGE/OiBhbnkpID0+IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2NyaXB0aW5nRWxlbWVudEV4dGVuc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgY2FsbGJhY2s6ICgpID0+IHZvaWQ7XG59XG4iXX0=