@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,183 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, inject, input, output } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
5
+ import { BackendService, PendingChangesService, Sort, TranslateModule, TranslateService, Utils } from '@yuuvis/client-core';
6
+ import { FormInputComponent, StringComponent, YuvFormsModule } from '@yuuvis/client-framework/forms';
7
+ import { YvcCommonModule } from '@yuuvis/components/common';
8
+ import { YvcOverlayModule, YvcOverlayService } from '@yuuvis/components/overlay';
9
+ import { SequenceListComponent } from '../sequence-list.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@yuuvis/client-core";
13
+ import * as i3 from "@angular/forms";
14
+ import * as i4 from "@yuuvis/components/common";
15
+ export class SequenceListTemplateManageComponent {
16
+ set selectedTemplate(s) {
17
+ if (!this.pendingChanges.check()) {
18
+ this.pendingTaskId = undefined;
19
+ this._selectedTemplate = s ? { ...s } : undefined;
20
+ if (this._selectedTemplate)
21
+ this.form.patchValue({
22
+ templateName: this._selectedTemplate.id === this.CURRENT_ENTRIES_ID ? '' : this._selectedTemplate.name,
23
+ sequence: [...this._selectedTemplate.sequence]
24
+ }, { emitEvent: false });
25
+ this.form.markAsPristine();
26
+ }
27
+ }
28
+ get selectedTemplate() {
29
+ return this._selectedTemplate;
30
+ }
31
+ get formErrors() {
32
+ const errors = this.form.get('templateName')?.errors;
33
+ return errors ? Object.keys(errors).map((k) => this.labels.errors[k]) : [];
34
+ }
35
+ constructor() {
36
+ this.backend = inject(BackendService);
37
+ this.overlay = inject(YvcOverlayService);
38
+ this.pendingChanges = inject(PendingChangesService);
39
+ this.fb = inject(FormBuilder);
40
+ this.translate = inject(TranslateService);
41
+ this.DEFAULT_TEMPLATE_STORAGE_SECTION = 'sequencelist';
42
+ this.CURRENT_ENTRIES_ID = 'current';
43
+ this.TEMPLATE_NAME_MAX_LENGTH = 128;
44
+ this.disableSubmit = false;
45
+ this.templates = [];
46
+ this.filterTerm = null;
47
+ this.busy = false;
48
+ this.form = this.fb.group({
49
+ templateName: ['', [Validators.required, Validators.maxLength(this.TEMPLATE_NAME_MAX_LENGTH), this.forbiddenNameValidator()]],
50
+ sequence: [[], Validators.required]
51
+ });
52
+ /**
53
+ * Name of the section to store templates in user service (usersettings)
54
+ */
55
+ this.storageSection = input(this.DEFAULT_TEMPLATE_STORAGE_SECTION);
56
+ this.currentEntries = input([]);
57
+ // emitted once a template has been selected
58
+ this.templateSelect = output();
59
+ this.cancel = output();
60
+ this.labels = {
61
+ save: this.translate.instant('yuv.sequence-list.template.button.save'),
62
+ saveNew: this.translate.instant('yuv.sequence-list.template.button.saveNew'),
63
+ headline: this.translate.instant('yuv.sequence-list.template.headline'),
64
+ headlineNew: this.translate.instant('yuv.sequence-list.template.headlineNew'),
65
+ errors: {
66
+ maxlength: this.translate.instant('yuv.object-form-element.error.maxlength', { maxLength: this.TEMPLATE_NAME_MAX_LENGTH }),
67
+ forbiddenName: this.translate.instant('yuv.sequence-list.template.errors.forbiddenName')
68
+ }
69
+ };
70
+ this.form.statusChanges.pipe(takeUntilDestroyed()).subscribe((res) => {
71
+ if (this.form.dirty && !this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {
72
+ this.pendingTaskId = this.pendingChanges.startTask(this.translate.instant('yuv.sequence-list.template.pending-changes.alert'));
73
+ }
74
+ });
75
+ }
76
+ forbiddenNameValidator() {
77
+ return (control) => {
78
+ const forbidden = this.templates
79
+ .filter((t) => t.id !== this.selectedTemplate.id)
80
+ .map((t) => t.name)
81
+ .includes(control.value);
82
+ return forbidden ? { forbiddenName: { value: control.value } } : null;
83
+ };
84
+ }
85
+ selectCurrentEntries() {
86
+ this.selectedTemplate = {
87
+ id: this.CURRENT_ENTRIES_ID,
88
+ name: this.translate.instant('yuv.sequence-list.template.headlineNew'),
89
+ sequence: this.currentEntries() || []
90
+ };
91
+ }
92
+ applyTemplate() {
93
+ if (this.selectedTemplate)
94
+ this.templateSelect.emit(this.selectedTemplate.sequence);
95
+ }
96
+ deleteTemplate() {
97
+ this.overlay
98
+ .confirm({
99
+ message: this.translate.instant('yuv.sequence-list.template.remove.confirm.message', {
100
+ template: this.selectedTemplate.name
101
+ })
102
+ })
103
+ .subscribe((confirmed) => {
104
+ if (confirmed) {
105
+ this.templates = this.templates.filter((t) => t.id !== this.selectedTemplate.id);
106
+ this.saveTemplates();
107
+ }
108
+ });
109
+ }
110
+ submit() {
111
+ if (this.selectedTemplate) {
112
+ let selectAfterSave;
113
+ if (this.selectedTemplate.id === this.CURRENT_ENTRIES_ID) {
114
+ // save current list as new template
115
+ const id = Utils.uuid();
116
+ this.templates.push({
117
+ id,
118
+ name: this.form.value.templateName,
119
+ sequence: this.form.value.sequence
120
+ });
121
+ selectAfterSave = id;
122
+ }
123
+ else {
124
+ // update existing template
125
+ const i = this.templates.findIndex((e) => e.id === this.selectedTemplate.id);
126
+ if (i !== -1) {
127
+ this.templates[i] = {
128
+ id: this.selectedTemplate.id,
129
+ name: this.form.value.templateName,
130
+ sequence: this.form.value.sequence
131
+ };
132
+ selectAfterSave = this.selectedTemplate.id;
133
+ }
134
+ }
135
+ this.saveTemplates(selectAfterSave);
136
+ }
137
+ }
138
+ saveTemplates(templateToBeSelectedAfterSave) {
139
+ this.busy = true;
140
+ this.templates.sort(Utils.sortValues('name', Sort.ASC));
141
+ return this.backend.post(`/users/settings/${this.storageSection}`, { templates: this.templates }).subscribe((res) => {
142
+ this.busy = false;
143
+ this.form.markAsPristine();
144
+ if (this.pendingTaskId)
145
+ this.pendingChanges.finishTask(this.pendingTaskId);
146
+ if (!templateToBeSelectedAfterSave) {
147
+ this.selectedTemplate = undefined;
148
+ }
149
+ else if (templateToBeSelectedAfterSave !== this.selectedTemplate.id) {
150
+ this.selectedTemplate = this.templates.find((t) => templateToBeSelectedAfterSave === t.id);
151
+ }
152
+ }, (err) => (this.busy = false));
153
+ }
154
+ loadTemplates() {
155
+ this.backend.get(`/users/settings/${this.storageSection()}`).subscribe((res) => {
156
+ this.templates = res ? res.templates || [] : [];
157
+ this.templates.sort(Utils.sortValues('name', Sort.ASC));
158
+ this.selectCurrentEntries();
159
+ });
160
+ }
161
+ ngOnInit() {
162
+ this.loadTemplates();
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListTemplateManageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SequenceListTemplateManageComponent, isStandalone: true, selector: "yuv-sequence-list-template-manage", inputs: { storageSection: { classPropertyName: "storageSection", publicName: "storageSection", isSignal: true, isRequired: false, transformFunction: null }, currentEntries: { classPropertyName: "currentEntries", publicName: "currentEntries", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { templateSelect: "templateSelect", cancel: "cancel" }, ngImport: i0, template: "<div class=\"template-list\">\n <header>{{ 'yuv.sequence-list.template-list.headline' | translate }}</header>\n\n <!-- current entries -->\n <div class=\"currententries item\" (click)=\"selectCurrentEntries()\" [ngClass]=\"{ current: selectedTemplate?.id === CURRENT_ENTRIES_ID }\">\n {{ 'yuv.sequence-list.template.headlineNew' | translate }}\n </div>\n\n <div class=\"filter\">\n <yuv-form-input [label]=\"'yuv.sequence-list.form.filter' | translate\">\n <yuv-string [(ngModel)]=\"filterTerm\"> </yuv-string>\n </yuv-form-input>\n </div>\n\n <div class=\"templates\">\n @for (tpl of templates | filter: filterTerm : 'name'; track $index) {\n <div class=\"item\" (click)=\"selectedTemplate = tpl\" [ngClass]=\"{ current: selectedTemplate?.id === tpl.id }\">\n {{ tpl.name }}\n </div>\n }\n </div>\n</div>\n\n@if (selectedTemplate) {\n <form class=\"template\" [formGroup]=\"form\">\n <header>{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.headline : labels.headlineNew }}</header>\n\n <yuv-form-input [label]=\"'yuv.sequence-list.form.templateName' | translate\" [required]=\"true\" [invalid]=\"!!formErrors.length\">\n <yuv-string [autofocus]=\"true\" [required]=\"true\" formControlName=\"templateName\"> </yuv-string>\n </yuv-form-input>\n @for (e of formErrors; track $index) {\n <div class=\"errors\">{{ e }}</div>\n }\n <yuv-sequence-list disable-duedate=\"true\" formControlName=\"sequence\"> </yuv-sequence-list>\n </form>\n}\n\n<div class=\"buttons\">\n <div class=\"left\">\n <button type=\"button\" class=\"secondary\" (click)=\"cancel.emit()\">{{ 'yuv.sequence-list.template.cancel' | translate }}</button>\n </div>\n\n @if (selectedTemplate) {\n <div class=\"right\">\n @if (selectedTemplate.id !== CURRENT_ENTRIES_ID) {\n <button class=\"secondary delete\" type=\"button\" (click)=\"deleteTemplate()\">\n {{ 'yuv.sequence-list.template.button.delete' | translate }}\n </button>\n\n <button class=\"primary apply\" type=\"button\" [disabled]=\"disableSubmit || form.invalid || form.dirty\" (click)=\"applyTemplate()\">\n {{ 'yuv.sequence-list.template.button.apply' | translate }}\n </button>\n }\n\n <!-- save -->\n <button\n class=\"{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? 'primary' : 'primary' }} save\"\n (click)=\"submit()\"\n type=\"button\"\n [disabled]=\"disableSubmit || form.invalid || form.pristine\"\n >\n {{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.save : labels.saveNew }}\n </button>\n </div>\n }\n</div>\n", styles: [":host{display:grid;height:100%;grid-template-rows:1fr auto;grid-template-columns:200px 1fr;grid-template-areas:\"list template\" \"buttons buttons\"}:host header{font-weight:700;padding:var(--app-pane-padding);border-bottom:1px solid var(--panel-divider-color)}:host .template-list{grid-area:list;display:grid;height:100%;grid-template-rows:auto auto auto 1fr;grid-template-columns:1fr;grid-template-areas:\"header\" \"current\" \"filter\" \"templates\";border-right:1px solid var(--panel-divider-color);overflow:hidden}:host .template-list header{grid-area:header}:host .template-list .filter{grid-area:filter;padding:var(--app-pane-padding);border:1px solid var(--panel-divider-color);border-width:1px 0;background-color:var(--panel-background-lightgrey)}:host .template-list .currententries{grid-area:current}:host .template-list .templates{grid-area:templates;overflow-y:auto}:host .template-list .item{padding:var(--app-pane-padding);cursor:pointer}:host .template-list .item:not(.currententries){border-bottom:1px solid var(--panel-divider-color)}:host .template-list .item:not(.current):hover{background-color:var(--item-focus-background-color)}:host .template-list .item.current{background-color:var(--item-selected-background-color)}:host .template{grid-area:template;display:grid;height:100%;overflow-y:auto;grid-template-rows:auto auto auto 1fr;grid-template-columns:1fr;grid-template-areas:\"headline\" \"name\" \"errors\" \"sequence\"}:host .template h2{grid-area:headline}:host .template yuv-form-input{grid-area:name;margin:var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) / 2)}:host .template .errors{grid-area:errors;margin:0 var(--app-pane-padding);color:var(--color-error)}:host .template yuv-sequence-list{grid-area:sequence;margin:var(--app-pane-padding);box-shadow:0 0 1.2em #0000001a}:host .buttons{grid-area:buttons;overflow-x:auto;display:flex;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2 - 2px);border-top:1px solid var(--panel-divider-color)}:host .buttons .left{display:flex}:host .buttons .right{flex:1;display:flex;justify-content:flex-end}:host .buttons .right .save{order:2}:host .buttons .right .delete{order:1}:host .buttons .right .apply{order:3}:host .buttons button{margin:0 2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: YvcOverlayModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SequenceListComponent, selector: "yuv-sequence-list", inputs: ["maxLength"] }, { kind: "ngmodule", type: YuvFormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: YvcCommonModule }, { kind: "pipe", type: i4.FilterPipe, name: "filter" }] }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListTemplateManageComponent, decorators: [{
168
+ type: Component,
169
+ args: [{ selector: 'yuv-sequence-list-template-manage', standalone: true, imports: [
170
+ CommonModule,
171
+ YvcOverlayModule,
172
+ TranslateModule,
173
+ FormInputComponent,
174
+ StringComponent,
175
+ FormsModule,
176
+ CommonModule,
177
+ SequenceListComponent,
178
+ YuvFormsModule,
179
+ ReactiveFormsModule,
180
+ YvcCommonModule
181
+ ], template: "<div class=\"template-list\">\n <header>{{ 'yuv.sequence-list.template-list.headline' | translate }}</header>\n\n <!-- current entries -->\n <div class=\"currententries item\" (click)=\"selectCurrentEntries()\" [ngClass]=\"{ current: selectedTemplate?.id === CURRENT_ENTRIES_ID }\">\n {{ 'yuv.sequence-list.template.headlineNew' | translate }}\n </div>\n\n <div class=\"filter\">\n <yuv-form-input [label]=\"'yuv.sequence-list.form.filter' | translate\">\n <yuv-string [(ngModel)]=\"filterTerm\"> </yuv-string>\n </yuv-form-input>\n </div>\n\n <div class=\"templates\">\n @for (tpl of templates | filter: filterTerm : 'name'; track $index) {\n <div class=\"item\" (click)=\"selectedTemplate = tpl\" [ngClass]=\"{ current: selectedTemplate?.id === tpl.id }\">\n {{ tpl.name }}\n </div>\n }\n </div>\n</div>\n\n@if (selectedTemplate) {\n <form class=\"template\" [formGroup]=\"form\">\n <header>{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.headline : labels.headlineNew }}</header>\n\n <yuv-form-input [label]=\"'yuv.sequence-list.form.templateName' | translate\" [required]=\"true\" [invalid]=\"!!formErrors.length\">\n <yuv-string [autofocus]=\"true\" [required]=\"true\" formControlName=\"templateName\"> </yuv-string>\n </yuv-form-input>\n @for (e of formErrors; track $index) {\n <div class=\"errors\">{{ e }}</div>\n }\n <yuv-sequence-list disable-duedate=\"true\" formControlName=\"sequence\"> </yuv-sequence-list>\n </form>\n}\n\n<div class=\"buttons\">\n <div class=\"left\">\n <button type=\"button\" class=\"secondary\" (click)=\"cancel.emit()\">{{ 'yuv.sequence-list.template.cancel' | translate }}</button>\n </div>\n\n @if (selectedTemplate) {\n <div class=\"right\">\n @if (selectedTemplate.id !== CURRENT_ENTRIES_ID) {\n <button class=\"secondary delete\" type=\"button\" (click)=\"deleteTemplate()\">\n {{ 'yuv.sequence-list.template.button.delete' | translate }}\n </button>\n\n <button class=\"primary apply\" type=\"button\" [disabled]=\"disableSubmit || form.invalid || form.dirty\" (click)=\"applyTemplate()\">\n {{ 'yuv.sequence-list.template.button.apply' | translate }}\n </button>\n }\n\n <!-- save -->\n <button\n class=\"{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? 'primary' : 'primary' }} save\"\n (click)=\"submit()\"\n type=\"button\"\n [disabled]=\"disableSubmit || form.invalid || form.pristine\"\n >\n {{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.save : labels.saveNew }}\n </button>\n </div>\n }\n</div>\n", styles: [":host{display:grid;height:100%;grid-template-rows:1fr auto;grid-template-columns:200px 1fr;grid-template-areas:\"list template\" \"buttons buttons\"}:host header{font-weight:700;padding:var(--app-pane-padding);border-bottom:1px solid var(--panel-divider-color)}:host .template-list{grid-area:list;display:grid;height:100%;grid-template-rows:auto auto auto 1fr;grid-template-columns:1fr;grid-template-areas:\"header\" \"current\" \"filter\" \"templates\";border-right:1px solid var(--panel-divider-color);overflow:hidden}:host .template-list header{grid-area:header}:host .template-list .filter{grid-area:filter;padding:var(--app-pane-padding);border:1px solid var(--panel-divider-color);border-width:1px 0;background-color:var(--panel-background-lightgrey)}:host .template-list .currententries{grid-area:current}:host .template-list .templates{grid-area:templates;overflow-y:auto}:host .template-list .item{padding:var(--app-pane-padding);cursor:pointer}:host .template-list .item:not(.currententries){border-bottom:1px solid var(--panel-divider-color)}:host .template-list .item:not(.current):hover{background-color:var(--item-focus-background-color)}:host .template-list .item.current{background-color:var(--item-selected-background-color)}:host .template{grid-area:template;display:grid;height:100%;overflow-y:auto;grid-template-rows:auto auto auto 1fr;grid-template-columns:1fr;grid-template-areas:\"headline\" \"name\" \"errors\" \"sequence\"}:host .template h2{grid-area:headline}:host .template yuv-form-input{grid-area:name;margin:var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) / 2)}:host .template .errors{grid-area:errors;margin:0 var(--app-pane-padding);color:var(--color-error)}:host .template yuv-sequence-list{grid-area:sequence;margin:var(--app-pane-padding);box-shadow:0 0 1.2em #0000001a}:host .buttons{grid-area:buttons;overflow-x:auto;display:flex;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2 - 2px);border-top:1px solid var(--panel-divider-color)}:host .buttons .left{display:flex}:host .buttons .right{flex:1;display:flex;justify-content:flex-end}:host .buttons .right .save{order:2}:host .buttons .right .delete{order:1}:host .buttons .right .apply{order:3}:host .buttons button{margin:0 2px}\n"] }]
182
+ }], ctorParameters: () => [] });
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9zZXF1ZW5jZS1saXN0L3NyYy9saWIvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2Uvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9zZXF1ZW5jZS1saXN0L3NyYy9saWIvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2Uvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUIsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBaUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEosT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxN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O3dCQUNmLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFja2VuZFNlcnZpY2UsIFBlbmRpbmdDaGFuZ2VzU2VydmljZSwgU29ydCwgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50LCBTdHJpbmdDb21wb25lbnQsIFl1dkZvcm1zTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zJztcbmltcG9ydCB7IFl2Y0NvbW1vbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgWXZjT3ZlcmxheU1vZHVsZSwgWXZjT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VxdWVuY2VJdGVtLCBTZXF1ZW5jZUxpc3RUZW1wbGF0ZSB9IGZyb20gJy4uL3NlcXVlbmNlLWxpc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlcXVlbmNlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LXNlcXVlbmNlLWxpc3QtdGVtcGxhdGUtbWFuYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBZdmNPdmVybGF5TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgU3RyaW5nQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTZXF1ZW5jZUxpc3RDb21wb25lbnQsXG4gICAgWXV2Rm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBZdmNDb21tb25Nb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGUtbWFuYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUxpc3RUZW1wbGF0ZU1hbmFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgYmFja2VuZCA9IGluamVjdChCYWNrZW5kU2VydmljZSk7XG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChZdmNPdmVybGF5U2VydmljZSk7XG4gIHByaXZhdGUgcGVuZGluZ0NoYW5nZXMgPSBpbmplY3QoUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgREVGQVVMVF9URU1QTEFURV9TVE9SQUdFX1NFQ1RJT04gPSAnc2VxdWVuY2VsaXN0JztcbiAgQ1VSUkVOVF9FTlRSSUVTX0lEID0gJ2N1cnJlbnQnO1xuICBURU1QTEFURV9OQU1FX01BWF9MRU5HVEggPSAxMjg7XG4gIGRpc2FibGVTdWJtaXQgPSBmYWxzZTtcbiAgdGVtcGxhdGVzOiBTZXF1ZW5jZUxpc3RUZW1wbGF0ZVtdID0gW107XG4gIGZpbHRlclRlcm06IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwZW5kaW5nVGFza0lkPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3NlbGVjdGVkVGVtcGxhdGU/OiBTZXF1ZW5jZUxpc3RUZW1wbGF0ZTtcbiAgc2V0IHNlbGVjdGVkVGVtcGxhdGUoczogU2VxdWVuY2VMaXN0VGVtcGxhdGUgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5fc2VsZWN0ZWRUZW1wbGF0ZSA9IHMgPyB7IC4uLnMgfSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVGVtcGxhdGUpXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlbXBsYXRlTmFtZTogdGhpcy5fc2VsZWN0ZWRUZW1wbGF0ZS5pZCA9PT0gdGhpcy5DVVJSRU5UX0VOVFJJRVNfSUQgPyAnJyA6IHRoaXMuX3NlbGVjdGVkVGVtcGxhdGUubmFtZSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiBbLi4udGhpcy5fc2VsZWN0ZWRUZW1wbGF0ZS5zZXF1ZW5jZV1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICAgICk7XG4gICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHNlbGVjdGVkVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVGVtcGxhdGU7XG4gIH1cblxuICBidXN5ID0gZmFsc2U7XG4gIGZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHRlbXBsYXRlTmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5URU1QTEFURV9OQU1FX01BWF9MRU5HVEgpLCB0aGlzLmZvcmJpZGRlbk5hbWVWYWxpZGF0b3IoKV1dLFxuICAgIHNlcXVlbmNlOiBbW10sIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBzZWN0aW9uIHRvIHN0b3JlIHRlbXBsYXRlcyBpbiB1c2VyIHNlcnZpY2UgKHVzZXJzZXR0aW5ncylcbiAgICovXG4gIHN0b3JhZ2VTZWN0aW9uID0gaW5wdXQ8c3RyaW5nPih0aGlzLkRFRkFVTFRfVEVNUExBVEVfU1RPUkFHRV9TRUNUSU9OKTtcbiAgY3VycmVudEVudHJpZXMgPSBpbnB1dDxTZXF1ZW5jZUl0ZW1bXT4oW10pO1xuXG4gIC8vIGVtaXR0ZWQgb25jZSBhIHRlbXBsYXRlIGhhcyBiZWVuIHNlbGVjdGVkXG4gIHRlbXBsYXRlU2VsZWN0ID0gb3V0cHV0PFNlcXVlbmNlSXRlbVtdPigpO1xuICBjYW5jZWwgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBsYWJlbHMgPSB7XG4gICAgc2F2ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LnNlcXVlbmNlLWxpc3QudGVtcGxhdGUuYnV0dG9uLnNhdmUnKSxcbiAgICBzYXZlTmV3OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5idXR0b24uc2F2ZU5ldycpLFxuICAgIGhlYWRsaW5lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5oZWFkbGluZScpLFxuICAgIGhlYWRsaW5lTmV3OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5oZWFkbGluZU5ldycpLFxuICAgIGVycm9yczoge1xuICAgICAgbWF4bGVuZ3RoOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5tYXhsZW5ndGgnLCB7IG1heExlbmd0aDogdGhpcy5URU1QTEFURV9OQU1FX01BWF9MRU5HVEggfSksXG4gICAgICBmb3JiaWRkZW5OYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5lcnJvcnMuZm9yYmlkZGVuTmFtZScpXG4gICAgfVxuICB9O1xuXG4gIGdldCBmb3JtRXJyb3JzKCkge1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZm9ybS5nZXQoJ3RlbXBsYXRlTmFtZScpPy5lcnJvcnM7XG4gICAgcmV0dXJuIGVycm9ycyA/IE9iamVjdC5rZXlzKGVycm9ycykubWFwKChrKSA9PiAodGhpcy5sYWJlbHMuZXJyb3JzIGFzIGFueSlba10pIDogW107XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybS5kaXJ0eSAmJiAhdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQgfHwgJyAnKSkge1xuICAgICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzayh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5wZW5kaW5nLWNoYW5nZXMuYWxlcnQnKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZvcmJpZGRlbk5hbWVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgZm9yYmlkZGVuID0gdGhpcy50ZW1wbGF0ZXNcbiAgICAgICAgLmZpbHRlcigodCkgPT4gdC5pZCAhPT0gdGhpcy5zZWxlY3RlZFRlbXBsYXRlIS5pZClcbiAgICAgICAgLm1hcCgodCkgPT4gdC5uYW1lKVxuICAgICAgICAuaW5jbHVkZXMoY29udHJvbC52YWx1ZSk7XG4gICAgICByZXR1cm4gZm9yYmlkZGVuID8geyBmb3JiaWRkZW5OYW1lOiB7IHZhbHVlOiBjb250cm9sLnZhbHVlIH0gfSA6IG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHNlbGVjdEN1cnJlbnRFbnRyaWVzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IHtcbiAgICAgIGlkOiB0aGlzLkNVUlJFTlRfRU5UUklFU19JRCxcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5zZXF1ZW5jZS1saXN0LnRlbXBsYXRlLmhlYWRsaW5lTmV3JyksXG4gICAgICBzZXF1ZW5jZTogdGhpcy5jdXJyZW50RW50cmllcygpIHx8IFtdXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5VGVtcGxhdGUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSkgdGhpcy50ZW1wbGF0ZVNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZS5zZXF1ZW5jZSk7XG4gIH1cblxuICBkZWxldGVUZW1wbGF0ZSgpIHtcbiAgICB0aGlzLm92ZXJsYXlcbiAgICAgIC5jb25maXJtKHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LnNlcXVlbmNlLWxpc3QudGVtcGxhdGUucmVtb3ZlLmNvbmZpcm0ubWVzc2FnZScsIHtcbiAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5zZWxlY3RlZFRlbXBsYXRlIS5uYW1lXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoY29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmIChjb25maXJtZWQpIHtcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHRoaXMudGVtcGxhdGVzLmZpbHRlcigodCkgPT4gdC5pZCAhPT0gdGhpcy5zZWxlY3RlZFRlbXBsYXRlIS5pZCk7XG4gICAgICAgICAgdGhpcy5zYXZlVGVtcGxhdGVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVGVtcGxhdGUpIHtcbiAgICAgIGxldCBzZWxlY3RBZnRlclNhdmU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGVtcGxhdGUuaWQgPT09IHRoaXMuQ1VSUkVOVF9FTlRSSUVTX0lEKSB7XG4gICAgICAgIC8vIHNhdmUgY3VycmVudCBsaXN0IGFzIG5ldyB0ZW1wbGF0ZVxuICAgICAgICBjb25zdCBpZCA9IFV0aWxzLnV1aWQoKTtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbmFtZTogdGhpcy5mb3JtLnZhbHVlLnRlbXBsYXRlTmFtZSxcbiAgICAgICAgICBzZXF1ZW5jZTogdGhpcy5mb3JtLnZhbHVlLnNlcXVlbmNlXG4gICAgICAgIH0pO1xuICAgICAgICBzZWxlY3RBZnRlclNhdmUgPSBpZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHVwZGF0ZSBleGlzdGluZyB0ZW1wbGF0ZVxuICAgICAgICBjb25zdCBpID0gdGhpcy50ZW1wbGF0ZXMuZmluZEluZGV4KChlKSA9PiBlLmlkID09PSB0aGlzLnNlbGVjdGVkVGVtcGxhdGUhLmlkKTtcbiAgICAgICAgaWYgKGkgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZXNbaV0gPSB7XG4gICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFRlbXBsYXRlLmlkLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5mb3JtLnZhbHVlLnRlbXBsYXRlTmFtZSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiB0aGlzLmZvcm0udmFsdWUuc2VxdWVuY2VcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNlbGVjdEFmdGVyU2F2ZSA9IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZS5pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zYXZlVGVtcGxhdGVzKHNlbGVjdEFmdGVyU2F2ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlVGVtcGxhdGVzKHRlbXBsYXRlVG9CZVNlbGVjdGVkQWZ0ZXJTYXZlPzogc3RyaW5nKSB7XG4gICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICB0aGlzLnRlbXBsYXRlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ25hbWUnLCBTb3J0LkFTQykpO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdChgL3VzZXJzL3NldHRpbmdzLyR7dGhpcy5zdG9yYWdlU2VjdGlvbn1gLCB7IHRlbXBsYXRlczogdGhpcy50ZW1wbGF0ZXMgfSkuc3Vic2NyaWJlKFxuICAgICAgKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdUYXNrSWQpIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQpO1xuXG4gICAgICAgIGlmICghdGVtcGxhdGVUb0JlU2VsZWN0ZWRBZnRlclNhdmUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGVtcGxhdGVUb0JlU2VsZWN0ZWRBZnRlclNhdmUgIT09IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSEuaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKCh0KSA9PiB0ZW1wbGF0ZVRvQmVTZWxlY3RlZEFmdGVyU2F2ZSA9PT0gdC5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiAodGhpcy5idXN5ID0gZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFRlbXBsYXRlcygpIHtcbiAgICB0aGlzLmJhY2tlbmQuZ2V0KGAvdXNlcnMvc2V0dGluZ3MvJHt0aGlzLnN0b3JhZ2VTZWN0aW9uKCl9YCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMudGVtcGxhdGVzID0gcmVzID8gcmVzLnRlbXBsYXRlcyB8fCBbXSA6IFtdO1xuICAgICAgdGhpcy50ZW1wbGF0ZXMuc29ydChVdGlscy5zb3J0VmFsdWVzKCduYW1lJywgU29ydC5BU0MpKTtcbiAgICAgIHRoaXMuc2VsZWN0Q3VycmVudEVudHJpZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFRlbXBsYXRlcygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcGxhdGUtbGlzdFwiPlxuICA8aGVhZGVyPnt7ICd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS1saXN0LmhlYWRsaW5lJyB8IHRyYW5zbGF0ZSB9fTwvaGVhZGVyPlxuXG4gIDwhLS0gY3VycmVudCBlbnRyaWVzIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3VycmVudGVudHJpZXMgaXRlbVwiIChjbGljayk9XCJzZWxlY3RDdXJyZW50RW50cmllcygpXCIgW25nQ2xhc3NdPVwieyBjdXJyZW50OiBzZWxlY3RlZFRlbXBsYXRlPy5pZCA9PT0gQ1VSUkVOVF9FTlRSSUVTX0lEIH1cIj5cbiAgICB7eyAneXV2LnNlcXVlbmNlLWxpc3QudGVtcGxhdGUuaGVhZGxpbmVOZXcnIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWx0ZXJcIj5cbiAgICA8eXV2LWZvcm0taW5wdXQgW2xhYmVsXT1cIid5dXYuc2VxdWVuY2UtbGlzdC5mb3JtLmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDx5dXYtc3RyaW5nIFsobmdNb2RlbCldPVwiZmlsdGVyVGVybVwiPiA8L3l1di1zdHJpbmc+XG4gICAgPC95dXYtZm9ybS1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInRlbXBsYXRlc1wiPlxuICAgIEBmb3IgKHRwbCBvZiB0ZW1wbGF0ZXMgfCBmaWx0ZXI6IGZpbHRlclRlcm0gOiAnbmFtZSc7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAoY2xpY2spPVwic2VsZWN0ZWRUZW1wbGF0ZSA9IHRwbFwiIFtuZ0NsYXNzXT1cInsgY3VycmVudDogc2VsZWN0ZWRUZW1wbGF0ZT8uaWQgPT09IHRwbC5pZCB9XCI+XG4gICAgICAgIHt7IHRwbC5uYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoc2VsZWN0ZWRUZW1wbGF0ZSkge1xuICA8Zm9ybSBjbGFzcz1cInRlbXBsYXRlXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGhlYWRlcj57eyBzZWxlY3RlZFRlbXBsYXRlLmlkICE9PSBDVVJSRU5UX0VOVFJJRVNfSUQgPyBsYWJlbHMuaGVhZGxpbmUgOiBsYWJlbHMuaGVhZGxpbmVOZXcgfX08L2hlYWRlcj5cblxuICAgIDx5dXYtZm9ybS1pbnB1dCBbbGFiZWxdPVwiJ3l1di5zZXF1ZW5jZS1saXN0LmZvcm0udGVtcGxhdGVOYW1lJyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgW2ludmFsaWRdPVwiISFmb3JtRXJyb3JzLmxlbmd0aFwiPlxuICAgICAgPHl1di1zdHJpbmcgW2F1dG9mb2N1c109XCJ0cnVlXCIgW3JlcXVpcmVkXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZW1wbGF0ZU5hbWVcIj4gPC95dXYtc3RyaW5nPlxuICAgIDwveXV2LWZvcm0taW5wdXQ+XG4gICAgQGZvciAoZSBvZiBmb3JtRXJyb3JzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvcnNcIj57eyBlIH19PC9kaXY+XG4gICAgfVxuICAgIDx5dXYtc2VxdWVuY2UtbGlzdCBkaXNhYmxlLWR1ZWRhdGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VxdWVuY2VcIj4gPC95dXYtc2VxdWVuY2UtbGlzdD5cbiAgPC9mb3JtPlxufVxuXG48ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxuICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbC5lbWl0KClcIj57eyAneXV2LnNlcXVlbmNlLWxpc3QudGVtcGxhdGUuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICBAaWYgKHNlbGVjdGVkVGVtcGxhdGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIEBpZiAoc2VsZWN0ZWRUZW1wbGF0ZS5pZCAhPT0gQ1VSUkVOVF9FTlRSSUVTX0lEKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnkgZGVsZXRlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJkZWxldGVUZW1wbGF0ZSgpXCI+XG4gICAgICAgICAge3sgJ3l1di5zZXF1ZW5jZS1saXN0LnRlbXBsYXRlLmJ1dHRvbi5kZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5IGFwcGx5XCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU3VibWl0IHx8IGZvcm0uaW52YWxpZCB8fCBmb3JtLmRpcnR5XCIgKGNsaWNrKT1cImFwcGx5VGVtcGxhdGUoKVwiPlxuICAgICAgICAgIHt7ICd5dXYuc2VxdWVuY2UtbGlzdC50ZW1wbGF0ZS5idXR0b24uYXBwbHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIHNhdmUgLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwie3sgc2VsZWN0ZWRUZW1wbGF0ZS5pZCAhPT0gQ1VSUkVOVF9FTlRSSUVTX0lEID8gJ3ByaW1hcnknIDogJ3ByaW1hcnknIH19IHNhdmVcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVTdWJtaXQgfHwgZm9ybS5pbnZhbGlkIHx8IGZvcm0ucHJpc3RpbmVcIlxuICAgICAgPlxuICAgICAgICB7eyBzZWxlY3RlZFRlbXBsYXRlLmlkICE9PSBDVVJSRU5UX0VOVFJJRVNfSUQgPyBsYWJlbHMuc2F2ZSA6IGxhYmVscy5zYXZlTmV3IH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, forwardRef, inject, input, output, viewChild } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { FormBuilder, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
5
+ import { PendingChangesService, TranslateModule } from '@yuuvis/client-core';
6
+ import { YvcOverlayService } from '@yuuvis/components/overlay';
7
+ import { SequenceListTemplateManageComponent } from '../sequence-list-template-manage/sequence-list-template-manage.component';
8
+ import { SequenceListComponent } from '../sequence-list.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/forms";
11
+ import * as i2 from "@yuuvis/client-core";
12
+ /**
13
+ * Task sequence list including templates for sequence lists.
14
+ * Templates are preconfigured lists of tasks and recipients.
15
+ */
16
+ export class SequenceListTemplatesComponent {
17
+ get entries() {
18
+ return this._entries;
19
+ }
20
+ constructor() {
21
+ this.fb = inject(FormBuilder);
22
+ this.pendingChanges = inject(PendingChangesService);
23
+ this.overlay = inject(YvcOverlayService);
24
+ this.tplTemplateManager = viewChild('tplTemplateManager');
25
+ this.form = this.fb.group({
26
+ sequence: [[]]
27
+ });
28
+ this._entries = [];
29
+ this.title = input();
30
+ this.maxLength = input(100);
31
+ this.templateStorageSection = input.required();
32
+ this.itemEdit = output();
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
34
+ this.propagateChange = (_) => { };
35
+ this.form.valueChanges.pipe(takeUntilDestroyed()).subscribe((res) => {
36
+ this.setEntries(res.sequence, false);
37
+ this.propagate();
38
+ });
39
+ }
40
+ setEntries(e, patch) {
41
+ this._entries = e;
42
+ if (patch)
43
+ this.form.patchValue({
44
+ sequence: e || []
45
+ });
46
+ }
47
+ propagate() {
48
+ this.propagateChange(this.entries);
49
+ }
50
+ writeValue(value) {
51
+ this.setEntries(value || [], true);
52
+ }
53
+ registerOnChange(fn) {
54
+ this.propagateChange = fn;
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
57
+ registerOnTouched(fn) { }
58
+ // TEMPLATES
59
+ openTemplateManager() {
60
+ this.oRef = this.overlay.open(this.tplTemplateManager(), {
61
+ width: '55%',
62
+ height: '70%'
63
+ });
64
+ this.oRef.preventClose = () => this.pendingChanges.check();
65
+ }
66
+ templateManagerCancel() {
67
+ if (this.oRef)
68
+ this.oRef.close();
69
+ }
70
+ templateManagerSelect(entries) {
71
+ this.setEntries(entries, true);
72
+ if (this.oRef)
73
+ this.oRef.close();
74
+ }
75
+ validate() {
76
+ return this.form.invalid
77
+ ? {
78
+ sequencelist: { invalid: true }
79
+ }
80
+ : null;
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SequenceListTemplatesComponent, isStandalone: true, selector: "yuv-sequence-list-templates", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, templateStorageSection: { classPropertyName: "templateStorageSection", publicName: "templateStorageSection", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemEdit: "itemEdit" }, host: { attributes: { "tabindex": "0" } }, providers: [
84
+ {
85
+ provide: NG_VALUE_ACCESSOR,
86
+ useExisting: forwardRef(() => SequenceListTemplatesComponent),
87
+ multi: true
88
+ },
89
+ {
90
+ provide: NG_VALIDATORS,
91
+ useExisting: forwardRef(() => SequenceListTemplatesComponent),
92
+ multi: true
93
+ }
94
+ ], viewQueries: [{ propertyName: "tplTemplateManager", first: true, predicate: ["tplTemplateManager"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\">\n <yuv-sequence-list formControlName=\"sequence\" [maxLength]=\"maxLength()\">\n \n @if (!!templateStorageSection) {\n <button class=\"btn-templates secondary\" (click)=\"openTemplateManager()\">{{ 'yuv.sequence-list.button.templates' | translate }}</button>\n }\n </yuv-sequence-list>\n</form>\n\n<!-- template manager overlay -->\n<ng-template #tplTemplateManager>\n <yuv-sequence-list-template-manage\n (cancel)=\"oRef?.close()\"\n (templateSelect)=\"templateManagerSelect($event)\"\n [storageSection]=\"templateStorageSection() \"\n [currentEntries]=\"entries\"\n >\n </yuv-sequence-list-template-manage>\n</ng-template>\n", styles: [":host{display:block;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: SequenceListComponent, selector: "yuv-sequence-list", inputs: ["maxLength"] }, { kind: "component", type: SequenceListTemplateManageComponent, selector: "yuv-sequence-list-template-manage", inputs: ["storageSection", "currentEntries"], outputs: ["templateSelect", "cancel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListTemplatesComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'yuv-sequence-list-templates', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule,
99
+ SequenceListComponent, SequenceListTemplateManageComponent, TranslateModule], providers: [
100
+ {
101
+ provide: NG_VALUE_ACCESSOR,
102
+ useExisting: forwardRef(() => SequenceListTemplatesComponent),
103
+ multi: true
104
+ },
105
+ {
106
+ provide: NG_VALIDATORS,
107
+ useExisting: forwardRef(() => SequenceListTemplatesComponent),
108
+ multi: true
109
+ }
110
+ ], host: {
111
+ tabindex: '0'
112
+ }, template: "<form [formGroup]=\"form\">\n <yuv-sequence-list formControlName=\"sequence\" [maxLength]=\"maxLength()\">\n \n @if (!!templateStorageSection) {\n <button class=\"btn-templates secondary\" (click)=\"openTemplateManager()\">{{ 'yuv.sequence-list.button.templates' | translate }}</button>\n }\n </yuv-sequence-list>\n</form>\n\n<!-- template manager overlay -->\n<ng-template #tplTemplateManager>\n <yuv-sequence-list-template-manage\n (cancel)=\"oRef?.close()\"\n (templateSelect)=\"templateManagerSelect($event)\"\n [storageSection]=\"templateStorageSection() \"\n [currentEntries]=\"entries\"\n >\n </yuv-sequence-list-template-manage>\n</ng-template>\n", styles: [":host{display:block;overflow-y:auto}\n"] }]
113
+ }], ctorParameters: () => [] });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9zZXF1ZW5jZS1saXN0L3NyYy9saWIvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9zZXF1ZW5jZS1saXN0L3NyYy9saWIvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMvc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQXdCLFdBQVcsRUFBYSxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUErQixNQUFNLGdCQUFnQixDQUFDO0FBQy9LLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDL0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFHbkU7OztHQUdHO0FBd0JILE1BQU0sT0FBTyw4QkFBOEI7SUFXekMsSUFBSSxPQUFP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RUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO2FBQ2hDO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7K0dBN0VVLDhCQUE4QjttR0FBOUIsOEJBQThCLDBrQkFoQjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztnQkFDN0QsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2dCQUM3RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysb0tDaENILGdyQkFtQkEsK0ZERlksWUFBWSw4QkFBRSxXQUFXLDJZQUFFLG1CQUFtQixnVkFDdEQscUJBQXFCLHFGQUFFLG1DQUFtQyxrS0FBRSxlQUFlOzs0RkFtQmxFLDhCQUE4QjtrQkF2QjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUN0RCxxQkFBcUIsRUFBRSxtQ0FBbUMsRUFBRSxlQUFlLENBQUMsYUFHbkU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7NEJBQzdELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzs0QkFDN0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsUUFDSzt3QkFDSixRQUFRLEVBQUUsR0FBRztxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgWXZjT3ZlcmxheVJlZiwgWXZjT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBTZXF1ZW5jZUxpc3RUZW1wbGF0ZU1hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGUtbWFuYWdlL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGUtbWFuYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUl0ZW0gfSBmcm9tICcuLi9zZXF1ZW5jZS1saXN0LmludGVyZmFjZSc7XG5cbi8qKlxuICogVGFzayBzZXF1ZW5jZSBsaXN0IGluY2x1ZGluZyB0ZW1wbGF0ZXMgZm9yIHNlcXVlbmNlIGxpc3RzLlxuICogVGVtcGxhdGVzIGFyZSBwcmVjb25maWd1cmVkIGxpc3RzIG9mIHRhc2tzIGFuZCByZWNpcGllbnRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgXG4gICAgU2VxdWVuY2VMaXN0Q29tcG9uZW50LCBTZXF1ZW5jZUxpc3RUZW1wbGF0ZU1hbmFnZUNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcXVlbmNlLWxpc3QtdGVtcGxhdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZXF1ZW5jZUxpc3RUZW1wbGF0ZXNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZXF1ZW5jZUxpc3RUZW1wbGF0ZXNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGhvc3Q6IHtcbiAgICB0YWJpbmRleDogJzAnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VxdWVuY2VMaXN0VGVtcGxhdGVzQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzID0gaW5qZWN0KFBlbmRpbmdDaGFuZ2VzU2VydmljZSk7XG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChZdmNPdmVybGF5U2VydmljZSk7XG5cbiAgdHBsVGVtcGxhdGVNYW5hZ2VyID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCd0cGxUZW1wbGF0ZU1hbmFnZXInKTtcblxuICBmb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzZXF1ZW5jZTogW1tdXVxuICB9KTtcbiAgcHJpdmF0ZSBfZW50cmllczogU2VxdWVuY2VJdGVtW10gPSBbXTtcbiAgZ2V0IGVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudHJpZXM7XG4gIH1cbiAgb1JlZj86IFl2Y092ZXJsYXlSZWY7XG5cbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIG1heExlbmd0aCA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgdGVtcGxhdGVTdG9yYWdlU2VjdGlvbiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgaXRlbUVkaXQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLnNldEVudHJpZXMocmVzLnNlcXVlbmNlLCBmYWxzZSk7XG4gICAgICB0aGlzLnByb3BhZ2F0ZSgpO1xuICAgIH0pO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICBwcml2YXRlIHNldEVudHJpZXMoZTogU2VxdWVuY2VJdGVtW10sIHBhdGNoOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZW50cmllcyA9IGU7XG4gICAgaWYgKHBhdGNoKVxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBzZXF1ZW5jZTogZSB8fCBbXVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByb3BhZ2F0ZSgpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmVudHJpZXMpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2VxdWVuY2VJdGVtW10pOiB2b2lkIHtcbiAgICB0aGlzLnNldEVudHJpZXModmFsdWUgfHwgW10sIHRydWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gIC8vIFRFTVBMQVRFU1xuICBvcGVuVGVtcGxhdGVNYW5hZ2VyKCkge1xuICAgIHRoaXMub1JlZiA9IHRoaXMub3ZlcmxheS5vcGVuKHRoaXMudHBsVGVtcGxhdGVNYW5hZ2VyKCkhLCB7XG4gICAgICB3aWR0aDogJzU1JScsXG4gICAgICBoZWlnaHQ6ICc3MCUnXG4gICAgfSk7XG4gICAgdGhpcy5vUmVmIS5wcmV2ZW50Q2xvc2UgPSAoKSA9PiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCk7XG4gIH1cblxuICB0ZW1wbGF0ZU1hbmFnZXJDYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMub1JlZikgdGhpcy5vUmVmLmNsb3NlKCk7XG4gIH1cblxuICB0ZW1wbGF0ZU1hbmFnZXJTZWxlY3QoZW50cmllczogU2VxdWVuY2VJdGVtW10pIHtcbiAgICB0aGlzLnNldEVudHJpZXMoZW50cmllcywgdHJ1ZSk7XG4gICAgaWYgKHRoaXMub1JlZikgdGhpcy5vUmVmLmNsb3NlKCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5pbnZhbGlkXG4gICAgICA/IHtcbiAgICAgICAgICBzZXF1ZW5jZWxpc3Q6IHsgaW52YWxpZDogdHJ1ZSB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDx5dXYtc2VxdWVuY2UtbGlzdCBmb3JtQ29udHJvbE5hbWU9XCJzZXF1ZW5jZVwiIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoKClcIj5cbiAgXG4gICAgQGlmICghIXRlbXBsYXRlU3RvcmFnZVNlY3Rpb24pIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tdGVtcGxhdGVzIHNlY29uZGFyeVwiIChjbGljayk9XCJvcGVuVGVtcGxhdGVNYW5hZ2VyKClcIj57eyAneXV2LnNlcXVlbmNlLWxpc3QuYnV0dG9uLnRlbXBsYXRlcycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICB9XG4gIDwveXV2LXNlcXVlbmNlLWxpc3Q+XG48L2Zvcm0+XG5cbjwhLS0gdGVtcGxhdGUgbWFuYWdlciBvdmVybGF5IC0tPlxuPG5nLXRlbXBsYXRlICN0cGxUZW1wbGF0ZU1hbmFnZXI+XG4gIDx5dXYtc2VxdWVuY2UtbGlzdC10ZW1wbGF0ZS1tYW5hZ2VcbiAgICAoY2FuY2VsKT1cIm9SZWY/LmNsb3NlKClcIlxuICAgICh0ZW1wbGF0ZVNlbGVjdCk9XCJ0ZW1wbGF0ZU1hbmFnZXJTZWxlY3QoJGV2ZW50KVwiXG4gICAgW3N0b3JhZ2VTZWN0aW9uXT1cInRlbXBsYXRlU3RvcmFnZVNlY3Rpb24oKSAgICBcIlxuICAgIFtjdXJyZW50RW50cmllc109XCJlbnRyaWVzXCJcbiAgPlxuICA8L3l1di1zZXF1ZW5jZS1saXN0LXRlbXBsYXRlLW1hbmFnZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,146 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, ViewChild, forwardRef, inject, input } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
5
+ import { TranslateModule } from '@yuuvis/client-core';
6
+ import { FormInputComponent, OrganizationComponent, StringComponent } from '@yuuvis/client-framework/forms';
7
+ import { YUV_ICONS } from '@yuuvis/client-framework/icons';
8
+ import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
9
+ import { DueDatePickerComponent } from './due-date-picker/due-date-picker.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@yuuvis/client-core";
12
+ import * as i2 from "@angular/forms";
13
+ import * as i3 from "@yuuvis/components/icon";
14
+ /**
15
+ * Task sequence list.
16
+ */
17
+ export class SequenceListComponent {
18
+ #fb;
19
+ get formItemArray() {
20
+ return this.sequenceForm.controls.items;
21
+ }
22
+ constructor() {
23
+ this.#fb = inject(NonNullableFormBuilder);
24
+ /**
25
+ * Maximum number of sequence items (defaults to 100).
26
+ */
27
+ this.maxLength = input(100);
28
+ this.maxLengthExceeded = false;
29
+ this.icons = {
30
+ delete: ICONS.clear,
31
+ add: YUV_ICONS.add
32
+ };
33
+ // dynamic form for sequence items
34
+ this.sequenceForm = this.#fb.group({
35
+ items: this.#fb.array([this.#generateSequenceItem()])
36
+ });
37
+ this.entries = [];
38
+ this.propagateChange = (_) => { };
39
+ this.sequenceForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {
40
+ this.#propagate();
41
+ });
42
+ }
43
+ #generateSequenceItem(sequenceItem) {
44
+ return this.#fb.group({
45
+ title: [sequenceItem?.title || '', Validators.required],
46
+ nextAssignee: [sequenceItem?.nextAssignee.id || '', Validators.required],
47
+ expiryDatetime: [sequenceItem?.expiryDatetime || undefined]
48
+ });
49
+ }
50
+ addItem() {
51
+ this.sequenceForm.controls.items.push(this.#generateSequenceItem());
52
+ this.#updateState();
53
+ }
54
+ addItemAt(idx) {
55
+ this.sequenceForm.controls.items.insert(idx, this.#generateSequenceItem());
56
+ this.#updateState();
57
+ }
58
+ removeItem(idx) {
59
+ this.sequenceForm.controls.items.removeAt(idx);
60
+ this.#updateState();
61
+ }
62
+ #updateState() {
63
+ const ml = this.maxLength();
64
+ this.maxLengthExceeded = ml !== undefined && this.formItemArray.length >= ml;
65
+ }
66
+ registerOnTouched() { }
67
+ #propagate() {
68
+ const res = [];
69
+ (this.sequenceForm.value.items || []).forEach((item) => {
70
+ const i = {
71
+ title: item.title,
72
+ nextAssignee: item.nextAssignee
73
+ };
74
+ if (item.expiryDatetime) {
75
+ i.expiryDatetime = item.expiryDatetime;
76
+ }
77
+ res.push(i);
78
+ });
79
+ this.propagateChange(res);
80
+ }
81
+ writeValue(value) {
82
+ this.entries = value || [];
83
+ this.entries.forEach((entry) => {
84
+ this.formItemArray.push(this.#generateSequenceItem(entry));
85
+ });
86
+ }
87
+ registerOnChange(fn) {
88
+ this.propagateChange = fn;
89
+ }
90
+ validate() {
91
+ const ml = this.maxLength();
92
+ const mlExceeded = ml !== undefined && this.formItemArray.length > ml;
93
+ const valid = this.sequenceForm.valid && !mlExceeded;
94
+ return !valid
95
+ ? {
96
+ sequencelist: {
97
+ invalid: this.sequenceForm.invalid,
98
+ maxLengthExceeded: mlExceeded
99
+ }
100
+ }
101
+ : null;
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SequenceListComponent, isStandalone: true, selector: "yuv-sequence-list", inputs: { maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" } }, providers: [
105
+ {
106
+ provide: NG_VALUE_ACCESSOR,
107
+ useExisting: forwardRef(() => SequenceListComponent),
108
+ multi: true
109
+ },
110
+ {
111
+ provide: NG_VALIDATORS,
112
+ useExisting: forwardRef(() => SequenceListComponent),
113
+ multi: true
114
+ }
115
+ ], viewQueries: [{ propertyName: "orgComponent", first: true, predicate: OrganizationComponent, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\"\n [disabled]=\"sequenceForm.controls.items.controls.length === 1\"><yvc-icon [svg]=\"icons.delete\"></yvc-icon></button>\n <input [placeholder]=\"'yuv.sequence-list.form.task' | translate\" [maxLength]=\"128\" formControlName=\"title\" />\n <yuv-organization\n [title]=\"'yuv.sequence-list.form.nextAssignee' | translate\"\n [withMetadata]=\"true\"\n formControlName=\"nextAssignee\"> </yuv-organization>\n \n <!-- <yuv-due-date-picker \n [title]=\"'yuv.sequence-list.form.expiryDatetime' | translate\"\n formControlName=\"expiryDatetime\"></yuv-due-date-picker> -->\n </div>\n @if ($last) {\n <button class=\"add after\" type=\"button\" \n [disabled]=\"maxLengthExceeded\"\n (click)=\"addItem()\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n }\n </div>\n }\n </section>\n</form>\n", styles: [":host{--yvc-form-element-border-color: var(--form-element-border-color, var(--text-color-hint));--yvc-form-element-focus-border-color: var(--form-element-focus-border-color, var(--color-accent));--yvc-form-element-focus-outline-color: var(--form-element-focus-outline-color, rgba(var(--color-accent-rgb), .3));--yvc-form-element-focus-outline-with: var(--form-element-focus-outline-with, 2px);--yvc-form-element-disabled-background-color: var(--form-element-disabled-background-color, rgba(from var(--text-color-body) r g b / .1));--yvc-form-element-disabled-opacity: var(--form-element-disabled-opacity, .8);--_sequence-list-item-background: var(--sequence-list-item-background, var(--panel-background));--_sequence-list-item-border-color: var(--sequence-list-item-border-color, var(--panel-divider-color));--_sequence-list-item-border-radius: var(--sequence-list-item-border-radius, calc(var(--app-pane-padding) / 2));--_sequence-list-line-color: var(--sequence-list-line-color, var(--text-color-hint));--_sequence-list-line-width: var(--sequence-list-line-width, 2px);--_sequence-list-line-item-background: var(--sequence-list-line-item-background, var(--panel-background-lightgrey));--_sequence-list-line-item-border-radius: var(--sequence-list-line-item-border-radius, .25em)}:host form section{margin-inline-end:4px}:host form section button.add{--icon-size: 18px;border-radius:var(--_sequence-list-line-item-border-radius);padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--_sequence-list-line-item-background);border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section button.add:focus{outline:2px solid rgb(from var(--color-accent) r g b/.5);outline-offset:-2px;border-color:var(--color-accent)}:host form section .item{display:grid;grid-template-columns:6ch 1fr;grid-template-rows:auto auto;column-gap:1em;grid-template-areas:\"addBefore .\" \"index form\" \"addAfter .\"}:host form section .item.ng-invalid.ng-dirty .item-form{border-color:var(--color-error);outline:3px solid rgb(from var(--color-error) r g b/.5)}:host form section .item .add.before{grid-area:addBefore;justify-self:center}:host form section .item .add.after{grid-area:addAfter;justify-self:center}:host form section .item .index{grid-area:index;display:grid;align-items:center;justify-content:center}:host form section .item .index:after{content:attr(data-index);grid-row:1;grid-column:1;background-color:var(--_sequence-list-line-item-background);font-size:var(--font-hint);color:var(--text-color-caption);font-weight:700;border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color);border-radius:var(--_sequence-list-line-item-border-radius);line-height:1em;padding:1px .25em;outline:3px solid rgb(from var(--_sequence-list-line-color) r g b/.1)}:host form section .item .index:before{content:\"\";grid-row:1;grid-column:1;height:100%;width:calc(50% - var(--_sequence-list-line-width) / 2);border-inline-end:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section .item .item-form{grid-area:form;background-color:var(--_sequence-list-item-background);border:1px solid var(--_sequence-list-item-border-color);border-radius:var(--_sequence-list-item-border-radius);padding:calc(var(--app-pane-padding) / 2);display:grid;column-gap:var(--app-pane-padding);row-gap:4px;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"task remove\" \"user user\" \"date date\"}:host form section .item .item-form input{border:1px solid transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);grid-area:task;outline-offset:0;line-height:1em;padding:calc(var(--app-pane-padding) / 4);background-color:transparent;color:var(--text-color-body)}:host form section .item .item-form input:focus{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form yvc-datepicker{--form-element-border-color: transparent;grid-area:date;padding:0;flex-flow:row-reverse}:host form section .item .item-form yuv-organization{--form-element-border-color: transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);border:1px solid var(--form-element-border-color);grid-area:user;flex-flow:row-reverse}:host form section .item .item-form yuv-organization:focus-within{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form .remove{--icon-size: 18px;padding:calc(var(--app-pane-padding) / 4);grid-area:remove;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["placeholder", "situation", "multiselect", "classifications", "readonly", "autofocus", "appendTo", "excludeMe", "withMetadata"], outputs: ["userSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SequenceListComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'yuv-sequence-list', standalone: true, imports: [
120
+ CommonModule,
121
+ TranslateModule,
122
+ FormInputComponent,
123
+ StringComponent,
124
+ OrganizationComponent,
125
+ DueDatePickerComponent,
126
+ ReactiveFormsModule,
127
+ YvcIconModule
128
+ ], providers: [
129
+ {
130
+ provide: NG_VALUE_ACCESSOR,
131
+ useExisting: forwardRef(() => SequenceListComponent),
132
+ multi: true
133
+ },
134
+ {
135
+ provide: NG_VALIDATORS,
136
+ useExisting: forwardRef(() => SequenceListComponent),
137
+ multi: true
138
+ }
139
+ ], host: {
140
+ tabindex: '0'
141
+ }, template: "<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\"\n [disabled]=\"sequenceForm.controls.items.controls.length === 1\"><yvc-icon [svg]=\"icons.delete\"></yvc-icon></button>\n <input [placeholder]=\"'yuv.sequence-list.form.task' | translate\" [maxLength]=\"128\" formControlName=\"title\" />\n <yuv-organization\n [title]=\"'yuv.sequence-list.form.nextAssignee' | translate\"\n [withMetadata]=\"true\"\n formControlName=\"nextAssignee\"> </yuv-organization>\n \n <!-- <yuv-due-date-picker \n [title]=\"'yuv.sequence-list.form.expiryDatetime' | translate\"\n formControlName=\"expiryDatetime\"></yuv-due-date-picker> -->\n </div>\n @if ($last) {\n <button class=\"add after\" type=\"button\" \n [disabled]=\"maxLengthExceeded\"\n (click)=\"addItem()\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n }\n </div>\n }\n </section>\n</form>\n", styles: [":host{--yvc-form-element-border-color: var(--form-element-border-color, var(--text-color-hint));--yvc-form-element-focus-border-color: var(--form-element-focus-border-color, var(--color-accent));--yvc-form-element-focus-outline-color: var(--form-element-focus-outline-color, rgba(var(--color-accent-rgb), .3));--yvc-form-element-focus-outline-with: var(--form-element-focus-outline-with, 2px);--yvc-form-element-disabled-background-color: var(--form-element-disabled-background-color, rgba(from var(--text-color-body) r g b / .1));--yvc-form-element-disabled-opacity: var(--form-element-disabled-opacity, .8);--_sequence-list-item-background: var(--sequence-list-item-background, var(--panel-background));--_sequence-list-item-border-color: var(--sequence-list-item-border-color, var(--panel-divider-color));--_sequence-list-item-border-radius: var(--sequence-list-item-border-radius, calc(var(--app-pane-padding) / 2));--_sequence-list-line-color: var(--sequence-list-line-color, var(--text-color-hint));--_sequence-list-line-width: var(--sequence-list-line-width, 2px);--_sequence-list-line-item-background: var(--sequence-list-line-item-background, var(--panel-background-lightgrey));--_sequence-list-line-item-border-radius: var(--sequence-list-line-item-border-radius, .25em)}:host form section{margin-inline-end:4px}:host form section button.add{--icon-size: 18px;border-radius:var(--_sequence-list-line-item-border-radius);padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--_sequence-list-line-item-background);border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section button.add:focus{outline:2px solid rgb(from var(--color-accent) r g b/.5);outline-offset:-2px;border-color:var(--color-accent)}:host form section .item{display:grid;grid-template-columns:6ch 1fr;grid-template-rows:auto auto;column-gap:1em;grid-template-areas:\"addBefore .\" \"index form\" \"addAfter .\"}:host form section .item.ng-invalid.ng-dirty .item-form{border-color:var(--color-error);outline:3px solid rgb(from var(--color-error) r g b/.5)}:host form section .item .add.before{grid-area:addBefore;justify-self:center}:host form section .item .add.after{grid-area:addAfter;justify-self:center}:host form section .item .index{grid-area:index;display:grid;align-items:center;justify-content:center}:host form section .item .index:after{content:attr(data-index);grid-row:1;grid-column:1;background-color:var(--_sequence-list-line-item-background);font-size:var(--font-hint);color:var(--text-color-caption);font-weight:700;border:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color);border-radius:var(--_sequence-list-line-item-border-radius);line-height:1em;padding:1px .25em;outline:3px solid rgb(from var(--_sequence-list-line-color) r g b/.1)}:host form section .item .index:before{content:\"\";grid-row:1;grid-column:1;height:100%;width:calc(50% - var(--_sequence-list-line-width) / 2);border-inline-end:var(--_sequence-list-line-width) solid var(--_sequence-list-line-color)}:host form section .item .item-form{grid-area:form;background-color:var(--_sequence-list-item-background);border:1px solid var(--_sequence-list-item-border-color);border-radius:var(--_sequence-list-item-border-radius);padding:calc(var(--app-pane-padding) / 2);display:grid;column-gap:var(--app-pane-padding);row-gap:4px;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"task remove\" \"user user\" \"date date\"}:host form section .item .item-form input{border:1px solid transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);grid-area:task;outline-offset:0;line-height:1em;padding:calc(var(--app-pane-padding) / 4);background-color:transparent;color:var(--text-color-body)}:host form section .item .item-form input:focus{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form yvc-datepicker{--form-element-border-color: transparent;grid-area:date;padding:0;flex-flow:row-reverse}:host form section .item .item-form yuv-organization{--form-element-border-color: transparent;border-radius:calc(var(--_sequence-list-item-border-radius) / 2);border:1px solid var(--form-element-border-color);grid-area:user;flex-flow:row-reverse}:host form section .item .item-form yuv-organization:focus-within{border-color:var(--yvc-form-element-focus-border-color);outline:var(--yvc-form-element-focus-outline-with) solid var(--yvc-form-element-focus-outline-color)}:host form section .item .item-form .remove{--icon-size: 18px;padding:calc(var(--app-pane-padding) / 4);grid-area:remove;padding:0}\n"] }]
142
+ }], ctorParameters: () => [], propDecorators: { orgComponent: [{
143
+ type: ViewChild,
144
+ args: [OrganizationComponent]
145
+ }] } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2xpYi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2VxdWVuY2UtbGlzdC9zcmMvbGliL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFLTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFHbkIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFZckY7O0dBRUc7QUFnQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxHQUFHLENBQWtDO0lBc0JyQyxJQUFJLGFBQWE7UUFDZixPQUFPLElB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QUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHdFQVFVLHFCQUFxQixnRENyRWxDLDYvQ0E2QkEseXJKRFVJLFlBQVksOEJBQ1osZUFBZSw0RkFHZixxQkFBcUIsK05BRXJCLG1CQUFtQixtakNBQ25CLGFBQWE7OzRGQW9CSixxQkFBcUI7a0JBL0JqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNkLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsUUFDSzt3QkFDSixRQUFRLEVBQUUsR0FBRztxQkFDZDt3REFLaUMsWUFBWTtzQkFBN0MsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQXJyYXksXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQsIE9yZ2FuaXphdGlvbkNvbXBvbmVudCwgU3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBJQ09OUywgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IER1ZURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2R1ZS1kYXRlLXBpY2tlci9kdWUtZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcXVlbmNlSXRlbSB9IGZyb20gJy4vc2VxdWVuY2UtbGlzdC5pbnRlcmZhY2UnO1xuXG50eXBlIFNlcXVlbmNlRm9ybUl0ZW0gPSBGb3JtR3JvdXA8e1xuICB0aXRsZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgbmV4dEFzc2lnbmVlOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICBleHBpcnlEYXRldGltZTogRm9ybUNvbnRyb2w8YW55Pjtcbn0+O1xudHlwZSBTZXF1ZW5jZUZvcm0gPSBGb3JtR3JvdXA8e1xuICBpdGVtczogRm9ybUFycmF5PFNlcXVlbmNlRm9ybUl0ZW0+O1xufT47XG5cbi8qKlxuICogVGFzayBzZXF1ZW5jZSBsaXN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtc2VxdWVuY2UtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBTdHJpbmdDb21wb25lbnQsXG4gICAgT3JnYW5pemF0aW9uQ29tcG9uZW50LFxuICAgIER1ZURhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBZdmNJY29uTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXF1ZW5jZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NlcXVlbmNlLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlcXVlbmNlTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgIHRhYmluZGV4OiAnMCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgI2ZiID0gaW5qZWN0KE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIpO1xuXG4gIEBWaWV3Q2hpbGQoT3JnYW5pemF0aW9uQ29tcG9uZW50KSBvcmdDb21wb25lbnQhOiBPcmdhbml6YXRpb25Db21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNlcXVlbmNlIGl0ZW1zIChkZWZhdWx0cyB0byAxMDApLlxuICAgKi9cbiAgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigxMDApO1xuICBtYXhMZW5ndGhFeGNlZWRlZCA9IGZhbHNlO1xuXG4gIGljb25zID0ge1xuICAgIGRlbGV0ZTogSUNPTlMuY2xlYXIsXG4gICAgYWRkOiBZVVZfSUNPTlMuYWRkXG4gIH07XG5cbiAgLy8gZHluYW1pYyBmb3JtIGZvciBzZXF1ZW5jZSBpdGVtc1xuICBzZXF1ZW5jZUZvcm06IFNlcXVlbmNlRm9ybSA9IHRoaXMuI2ZiLmdyb3VwKHtcbiAgICBpdGVtczogdGhpcy4jZmIuYXJyYXk8U2VxdWVuY2VGb3JtSXRlbT4oW3RoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCldKVxuICB9KTtcblxuICBlbnRyaWVzOiBTZXF1ZW5jZUl0ZW1bXSA9IFtdO1xuXG4gIGdldCBmb3JtSXRlbUFycmF5KCk6IEZvcm1BcnJheTxTZXF1ZW5jZUZvcm1JdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zIGFzIEZvcm1BcnJheTxTZXF1ZW5jZUZvcm1JdGVtPjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy4jcHJvcGFnYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICAjZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oc2VxdWVuY2VJdGVtPzogU2VxdWVuY2VJdGVtKTogU2VxdWVuY2VGb3JtSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuI2ZiLmdyb3VwKHtcbiAgICAgIHRpdGxlOiBbc2VxdWVuY2VJdGVtPy50aXRsZSB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBuZXh0QXNzaWduZWU6IFtzZXF1ZW5jZUl0ZW0/Lm5leHRBc3NpZ25lZS5pZCB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBleHBpcnlEYXRldGltZTogW3NlcXVlbmNlSXRlbT8uZXhwaXJ5RGF0ZXRpbWUgfHwgdW5kZWZpbmVkXVxuICAgIH0pO1xuICB9XG5cbiAgYWRkSXRlbSgpIHtcbiAgICB0aGlzLnNlcXVlbmNlRm9ybS5jb250cm9scy5pdGVtcy5wdXNoKHRoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCkpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cbiAgXG4gIGFkZEl0ZW1BdChpZHg6IG51bWJlcikge1xuICAgIHRoaXMuc2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLmluc2VydChpZHgsIHRoaXMuI2dlbmVyYXRlU2VxdWVuY2VJdGVtKCkpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cbiAgXG4gIHJlbW92ZUl0ZW0oaWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlcXVlbmNlRm9ybS5jb250cm9scy5pdGVtcy5yZW1vdmVBdChpZHgpO1xuICAgIHRoaXMuI3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICAjdXBkYXRlU3RhdGUoKSB7XG4gICAgY29uc3QgbWwgPSB0aGlzLm1heExlbmd0aCgpO1xuICAgIHRoaXMubWF4TGVuZ3RoRXhjZWVkZWQgPSBtbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9ybUl0ZW1BcnJheS5sZW5ndGggPj0gbWw7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoKTogdm9pZCB7fVxuXG4gICNwcm9wYWdhdGUoKSB7XG4gICAgY29uc3QgcmVzOiBTZXF1ZW5jZUl0ZW1bXSA9IFtdO1xuICAgICh0aGlzLnNlcXVlbmNlRm9ybS52YWx1ZS5pdGVtcyB8fCBbXSkuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBjb25zdCBpOiBTZXF1ZW5jZUl0ZW0gPSB7XG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICBuZXh0QXNzaWduZWU6IGl0ZW0ubmV4dEFzc2lnbmVlXG4gICAgICB9O1xuICAgICAgaWYgKGl0ZW0uZXhwaXJ5RGF0ZXRpbWUpIHtcbiAgICAgICAgaS5leHBpcnlEYXRldGltZSA9IGl0ZW0uZXhwaXJ5RGF0ZXRpbWU7XG4gICAgICB9XG4gICAgICByZXMucHVzaChpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHJlcyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBTZXF1ZW5jZUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcyA9IHZhbHVlIHx8IFtdO1xuICAgIHRoaXMuZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgdGhpcy5mb3JtSXRlbUFycmF5LnB1c2godGhpcy4jZ2VuZXJhdGVTZXF1ZW5jZUl0ZW0oZW50cnkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgbWwgPSB0aGlzLm1heExlbmd0aCgpO1xuICAgIGNvbnN0IG1sRXhjZWVkZWQgPSBtbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9ybUl0ZW1BcnJheS5sZW5ndGggPiBtbDtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMuc2VxdWVuY2VGb3JtLnZhbGlkICYmICFtbEV4Y2VlZGVkOyAgXG4gICAgXG4gICAgcmV0dXJuICF2YWxpZFxuICAgICAgPyB7XG4gICAgICAgICAgc2VxdWVuY2VsaXN0OiB7IFxuICAgICAgICAgICAgaW52YWxpZDogIHRoaXMuc2VxdWVuY2VGb3JtLmludmFsaWQsIFxuICAgICAgICAgICAgbWF4TGVuZ3RoRXhjZWVkZWQ6IG1sRXhjZWVkZWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXF1ZW5jZUZvcm1cIj5cbiAgPHNlY3Rpb24gZm9ybUFycmF5TmFtZT1cIml0ZW1zXCI+XG4gICAgQGZvciAoaXRlbSBvZiBzZXF1ZW5jZUZvcm0uY29udHJvbHMuaXRlbXMuY29udHJvbHM7IHRyYWNrIGl0ZW1JbmRleDsgbGV0IGl0ZW1JbmRleCA9ICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiBbZm9ybUdyb3VwXT1cIml0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZCBiZWZvcmVcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIm1heExlbmd0aEV4Y2VlZGVkXCIgKGNsaWNrKT1cImFkZEl0ZW1BdCgkaW5kZXgpXCI+PHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYWRkXCI+PC95dmMtaWNvbj48L2J1dHRvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmRleFwiIFthdHRyLmRhdGEtaW5kZXhdPVwiaXRlbUluZGV4ICsgMVwiPjwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1mb3JtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkaW5kZXgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwic2VxdWVuY2VGb3JtLmNvbnRyb2xzLml0ZW1zLmNvbnRyb2xzLmxlbmd0aCA9PT0gMVwiPjx5dmMtaWNvbiBbc3ZnXT1cImljb25zLmRlbGV0ZVwiPjwveXZjLWljb24+PC9idXR0b24+XG4gICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS50YXNrJyB8IHRyYW5zbGF0ZVwiIFttYXhMZW5ndGhdPVwiMTI4XCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxuICAgICAgICAgIDx5dXYtb3JnYW5pemF0aW9uXG4gICAgICAgICAgW3RpdGxlXT1cIid5dXYuc2VxdWVuY2UtbGlzdC5mb3JtLm5leHRBc3NpZ25lZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt3aXRoTWV0YWRhdGFdPVwidHJ1ZVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmV4dEFzc2lnbmVlXCI+IDwveXV2LW9yZ2FuaXphdGlvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIDx5dXYtZHVlLWRhdGUtcGlja2VyIFxuICAgICAgICAgIFt0aXRsZV09XCIneXV2LnNlcXVlbmNlLWxpc3QuZm9ybS5leHBpcnlEYXRldGltZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImV4cGlyeURhdGV0aW1lXCI+PC95dXYtZHVlLWRhdGUtcGlja2VyPiAgICAgICAgICAgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKCRsYXN0KSB7XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZCBhZnRlclwiIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibWF4TGVuZ3RoRXhjZWVkZWRcIlxuICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIj48eXZjLWljb24gW3N2Z109XCJpY29ucy5hZGRcIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UtbGlzdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NlcXVlbmNlLWxpc3Qvc3JjL2xpYi9zZXF1ZW5jZS1saXN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUl0ZW0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBleHBpcnlEYXRldGltZT86IERhdGU7XG4gIG5leHRBc3NpZ25lZToge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUxpc3RUZW1wbGF0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2VxdWVuY2U6IFNlcXVlbmNlSXRlbVtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTZXF1ZW5jZUxpc3RUZW1wbGF0ZVNhdmVSZXNwb25zZSB7XG4gIHRlbXBsYXRlTmFtZTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstc2VxdWVuY2UtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2VxdWVuY2UtbGlzdC9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstc2VxdWVuY2UtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './lib/simple-search/simple-search.interface';
2
+ export * from './lib/simple-search/simple-search.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NpbXBsZS1zZWFyY2gvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3NpbXBsZS1zZWFyY2gvc2ltcGxlLXNlYXJjaC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2ltcGxlLXNlYXJjaC9zaW1wbGUtc2VhcmNoLmNvbXBvbmVudCc7XG4iXX0=