@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,115 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { BackendService, Logger } from '@yuuvis/client-core';
4
+ import { forkJoin as observableForkJoin } from 'rxjs';
5
+ import { map as _map } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@yuuvis/client-core";
8
+ /**
9
+ * @ignore
10
+ */
11
+ export class ObjectFormScriptService {
12
+ constructor(logger, backend) {
13
+ this.logger = logger;
14
+ this.backend = backend;
15
+ }
16
+ /**
17
+ * Run a form script.
18
+ * @param scope - the current scripting scope
19
+ * @param script - the script to be executed
20
+ * @param [scriptName] - the scripts name
21
+ */
22
+ runFormScript(scope, script, scriptName) {
23
+ try {
24
+ // Define form script the function
25
+ const formScriptFunction = this.defineFunction('Formscript/' + scriptName, script);
26
+ // run the form script
27
+ const formScriptReturn = formScriptFunction(scope);
28
+ // Check if the form script returns something and may export global scripts
29
+ if (formScriptReturn) {
30
+ this.importGlobalScriptsAndCallInit(scope, formScriptReturn);
31
+ }
32
+ }
33
+ catch (e) {
34
+ if (e instanceof SyntaxError) {
35
+ alert('Syntax error in Form-Script. See console log for details.');
36
+ }
37
+ this.logger.error('Got script error', e);
38
+ }
39
+ }
40
+ /**
41
+ * Define form script function, appending source url as comment.
42
+ * Enables debugging using browser debugging tools (Chrome+Firefox)
43
+ * @see: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources
44
+ *
45
+ * @param name - the name of the script
46
+ * @param script - script to be wrapped in a function
47
+ * @returns the function
48
+ */
49
+ // eslint-disable-next-line @typescript-eslint/ban-types
50
+ defineFunction(name, script) {
51
+ // Appending source url as comment. See https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources
52
+ // Enables debugging using browser debugging tools (Chrome+Firefox)
53
+ // The line feed is needed, if the script has a comment in the last line
54
+ return new Function('scope', script + '\n;//# sourceURL=' + name + '.js');
55
+ }
56
+ /**
57
+ * If the script contains global script, this function will import and run them
58
+ * before running the actual script.
59
+ *
60
+ * @param scope - the current scripting scope
61
+ * @param formScriptReturn - the return value of the actual form script
62
+ */
63
+ importGlobalScriptsAndCallInit(scope, formScriptReturn) {
64
+ if (!formScriptReturn.init) {
65
+ return;
66
+ }
67
+ if (formScriptReturn.uses) {
68
+ // collect the global script exports promises
69
+ const exports = [];
70
+ const globals = [];
71
+ // collect Observables for fetching global scripts
72
+ for (const use of formScriptReturn.uses) {
73
+ globals.push(this.resolveGlobalScript(use, scope));
74
+ }
75
+ observableForkJoin(globals).subscribe((globalReturns) => {
76
+ for (const scriptReturn of globalReturns) {
77
+ exports.push(scriptReturn['exports']);
78
+ }
79
+ // Invoke init function on form script return with the
80
+ // collected exports using javascript apply magic
81
+ formScriptReturn.init.apply(this, exports);
82
+ });
83
+ }
84
+ else {
85
+ // invoke init direct (no use of global scripts)
86
+ formScriptReturn.init();
87
+ }
88
+ }
89
+ /**
90
+ * Fetch global scripts.
91
+ * @param name - the name of the global script
92
+ * @param scope - the current scripting scope
93
+ * @returns
94
+ */
95
+ resolveGlobalScript(name, scope) {
96
+ const requestOptions = {
97
+ headers: new HttpHeaders({
98
+ Accept: 'text/plain'
99
+ }),
100
+ responseType: 'text'
101
+ };
102
+ return this.backend.get(`/script/${name}/script`, undefined, requestOptions).pipe(_map((res) => {
103
+ // define the global function ...
104
+ const globalScript = this.defineFunction('Global/' + name, res);
105
+ // ... and run it
106
+ return globalScript(scope);
107
+ }));
108
+ }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService, deps: [{ token: i1.Logger }, { token: i1.BackendService }], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService }); }
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService, decorators: [{
113
+ type: Injectable
114
+ }], ctorParameters: () => [{ type: i1.Logger }, { type: i1.BackendService }] });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9saWIvb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFjLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJN0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW9CLE1BQWMsRUFBVSxPQUF1QjtRQUEvQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFBSSxDQUFDO0lBRXhFOzs7OztPQUtHO0lBQ0ksYUFBYSxDQUFDLEtBQStCLEVBQUUsTUFBVyxFQUFFLFVBQW1CO1FBQ3BGLElBQUksQ0FBQztZQUNILGtDQUFrQztZQUNsQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFHLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRixzQkFBc0I7WUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCwyRUFBMkU7WUFDM0UsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQzdCLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsd0RBQXdEO0lBQ2hELGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUM5Qyx5SEFBeUg7UUFDekgsbUVBQW1FO1FBQ25FLHdFQUF3RTtRQUN4RSxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyw4QkFBOEIsQ0FBQyxLQUErQixFQUFFLGdCQUFxQjtRQUMzRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLDZDQUE2QztZQUM3QyxNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBRW5CLGtEQUFrRDtZQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBRUQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ3RELEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ0Qsc0RBQXNEO2dCQUN0RCxpREFBaUQ7Z0JBQ2pELGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixnREFBZ0Q7WUFDaEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG1CQUFtQixDQUFDLElBQVksRUFBRSxLQUErQjtRQUN2RSxNQUFNLGNBQWMsR0FBRztZQUNyQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxZQUFZO2FBQ3JCLENBQUM7WUFDRixZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQy9FLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2hCLGlDQUFpQztZQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEUsaUJBQWlCO1lBQ2pCLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXRHVSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFja2VuZFNlcnZpY2UsIExvZ2dlciB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgYXMgX21hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSB9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlciwgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSkgeyB9XG5cbiAgLyoqXG4gICAqIFJ1biBhIGZvcm0gc2NyaXB0LlxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHBhcmFtIHNjcmlwdCAtIHRoZSBzY3JpcHQgdG8gYmUgZXhlY3V0ZWRcbiAgICogQHBhcmFtIFtzY3JpcHROYW1lXSAtIHRoZSBzY3JpcHRzIG5hbWVcbiAgICovXG4gIHB1YmxpYyBydW5Gb3JtU2NyaXB0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIHNjcmlwdDogYW55LCBzY3JpcHROYW1lPzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIERlZmluZSBmb3JtIHNjcmlwdCB0aGUgZnVuY3Rpb25cbiAgICAgIGNvbnN0IGZvcm1TY3JpcHRGdW5jdGlvbiA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0Zvcm1zY3JpcHQvJyArIHNjcmlwdE5hbWUsIHNjcmlwdCk7XG4gICAgICAvLyBydW4gdGhlIGZvcm0gc2NyaXB0XG4gICAgICBjb25zdCBmb3JtU2NyaXB0UmV0dXJuID0gZm9ybVNjcmlwdEZ1bmN0aW9uKHNjb3BlKTtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtIHNjcmlwdCByZXR1cm5zIHNvbWV0aGluZyBhbmQgbWF5IGV4cG9ydCBnbG9iYWwgc2NyaXB0c1xuICAgICAgaWYgKGZvcm1TY3JpcHRSZXR1cm4pIHtcbiAgICAgICAgdGhpcy5pbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGUsIGZvcm1TY3JpcHRSZXR1cm4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcbiAgICAgICAgYWxlcnQoJ1N5bnRheCBlcnJvciBpbiBGb3JtLVNjcmlwdC4gU2VlIGNvbnNvbGUgbG9nIGZvciBkZXRhaWxzLicpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0dvdCBzY3JpcHQgZXJyb3InLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGZvcm0gc2NyaXB0IGZ1bmN0aW9uLCBhcHBlbmRpbmcgc291cmNlIHVybCBhcyBjb21tZW50LlxuICAgKiBFbmFibGVzIGRlYnVnZ2luZyB1c2luZyBicm93c2VyIGRlYnVnZ2luZyB0b29scyAoQ2hyb21lK0ZpcmVmb3gpXG4gICAqIEBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRcbiAgICogQHBhcmFtIHNjcmlwdCAtIHNjcmlwdCB0byBiZSB3cmFwcGVkIGluIGEgZnVuY3Rpb25cbiAgICogQHJldHVybnMgdGhlIGZ1bmN0aW9uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBwcml2YXRlIGRlZmluZUZ1bmN0aW9uKG5hbWU6IHN0cmluZywgc2NyaXB0OiBhbnkpOiBGdW5jdGlvbiB7XG4gICAgLy8gQXBwZW5kaW5nIHNvdXJjZSB1cmwgYXMgY29tbWVudC4gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgIC8vIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcbiAgICAvLyBUaGUgbGluZSBmZWVkIGlzIG5lZWRlZCwgaWYgdGhlIHNjcmlwdCBoYXMgYSBjb21tZW50IGluIHRoZSBsYXN0IGxpbmVcbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKCdzY29wZScsIHNjcmlwdCArICdcXG47Ly8jIHNvdXJjZVVSTD0nICsgbmFtZSArICcuanMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2NyaXB0IGNvbnRhaW5zIGdsb2JhbCBzY3JpcHQsIHRoaXMgZnVuY3Rpb24gd2lsbCBpbXBvcnQgYW5kIHJ1biB0aGVtXG4gICAqIGJlZm9yZSBydW5uaW5nIHRoZSBhY3R1YWwgc2NyaXB0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHBhcmFtIGZvcm1TY3JpcHRSZXR1cm4gLSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhY3R1YWwgZm9ybSBzY3JpcHRcbiAgICovXG4gIHByaXZhdGUgaW1wb3J0R2xvYmFsU2NyaXB0c0FuZENhbGxJbml0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIGZvcm1TY3JpcHRSZXR1cm46IGFueSkge1xuICAgIGlmICghZm9ybVNjcmlwdFJldHVybi5pbml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZvcm1TY3JpcHRSZXR1cm4udXNlcykge1xuICAgICAgLy8gY29sbGVjdCB0aGUgZ2xvYmFsIHNjcmlwdCBleHBvcnRzIHByb21pc2VzXG4gICAgICBjb25zdCBleHBvcnRzOiBhbnlbXSA9IFtdO1xuICAgICAgY29uc3QgZ2xvYmFscyA9IFtdO1xuXG4gICAgICAvLyBjb2xsZWN0IE9ic2VydmFibGVzIGZvciBmZXRjaGluZyBnbG9iYWwgc2NyaXB0c1xuICAgICAgZm9yIChjb25zdCB1c2Ugb2YgZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XG4gICAgICAgIGdsb2JhbHMucHVzaCh0aGlzLnJlc29sdmVHbG9iYWxTY3JpcHQodXNlLCBzY29wZSkpO1xuICAgICAgfVxuXG4gICAgICBvYnNlcnZhYmxlRm9ya0pvaW4oZ2xvYmFscykuc3Vic2NyaWJlKChnbG9iYWxSZXR1cm5zKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgc2NyaXB0UmV0dXJuIG9mIGdsb2JhbFJldHVybnMpIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goc2NyaXB0UmV0dXJuWydleHBvcnRzJ10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEludm9rZSBpbml0IGZ1bmN0aW9uIG9uIGZvcm0gc2NyaXB0IHJldHVybiB3aXRoIHRoZVxuICAgICAgICAvLyBjb2xsZWN0ZWQgZXhwb3J0cyB1c2luZyBqYXZhc2NyaXB0IGFwcGx5IG1hZ2ljXG4gICAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdC5hcHBseSh0aGlzLCBleHBvcnRzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbnZva2UgaW5pdCBkaXJlY3QgKG5vIHVzZSBvZiBnbG9iYWwgc2NyaXB0cylcbiAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgc2NyaXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgZ2xvYmFsIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbFNjcmlwdChuYW1lOiBzdHJpbmcsIHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQWNjZXB0OiAndGV4dC9wbGFpbidcbiAgICAgIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC9zY3JpcHQvJHtuYW1lfS9zY3JpcHRgLCB1bmRlZmluZWQsIHJlcXVlc3RPcHRpb25zKS5waXBlKFxuICAgICAgX21hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gZGVmaW5lIHRoZSBnbG9iYWwgZnVuY3Rpb24gLi4uXG4gICAgICAgIGNvbnN0IGdsb2JhbFNjcmlwdCA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0dsb2JhbC8nICsgbmFtZSwgcmVzKTtcbiAgICAgICAgLy8gLi4uIGFuZCBydW4gaXRcbiAgICAgICAgcmV0dXJuIGdsb2JhbFNjcmlwdChzY29wZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,251 @@
1
+ /**
2
+ * @ignore
3
+ * This class will be injected as scope into form scripts.
4
+ */
5
+ export class ObjectFormScriptingScope {
6
+ /**
7
+ * Constructor
8
+ * @param situation - Current form model situation (could be CREATE, SEARCH or EDIT)
9
+ * @param onScriptingModelChange - callback function to be called when the scripting model changed
10
+ * Be aware to provide an instance method as callback for the scripting scope.
11
+ * @see: https://blog.johnnyreilly.com/2014/04/typescript-instance-methods.html
12
+ *
13
+ * @param api - Plugin API reference
14
+ * @param isTableRowScope - set this to true if the current scripting scope is created for a
15
+ * row editing form from a table element. It will then provide the right parameters for the scripting functions
16
+ */
17
+ // eslint-disable-next-line @typescript-eslint/ban-types
18
+ constructor(situation, onScriptingModelChange, api, isTableRowScope) {
19
+ this.situation = situation;
20
+ this.onScriptingModelChange = onScriptingModelChange;
21
+ this.api = api;
22
+ this.isTableRowScope = isTableRowScope;
23
+ // List of all form fields (elements)
24
+ this.model = {};
25
+ // all data values including invisible elements (READONLY)
26
+ this.data = {};
27
+ // actions passed by BPM forms
28
+ this.actions = {};
29
+ // additional objects provided by the object form
30
+ // used for example to pass dms objects attached to a work item
31
+ // to the script (READONLY)
32
+ // may contain: FormScriptDmsObject, FileEntry
33
+ this.objects = [];
34
+ this.context = { id: '', title: '', objectTypeId: '' };
35
+ }
36
+ /**
37
+ * Sets the internal model and wraps every model element with an observer to be
38
+ * able to track their changes from within a form script
39
+ * @param model
40
+ */
41
+ setModel(model) {
42
+ this.model = {};
43
+ for (const k of Object.keys(model)) {
44
+ this.model[k] = new ScopeElement(model[k], this.onScriptingModelChange);
45
+ }
46
+ }
47
+ /**
48
+ * Returns the observed model. Used for row editing forms of table elements that
49
+ * create their own scripting scope in context of their parent form.
50
+ * @returns the observed scripting scope model
51
+ */
52
+ getModel() {
53
+ return this.model;
54
+ }
55
+ /**
56
+ * Called by the object form when the form model changes.
57
+ * @param change - object with key equals name of the element
58
+ * that changes and value of the new value
59
+ */
60
+ modelChanged(change) {
61
+ // find the changed element in the scopes model
62
+ const propertyName = Object.keys(change)[0];
63
+ if (change[propertyName] === undefined) {
64
+ return;
65
+ }
66
+ if (this.model[propertyName]) {
67
+ const el = this.model[propertyName];
68
+ el.update(change[propertyName], this.model);
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * @ignore
74
+ */
75
+ class ScopeElement {
76
+ // eslint-disable-next-line @typescript-eslint/ban-types
77
+ constructor(element, onScriptingModelChange) {
78
+ this.element = element;
79
+ this.onScriptingModelChange = onScriptingModelChange;
80
+ if (this.element.value === undefined) {
81
+ this.element.value = null;
82
+ }
83
+ if (this.isProxyable(this.element.value)) {
84
+ this.element.value = this.createProxy(this.element.value);
85
+ }
86
+ }
87
+ isProxyable(value, key) {
88
+ return ((typeof value === 'object' || Array.isArray(value)) &&
89
+ value !== null &&
90
+ !(value instanceof Date) &&
91
+ !value.isProxy &&
92
+ (key ? !key.includes('_meta') : true));
93
+ }
94
+ createProxy(value) {
95
+ const handler = {
96
+ set: (target, key, val) => {
97
+ const previousValue = structuredClone(this.element.value);
98
+ if (this.isProxyable(val, key)) {
99
+ target[key] = this.createProxy(val);
100
+ }
101
+ else {
102
+ target[key] = val;
103
+ }
104
+ if (this.hasValueChanged(this.element.value, previousValue) && !key.includes('_meta')) {
105
+ this.onScriptingModelChange(this.element.name, { newValue: structuredClone(this.element.value), name: 'value' });
106
+ }
107
+ return true;
108
+ },
109
+ // This get trap is only used to find out, if an object is a proxy or not.
110
+ get: (target, key) => {
111
+ if (key === 'isProxy') {
112
+ return true;
113
+ }
114
+ return target[key];
115
+ }
116
+ };
117
+ Object.keys(value).forEach((key) => {
118
+ if (this.isProxyable(value[key], key)) {
119
+ value[key] = this.createProxy(value[key]);
120
+ }
121
+ });
122
+ return new Proxy(value, handler);
123
+ }
124
+ hasValueChanged(value1, value2) {
125
+ return JSON.stringify(value1) !== JSON.stringify(value2);
126
+ }
127
+ update(value, model) {
128
+ const newValue = structuredClone(value);
129
+ if (this.hasValueChanged(this.element.value, value)) {
130
+ if (this.isProxyable(value)) {
131
+ this.element.value = this.createProxy(newValue);
132
+ }
133
+ else {
134
+ this.element.value = newValue;
135
+ }
136
+ if (this.element.onchange) {
137
+ this.element.onchange(this, model);
138
+ }
139
+ }
140
+ }
141
+ set value(value) {
142
+ if (this.hasValueChanged(this.element.value, value)) {
143
+ if (this.isProxyable(value)) {
144
+ this.element.value = this.createProxy(value);
145
+ }
146
+ else {
147
+ this.element.value = value;
148
+ }
149
+ this.onScriptingModelChange(this.element.name, { newValue: structuredClone(this.element.value), name: 'value' });
150
+ }
151
+ }
152
+ get value() {
153
+ return this.element.value;
154
+ }
155
+ set onchange(onchange) {
156
+ this.element.onchange = onchange;
157
+ this.onScriptingModelChange(this.element.name, { newValue: onchange, name: 'onchange' });
158
+ }
159
+ get onchange() {
160
+ return this.element.onchange;
161
+ }
162
+ set required(required) {
163
+ this.element.required = required;
164
+ this.onScriptingModelChange(this.element.name, { newValue: required, name: 'required' });
165
+ }
166
+ get required() {
167
+ return this.element.required;
168
+ }
169
+ set readonly(readonly) {
170
+ this.element.readonly = readonly;
171
+ this.onScriptingModelChange(this.element.name, { newValue: readonly, name: 'readonly' });
172
+ }
173
+ get readonly() {
174
+ return this.element.readonly;
175
+ }
176
+ set error(error) {
177
+ this.element.error = error;
178
+ this.onScriptingModelChange(this.element.name, { newValue: error, name: 'error' });
179
+ }
180
+ get error() {
181
+ return this.element.error;
182
+ }
183
+ set onrowedit(onrowedit) {
184
+ this.element.onrowedit = onrowedit;
185
+ this.onScriptingModelChange(this.element.name, { newValue: onrowedit, name: 'onrowedit' });
186
+ }
187
+ get onrowedit() {
188
+ return this.element.onrowedit;
189
+ }
190
+ setList(obj) {
191
+ if (this.element.setList) {
192
+ this.element.setList(obj);
193
+ }
194
+ }
195
+ applyFilter(obj) {
196
+ if (this.element.applyFilter) {
197
+ this.element.applyFilter(obj);
198
+ }
199
+ }
200
+ setFilter(obj) {
201
+ if (this.element.setFilter) {
202
+ this.element.setFilter(obj);
203
+ }
204
+ }
205
+ get name() {
206
+ return this.element.name;
207
+ }
208
+ get qname() {
209
+ return this.element.qname;
210
+ }
211
+ get label() {
212
+ return this.element.label;
213
+ }
214
+ get description() {
215
+ return this.element.description;
216
+ }
217
+ get type() {
218
+ return this.element.type;
219
+ }
220
+ get multiselect() {
221
+ return this.element.multiselect;
222
+ }
223
+ get codesystem() {
224
+ return this.element.codesystem;
225
+ }
226
+ get minlen() {
227
+ return this.element.minLength;
228
+ }
229
+ get maxlen() {
230
+ return this.element.maxLength;
231
+ }
232
+ get classifications() {
233
+ return this.element.classifications;
234
+ }
235
+ get scale() {
236
+ return this.element.scale;
237
+ }
238
+ get precision() {
239
+ return this.element.precision;
240
+ }
241
+ get withtime() {
242
+ return this.element.withtime;
243
+ }
244
+ get elements() {
245
+ return this.element.elements;
246
+ }
247
+ get aliases() {
248
+ return this.element.aliases;
249
+ }
250
+ }
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZm9ybS9zcmMvbGliL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkM7Ozs7Ozs7Ozs7T0FVRztJQUNILHdEQUF3RDtJQUN4RCxZQUFtQixTQUFpQixFQUFVLHNCQUFnQyxFQUFTLEdBQVEsRUFBVSxlQUF5QjtRQUEvRyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFVO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFVO1FBOUJsSSxxQ0FBcUM7UUFDOUIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV2QiwwREFBMEQ7UUFDbkQsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUt0Qiw4QkFBOEI7UUFDdkIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUN6QixpREFBaUQ7UUFDakQsK0RBQStEO1FBQy9ELDJCQUEyQjtRQUMzQiw4Q0FBOEM7UUFDdkMsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQXdELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQWN1QixDQUFDO0lBRXRJOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE1BQVc7UUFDN0IsK0NBQStDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3BDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBQ0Q7O0dBRUc7QUFDSCxNQUFNLFlBQVk7SUFDaEIsd0RBQXdEO0lBQ3hELFlBQW9CLE9BQVksRUFBVSxzQkFBZ0M7UUFBdEQsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUFVLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBVTtRQUN4RSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVSxFQUFFLEdBQVk7UUFDMUMsT0FBTyxDQUNMLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsS0FBSyxLQUFLLElBQUk7WUFDZCxDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQztZQUN4QixDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3RDLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLEVBQUUsQ0FBQyxNQUErQixFQUFFLEdBQVcsRUFBRSxHQUFZLEVBQUUsRUFBRTtnQkFDbEUsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNwQixDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDdEYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNuSCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELDBFQUEwRTtZQUMxRSxHQUFHLEVBQUUsQ0FBQyxNQUErQixFQUFFLEdBQVcsRUFBRSxFQUFFO2dCQUNwRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQWUsRUFBRSxNQUFlO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYyxFQUFFLEtBQVU7UUFDL0IsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQUs7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkgsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FB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TztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaWdub3JlXG4gKiBUaGlzIGNsYXNzIHdpbGwgYmUgaW5qZWN0ZWQgYXMgc2NvcGUgaW50byBmb3JtIHNjcmlwdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUge1xuICAvLyBMaXN0IG9mIGFsbCBmb3JtIGZpZWxkcyAoZWxlbWVudHMpXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XG5cbiAgLy8gYWxsIGRhdGEgdmFsdWVzIGluY2x1ZGluZyBpbnZpc2libGUgZWxlbWVudHMgKFJFQURPTkxZKVxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XG5cbiAgLy8gVGhlIGlkIG9mIHRoZSBjdXJyZW50IERNUy1PYmplY3QgKFJFQURPTkxZKVxuICBwdWJsaWMgb2JqZWN0SWQ/OiBzdHJpbmc7XG5cbiAgLy8gYWN0aW9ucyBwYXNzZWQgYnkgQlBNIGZvcm1zXG4gIHB1YmxpYyBhY3Rpb25zOiBhbnkgPSB7fTtcbiAgLy8gYWRkaXRpb25hbCBvYmplY3RzIHByb3ZpZGVkIGJ5IHRoZSBvYmplY3QgZm9ybVxuICAvLyB1c2VkIGZvciBleGFtcGxlIHRvIHBhc3MgZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gYSB3b3JrIGl0ZW1cbiAgLy8gdG8gdGhlIHNjcmlwdCAoUkVBRE9OTFkpXG4gIC8vIG1heSBjb250YWluOiBGb3JtU2NyaXB0RG1zT2JqZWN0LCBGaWxlRW50cnlcbiAgcHVibGljIG9iamVjdHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmc7IG9iamVjdFR5cGVJZDogc3RyaW5nIH0gPSB7IGlkOiAnJywgdGl0bGU6ICcnLCBvYmplY3RUeXBlSWQ6ICcnIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gLSBDdXJyZW50IGZvcm0gbW9kZWwgc2l0dWF0aW9uIChjb3VsZCBiZSBDUkVBVEUsIFNFQVJDSCBvciBFRElUKVxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxuICAgKiBCZSBhd2FyZSB0byBwcm92aWRlIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZS5cbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYXBpIC0gUGx1Z2luIEFQSSByZWZlcmVuY2VcbiAgICogQHBhcmFtIGlzVGFibGVSb3dTY29wZSAtIHNldCB0aGlzIHRvIHRydWUgaWYgdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlIGlzIGNyZWF0ZWQgZm9yIGFcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2l0dWF0aW9uOiBzdHJpbmcsIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24sIHB1YmxpYyBhcGk6IGFueSwgcHJpdmF0ZSBpc1RhYmxlUm93U2NvcGU/OiBib29sZWFuKSB7fVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXG4gICAqIGFibGUgdG8gdHJhY2sgdGhlaXIgY2hhbmdlcyBmcm9tIHdpdGhpbiBhIGZvcm0gc2NyaXB0XG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKG1vZGVsKSkge1xuICAgICAgdGhpcy5tb2RlbFtrXSA9IG5ldyBTY29wZUVsZW1lbnQobW9kZWxba10sIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsLiBVc2VkIGZvciByb3cgZWRpdGluZyBmb3JtcyBvZiB0YWJsZSBlbGVtZW50cyB0aGF0XG4gICAqIGNyZWF0ZSB0aGVpciBvd24gc2NyaXB0aW5nIHNjb3BlIGluIGNvbnRleHQgb2YgdGhlaXIgcGFyZW50IGZvcm0uXG4gICAqIEByZXR1cm5zIHRoZSBvYnNlcnZlZCBzY3JpcHRpbmcgc2NvcGUgbW9kZWxcbiAgICovXG4gIHB1YmxpYyBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIG9iamVjdCBmb3JtIHdoZW4gdGhlIGZvcm0gbW9kZWwgY2hhbmdlcy5cbiAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCB3aXRoIGtleSBlcXVhbHMgbmFtZSBvZiB0aGUgZWxlbWVudFxuICAgKiB0aGF0IGNoYW5nZXMgYW5kIHZhbHVlIG9mIHRoZSBuZXcgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBtb2RlbENoYW5nZWQoY2hhbmdlOiBhbnkpIHtcbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IE9iamVjdC5rZXlzKGNoYW5nZSlbMF07XG4gICAgaWYgKGNoYW5nZVtwcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2RlbFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXTtcbiAgICAgIGVsLnVwZGF0ZShjaGFuZ2VbcHJvcGVydHlOYW1lXSwgdGhpcy5tb2RlbCk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuY2xhc3MgU2NvcGVFbGVtZW50IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBhbnksIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24pIHtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlOiBhbnksIGtleT86IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgJiZcbiAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgJiZcbiAgICAgICF2YWx1ZS5pc1Byb3h5ICYmXG4gICAgICAoa2V5ID8gIWtleS5pbmNsdWRlcygnX21ldGEnKSA6IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICBzZXQ6ICh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZywgdmFsOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLmNyZWF0ZVByb3h5KHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgcHJldmlvdXNWYWx1ZSkgJiYgIWtleS5pbmNsdWRlcygnX21ldGEnKSkge1xuICAgICAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogc3RydWN0dXJlZENsb25lKHRoaXMuZWxlbWVudC52YWx1ZSksIG5hbWU6ICd2YWx1ZScgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgLy8gVGhpcyBnZXQgdHJhcCBpcyBvbmx5IHVzZWQgdG8gZmluZCBvdXQsIGlmIGFuIG9iamVjdCBpcyBhIHByb3h5IG9yIG5vdC5cbiAgICAgIGdldDogKHRhcmdldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdpc1Byb3h5Jykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWVba2V5XSwga2V5KSkge1xuICAgICAgICB2YWx1ZVtrZXldID0gdGhpcy5jcmVhdGVQcm94eSh2YWx1ZVtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFByb3h5KHZhbHVlLCBoYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzVmFsdWVDaGFuZ2VkKHZhbHVlMTogdW5rbm93biwgdmFsdWUyOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlMSkgIT09IEpTT04uc3RyaW5naWZ5KHZhbHVlMik7XG4gIH1cblxuICB1cGRhdGUodmFsdWU6IHVua25vd24sIG1vZGVsOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgdmFsdWUpKSB7XG4gICAgICBpZiAodGhpcy5pc1Byb3h5YWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5jcmVhdGVQcm94eShuZXdWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVsZW1lbnQub25jaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm9uY2hhbmdlKHRoaXMsIG1vZGVsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7IG5ld1ZhbHVlOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJyB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIHNldCBvbmNoYW5nZShvbmNoYW5nZSkge1xuICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSA9IG9uY2hhbmdlO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogb25jaGFuZ2UsIG5hbWU6ICdvbmNoYW5nZScgfSk7XG4gIH1cblxuICBnZXQgb25jaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5vbmNoYW5nZTtcbiAgfVxuXG4gIHNldCByZXF1aXJlZChyZXF1aXJlZCkge1xuICAgIHRoaXMuZWxlbWVudC5yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogcmVxdWlyZWQsIG5hbWU6ICdyZXF1aXJlZCcgfSk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZWFkb25seShyZWFkb25seSkge1xuICAgIHRoaXMuZWxlbWVudC5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogcmVhZG9ubHksIG5hbWU6ICdyZWFkb25seScgfSk7XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZWFkb25seTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcikge1xuICAgIHRoaXMuZWxlbWVudC5lcnJvciA9IGVycm9yO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogZXJyb3IsIG5hbWU6ICdlcnJvcicgfSk7XG4gIH1cblxuICBnZXQgZXJyb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5lcnJvcjtcbiAgfVxuXG4gIHNldCBvbnJvd2VkaXQob25yb3dlZGl0KSB7XG4gICAgdGhpcy5lbGVtZW50Lm9ucm93ZWRpdCA9IG9ucm93ZWRpdDtcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHsgbmV3VmFsdWU6IG9ucm93ZWRpdCwgbmFtZTogJ29ucm93ZWRpdCcgfSk7XG4gIH1cblxuICBnZXQgb25yb3dlZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xuICB9XG5cbiAgc2V0TGlzdChvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuc2V0TGlzdCkge1xuICAgICAgdGhpcy5lbGVtZW50LnNldExpc3Qob2JqKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUZpbHRlcihvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuYXBwbHlGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZWxlbWVudC5hcHBseUZpbHRlcihvYmopO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbHRlcihvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2V0RmlsdGVyKG9iaik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYW1lO1xuICB9XG5cbiAgZ2V0IHFuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucW5hbWU7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC50eXBlO1xuICB9XG5cbiAgZ2V0IG11bHRpc2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubXVsdGlzZWxlY3Q7XG4gIH1cblxuICBnZXQgY29kZXN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNvZGVzeXN0ZW07XG4gIH1cblxuICBnZXQgbWlubGVuKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWluTGVuZ3RoO1xuICB9XG5cbiAgZ2V0IG1heGxlbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1heExlbmd0aDtcbiAgfVxuXG4gIGdldCBjbGFzc2lmaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbnM7XG4gIH1cblxuICBnZXQgc2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zY2FsZTtcbiAgfVxuXG4gIGdldCBwcmVjaXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wcmVjaXNpb247XG4gIH1cblxuICBnZXQgd2l0aHRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC53aXRodGltZTtcbiAgfVxuXG4gIGdldCBlbGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVsZW1lbnRzO1xuICB9XG5cbiAgZ2V0IGFsaWFzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5hbGlhc2VzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { TranslateService } from '@yuuvis/client-core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Providing an error message when a translation string for an object wasn't found
6
+ */
7
+ export class ObjectFormTranslateService {
8
+ constructor() {
9
+ this.translate = inject(TranslateService);
10
+ }
11
+ /**
12
+ * Set the error label if a translation for this string wasn't provided
13
+ * @param error - error message about a missed translation key
14
+ * @param params
15
+ */
16
+ getErrorLabel(error, params) {
17
+ switch (error) {
18
+ case 'daterange':
19
+ return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);
20
+ case 'daterangeorder':
21
+ return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);
22
+ case 'numberrange':
23
+ return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);
24
+ case 'numberrangeorder':
25
+ return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);
26
+ case 'number':
27
+ return this.translate.instant('yuv.object-form-element.error.number', params);
28
+ case 'precision':
29
+ return this.translate.instant('yuv.object-form-element.error.number.precision', params);
30
+ case 'scale':
31
+ return this.translate.instant('yuv.object-form-element.error.number.scale', params);
32
+ case 'regex':
33
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
34
+ case 'pattern':
35
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
36
+ case 'classificationemail':
37
+ return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);
38
+ case 'classificationphone':
39
+ return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);
40
+ case 'classificationurl':
41
+ return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);
42
+ case 'onlyWhitespaces':
43
+ return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);
44
+ case 'datecontrol':
45
+ return this.translate.instant('yuv.object-form-element.error.date.invalid', params);
46
+ case 'required':
47
+ return this.translate.instant('yuv.object-form-element.error.required', params);
48
+ case 'maxlength':
49
+ return this.translate.instant('yuv.object-form-element.error.maxlength', params);
50
+ case 'minlength':
51
+ return this.translate.instant('yuv.object-form-element.error.minlength', params);
52
+ case 'minmax':
53
+ return this.translate.instant('yuv.object-form-element.error.minmax', params);
54
+ case 'minvalue':
55
+ return this.translate.instant('yuv.object-form-element.error.minvalue', params);
56
+ case 'maxvalue':
57
+ return this.translate.instant('yuv.object-form-element.error.maxvalue', params);
58
+ case 'empty':
59
+ return this.translate.instant('yuv.object-form-element.recent-activities.list.empty', params);
60
+ default:
61
+ return this.translate.instant(error, params);
62
+ }
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormTranslateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormTranslateService, providedIn: 'root' }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormTranslateService, decorators: [{
68
+ type: Injectable,
69
+ args: [{
70
+ providedIn: 'root'
71
+ }]
72
+ }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tdHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9saWIvb2JqZWN0LWZvcm0tdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBQ3ZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlVLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQXVEOUM7SUFyREM7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxLQUFhLEVBQUUsTUFBWTtRQUN2QyxRQUFRLEtBQUssRUFBRSxDQUFDO1lBQ2QsS0FBSyxXQUFXO2dCQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaURBQWlELEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0YsS0FBSyxnQkFBZ0I7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0RBQXNELEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEcsS0FBSyxhQUFhO2dCQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1EQUFtRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdGLEtBQUssa0JBQWtCO2dCQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdEQUF3RCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xHLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hGLEtBQUssV0FBVztnQkFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdEQUFnRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFGLEtBQUssT0FBTztnQkFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RGLEtBQUssT0FBTztnQkFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUFvRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlGLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUFvRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlGLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJEQUEyRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JHLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJEQUEyRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JHLEtBQUssbUJBQW1CO2dCQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHlEQUF5RCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25HLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVGLEtBQUssYUFBYTtnQkFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzREFBc0QsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRztnQkFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzsrR0F2RFUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuLyoqXG4gKiBQcm92aWRpbmcgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgdHJhbnNsYXRpb24gc3RyaW5nIGZvciBhbiBvYmplY3Qgd2Fzbid0IGZvdW5kXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1UcmFuc2xhdGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZXJyb3IgbGFiZWwgaWYgYSB0cmFuc2xhdGlvbiBmb3IgdGhpcyBzdHJpbmcgd2Fzbid0IHByb3ZpZGVkXG4gICAqIEBwYXJhbSBlcnJvciAtIGVycm9yIG1lc3NhZ2UgYWJvdXQgYSBtaXNzZWQgdHJhbnNsYXRpb24ga2V5XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGdldEVycm9yTGFiZWwoZXJyb3I6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XG4gICAgc3dpdGNoIChlcnJvcikge1xuICAgICAgY2FzZSAnZGF0ZXJhbmdlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLmRhdGVyYW5nZS5pbnZhbGlkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2RhdGVyYW5nZW9yZGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLmRhdGVyYW5nZW9yZGVyLmludmFsaWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbnVtYmVycmFuZ2UnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubnVtYmVycmFuZ2UuaW52YWxpZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdudW1iZXJyYW5nZW9yZGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm51bWJlcnJhbmdlb3JkZXIuaW52YWxpZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubnVtYmVyJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ3ByZWNpc2lvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5udW1iZXIucHJlY2lzaW9uJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ3NjYWxlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm51bWJlci5zY2FsZScsIHBhcmFtcyk7XG4gICAgICBjYXNlICdyZWdleCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcucmVnZXgubm9tYXRjaCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdwYXR0ZXJuJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy5yZWdleC5ub21hdGNoJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2NsYXNzaWZpY2F0aW9uZW1haWwnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLmNsYXNzaWZpY2F0aW9uLmVtYWlsJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2NsYXNzaWZpY2F0aW9ucGhvbmUnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLmNsYXNzaWZpY2F0aW9uLnBob25lJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2NsYXNzaWZpY2F0aW9udXJsJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy5jbGFzc2lmaWNhdGlvbi51cmwnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnb25seVdoaXRlc3BhY2VzJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy53aGl0ZXNwYWNlcycsIHBhcmFtcyk7XG4gICAgICBjYXNlICdkYXRlY29udHJvbCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5kYXRlLmludmFsaWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IucmVxdWlyZWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbWF4bGVuZ3RoJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm1heGxlbmd0aCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdtaW5sZW5ndGgnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubWlubGVuZ3RoJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ21pbm1heCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5taW5tYXgnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbWludmFsdWUnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubWludmFsdWUnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbWF4dmFsdWUnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubWF4dmFsdWUnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnZW1wdHknOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQucmVjZW50LWFjdGl2aXRpZXMubGlzdC5lbXB0eScsIHBhcmFtcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChlcnJvciwgcGFyYW1zKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==