@eo-sdk/client 11.4.0 → 11.5.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  3. package/app/eo-client/eo-client.module.d.ts +4 -5
  4. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  5. package/app/eo-client/index.d.ts +3 -0
  6. package/app/eo-client/index.d.ts.map +1 -1
  7. package/app/eo-client/process-state/filter-label.d.ts +10 -0
  8. package/app/eo-client/process-state/filter-label.d.ts.map +1 -0
  9. package/app/eo-framework/grid/grid.component.d.ts +2 -1
  10. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  11. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -0
  12. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  13. package/app/eo-framework/ui/ui.module.d.ts +10 -11
  14. package/app/eo-framework/ui/ui.module.d.ts.map +1 -1
  15. package/app/eo-framework-core/agent/agent.service.d.ts.map +1 -1
  16. package/app/eo-framework-core/eo-framework-core.module.d.ts +1 -2
  17. package/app/eo-framework-core/eo-framework-core.module.d.ts.map +1 -1
  18. package/app/eo-framework-core/error-handler/error-handler.service.d.ts.map +1 -1
  19. package/assets/_default/config/extend.json +2 -2
  20. package/assets/_default/i18n/de.json +1 -0
  21. package/assets/_default/i18n/en.json +1 -0
  22. package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -6
  23. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +4 -4
  24. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +5 -5
  25. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +5 -5
  26. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  27. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  28. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  29. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  30. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  31. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +6 -6
  32. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  33. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  34. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  35. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  36. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  37. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  38. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  39. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  40. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  41. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  42. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  43. package/esm2022/app/eo-client/eo-client-routing.module.mjs +4 -4
  44. package/esm2022/app/eo-client/eo-client.module.mjs +26 -28
  45. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
  46. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  47. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +4 -4
  48. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +4 -4
  49. package/esm2022/app/eo-client/index.mjs +4 -1
  50. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  51. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +3 -3
  52. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  53. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +4 -4
  54. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +3 -3
  55. package/esm2022/app/eo-client/object-state/object-state.module.mjs +4 -4
  56. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +3 -3
  57. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +4 -4
  58. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +4 -4
  59. package/esm2022/app/eo-client/process-state/filter-label.mjs +11 -0
  60. package/esm2022/app/eo-client/process-state/process-state.component.mjs +3 -3
  61. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
  62. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  63. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  64. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
  65. package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
  66. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +4 -4
  67. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  68. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +3 -3
  69. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  70. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +3 -3
  71. package/esm2022/app/eo-framework/actions/action.module.mjs +4 -4
  72. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  73. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +3 -3
  74. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  75. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +3 -3
  76. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  77. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +3 -3
  78. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -3
  79. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  80. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +3 -3
  81. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  82. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +3 -3
  83. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  84. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +3 -3
  85. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +3 -3
  86. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  87. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +3 -3
  88. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -3
  89. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  90. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  91. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +3 -3
  92. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +3 -3
  93. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +3 -3
  94. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +4 -4
  95. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  96. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +3 -3
  97. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  98. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +3 -3
  99. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +3 -3
  100. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +3 -3
  101. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +3 -3
  102. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  103. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +3 -3
  104. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  105. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  106. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  107. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +3 -3
  108. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -3
  109. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +3 -3
  110. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +3 -3
  111. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  112. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +3 -3
  113. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  114. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  115. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  116. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  117. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -3
  118. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  119. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  120. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  121. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +4 -4
  122. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +4 -4
  123. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  124. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  125. package/esm2022/app/eo-framework/cta/cta.module.mjs +4 -4
  126. package/esm2022/app/eo-framework/eo-framework.module.mjs +4 -4
  127. package/esm2022/app/eo-framework/error/error.module.mjs +4 -4
  128. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +3 -3
  130. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  131. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  132. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  133. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +3 -3
  134. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +3 -3
  135. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +4 -4
  137. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +3 -3
  139. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +6 -6
  140. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  142. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +3 -3
  143. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  144. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  145. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +6 -6
  146. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  147. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  148. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  149. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  151. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  152. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +3 -3
  154. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  155. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  156. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  157. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  158. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +3 -3
  161. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  162. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  163. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  164. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  165. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +5 -5
  167. package/esm2022/app/eo-framework/grid/grid.component.mjs +21 -17
  168. package/esm2022/app/eo-framework/grid/grid.module.mjs +4 -4
  169. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  170. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -3
  171. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  172. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +4 -4
  173. package/esm2022/app/eo-framework/media/content-preview.service.mjs +3 -3
  174. package/esm2022/app/eo-framework/media/media.component.mjs +4 -4
  175. package/esm2022/app/eo-framework/media/media.module.mjs +4 -4
  176. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  178. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +4 -4
  180. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +3 -3
  181. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  182. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +3 -3
  183. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +3 -3
  185. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  186. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +20 -18
  187. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  188. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  189. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  190. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  191. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  192. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +3 -3
  193. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +4 -4
  194. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  195. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +9 -9
  196. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +3 -3
  197. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +3 -3
  198. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +4 -4
  199. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  200. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  201. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  202. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  203. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  204. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  205. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +4 -4
  206. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +4 -4
  208. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  209. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +4 -4
  211. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  212. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/settings/settings.module.mjs +4 -4
  214. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  215. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +3 -3
  217. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +4 -4
  218. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +3 -3
  219. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  220. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +4 -4
  223. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/tree/tree.module.mjs +4 -4
  226. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  227. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +3 -3
  228. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +3 -3
  229. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  230. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
  231. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +4 -4
  232. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +3 -3
  233. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +3 -3
  234. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  235. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  236. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +3 -3
  237. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +3 -3
  238. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  239. package/esm2022/app/eo-framework/ui/ui.module.mjs +17 -28
  240. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +3 -3
  241. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +3 -3
  242. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  243. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +3 -3
  244. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +3 -3
  245. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +3 -3
  246. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +3 -3
  247. package/esm2022/app/eo-framework/util/util.module.mjs +4 -4
  248. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +18 -14
  249. package/esm2022/app/eo-framework-core/api/grid.service.mjs +3 -3
  250. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +3 -3
  251. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +3 -3
  252. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +13 -19
  253. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +4 -4
  254. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +3 -3
  255. package/esm2022/app/eo-framework-core/location/location.service.mjs +3 -3
  256. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +3 -3
  257. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +3 -3
  258. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +3 -3
  259. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +3 -3
  260. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +3 -3
  261. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +12 -12
  262. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +4 -4
  263. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +3 -3
  264. package/esm2022/app/eo-framework-core/references/reference.service.mjs +3 -3
  265. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +3 -3
  266. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +3 -3
  267. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +3 -3
  268. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +3 -3
  269. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +3 -3
  270. package/fesm2022/eo-sdk-client.mjs +898 -896
  271. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  272. package/package.json +17 -17
  273. package/proxy.config.json +5 -0
@@ -199,8 +199,8 @@ export class IdReferenceComponent {
199
199
  this.multiselect = true;
200
200
  }
201
201
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IdReferenceComponent, deps: [{ token: i1.ClipboardService }, { token: i1.SystemService }, { token: i2.ReferenceService }, { token: i1.SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
203
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: IdReferenceComponent, selector: "eo-id-reference", inputs: { readonly: "readonly", multiselect: "multiselect", situation: "situation", contextId: "contextId", exceptionIDs: "exceptionIDs", dataToRender: "dataToRender", reference: "reference", queryFilters: "queryFilters", objectTypesFilter: "objectTypesFilter" }, providers: [
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IdReferenceComponent, deps: [{ token: i1.ClipboardService }, { token: i1.SystemService }, { token: i2.ReferenceService }, { token: i1.SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: IdReferenceComponent, selector: "eo-id-reference", inputs: { readonly: "readonly", multiselect: "multiselect", situation: "situation", contextId: "contextId", exceptionIDs: "exceptionIDs", dataToRender: "dataToRender", reference: "reference", queryFilters: "queryFilters", objectTypesFilter: "objectTypesFilter" }, providers: [
204
204
  {
205
205
  provide: NG_VALUE_ACCESSOR,
206
206
  useExisting: forwardRef(() => IdReferenceComponent),
@@ -211,9 +211,9 @@ export class IdReferenceComponent {
211
211
  useExisting: forwardRef(() => IdReferenceComponent),
212
212
  multi: true
213
213
  }
214
- ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<div class=\"eo-id-reference\" [ngClass]=\"{acInputHidden: !multiselect && _innerValues.length}\">\n <yvc-autocomplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" #autocomplete\n (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"removeItem($event)\"\n (blur)=\"onAutoCompleteBlur()\" [autocompleteValues]=\"autocompleteRes\" field=\"title\" [disabled]=\"readonly\"\n [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <!-- [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\"> -->\n\n <ng-template #chipTemplate let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\"\n [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\n </path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\n <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\n {{item.title || referenceType?.label}}\n </span>\n </span>\n <ng-template #noAccess>\n <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\n </ng-template>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </yvc-autocomplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' |\n translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\" [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\" [subtitle]=\"referenceType?.label\" [(visible)]=\"visibleDialog\"\n [minWidth]=\"577\" [minHeight]=\"590\" [styleClass]=\"'reference-field-dialog'\" #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\" [isDisabled]=\"isDisabled\" [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\" [currentSelection]=\"innerValues\" [clipboard]=\"clipboard\" [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\" [queryFilters]=\"queryFilters\" (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n", styles: [".eo-id-reference{display:flex;align-items:center}.eo-id-reference__element{display:flex;align-self:center;flex-wrap:wrap}.eo-id-reference>button{padding:0}.eo-id-reference>button eo-icon{width:16px;height:16px;margin:auto}::ng-deep .eo-id-reference.acInputHidden .inputToken{width:0!important;margin:0;padding:0}::ng-deep .eo-id-reference.acInputHidden .inputToken input{width:0!important}::ng-deep .reference-field-dialog{width:100%;height:100%}::ng-deep .eo-dialog-content{display:contents!important}::ng-deep .cdk-overlay-pane{height:60%}::ng-deep .deleted-reference-label,::ng-deep .no-access-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;flex-flow:column;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep a.link{color:var(--text-color-caption);pointer-events:all;display:flex}::ng-deep a.link:hover{color:var(--color-accent)}::ng-deep .ref-icon,::ng-deep .ref-type-icon{width:16px;height:16px;color:var(--text-color-caption)}::ng-deep .remove-icon{color:var(--text-color-hint);height:14px;width:14px;flex:0 0 auto}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}yvc-autocomplete{width:100%;border:0;outline:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i7.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i8.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i10.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i11.ReferenceFinderComponent, selector: "eo-reference-finder", inputs: ["isDisabled", "types", "multiselect", "contextId", "exceptionIDs", "queryFilters", "currentSelection", "clipboard"], outputs: ["addDmsObjects"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
214
+ ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<div class=\"eo-id-reference\" [ngClass]=\"{acInputHidden: !multiselect && _innerValues.length}\">\n <yvc-autocomplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" #autocomplete\n (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"removeItem($event)\"\n (blur)=\"onAutoCompleteBlur()\" [autocompleteValues]=\"autocompleteRes\" field=\"title\" [disabled]=\"readonly\"\n [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <!-- [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\"> -->\n\n <ng-template #chipTemplate let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\"\n [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\n </path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\n <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\n {{item.title || referenceType?.label}}\n </span>\n </span>\n <ng-template #noAccess>\n <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\n </ng-template>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </yvc-autocomplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' |\n translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\" [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\" [subtitle]=\"referenceType?.label\" [(visible)]=\"visibleDialog\"\n [minHeight]=\"590\" [styleClass]=\"'reference-field-dialog'\" #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\" [isDisabled]=\"isDisabled\" [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\" [currentSelection]=\"innerValues\" [clipboard]=\"clipboard\" [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\" [queryFilters]=\"queryFilters\" (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n", styles: [".eo-id-reference{display:flex;align-items:center}.eo-id-reference__element{display:flex;align-self:center;flex-wrap:wrap}.eo-id-reference>button{padding:0}.eo-id-reference>button eo-icon{width:16px;height:16px;margin:auto}::ng-deep .eo-id-reference.acInputHidden .inputToken{width:0!important;margin:0;padding:0}::ng-deep .eo-id-reference.acInputHidden .inputToken input{width:0!important}::ng-deep .reference-field-dialog{width:100%;height:100%}::ng-deep .eo-dialog-content{display:contents!important}::ng-deep .cdk-overlay-pane:has(.reference-field-dialog){height:60%;width:577px}::ng-deep .deleted-reference-label,::ng-deep .no-access-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;flex-flow:column;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep a.link{color:var(--text-color-caption);pointer-events:all;display:flex}::ng-deep a.link:hover{color:var(--color-accent)}::ng-deep .ref-icon,::ng-deep .ref-type-icon{width:16px;height:16px;color:var(--text-color-caption)}::ng-deep .remove-icon{color:var(--text-color-hint);height:14px;width:14px;flex:0 0 auto}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}yvc-autocomplete{width:100%;border:0;outline:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i7.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i8.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i10.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i11.ReferenceFinderComponent, selector: "eo-reference-finder", inputs: ["isDisabled", "types", "multiselect", "contextId", "exceptionIDs", "queryFilters", "currentSelection", "clipboard"], outputs: ["addDmsObjects"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IdReferenceComponent, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IdReferenceComponent, decorators: [{
217
217
  type: Component,
218
218
  args: [{ selector: 'eo-id-reference', providers: [
219
219
  {
@@ -226,7 +226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
226
226
  useExisting: forwardRef(() => IdReferenceComponent),
227
227
  multi: true
228
228
  }
229
- ], template: "<div class=\"eo-id-reference\" [ngClass]=\"{acInputHidden: !multiselect && _innerValues.length}\">\n <yvc-autocomplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" #autocomplete\n (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"removeItem($event)\"\n (blur)=\"onAutoCompleteBlur()\" [autocompleteValues]=\"autocompleteRes\" field=\"title\" [disabled]=\"readonly\"\n [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <!-- [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\"> -->\n\n <ng-template #chipTemplate let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\"\n [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\n </path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\n <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\n {{item.title || referenceType?.label}}\n </span>\n </span>\n <ng-template #noAccess>\n <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\n </ng-template>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </yvc-autocomplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' |\n translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\" [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\" [subtitle]=\"referenceType?.label\" [(visible)]=\"visibleDialog\"\n [minWidth]=\"577\" [minHeight]=\"590\" [styleClass]=\"'reference-field-dialog'\" #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\" [isDisabled]=\"isDisabled\" [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\" [currentSelection]=\"innerValues\" [clipboard]=\"clipboard\" [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\" [queryFilters]=\"queryFilters\" (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n", styles: [".eo-id-reference{display:flex;align-items:center}.eo-id-reference__element{display:flex;align-self:center;flex-wrap:wrap}.eo-id-reference>button{padding:0}.eo-id-reference>button eo-icon{width:16px;height:16px;margin:auto}::ng-deep .eo-id-reference.acInputHidden .inputToken{width:0!important;margin:0;padding:0}::ng-deep .eo-id-reference.acInputHidden .inputToken input{width:0!important}::ng-deep .reference-field-dialog{width:100%;height:100%}::ng-deep .eo-dialog-content{display:contents!important}::ng-deep .cdk-overlay-pane{height:60%}::ng-deep .deleted-reference-label,::ng-deep .no-access-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;flex-flow:column;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep a.link{color:var(--text-color-caption);pointer-events:all;display:flex}::ng-deep a.link:hover{color:var(--color-accent)}::ng-deep .ref-icon,::ng-deep .ref-type-icon{width:16px;height:16px;color:var(--text-color-caption)}::ng-deep .remove-icon{color:var(--text-color-hint);height:14px;width:14px;flex:0 0 auto}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}yvc-autocomplete{width:100%;border:0;outline:0!important}\n"] }]
229
+ ], template: "<div class=\"eo-id-reference\" [ngClass]=\"{acInputHidden: !multiselect && _innerValues.length}\">\n <yvc-autocomplete [(ngModel)]=\"innerValues\" [minLength]=\"1\" #autocomplete\n (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"removeItem($event)\"\n (blur)=\"onAutoCompleteBlur()\" [autocompleteValues]=\"autocompleteRes\" field=\"title\" [disabled]=\"readonly\"\n [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <!-- [styleClass]=\"!multiselect && innerValues.length === 1 ? 'xxx' : ''\"> -->\n\n <ng-template #chipTemplate let-item>\n <a *ngIf=\"!item.state || item.state === 'OK'\" class=\"link router-link\"\n [routerLink]=\"['/object', item.id, {outlets: {modal: null}}]\" [queryParams]=\"{type: referenceType.qname}\">\n <svg focusable=\"false\" class=\"ref-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8\n 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\">\n </path>\n </svg>\n </a>\n <eo-icon [objectType]=\"referenceType\" title=\"{{referenceType?.label}}\" class=\"ref-type-icon\" [ngClass]=\"{'deleted-reference-label': item.state && (item.state === 'RECYCLED' || item.state === 'GONE')}\"></eo-icon>\n <span *ngIf=\"!(item.state && (item.state === 'RECYCLED' || item.state === 'GONE')); else deleted\" class=\"label\" eoRtlAware=\"full\">\n <span *ngIf=\"item.title || referenceType?.label; else noAccess\">\n {{item.title || referenceType?.label}}\n </span>\n </span>\n <ng-template #noAccess>\n <span class=\"label no-access-reference-label\">{{('eo.references.noAccess' | translate)}}</span>\n </ng-template>\n <ng-template #deleted>\n <span class=\"label deleted-reference-label\">{{('eo.references.deleted' | translate)}}</span>\n </ng-template>\n </ng-template>\n </yvc-autocomplete>\n\n <ng-template #notFound><span class=\"label\">{{innerValues && innerValues.length ? ('eo.references.not.available' |\n translate) : ''}}</span></ng-template>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\"\n title=\"{{('eo.references.search' | translate) + ' ' + tooltipTypeHint}}\" [disabled]=\"selectionDisabled\"\n (click)=\"showDialog()\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_none.svg'\"></eo-icon>\n </button>\n</div>\n\n<eo-dialog [title]=\"('eo.references.add' | translate)\" [subtitle]=\"referenceType?.label\" [(visible)]=\"visibleDialog\"\n [minHeight]=\"590\" [styleClass]=\"'reference-field-dialog'\" #dialog>\n\n <eo-reference-finder *ngIf=\"dialog.visible\" [isDisabled]=\"isDisabled\" [types]=\"referenceType.qname\"\n [multiselect]=\"multiselect\" [currentSelection]=\"innerValues\" [clipboard]=\"clipboard\" [contextId]=\"contextId\"\n [exceptionIDs]=\"exceptionIDs\" [queryFilters]=\"queryFilters\" (addDmsObjects)=\"paste($event)\">\n </eo-reference-finder>\n</eo-dialog>\n", styles: [".eo-id-reference{display:flex;align-items:center}.eo-id-reference__element{display:flex;align-self:center;flex-wrap:wrap}.eo-id-reference>button{padding:0}.eo-id-reference>button eo-icon{width:16px;height:16px;margin:auto}::ng-deep .eo-id-reference.acInputHidden .inputToken{width:0!important;margin:0;padding:0}::ng-deep .eo-id-reference.acInputHidden .inputToken input{width:0!important}::ng-deep .reference-field-dialog{width:100%;height:100%}::ng-deep .eo-dialog-content{display:contents!important}::ng-deep .cdk-overlay-pane:has(.reference-field-dialog){height:60%;width:577px}::ng-deep .deleted-reference-label,::ng-deep .no-access-reference-label{color:var(--color-error)}::ng-deep .label{display:flex;flex-flow:column;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep .label>span{font-size:var(--font-hint)}::ng-deep .label.rtl{margin-left:1em;margin-right:4px}::ng-deep a.link{color:var(--text-color-caption);pointer-events:all;display:flex}::ng-deep a.link:hover{color:var(--color-accent)}::ng-deep .ref-icon,::ng-deep .ref-type-icon{width:16px;height:16px;color:var(--text-color-caption)}::ng-deep .remove-icon{color:var(--text-color-hint);height:14px;width:14px;flex:0 0 auto}::ng-deep .remove-icon:hover{color:var(--text-color-caption);cursor:pointer}yvc-autocomplete{width:100%;border:0;outline:0!important}\n"] }]
230
230
  }], ctorParameters: () => [{ type: i1.ClipboardService }, { type: i1.SystemService }, { type: i2.ReferenceService }, { type: i1.SearchService }], propDecorators: { readonly: [{
231
231
  type: Input
232
232
  }], multiselect: [{
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
249
249
  }], objectTypesFilter: [{
250
250
  type: Input
251
251
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvaWQtcmVmZXJlbmNlL2lkLXJlZmVyZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9pZC1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQXVCLGlCQUFpQixFQUFpQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNySCxPQUFPLEVBTVUsS0FBSyxFQUNyQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQTRCakQsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsSUFBSSxXQUFXLENBQUMsSUFBd0I7UUFDdEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksWUFBWSxDQUFDLElBQXdCO1FBQ3ZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUks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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs0S0FhUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3FCLGlCQUFpQjtzQkFBM0MsU0FBUzt1QkFBQyxjQUFjO2dCQWVyQixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsU0FBUztzQkFEWixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3JlZmVyZW5jZXMvcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENsaXBib2FyZCxcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgRG1zT2JqZWN0LFxuICBPYmplY3RUeXBlLFxuICBTZWFyY2hSZXN1bHQsIFNlYXJjaFNlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0F1dG9Db21wbGV0ZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRvUmVuZGVySXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0eXBlTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWlkLXJlZmVyZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZFJlZmVyZW5jZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElkUmVmZXJlbmNlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElkUmVmZXJlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgVmFsaWRhdG9yIHtcbiAgcHJpdmF0ZSB2YWx1ZTsgLy8gbW9kZWwgdmFsdWVcbiAgX2lubmVyVmFsdWVzOiBEYXRhVG9SZW5kZXJJdGVtW10gPSBbXTsgLy8gaW5uZXIgbmctbW9kZWwgdmFsdWVcbiAgY2xpcGJvYXJkOiBDbGlwYm9hcmQ7XG4gIHJlZmVyZW5jZVR5cGU6IE9iamVjdFR5cGU7XG4gIHN1YlR5cGVzOiBPYmplY3RUeXBlW107XG4gIHRvb2x0aXBUeXBlSGludDogc3RyaW5nO1xuICB2aXNpYmxlRGlhbG9nID0gZmFsc2U7XG5cbiAgYXV0b2NvbXBsZXRlUmVzO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2l0dWF0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRleHRJZDogc3RyaW5nO1xuICBASW5wdXQoKSBleGNlcHRpb25JRHM6IHN0cmluZ1tdO1xuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvQ29tcGxldGVJbnB1dDogQXV0b0NvbXBsZXRlO1xuXG4gIHNldCBpbm5lclZhbHVlcyhkYXRhOiBEYXRhVG9SZW5kZXJJdGVtW10pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5faW5uZXJWYWx1ZXMgPSBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbm5lclZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5faW5uZXJWYWx1ZXM7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGF0YVRvUmVuZGVyKGRhdGE6IERhdGFUb1JlbmRlckl0ZW1bXSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWVzID0gZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCByZWZlcmVuY2UocmVmOiBhbnkpIHtcbiAgICB0aGlzLnJlZmVyZW5jZVR5cGUgPSByZWYgPyB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHJlZi50eXBlKSA6IG51bGw7XG4gICAgdGhpcy5zdWJUeXBlcyA9IHRoaXMuZ2V0U3ViVHlwZXModGhpcy5yZWZlcmVuY2VUeXBlPy5uYW1lLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcbiAgICB0aGlzLnRvb2x0aXBUeXBlSGludCA9IHRoaXMuY3JlYXRlVG9vbHRpcFR5cGVIaW50KHRoaXMucmVmZXJlbmNlVHlwZSwgdGhpcy5zdWJUeXBlcyk7XG4gIH1cblxuICBASW5wdXQoKSBxdWVyeUZpbHRlcnM6IHtcbiAgICBbZmllbGRRbmFtZTogc3RyaW5nXToge286IHN0cmluZywgdjE6IGFueSwgdjI6IGFueX1cbiAgfTtcblxuICBASW5wdXQoKSBvYmplY3RUeXBlc0ZpbHRlcjogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBnZXRTdWJUeXBlcyh0eXBlTmFtZSwgdHlwZXMpIHtcbiAgICBsZXQgc3ViVHlwZXMgPSBbXTtcbiAgICB0eXBlcy5mb3JFYWNoKG9iamVjdFR5cGUgPT4ge1xuICAgICAgaWYgKCEhb2JqZWN0VHlwZS5zdXBlcnR5cGVzLmZpbmQoc1QgPT4gc1QgPT09IHR5cGVOYW1lKSkge1xuICAgICAgICBzdWJUeXBlcy5wdXNoKG9iamVjdFR5cGUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzdWJUeXBlcztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcFR5cGVIaW50KHJlZmVyZW5jZVR5cGUsIHN1YlR5cGVzID0gW10pIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlVHlwZSA/IGAoJHtbcmVmZXJlbmNlVHlwZS5sYWJlbCwgLi4uc3ViVHlwZXMubWFwKHR5cGVzID0+IHR5cGVzLmxhYmVsKV0uam9pbignLCAnKX0pYCA6ICcnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLCBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHJlZmVyZW5jZVNlcnZpY2U6IFJlZmVyZW5jZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsaXBib2FyZCQuc3Vic2NyaWJlKGNsaXBib2FyZCA9PiAodGhpcy5jbGlwYm9hcmQgPSBjbGlwYm9hcmQpKTtcbiAgICB0aGlzLmNsaXBib2FyZCA9IHRoaXMuY2xpcGJvYXJkU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKSB7XG4gICAgdGhpcy52aXNpYmxlRGlhbG9nID0gIXRoaXMudmlzaWJsZURpYWxvZztcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25EaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXNlbGVjdCA/IGZhbHNlIDogdGhpcy5pbm5lclZhbHVlcy5sZW5ndGg7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMucmVmZXJlbmNlVHlwZSB8fFxuICAgICAgdGhpcy5yZWFkb25seSB8fFxuICAgICAgdGhpcy5jbGlwYm9hcmQuYWN0aW9uID09PSAxIHx8XG4gICAgICAhdGhpcy5jbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNvbnRhaW5zSW5jb3JyZWN0VHlwZXMoXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLFxuICAgICAgICB0aGlzLnJlZmVyZW5jZVR5cGUsXG4gICAgICAgIHRoaXMuc3ViVHlwZXNcbiAgICAgICkgfHxcbiAgICAgIHRoaXMuY29udGFpbnNJbmNvcnJlY3RDb250ZXh0KHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLCB0aGlzLmNvbnRleHRJZClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250YWluc0luY29ycmVjdFR5cGVzKGNsaXBib2FyZEVsZW1lbnRzLCByZWZUeXBlLCBzdWJUeXBlcykge1xuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiAhKGNiRWwudHlwZU5hbWUgPT09IHJlZlR5cGUubmFtZSB8fCBzdWJUeXBlcy5maW5kKHNUID0+IHNULm5hbWUgPT09IGNiRWwudHlwZU5hbWUpKSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnRhaW5zSW5jb3JyZWN0Q29udGV4dChjbGlwYm9hcmRFbGVtZW50cywgY29udGV4dElkKSB7XG4gICAgcmV0dXJuICEhY2xpcGJvYXJkRWxlbWVudHMuZmluZChjYkVsID0+IHtcbiAgICAgIGlmICghY29udGV4dElkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhY2JFbC5jb250ZXh0Rm9sZGVyIHx8IGNiRWwuY29udGV4dEZvbGRlci5pZCAhPT0gY29udGV4dElkO1xuICAgIH0pO1xuICB9XG5cbiAgcGFzdGUoY29udGVudD86IERtc09iamVjdFtdKSB7XG4gICAgdGhpcy5saW5rRG1zT2JqZWN0KGNvbnRlbnQpO1xuICAgIHRoaXMuc2hvd0RpYWxvZygpO1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5rRG1zT2JqZWN0KGNvbnRlbnQ/OiBEbXNPYmplY3RbXSkge1xuICAgIChjb250ZW50IHx8IHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzKS5mb3JFYWNoKChkbXNPYmplY3Q6IERtc09iamVjdCkgPT4ge1xuICAgICAgY29uc3Qge2lkLCB0aXRsZSwgZGVzY3JpcHRpb24sIHR5cGVOYW1lfSA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMucHVzaCh7aWQsIHRpdGxlLCBkZXNjcmlwdGlvbiwgdHlwZU5hbWV9KTtcbiAgICB9KTtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gVXRpbHMudW5pcUJ5KHRoaXMuaW5uZXJWYWx1ZXMsICdpZCcpO1xuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlcy5tYXAoaXYgPT4gaXYuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlc1swXS5pZDtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW0pIHtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaXYgPT4gaXYuaWQgIT09IGl0ZW0uaWQpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm11bHRpc2VsZWN0XG4gICAgICA/IFV0aWxzLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKS5tYXAoaXYgPT4gaXYuaWQpXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmNsZWFySW5uZXJJbnB1dCgpO1xuICAgIH1cbiAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJJbm5lcklucHV0KCkge1xuICAgIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQuY2xlYXJJbnB1dCgpO1xuXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlSW5uZXJWYWx1ZXModGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5uZXJWYWx1ZXModmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaVYgPT4ge1xuICAgICAgLy8gcmVtb3ZlIGlubmVyVmFsdWVzLCB3aGVyZSB0aGUgaWQgd2FzIHJlbW92ZWQgZnJvbSB2YWx1ZVxuICAgICAgcmV0dXJuIHZhbHVlcy5maW5kKHYgPT4gdiA9PT0gaVYuaWQpO1xuICAgIH0pO1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHZhbHVlcy5maWx0ZXIodiA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuaW5uZXJWYWx1ZXMuZmluZChpViA9PiBpVi5pZCA9PT0gdik7XG4gICAgfSk7XG4gICAgaWYgKG5ld1ZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlU2VydmljZS5mZXRjaElEUmVmZXJlbmNlTWV0YURhdGEobmV3VmFsdWVzKS5zdWJzY3JpYmUobmV3SW5uZXJWYWx1ZXMgPT4ge1xuICAgICAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5jb25jYXQobmV3SW5uZXJWYWx1ZXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHsgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gaGFuZGxlciBpbnZva2VkIHdoZW4gYW4gZW50cnkgd2FzIHNlbGVjdGVkIHVzaW5nIHRoZSBhdXRvY29tcGxldGUgaW5wdXRcbiAgb25BdXRvQ29tcGxldGVTZWxlY3QoZXZ0Pykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLmlubmVyVmFsdWVzKSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFt0aGlzLmlubmVyVmFsdWVzXTtcbiAgICB9XG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IFV0aWxzLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKTtcbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXMubWFwKGl2ID0+IGl2LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXNbMF0uaWQ7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgYXV0b2NvbXBsZXRlRm4odGVybTogc3RyaW5nKSB7XG4gICAgbGV0IHE6IGFueSA9IHtcbiAgICAgIGZpZWxkczogWyd0aXRsZScsICdkZXNjcmlwdGlvbicsICd0eXBlJ10sXG4gICAgICB0eXBlczogW3RoaXMucmVmZXJlbmNlVHlwZS5uYW1lXSxcbiAgICAgIHRlcm06IHRlcm0sXG4gICAgICBmaWx0ZXJzOiB0aGlzLnF1ZXJ5RmlsdGVycyxcbiAgICAgIG9wdGlvbnM6IHt3aXRoY29udGV4dDogdHJ1ZSwgaGlnaGxpZ2h0aW5nOiBmYWxzZX1cbiAgICB9O1xuXG4gICAgaWYgKHRoaXMub2JqZWN0VHlwZXNGaWx0ZXIpIHtcbiAgICAgIHEudHlwZXMgPSB0aGlzLm9iamVjdFR5cGVzRmlsdGVyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRleHRJZCkge1xuICAgICAgaWYgKHEuZmlsdGVycykge1xuICAgICAgICBxLmZpbHRlcnMuY29udGV4dGZvbGRlcmlkID0ge3YxOiB0aGlzLmNvbnRleHRJZCwgbzogJ2VxJ307XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxLmZpbHRlcnMgPSB7Y29udGV4dGZvbGRlcmlkOiB7djE6IHRoaXMuY29udGV4dElkLCBvOiAnZXEnfX07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAuZXhlY3V0ZVF1ZXJ5KHEpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgIG1hcChpdGVtID0+IGl0ZW0gPyB0aGlzLnNlYXJjaFNlcnZpY2UuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKGl0ZW0pIDogW10pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSByZXN1bHQuaGl0cy5zbGljZSgwLCAxMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uQXV0b0NvbXBsZXRlQmx1cigpIHtcbiAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3QgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWlkLXJlZmVyZW5jZVwiIFtuZ0NsYXNzXT1cInthY0lucHV0SGlkZGVuOiAhbXVsdGlzZWxlY3QgJiYgX2lubmVyVmFsdWVzLmxlbmd0aH1cIj5cbiAgPHl2Yy1hdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlc1wiIFttaW5MZW5ndGhdPVwiMVwiICNhdXRvY29tcGxldGVcbiAgICAoc3VnZ2VzdGlvblNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVNlbGVjdCgkZXZlbnQpXCIgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJyZW1vdmVJdGVtKCRldmVudClcIlxuICAgIChibHVyKT1cIm9uQXV0b0NvbXBsZXRlQmx1cigpXCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiBmaWVsZD1cInRpdGxlXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiIFttdWx0aXBsZV09XCJ0cnVlXCI+XG5cbiAgICA8IS0tIFtzdHlsZUNsYXNzXT1cIiFtdWx0aXNlbGVjdCAmJiBpbm5lclZhbHVlcy5sZW5ndGggPT09IDEgPyAneHh4JyA6ICcnXCI+IC0tPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjaGlwVGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgICA8YSAqbmdJZj1cIiFpdGVtLnN0YXRlIHx8IGl0ZW0uc3RhdGUgPT09ICdPSydcIiBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIlxuICAgICAgICBbcm91dGVyTGlua109XCJbJy9vYmplY3QnLCBpdGVtLmlkLCB7b3V0bGV0czoge21vZGFsOiBudWxsfX1dXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eXBlOiByZWZlcmVuY2VUeXBlLnFuYW1lfVwiPlxuICAgICAgICA8c3ZnIGZvY3VzYWJsZT1cImZhbHNlXCIgY2xhc3M9XCJyZWYtaWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TThcbiAgICAgICAgMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwiPlxuICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2E+XG4gICAgICA8ZW8taWNvbiBbb2JqZWN0VHlwZV09XCJyZWZlcmVuY2VUeXBlXCIgdGl0bGU9XCJ7e3JlZmVyZW5jZVR5cGU/LmxhYmVsfX1cIiBjbGFzcz1cInJlZi10eXBlLWljb25cIiBbbmdDbGFzc109XCJ7J2RlbGV0ZWQtcmVmZXJlbmNlLWxhYmVsJzogaXRlbS5zdGF0ZSAmJiAoaXRlbS5zdGF0ZSA9PT0gJ1JFQ1lDTEVEJyB8fCBpdGVtLnN0YXRlID09PSAnR09ORScpfVwiPjwvZW8taWNvbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIShpdGVtLnN0YXRlICYmIChpdGVtLnN0YXRlID09PSAnUkVDWUNMRUQnIHx8IGl0ZW0uc3RhdGUgPT09ICdHT05FJykpOyBlbHNlIGRlbGV0ZWRcIiBjbGFzcz1cImxhYmVsXCIgZW9SdGxBd2FyZT1cImZ1bGxcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRpdGxlIHx8IHJlZmVyZW5jZVR5cGU/LmxhYmVsOyBlbHNlIG5vQWNjZXNzXCI+XG4gICAgICAgICAge3tpdGVtLnRpdGxlIHx8IHJlZmVyZW5jZVR5cGU/LmxhYmVsfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0FjY2Vzcz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBuby1hY2Nlc3MtcmVmZXJlbmNlLWxhYmVsXCI+e3soJ2VvLnJlZmVyZW5jZXMubm9BY2Nlc3MnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVsZXRlZD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBkZWxldGVkLXJlZmVyZW5jZS1sYWJlbFwiPnt7KCdlby5yZWZlcmVuY2VzLmRlbGV0ZWQnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPG5nLXRlbXBsYXRlICNub3RGb3VuZD48c3BhbiBjbGFzcz1cImxhYmVsXCI+e3tpbm5lclZhbHVlcyAmJiBpbm5lclZhbHVlcy5sZW5ndGggPyAoJ2VvLnJlZmVyZW5jZXMubm90LmF2YWlsYWJsZScgfFxuICAgICAgdHJhbnNsYXRlKSA6ICcnfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgdGl0bGU9XCJ7eygnZW8ucmVmZXJlbmNlcy5zZWFyY2gnIHwgdHJhbnNsYXRlKSArICcgJyArIHRvb2x0aXBUeXBlSGludH19XCIgW2Rpc2FibGVkXT1cInNlbGVjdGlvbkRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwic2hvd0RpYWxvZygpXCI+XG4gICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbm9uZS5zdmcnXCI+PC9lby1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCIoJ2VvLnJlZmVyZW5jZXMuYWRkJyB8IHRyYW5zbGF0ZSlcIiBbc3VidGl0bGVdPVwicmVmZXJlbmNlVHlwZT8ubGFiZWxcIiBbKHZpc2libGUpXT1cInZpc2libGVEaWFsb2dcIlxuICBbbWluV2lkdGhdPVwiNTc3XCIgW21pbkhlaWdodF09XCI1OTBcIiBbc3R5bGVDbGFzc109XCIncmVmZXJlbmNlLWZpZWxkLWRpYWxvZydcIiAjZGlhbG9nPlxuXG4gIDxlby1yZWZlcmVuY2UtZmluZGVyICpuZ0lmPVwiZGlhbG9nLnZpc2libGVcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW3R5cGVzXT1cInJlZmVyZW5jZVR5cGUucW5hbWVcIlxuICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiIFtjdXJyZW50U2VsZWN0aW9uXT1cImlubmVyVmFsdWVzXCIgW2NsaXBib2FyZF09XCJjbGlwYm9hcmRcIiBbY29udGV4dElkXT1cImNvbnRleHRJZFwiXG4gICAgW2V4Y2VwdGlvbklEc109XCJleGNlcHRpb25JRHNcIiBbcXVlcnlGaWx0ZXJzXT1cInF1ZXJ5RmlsdGVyc1wiIChhZGREbXNPYmplY3RzKT1cInBhc3RlKCRldmVudClcIj5cbiAgPC9lby1yZWZlcmVuY2UtZmluZGVyPlxuPC9lby1kaWFsb2c+XG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvaWQtcmVmZXJlbmNlL2lkLXJlZmVyZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2lkLXJlZmVyZW5jZS9pZC1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQXVCLGlCQUFpQixFQUFpQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNySCxPQUFPLEVBTVUsS0FBSyxFQUNyQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQTRCakQsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsSUFBSSxXQUFXLENBQUMsSUFBd0I7UUFDdEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksWUFBWSxDQUFDLElBQXdCO1FBQ3ZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUks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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs0S0FhUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3FCLGlCQUFpQjtzQkFBM0MsU0FBUzt1QkFBQyxjQUFjO2dCQWVyQixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsU0FBUztzQkFEWixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3JlZmVyZW5jZXMvcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIENsaXBib2FyZCxcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgRG1zT2JqZWN0LFxuICBPYmplY3RUeXBlLFxuICBTZWFyY2hSZXN1bHQsIFNlYXJjaFNlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0F1dG9Db21wbGV0ZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRvUmVuZGVySXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0eXBlTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc3RhdGU/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWlkLXJlZmVyZW5jZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZC1yZWZlcmVuY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZFJlZmVyZW5jZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElkUmVmZXJlbmNlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElkUmVmZXJlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgVmFsaWRhdG9yIHtcbiAgcHJpdmF0ZSB2YWx1ZTsgLy8gbW9kZWwgdmFsdWVcbiAgX2lubmVyVmFsdWVzOiBEYXRhVG9SZW5kZXJJdGVtW10gPSBbXTsgLy8gaW5uZXIgbmctbW9kZWwgdmFsdWVcbiAgY2xpcGJvYXJkOiBDbGlwYm9hcmQ7XG4gIHJlZmVyZW5jZVR5cGU6IE9iamVjdFR5cGU7XG4gIHN1YlR5cGVzOiBPYmplY3RUeXBlW107XG4gIHRvb2x0aXBUeXBlSGludDogc3RyaW5nO1xuICB2aXNpYmxlRGlhbG9nID0gZmFsc2U7XG5cbiAgYXV0b2NvbXBsZXRlUmVzO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2l0dWF0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvbnRleHRJZDogc3RyaW5nO1xuICBASW5wdXQoKSBleGNlcHRpb25JRHM6IHN0cmluZ1tdO1xuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGUnKSBhdXRvQ29tcGxldGVJbnB1dDogQXV0b0NvbXBsZXRlO1xuXG4gIHNldCBpbm5lclZhbHVlcyhkYXRhOiBEYXRhVG9SZW5kZXJJdGVtW10pIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5faW5uZXJWYWx1ZXMgPSBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbm5lclZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5faW5uZXJWYWx1ZXM7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGF0YVRvUmVuZGVyKGRhdGE6IERhdGFUb1JlbmRlckl0ZW1bXSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWVzID0gZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCByZWZlcmVuY2UocmVmOiBhbnkpIHtcbiAgICB0aGlzLnJlZmVyZW5jZVR5cGUgPSByZWYgPyB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHJlZi50eXBlKSA6IG51bGw7XG4gICAgdGhpcy5zdWJUeXBlcyA9IHRoaXMuZ2V0U3ViVHlwZXModGhpcy5yZWZlcmVuY2VUeXBlPy5uYW1lLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcbiAgICB0aGlzLnRvb2x0aXBUeXBlSGludCA9IHRoaXMuY3JlYXRlVG9vbHRpcFR5cGVIaW50KHRoaXMucmVmZXJlbmNlVHlwZSwgdGhpcy5zdWJUeXBlcyk7XG4gIH1cblxuICBASW5wdXQoKSBxdWVyeUZpbHRlcnM6IHtcbiAgICBbZmllbGRRbmFtZTogc3RyaW5nXToge286IHN0cmluZywgdjE6IGFueSwgdjI6IGFueX1cbiAgfTtcblxuICBASW5wdXQoKSBvYmplY3RUeXBlc0ZpbHRlcjogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBnZXRTdWJUeXBlcyh0eXBlTmFtZSwgdHlwZXMpIHtcbiAgICBsZXQgc3ViVHlwZXMgPSBbXTtcbiAgICB0eXBlcy5mb3JFYWNoKG9iamVjdFR5cGUgPT4ge1xuICAgICAgaWYgKCEhb2JqZWN0VHlwZS5zdXBlcnR5cGVzLmZpbmQoc1QgPT4gc1QgPT09IHR5cGVOYW1lKSkge1xuICAgICAgICBzdWJUeXBlcy5wdXNoKG9iamVjdFR5cGUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzdWJUeXBlcztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcFR5cGVIaW50KHJlZmVyZW5jZVR5cGUsIHN1YlR5cGVzID0gW10pIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlVHlwZSA/IGAoJHtbcmVmZXJlbmNlVHlwZS5sYWJlbCwgLi4uc3ViVHlwZXMubWFwKHR5cGVzID0+IHR5cGVzLmxhYmVsKV0uam9pbignLCAnKX0pYCA6ICcnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLCBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHJlZmVyZW5jZVNlcnZpY2U6IFJlZmVyZW5jZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNsaXBib2FyZCQuc3Vic2NyaWJlKGNsaXBib2FyZCA9PiAodGhpcy5jbGlwYm9hcmQgPSBjbGlwYm9hcmQpKTtcbiAgICB0aGlzLmNsaXBib2FyZCA9IHRoaXMuY2xpcGJvYXJkU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKSB7XG4gICAgdGhpcy52aXNpYmxlRGlhbG9nID0gIXRoaXMudmlzaWJsZURpYWxvZztcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25EaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXNlbGVjdCA/IGZhbHNlIDogdGhpcy5pbm5lclZhbHVlcy5sZW5ndGg7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMucmVmZXJlbmNlVHlwZSB8fFxuICAgICAgdGhpcy5yZWFkb25seSB8fFxuICAgICAgdGhpcy5jbGlwYm9hcmQuYWN0aW9uID09PSAxIHx8XG4gICAgICAhdGhpcy5jbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNvbnRhaW5zSW5jb3JyZWN0VHlwZXMoXG4gICAgICAgIHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLFxuICAgICAgICB0aGlzLnJlZmVyZW5jZVR5cGUsXG4gICAgICAgIHRoaXMuc3ViVHlwZXNcbiAgICAgICkgfHxcbiAgICAgIHRoaXMuY29udGFpbnNJbmNvcnJlY3RDb250ZXh0KHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzLCB0aGlzLmNvbnRleHRJZClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250YWluc0luY29ycmVjdFR5cGVzKGNsaXBib2FyZEVsZW1lbnRzLCByZWZUeXBlLCBzdWJUeXBlcykge1xuICAgIHJldHVybiAhIWNsaXBib2FyZEVsZW1lbnRzLmZpbmQoY2JFbCA9PiAhKGNiRWwudHlwZU5hbWUgPT09IHJlZlR5cGUubmFtZSB8fCBzdWJUeXBlcy5maW5kKHNUID0+IHNULm5hbWUgPT09IGNiRWwudHlwZU5hbWUpKSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnRhaW5zSW5jb3JyZWN0Q29udGV4dChjbGlwYm9hcmRFbGVtZW50cywgY29udGV4dElkKSB7XG4gICAgcmV0dXJuICEhY2xpcGJvYXJkRWxlbWVudHMuZmluZChjYkVsID0+IHtcbiAgICAgIGlmICghY29udGV4dElkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhY2JFbC5jb250ZXh0Rm9sZGVyIHx8IGNiRWwuY29udGV4dEZvbGRlci5pZCAhPT0gY29udGV4dElkO1xuICAgIH0pO1xuICB9XG5cbiAgcGFzdGUoY29udGVudD86IERtc09iamVjdFtdKSB7XG4gICAgdGhpcy5saW5rRG1zT2JqZWN0KGNvbnRlbnQpO1xuICAgIHRoaXMuc2hvd0RpYWxvZygpO1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5rRG1zT2JqZWN0KGNvbnRlbnQ/OiBEbXNPYmplY3RbXSkge1xuICAgIChjb250ZW50IHx8IHRoaXMuY2xpcGJvYXJkLmVsZW1lbnRzKS5mb3JFYWNoKChkbXNPYmplY3Q6IERtc09iamVjdCkgPT4ge1xuICAgICAgY29uc3Qge2lkLCB0aXRsZSwgZGVzY3JpcHRpb24sIHR5cGVOYW1lfSA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZXMucHVzaCh7aWQsIHRpdGxlLCBkZXNjcmlwdGlvbiwgdHlwZU5hbWV9KTtcbiAgICB9KTtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gVXRpbHMudW5pcUJ5KHRoaXMuaW5uZXJWYWx1ZXMsICdpZCcpO1xuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlcy5tYXAoaXYgPT4gaXYuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlc1swXS5pZDtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW0pIHtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaXYgPT4gaXYuaWQgIT09IGl0ZW0uaWQpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm11bHRpc2VsZWN0XG4gICAgICA/IFV0aWxzLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKS5tYXAoaXYgPT4gaXYuaWQpXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmNsZWFySW5uZXJJbnB1dCgpO1xuICAgIH1cbiAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJJbm5lcklucHV0KCkge1xuICAgIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQuY2xlYXJJbnB1dCgpO1xuXG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlSW5uZXJWYWx1ZXModGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5uZXJWYWx1ZXModmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5maWx0ZXIoaVYgPT4ge1xuICAgICAgLy8gcmVtb3ZlIGlubmVyVmFsdWVzLCB3aGVyZSB0aGUgaWQgd2FzIHJlbW92ZWQgZnJvbSB2YWx1ZVxuICAgICAgcmV0dXJuIHZhbHVlcy5maW5kKHYgPT4gdiA9PT0gaVYuaWQpO1xuICAgIH0pO1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHZhbHVlcy5maWx0ZXIodiA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuaW5uZXJWYWx1ZXMuZmluZChpViA9PiBpVi5pZCA9PT0gdik7XG4gICAgfSk7XG4gICAgaWYgKG5ld1ZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlU2VydmljZS5mZXRjaElEUmVmZXJlbmNlTWV0YURhdGEobmV3VmFsdWVzKS5zdWJzY3JpYmUobmV3SW5uZXJWYWx1ZXMgPT4ge1xuICAgICAgICB0aGlzLmlubmVyVmFsdWVzID0gdGhpcy5pbm5lclZhbHVlcy5jb25jYXQobmV3SW5uZXJWYWx1ZXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHsgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gaGFuZGxlciBpbnZva2VkIHdoZW4gYW4gZW50cnkgd2FzIHNlbGVjdGVkIHVzaW5nIHRoZSBhdXRvY29tcGxldGUgaW5wdXRcbiAgb25BdXRvQ29tcGxldGVTZWxlY3QoZXZ0Pykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLmlubmVyVmFsdWVzKSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlcyA9IFt0aGlzLmlubmVyVmFsdWVzXTtcbiAgICB9XG4gICAgdGhpcy5pbm5lclZhbHVlcyA9IFV0aWxzLnVuaXFCeSh0aGlzLmlubmVyVmFsdWVzLCAnaWQnKTtcbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXMubWFwKGl2ID0+IGl2LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZXNbMF0uaWQ7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgYXV0b2NvbXBsZXRlRm4odGVybTogc3RyaW5nKSB7XG4gICAgbGV0IHE6IGFueSA9IHtcbiAgICAgIGZpZWxkczogWyd0aXRsZScsICdkZXNjcmlwdGlvbicsICd0eXBlJ10sXG4gICAgICB0eXBlczogW3RoaXMucmVmZXJlbmNlVHlwZS5uYW1lXSxcbiAgICAgIHRlcm06IHRlcm0sXG4gICAgICBmaWx0ZXJzOiB0aGlzLnF1ZXJ5RmlsdGVycyxcbiAgICAgIG9wdGlvbnM6IHt3aXRoY29udGV4dDogdHJ1ZSwgaGlnaGxpZ2h0aW5nOiBmYWxzZX1cbiAgICB9O1xuXG4gICAgaWYgKHRoaXMub2JqZWN0VHlwZXNGaWx0ZXIpIHtcbiAgICAgIHEudHlwZXMgPSB0aGlzLm9iamVjdFR5cGVzRmlsdGVyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRleHRJZCkge1xuICAgICAgaWYgKHEuZmlsdGVycykge1xuICAgICAgICBxLmZpbHRlcnMuY29udGV4dGZvbGRlcmlkID0ge3YxOiB0aGlzLmNvbnRleHRJZCwgbzogJ2VxJ307XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxLmZpbHRlcnMgPSB7Y29udGV4dGZvbGRlcmlkOiB7djE6IHRoaXMuY29udGV4dElkLCBvOiAnZXEnfX07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAuZXhlY3V0ZVF1ZXJ5KHEpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgIG1hcChpdGVtID0+IGl0ZW0gPyB0aGlzLnNlYXJjaFNlcnZpY2UuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKGl0ZW0pIDogW10pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSByZXN1bHQuaGl0cy5zbGljZSgwLCAxMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uQXV0b0NvbXBsZXRlQmx1cigpIHtcbiAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3QgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWlkLXJlZmVyZW5jZVwiIFtuZ0NsYXNzXT1cInthY0lucHV0SGlkZGVuOiAhbXVsdGlzZWxlY3QgJiYgX2lubmVyVmFsdWVzLmxlbmd0aH1cIj5cbiAgPHl2Yy1hdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlc1wiIFttaW5MZW5ndGhdPVwiMVwiICNhdXRvY29tcGxldGVcbiAgICAoc3VnZ2VzdGlvblNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVNlbGVjdCgkZXZlbnQpXCIgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJyZW1vdmVJdGVtKCRldmVudClcIlxuICAgIChibHVyKT1cIm9uQXV0b0NvbXBsZXRlQmx1cigpXCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiBmaWVsZD1cInRpdGxlXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiIFttdWx0aXBsZV09XCJ0cnVlXCI+XG5cbiAgICA8IS0tIFtzdHlsZUNsYXNzXT1cIiFtdWx0aXNlbGVjdCAmJiBpbm5lclZhbHVlcy5sZW5ndGggPT09IDEgPyAneHh4JyA6ICcnXCI+IC0tPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjaGlwVGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgICA8YSAqbmdJZj1cIiFpdGVtLnN0YXRlIHx8IGl0ZW0uc3RhdGUgPT09ICdPSydcIiBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIlxuICAgICAgICBbcm91dGVyTGlua109XCJbJy9vYmplY3QnLCBpdGVtLmlkLCB7b3V0bGV0czoge21vZGFsOiBudWxsfX1dXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eXBlOiByZWZlcmVuY2VUeXBlLnFuYW1lfVwiPlxuICAgICAgICA8c3ZnIGZvY3VzYWJsZT1cImZhbHNlXCIgY2xhc3M9XCJyZWYtaWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TThcbiAgICAgICAgMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwiPlxuICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2E+XG4gICAgICA8ZW8taWNvbiBbb2JqZWN0VHlwZV09XCJyZWZlcmVuY2VUeXBlXCIgdGl0bGU9XCJ7e3JlZmVyZW5jZVR5cGU/LmxhYmVsfX1cIiBjbGFzcz1cInJlZi10eXBlLWljb25cIiBbbmdDbGFzc109XCJ7J2RlbGV0ZWQtcmVmZXJlbmNlLWxhYmVsJzogaXRlbS5zdGF0ZSAmJiAoaXRlbS5zdGF0ZSA9PT0gJ1JFQ1lDTEVEJyB8fCBpdGVtLnN0YXRlID09PSAnR09ORScpfVwiPjwvZW8taWNvbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIShpdGVtLnN0YXRlICYmIChpdGVtLnN0YXRlID09PSAnUkVDWUNMRUQnIHx8IGl0ZW0uc3RhdGUgPT09ICdHT05FJykpOyBlbHNlIGRlbGV0ZWRcIiBjbGFzcz1cImxhYmVsXCIgZW9SdGxBd2FyZT1cImZ1bGxcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRpdGxlIHx8IHJlZmVyZW5jZVR5cGU/LmxhYmVsOyBlbHNlIG5vQWNjZXNzXCI+XG4gICAgICAgICAge3tpdGVtLnRpdGxlIHx8IHJlZmVyZW5jZVR5cGU/LmxhYmVsfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0FjY2Vzcz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBuby1hY2Nlc3MtcmVmZXJlbmNlLWxhYmVsXCI+e3soJ2VvLnJlZmVyZW5jZXMubm9BY2Nlc3MnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVsZXRlZD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBkZWxldGVkLXJlZmVyZW5jZS1sYWJlbFwiPnt7KCdlby5yZWZlcmVuY2VzLmRlbGV0ZWQnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPG5nLXRlbXBsYXRlICNub3RGb3VuZD48c3BhbiBjbGFzcz1cImxhYmVsXCI+e3tpbm5lclZhbHVlcyAmJiBpbm5lclZhbHVlcy5sZW5ndGggPyAoJ2VvLnJlZmVyZW5jZXMubm90LmF2YWlsYWJsZScgfFxuICAgICAgdHJhbnNsYXRlKSA6ICcnfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgdGl0bGU9XCJ7eygnZW8ucmVmZXJlbmNlcy5zZWFyY2gnIHwgdHJhbnNsYXRlKSArICcgJyArIHRvb2x0aXBUeXBlSGludH19XCIgW2Rpc2FibGVkXT1cInNlbGVjdGlvbkRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwic2hvd0RpYWxvZygpXCI+XG4gICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbm9uZS5zdmcnXCI+PC9lby1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCIoJ2VvLnJlZmVyZW5jZXMuYWRkJyB8IHRyYW5zbGF0ZSlcIiBbc3VidGl0bGVdPVwicmVmZXJlbmNlVHlwZT8ubGFiZWxcIiBbKHZpc2libGUpXT1cInZpc2libGVEaWFsb2dcIlxuICBbbWluSGVpZ2h0XT1cIjU5MFwiIFtzdHlsZUNsYXNzXT1cIidyZWZlcmVuY2UtZmllbGQtZGlhbG9nJ1wiICNkaWFsb2c+XG5cbiAgPGVvLXJlZmVyZW5jZS1maW5kZXIgKm5nSWY9XCJkaWFsb2cudmlzaWJsZVwiIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbdHlwZXNdPVwicmVmZXJlbmNlVHlwZS5xbmFtZVwiXG4gICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCIgW2N1cnJlbnRTZWxlY3Rpb25dPVwiaW5uZXJWYWx1ZXNcIiBbY2xpcGJvYXJkXT1cImNsaXBib2FyZFwiIFtjb250ZXh0SWRdPVwiY29udGV4dElkXCJcbiAgICBbZXhjZXB0aW9uSURzXT1cImV4Y2VwdGlvbklEc1wiIFtxdWVyeUZpbHRlcnNdPVwicXVlcnlGaWx0ZXJzXCIgKGFkZERtc09iamVjdHMpPVwicGFzdGUoJGV2ZW50KVwiPlxuICA8L2VvLXJlZmVyZW5jZS1maW5kZXI+XG48L2VvLWRpYWxvZz5cbiJdfQ==
@@ -219,10 +219,10 @@ export class ReferenceFinderComponent {
219
219
  this.searchTerm$.next('*');
220
220
  this.searchInput.nativeElement.focus();
221
221
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderComponent, deps: [{ token: i1.ReferenceFinderService }], target: i0.ɵɵFactoryTarget.Component }); }
223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], animations: [fadeInOut] }); }
222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderComponent, deps: [{ token: i1.ReferenceFinderService }], target: i0.ɵɵFactoryTarget.Component }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ReferenceFinderComponent, selector: "eo-reference-finder", inputs: { isDisabled: "isDisabled", types: "types", multiselect: "multiselect", contextId: "contextId", exceptionIDs: "exceptionIDs", queryFilters: "queryFilters", currentSelection: "currentSelection", clipboard: "clipboard" }, outputs: { addDmsObjects: "addDmsObjects" }, host: { listeners: { "keydown": "onKey($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "entries", predicate: ["entry"], descendants: true, read: ElementRef }], ngImport: i0, template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: ["list", "multiselect", "marked"], outputs: ["selectReference"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], animations: [fadeInOut] }); }
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderComponent, decorators: [{
226
226
  type: Component,
227
227
  args: [{ selector: 'eo-reference-finder', animations: [fadeInOut], template: "\n<section class=\"reference-finder-search--input\">\n <input #searchInput autofocus tabindex=\"1\" (input)=\"searchTerm$.next($event.target.value)\" class=\"search\" type=\"text\" placeholder=\"{{('eo.search.result.term' | translate)}}\"/>\n</section>\n\n<section class=\"reference-finder--content\" *ngIf=\"!searching; else loading\">\n <div class=\"results\">\n <eo-simple-accordion *ngIf=\"clipboardItems.length && !copyOnly\"\n [header]=\"'eo.clipboard.type.copy' | translate\"\n [selected]=\"true\"\n (selectChange)=\"clipboardOpen = $event;\"\n class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"clipboardItems.length && copyOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of clipboardItems\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n <div class=\"padding\"></div>\n\n <eo-simple-accordion *ngIf=\"resultList.length && !searchOnly\" [selected]=\"true\" [header]=\"'eo.search.title' | translate\" class=\"results-accordion\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </eo-simple-accordion>\n\n <section *ngIf=\"resultList.length && searchOnly\">\n <eo-reference-finder-entry *ngFor=\"let list of resultList\" #entry\n [@fadeInOut]\n [list]=\"list\"\n [multiselect]=\"multiselect\"\n (selectReference)=\"selectReference($event)\"\n [marked]=\"list.id === markedItem?.id\"\n >\n </eo-reference-finder-entry>\n </section>\n </div>\n\n <div class=\"cta\">\n <div>\n <button type=\"button\" *ngIf=\"multiselect\" (click)=\"selectAllEntries()\">{{('eo.cta.button.select.all' | translate)}}</button>\n <button type=\"button\" *ngIf=\"multiselect && !searchOnly\" [disabled]=\"isDisabled\" (click)=\"selectCopiedEntries()\">{{('eo.cta.button.select.copy' | translate)}}</button>\n </div>\n <button type=\"button\" class=\"add\" (click)=\"addItems()\" *ngIf=\"!disableAdd\" [@fadeInOut] [class.active]=\"!disableAdd\" [disabled]=\"disableAdd\" [title]=\"'eo.cta.button.add' | translate\">\n {{('eo.cta.button.add' | translate)}}\n </button>\n </div>\n</section>\n\n<ng-template #loading>\n <div class=\"loader-overlay__mask\">\n <eo-loading-spinner class=\"reference__loader\" [size]=\"'large'\"></eo-loading-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.reference-finder-search--input{background-color:var(--color-accent);padding:var(--app-pane-padding);display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:\"search\"}.reference-finder--content{display:contents;align-self:center;justify-items:center}.search{grid-area:search;width:100%;border:0;box-sizing:border-box;padding:calc(var(--app-pane-padding) / 2);font-size:var(--font-title);border:1px var(--panel-background-grey) solid;box-shadow:0 2px 2px #0003}.search-result--hint{font-size:var(--font-caption)}.results{overflow:auto;height:100%;margin:calc(var(--app-pane-padding) / 2);overflow-x:hidden}.results-accordion:nth-child(odd){margin-bottom:10px}.cta{display:flex;align-items:center;justify-content:space-between;padding:var(--app-pane-padding);border-top:1px solid rgba(var(--color-black-rgb),.1)}.add{grid-area:add}.add.active{color:var(--color-white);background-color:var(--color-accent)}.padding{padding:5px}:host ::-webkit-scrollbar{width:5px}:host ::ng-deep .ui-accordion-content{padding:1em 0}.loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s}.loader-overlay__mask .reference__loader{margin:auto}\n"] }]
228
228
  }], ctorParameters: () => [{ type: i1.ReferenceFinderService }], propDecorators: { entries: [{
@@ -15,10 +15,10 @@ export class ReferenceFinderEntryComponent {
15
15
  this.selectReference.emit({ item, add });
16
16
  }
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderEntryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: { list: "list", multiselect: "multiselect", marked: "marked" }, outputs: { selectReference: "selectReference" }, ngImport: i0, template: "<div tabindex=\"-1\" class=\"resultsList\" *ngIf=\"list\" [class.disabled]=\"list?.disabled\" [class.selected]=\"list?.selected\" [class.marked]=\"marked\">\n <a class=\"link\" [href]=\"link\" target=\"_blank\">\n <eo-icon class=\"link\" [iconSrc]=\"'ic_link.svg'\" [iconTitle]=\"'eo.object.details' | translate\"></eo-icon>\n </a>\n <div class=\"content\" [class.singleselect]=\"!multiselect\">\n <div class=\"select\" *ngIf=\"multiselect\" (click)=\"select(list, false, !list?.disabled)\" [class.selected]=\"list?.selected\" [class.disabled]=\"list?.disabled\">\n <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n </div>\n \n <div class=\"details\" [class.width-clipboard]=\"list?.clipboard\"\n (click)=\"select(list, false, !list?.disabled && !list?.selected)\" (dblclick)=\"select(null, true, !list?.disabled)\">\n \n <eo-icon class=\"icon\" [objectType]=\"list?.objectType\" [iconTitle]=\"list?.objectType?.label\"></eo-icon>\n <div class=\"title\">\n {{list?.title}}\n </div>\n <span class=\"extra\" *ngIf=\"list?.contextFolder\">{{'eo.references.search.contextfolder' | translate}}: {{list?.contextFolder?.title}} - {{list?.contextFolder?.description}}</span>\n <div class=\"description\">\n {{list?.description}}\n </div>\n </div>\n </div>\n </div>", styles: [".ui-accordion .ui-accordion-content :host{padding:1rem 0}.resultsList{display:grid;grid-template-columns:2fr auto;grid-template-rows:1fr;grid-template-areas:\"content link\"}.resultsList.disabled{color:#e5e5e5b3!important}.resultsList.selected{background-color:var(--main-background-light)}.resultsList.marked,.resultsList:hover:not(.disabled){background-color:var(--main-background-light);border-radius:2px;cursor:pointer}.resultsList.marked .title,.resultsList.marked .description,.resultsList.marked .icon,.resultsList:hover:not(.disabled) .title,.resultsList:hover:not(.disabled) .description,.resultsList:hover:not(.disabled) .icon{color:var(--text-color-caption)}.link{grid-area:link;align-self:center;margin-right:5px}.content{display:grid;grid-template-columns:auto 2fr;grid-template-rows:1fr;grid-template-areas:\"select details\";grid-area:content;grid-gap:5px}.content.singleselect{grid-template-columns:1fr auto;grid-template-rows:1fr;grid-template-areas:\"details\"}.select{grid-area:select;width:20px;height:20px;cursor:pointer;border:1px solid var(--text-color-hint);border-radius:2px;margin-top:7px;margin-left:5px}.select.disabled:hover{cursor:default}.select:hover:not(.disabled) svg{fill:var(--text-color-body);opacity:.3}.select.selected svg{background:var(--color-primary-3);border-color:var(--color-primary-3)}.select.selected.disabled svg{background:var(--main-background);border-color:var(--main-background)}.details{display:grid;grid-template-columns:.1fr 2fr;grid-template-rows:1fr auto auto;grid-template-areas:\"icon title\" \". description\" \". extra\";grid-area:details;grid-gap:0 5px;margin:5px 0}.clipboard{grid-area:clipboard;align-self:center;margin-right:5px;color:var(--text-color-caption);width:20px}.extra{grid-area:extra;align-self:center;color:var(--text-color-caption);font-style:italic}.clipboard .extra{width:20px}.icon{grid-area:icon;color:var(--text-color-caption)}.disabled .icon{color:var(--main-background)}.title{grid-area:title;font-size:var(--font-subhead);font-weight:700;color:var(--text-color-caption);align-items:center;display:flex;justify-items:center;white-space:nowrap;max-width:460px}.title div:first-child{margin-right:5px}.title .context{font-size:var(--font-caption);font-weight:400;overflow:hidden;text-overflow:ellipsis}.description{grid-area:description;color:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderEntryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ReferenceFinderEntryComponent, selector: "eo-reference-finder-entry", inputs: { list: "list", multiselect: "multiselect", marked: "marked" }, outputs: { selectReference: "selectReference" }, ngImport: i0, template: "<div tabindex=\"-1\" class=\"resultsList\" *ngIf=\"list\" [class.disabled]=\"list?.disabled\" [class.selected]=\"list?.selected\" [class.marked]=\"marked\">\n <a class=\"link\" [href]=\"link\" target=\"_blank\">\n <eo-icon class=\"link\" [iconSrc]=\"'ic_link.svg'\" [iconTitle]=\"'eo.object.details' | translate\"></eo-icon>\n </a>\n <div class=\"content\" [class.singleselect]=\"!multiselect\">\n <div class=\"select\" *ngIf=\"multiselect\" (click)=\"select(list, false, !list?.disabled)\" [class.selected]=\"list?.selected\" [class.disabled]=\"list?.disabled\">\n <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n </div>\n \n <div class=\"details\" [class.width-clipboard]=\"list?.clipboard\"\n (click)=\"select(list, false, !list?.disabled && !list?.selected)\" (dblclick)=\"select(null, true, !list?.disabled)\">\n \n <eo-icon class=\"icon\" [objectType]=\"list?.objectType\" [iconTitle]=\"list?.objectType?.label\"></eo-icon>\n <div class=\"title\">\n {{list?.title}}\n </div>\n <span class=\"extra\" *ngIf=\"list?.contextFolder\">{{'eo.references.search.contextfolder' | translate}}: {{list?.contextFolder?.title}} - {{list?.contextFolder?.description}}</span>\n <div class=\"description\">\n {{list?.description}}\n </div>\n </div>\n </div>\n </div>", styles: [".ui-accordion .ui-accordion-content :host{padding:1rem 0}.resultsList{display:grid;grid-template-columns:2fr auto;grid-template-rows:1fr;grid-template-areas:\"content link\"}.resultsList.disabled{color:#e5e5e5b3!important}.resultsList.selected{background-color:var(--main-background-light)}.resultsList.marked,.resultsList:hover:not(.disabled){background-color:var(--main-background-light);border-radius:2px;cursor:pointer}.resultsList.marked .title,.resultsList.marked .description,.resultsList.marked .icon,.resultsList:hover:not(.disabled) .title,.resultsList:hover:not(.disabled) .description,.resultsList:hover:not(.disabled) .icon{color:var(--text-color-caption)}.link{grid-area:link;align-self:center;margin-right:5px}.content{display:grid;grid-template-columns:auto 2fr;grid-template-rows:1fr;grid-template-areas:\"select details\";grid-area:content;grid-gap:5px}.content.singleselect{grid-template-columns:1fr auto;grid-template-rows:1fr;grid-template-areas:\"details\"}.select{grid-area:select;width:20px;height:20px;cursor:pointer;border:1px solid var(--text-color-hint);border-radius:2px;margin-top:7px;margin-left:5px}.select.disabled:hover{cursor:default}.select:hover:not(.disabled) svg{fill:var(--text-color-body);opacity:.3}.select.selected svg{background:var(--color-primary-3);border-color:var(--color-primary-3)}.select.selected.disabled svg{background:var(--main-background);border-color:var(--main-background)}.details{display:grid;grid-template-columns:.1fr 2fr;grid-template-rows:1fr auto auto;grid-template-areas:\"icon title\" \". description\" \". extra\";grid-area:details;grid-gap:0 5px;margin:5px 0}.clipboard{grid-area:clipboard;align-self:center;margin-right:5px;color:var(--text-color-caption);width:20px}.extra{grid-area:extra;align-self:center;color:var(--text-color-caption);font-style:italic}.clipboard .extra{width:20px}.icon{grid-area:icon;color:var(--text-color-caption)}.disabled .icon{color:var(--main-background)}.title{grid-area:title;font-size:var(--font-subhead);font-weight:700;color:var(--text-color-caption);align-items:center;display:flex;justify-items:center;white-space:nowrap;max-width:460px}.title div:first-child{margin-right:5px}.title .context{font-size:var(--font-caption);font-weight:400;overflow:hidden;text-overflow:ellipsis}.description{grid-area:description;color:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderEntryComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderEntryComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'eo-reference-finder-entry', template: "<div tabindex=\"-1\" class=\"resultsList\" *ngIf=\"list\" [class.disabled]=\"list?.disabled\" [class.selected]=\"list?.selected\" [class.marked]=\"marked\">\n <a class=\"link\" [href]=\"link\" target=\"_blank\">\n <eo-icon class=\"link\" [iconSrc]=\"'ic_link.svg'\" [iconTitle]=\"'eo.object.details' | translate\"></eo-icon>\n </a>\n <div class=\"content\" [class.singleselect]=\"!multiselect\">\n <div class=\"select\" *ngIf=\"multiselect\" (click)=\"select(list, false, !list?.disabled)\" [class.selected]=\"list?.selected\" [class.disabled]=\"list?.disabled\">\n <svg fill=\"#ffffff\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n </div>\n \n <div class=\"details\" [class.width-clipboard]=\"list?.clipboard\"\n (click)=\"select(list, false, !list?.disabled && !list?.selected)\" (dblclick)=\"select(null, true, !list?.disabled)\">\n \n <eo-icon class=\"icon\" [objectType]=\"list?.objectType\" [iconTitle]=\"list?.objectType?.label\"></eo-icon>\n <div class=\"title\">\n {{list?.title}}\n </div>\n <span class=\"extra\" *ngIf=\"list?.contextFolder\">{{'eo.references.search.contextfolder' | translate}}: {{list?.contextFolder?.title}} - {{list?.contextFolder?.description}}</span>\n <div class=\"description\">\n {{list?.description}}\n </div>\n </div>\n </div>\n </div>", styles: [".ui-accordion .ui-accordion-content :host{padding:1rem 0}.resultsList{display:grid;grid-template-columns:2fr auto;grid-template-rows:1fr;grid-template-areas:\"content link\"}.resultsList.disabled{color:#e5e5e5b3!important}.resultsList.selected{background-color:var(--main-background-light)}.resultsList.marked,.resultsList:hover:not(.disabled){background-color:var(--main-background-light);border-radius:2px;cursor:pointer}.resultsList.marked .title,.resultsList.marked .description,.resultsList.marked .icon,.resultsList:hover:not(.disabled) .title,.resultsList:hover:not(.disabled) .description,.resultsList:hover:not(.disabled) .icon{color:var(--text-color-caption)}.link{grid-area:link;align-self:center;margin-right:5px}.content{display:grid;grid-template-columns:auto 2fr;grid-template-rows:1fr;grid-template-areas:\"select details\";grid-area:content;grid-gap:5px}.content.singleselect{grid-template-columns:1fr auto;grid-template-rows:1fr;grid-template-areas:\"details\"}.select{grid-area:select;width:20px;height:20px;cursor:pointer;border:1px solid var(--text-color-hint);border-radius:2px;margin-top:7px;margin-left:5px}.select.disabled:hover{cursor:default}.select:hover:not(.disabled) svg{fill:var(--text-color-body);opacity:.3}.select.selected svg{background:var(--color-primary-3);border-color:var(--color-primary-3)}.select.selected.disabled svg{background:var(--main-background);border-color:var(--main-background)}.details{display:grid;grid-template-columns:.1fr 2fr;grid-template-rows:1fr auto auto;grid-template-areas:\"icon title\" \". description\" \". extra\";grid-area:details;grid-gap:0 5px;margin:5px 0}.clipboard{grid-area:clipboard;align-self:center;margin-right:5px;color:var(--text-color-caption);width:20px}.extra{grid-area:extra;align-self:center;color:var(--text-color-caption);font-style:italic}.clipboard .extra{width:20px}.icon{grid-area:icon;color:var(--text-color-caption)}.disabled .icon{color:var(--main-background)}.title{grid-area:title;font-size:var(--font-subhead);font-weight:700;color:var(--text-color-caption);align-items:center;display:flex;justify-items:center;white-space:nowrap;max-width:460px}.title div:first-child{margin-right:5px}.title .context{font-size:var(--font-caption);font-weight:400;overflow:hidden;text-overflow:ellipsis}.description{grid-area:description;color:var(--text-color-caption)}\n"] }]
24
24
  }], ctorParameters: () => [], propDecorators: { list: [{
@@ -94,10 +94,10 @@ export class ReferenceFinderService {
94
94
  link: this.getReferenceUrl(id)
95
95
  };
96
96
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderService, deps: [{ token: i1.SearchService }, { token: i1.SystemService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
98
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderService, providedIn: 'root' }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderService, deps: [{ token: i1.SearchService }, { token: i1.SystemService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
98
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderService, providedIn: 'root' }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ReferenceFinderService, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ReferenceFinderService, decorators: [{
101
101
  type: Injectable,
102
102
  args: [{
103
103
  providedIn: 'root'
@@ -129,8 +129,8 @@ export class NumberComponent {
129
129
  }
130
130
  return ret;
131
131
  }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NumberComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NumberComponent, selector: "eo-number", inputs: { scale: "scale", precision: "precision", grouping: "grouping", pattern: "pattern", readonly: "readonly" }, providers: [
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NumberComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: NumberComponent, selector: "eo-number", inputs: { scale: "scale", precision: "precision", grouping: "grouping", pattern: "pattern", readonly: "readonly" }, providers: [
134
134
  {
135
135
  provide: NG_VALUE_ACCESSOR,
136
136
  useExisting: forwardRef(() => NumberComponent),
@@ -143,7 +143,7 @@ export class NumberComponent {
143
143
  }
144
144
  ], ngImport: i0, template: "<input type=\"text\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\"\n [readonly]=\"readonly\"\n (ngModelChange)=\"onValueChange($event)\">\n\n", styles: [":host input{width:100%;border:0;background-color:transparent;padding:.25em}\n"], dependencies: [{ 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NumberComponent, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NumberComponent, decorators: [{
147
147
  type: Component,
148
148
  args: [{ selector: 'eo-number', providers: [
149
149
  {
@@ -91,8 +91,8 @@ export class NumberRangeComponent {
91
91
  }
92
92
  return (this.isValid) ? null : err;
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NumberRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NumberRangeComponent, selector: "eo-number-range", inputs: { scale: "scale", precision: "precision", grouping: "grouping", pattern: "pattern", readonly: "readonly" }, host: { properties: { "class.swap": "this.swapInputs" }, classAttribute: "form-element-range" }, providers: [
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NumberRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: NumberRangeComponent, selector: "eo-number-range", inputs: { scale: "scale", precision: "precision", grouping: "grouping", pattern: "pattern", readonly: "readonly" }, host: { properties: { "class.swap": "this.swapInputs" }, classAttribute: "form-element-range" }, providers: [
96
96
  {
97
97
  provide: NG_VALUE_ACCESSOR,
98
98
  useExisting: forwardRef(() => NumberRangeComponent),
@@ -105,7 +105,7 @@ export class NumberRangeComponent {
105
105
  }
106
106
  ], ngImport: i0, template: "<form class=\"eo-number-range\" [formGroup]=\"rangeForm\">\n\n <eo-number *ngIf=\"searchOption === 'gtelte'\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [pattern]=\"pattern\"\n formControlName=\"numberValueFrom\"></eo-number>\n\n <yvc-dropdown class=\"no-trigger\" [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{standalone: true}\"\n [options]=\"availableSearchOptions\"></yvc-dropdown>\n\n <eo-number [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [pattern]=\"pattern\"\n formControlName=\"numberValue\"></eo-number>\n\n</form>\n", styles: [".eo-number-range{display:flex;flex-flow:row;align-items:center}.eo-number-range yvc-dropdown{border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background)}.eo-number-range yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-number-range eo-number{flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "component", type: i3.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "component", type: i4.NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }] }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NumberRangeComponent, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NumberRangeComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ selector: 'eo-number-range', providers: [
111
111
  {
@@ -158,8 +158,8 @@ export class OrganizationComponent {
158
158
  this.multiselect = true;
159
159
  }
160
160
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: OrganizationComponent, deps: [{ token: i1.BackendService }, { token: i1.TranslateService }, { token: i1.SystemService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: OrganizationComponent, selector: "eo-organization", inputs: { removeCurrentUser: "removeCurrentUser", situation: "situation", multiselect: "multiselect", readonly: "readonly", dataMeta: "dataMeta", placeholder: "placeholder", exceptions: "exceptions", filterObject: "filterObject" }, outputs: { onValueResolved: "onValueResolved", onDataMetaChanged: "onDataMetaChanged" }, host: { properties: { "class.readonly": "this._readonly" } }, providers: [
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OrganizationComponent, deps: [{ token: i1.BackendService }, { token: i1.TranslateService }, { token: i1.SystemService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: OrganizationComponent, selector: "eo-organization", inputs: { removeCurrentUser: "removeCurrentUser", situation: "situation", multiselect: "multiselect", readonly: "readonly", dataMeta: "dataMeta", placeholder: "placeholder", exceptions: "exceptions", filterObject: "filterObject" }, outputs: { onValueResolved: "onValueResolved", onDataMetaChanged: "onDataMetaChanged" }, host: { properties: { "class.readonly": "this._readonly" } }, providers: [
163
163
  {
164
164
  provide: NG_VALUE_ACCESSOR,
165
165
  useExisting: forwardRef(() => OrganizationComponent),
@@ -170,9 +170,9 @@ export class OrganizationComponent {
170
170
  useExisting: forwardRef(() => OrganizationComponent),
171
171
  multi: true
172
172
  }
173
- ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n \n </yvc-autocomplete>\n</div>", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"], dependencies: [{ kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["svg", "svgSrc"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
173
+ ], viewQueries: [{ propertyName: "autoCompleteInput", first: true, predicate: ["autocomplete"], descendants: true }], ngImport: i0, template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span class=\"inactive\"\n *ngIf=\"(item.firstname?.length && item.lastname?.length && !item.active)\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n </yvc-autocomplete>\n</div>\n", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}.eo-organization .inactive{text-decoration:line-through}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"], dependencies: [{ kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["svg", "svgSrc"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
174
174
  }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: OrganizationComponent, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OrganizationComponent, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'eo-organization', providers: [
178
178
  {
@@ -185,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
185
185
  useExisting: forwardRef(() => OrganizationComponent),
186
186
  multi: true
187
187
  }
188
- ], template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n \n </yvc-autocomplete>\n</div>", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"] }]
188
+ ], template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span class=\"inactive\"\n *ngIf=\"(item.firstname?.length && item.lastname?.length && !item.active)\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n </yvc-autocomplete>\n</div>\n", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}.eo-organization .inactive{text-decoration:line-through}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"] }]
189
189
  }], ctorParameters: () => [{ type: i1.BackendService }, { type: i1.TranslateService }, { type: i1.SystemService }, { type: i1.UserService }], propDecorators: { autoCompleteInput: [{
190
190
  type: ViewChild,
191
191
  args: ['autocomplete']
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
213
213
  }], filterObject: [{
214
214
  type: Input
215
215
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvb3JnYW5pemF0aW9uL29yZ2FuaXphdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL29yZ2FuaXphdGlvbi9vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGFBQWEsRUFBRSxpQkFBaUIsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBK0QsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRWpHLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBZSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUEwQnRGLE1BQU0sT0FBTyxxQkFBcUI7SUE2QmhDLElBQWEsaUJBQWlCLENBQUMsQ0FBVTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUNoQyxDQUFDO0lBR0QsSUFBYSxRQUFRLENBQUMsQ0FBVTtRQUM5QixJQUFJLENBQUMsU0FBUyxH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RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt3S0FJMEIsaUJBQWlCO3NCQUEzQyxTQUFTO3VCQUFDLGNBQWM7Z0JBVU0sU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBRzdCLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBWU0saUJBQWlCO3NCQUE3QixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxRQUFRO3NCQUFwQixLQUFLO2dCQU1PLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QXV0b0NvbXBsZXRlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7Zm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uRmlsdGVyIHtcbiAgdHlwZT86IHN0cmluZzsgICAgICAgIC8vIFRoZSB0eXBlIG9mIHRoZSBvcmdhbml6YXRpb24gdW5pdCAoJ1VTRVInIG9yICdHUk9VUCcpIHRvIGJlIGRpc3BsYXllZFxuICBncm91cHM/OiBzdHJpbmdbXTsgICAgLy8gYW4gYXJyYXkgb2YgZ3JvdXAgbmFtZXMgdG8gZmlsdGVyIGF1dG9jb21wbGV0ZSByZXN1bHRzIHdpdGhcbiAgcm9sZXM/OiBzdHJpbmdbXTsgICAgIC8vIGFuIGFycmF5IG9mIHJvbGUgbmFtZXMgdG8gZmlsdGVyIGF1dG9jb21wbGV0ZSByZXN1bHRzIHdpdGhcbiAgYWN0aXZlb25seT86IGJvb2xlYW47IC8vIHdoZXRoZXIgb3Igbm90IHRvIGZldGNoIG9ubHkgYWN0aXZlIG9yZ2FuaXphdGlvbiBvYmplY3RzXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9yZ2FuaXphdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vcmdhbml6YXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPcmdhbml6YXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPcmdhbml6YXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudENoZWNrZWQsIFZhbGlkYXRvciB7XG5cbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b0NvbXBsZXRlSW5wdXQ6IEF1dG9Db21wbGV0ZTtcblxuICBpY29uID0ge1xuICAgIHVzZXI6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjBcIj48cGF0aCBkPVwiTTQ4MC00ODBxLTYwIDAtMTAyLTQydC00Mi0xMDJxMC02MCA0Mi0xMDJ0MTAyLTQycTYwIDAgMTAyIDQydDQyIDEwMnEwIDYwLTQyIDEwMnQtMTAyIDQyWk0xOTItMTkydi05NnEwLTIzIDEyLjUtNDMuNVQyMzktMzY2cTU1LTMyIDExNi41LTQ5VDQ4MC00MzJxNjMgMCAxMjQuNSAxN1Q3MjEtMzY2cTIyIDEzIDM0LjUgMzR0MTIuNSA0NHY5NkgxOTJaXCIvPjwvc3ZnPicsXG4gICAgZ3JvdXA6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjBcIj48cGF0aCBkPVwiTTk2LTE5MnYtOTJxMC0yNiAxMi41LTQ3LjVUMTQzLTM2NnE1NC0zMiAxMTQuNS00OVQzODQtNDMycTY2IDAgMTI2LjUgMTdUNjI1LTM2NnEyMiAxMyAzNC41IDM0LjVUNjcyLTI4NHY5Mkg5NlptNjQ4IDB2LTkycTAtNDItMTkuNS03OFQ2NzItNDIxcTM5IDggNzUuNSAyMS41VDgxNy0zNjZxMjIgMTMgMzQuNSAzNC41VDg2NC0yODR2OTJINzQ0Wk0zODQtNDgwcS02MCAwLTEwMi00MnQtNDItMTAycTAtNjAgNDItMTAydDEwMi00MnE2MCAwIDEwMiA0MnQ0MiAxMDJxMCA2MC00MiAxMDJ0LTEwMiA0MlptMzM2LTE0NHEwIDYwLTQyIDEwMnQtMTAyIDQycS04IDAtMTUtLjV0LTE1LTIuNXEyNS0yOSAzOS41LTY0LjVUNjAwLTYyNHEwLTQxLTE0LjUtNzYuNVQ1NDYtNzY1cTgtMiAxNS0yLjV0MTUtLjVxNjAgMCAxMDIgNDJ0NDIgMTAyWlwiLz48L3N2Zz4nXG4gIH1cblxuICByZW1vdGVVcmwgPSAnL29yZ2FuaXphdGlvbi9xdWVyeT9xPSc7XG4gIG1pbkxlbmd0aCA9IDI7XG4gIHdpbGRDYXJkID0gJyonO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JykgX3JlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBvblZhbHVlUmVzb2x2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIGVtaXR0ZWQgd2hlbiB2YWx1ZSBjaGFuZ2VkIGhvbGRpbmcgdGhlIHJlc29sdmVkIGRhdGFfbWV0YVxuICBAT3V0cHV0KClcbiAgb25EYXRhTWV0YUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgYXV0b2NvbXBsZXRlUmVzOiBhbnlbXTtcbiAgLy8gbW9kZWwgdmFsdWVcbiAgdmFsdWU7XG4gIGN1cnJlbnRVc2VySWQ6IHN0cmluZztcbiAgLy8gaW5uZXIgbmctbW9kZWwgdmFsdWVcbiAgaW5uZXJWYWx1ZTogYW55W10gPSBbXTtcbiAgZXJyb3I6IGFueSA9IHt9O1xuICBkZWxldGVkSXRlbUlEOiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlbW92ZUN1cnJlbnRVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZW1vdmVDdXJyZW50VXNlcihiOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVtb3ZlQ3VycmVudFVzZXIgPSBiO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IGIgPyB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LmlkIDogdW5kZWZpbmVkO1xuICB9XG4gIGdldCByZW1vdmVDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3ZlQ3VycmVudFVzZXJcbiAgfVxuICBASW5wdXQoKSBzaXR1YXRpb246IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNldCByZWFkb25seShyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSByO1xuICB9XG4gIGdldCByZWFkb25seSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGFNZXRhKGRNOiBhbnkpIHtcbiAgICBpZiAoZE0pIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IEFycmF5LmlzQXJyYXkoZE0pID8gZE0gOiBbZE1dO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvLyBsaXN0IG9mIHZhbHVlcyB0aGF0IHNob3VsZCBub3QgYmUgc2VsZWN0YWJsZVxuICBASW5wdXQoKSBleGNlcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBmaWx0ZXJPYmplY3Q6IE9yZ2FuaXphdGlvbkZpbHRlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICApIHsgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdXRvY29tcGxldGVVcmkocXVlcnk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgcTogcXVlcnksXG4gICAgICBhY3RpdmVvbmx5OiAodGhpcy5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICBkZXRhaWxzOiB0cnVlXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmZpbHRlck9iamVjdCkge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyT2JqZWN0LnR5cGUpIHtcbiAgICAgICAgcGFyYW1zWydzY29wZSddID0gdGhpcy5maWx0ZXJPYmplY3QudHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpbHRlck9iamVjdC5ncm91cHMpIHtcbiAgICAgICAgcGFyYW1zWydncm91cGZpbHRlciddID0gdGhpcy5maWx0ZXJPYmplY3QuZ3JvdXBzO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlsdGVyT2JqZWN0LnJvbGVzKSB7XG4gICAgICAgIHBhcmFtc1sncm9sZWZpbHRlciddID0gdGhpcy5maWx0ZXJPYmplY3Qucm9sZXM7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5maWx0ZXJPYmplY3QuaGFzT3duUHJvcGVydHkoJ2FjdGl2ZW9ubHknKSkge1xuICAgICAgICBwYXJhbXNbJ2FjdGl2ZW9ubHknXSA9IHRoaXMuZmlsdGVyT2JqZWN0LmFjdGl2ZW9ubHkgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoJy9vcmdhbml6YXRpb24vcXVlcnknLCBwYXJhbXMpO1xuICB9XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnJlc29sdmVGbih2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gW107XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcGFnYXRlKCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25EYXRhTWV0YUNoYW5nZWQuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICB9XG5cbiAgYXV0b2NvbXBsZXRlRm4odGVybTogc3RyaW5nKSB7XG4gICAgaWYgKHRlcm0ubGVuZ3RoID49IHRoaXMubWluTGVuZ3RoIHx8IHRlcm0gPT09IHRoaXMud2lsZENhcmQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0IHx8ICghdGhpcy5tdWx0aXNlbGVjdCAmJiB0aGlzLmlubmVyVmFsdWUubGVuZ3RoID09PSAwKSkge1xuICAgICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbih0aGlzLmJ1aWxkQXV0b2NvbXBsZXRlVXJpKHRlcm0pKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgLy8gYXV0b2NvbXBsZXRlIHZhbHVlcyBzaG91bGQgYmUgdW5pcXVlIGFuZCBub3QgcGFydCBvZiB0aGUgZXhjZXB0aW9uc1xuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVSZXMgPSByZXMuZmlsdGVyKHYgPT4gKCF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUuaW5kZXhPZih2Lm5hbWUpID09PSAtMSkgJiYgdGhpcy5leGNlcHRpb25zLmluZGV4T2Yodi5uYW1lKSA9PT0gLTEgJiYgKCF0aGlzLnJlbW92ZUN1cnJlbnRVc2VyIHx8IHRoaXMuY3VycmVudFVzZXJJZCAhPT0gdi5pZCkpXG4gICAgICAgICAgICAgIC5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ3RpdGxlJykpLnNsaWNlKDAsIDEwKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICAgVXRpbHMudGhyb3cobnVsbCxcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZm9ybS5wcm9wZXJ0eS5vcmdhbml6YXRpb24ucmVxdWVzdC5lcnJvci50aXRsZScpLFxuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5mb3JtLnByb3BlcnR5Lm9yZ2FuaXphdGlvbi5yZXF1ZXN0LmVycm9yLm1zZycpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZUZuKHZhbHVlOiBhbnkpOiBTdWJzY3JpcHRpb24ge1xuICAgIGxldCBtYXAgPSAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IHZhbHVlIDogW3ZhbHVlXSkubWFwKHYgPT4ge1xuICAgICAgbGV0IG1hdGNoID0gdGhpcy5pbm5lclZhbHVlLmZpbmQoaXYgPT4gaXYubmFtZSA9PT0gdik7XG4gICAgICByZXR1cm4gbWF0Y2ggPyBvYnNlcnZhYmxlT2YobWF0Y2gpIDogdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbk9iamVjdCh2KTtcbiAgICB9KTtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKG1hcCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gZGF0YTtcbiAgICAgIHRoaXMub25WYWx1ZVJlc29sdmVkLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGhhbmRsZSBzZWxlY3Rpb24gY2hhbmdlcyB0byB0aGUgbW9kZWxcbiAgb25VbnNlbGVjdCh2YWx1ZSkge1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZS5maWx0ZXIodiA9PiB2Lm5hbWUgIT09IHZhbHVlLm5hbWUpO1xuICAgIGxldCBfdmFsdWUgPSB0aGlzLmlubmVyVmFsdWUubWFwKHYgPT4gdi5uYW1lKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5tdWx0aXNlbGVjdCA/IF92YWx1ZSA6IG51bGw7XG4gICAgaWYgKCF0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmNsZWFySW5uZXJJbnB1dCgpO1xuICAgIH1cbiAgICB0aGlzLmF1dG9Db21wbGV0ZUlucHV0LmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLnByb3BhZ2F0ZSgpO1xuICB9XG5cbiAgLy8gaGFuZGxlIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIHRoZSBtb2RlbFxuICBvblNlbGVjdCh2YWx1ZSkge1xuICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlLm1hcCh2ID0+IHYubmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGludGVybmFsIGF1dG9jb21wbGV0ZSBjb250cm9sIGlzIGFsd2F5cyBzZXQgdG8gbXVsdGlzZWxlY3RcbiAgICAgIC8vIHNvIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyBhbHdheXMgYW4gYXJyYXlcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmlubmVyVmFsdWVbMF0ubmFtZTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGUoKTtcbiAgfVxuXG4gIG9uQXV0b0NvbXBsZXRlQmx1cigpIHtcbiAgICB0aGlzLmNsZWFySW5uZXJJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcklubmVySW5wdXQoKSB7XG4gICAgdGhpcy5hdXRvQ29tcGxldGVJbnB1dC5jbGVhcklucHV0KCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tb3JnYW5pemF0aW9uXCIgW25nQ2xhc3NdPVwie2FjSW5wdXRIaWRkZW46ICFtdWx0aXNlbGVjdCAmJiBpbm5lclZhbHVlLmxlbmd0aH1cIj5cblxuICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cImlubmVyVmFsdWVcIiAjYXV0b2NvbXBsZXRlIChzdWdnZXN0aW9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChzdWdnZXN0aW9uVW5zZWxlY3QpPVwib25VbnNlbGVjdCgkZXZlbnQpXCIgKGJsdXIpPVwib25BdXRvQ29tcGxldGVCbHVyKClcIlxuICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFthdXRvY29tcGxldGVWYWx1ZXNdPVwiYXV0b2NvbXBsZXRlUmVzXCIgZmllbGQ9XCJpZFwiXG4gICAgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIlxuICAgIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiIFttdWx0aXBsZV09XCJ0cnVlXCI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pdGVtXCI+XG4gICAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cIml0ZW0udHlwZSA9PT0gJ2dyb3VwJyA/ICBpY29uLmdyb3VwIDogaWNvbi51c2VyXCI+PC95dmMtaWNvbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIoaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmxhc3RuYW1lPy5sZW5ndGgpIHx8IGl0ZW0udHlwZSA9PT0gJ2dyb3VwJ1wiPnt7aXRlbS50aXRsZX19XG4gICAgICAgICAgKHt7aXRlbS5uYW1lfX0pPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmICFpdGVtLmxhc3RuYW1lPy5sZW5ndGggJiYgaXRlbS50eXBlICE9PSAnZ3JvdXAnXCI+KHt7aXRlbS5uYW1lfX0pPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0ubGFzdG5hbWU/Lmxlbmd0aFwiPnt7aXRlbS5sYXN0bmFtZX19ICh7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmICFpdGVtLmxhc3RuYW1lPy5sZW5ndGhcIj57e2l0ZW0uZmlyc3RuYW1lfX0gKHt7aXRlbS5uYW1lfX0pPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2hpcFRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pdGVtXCI+XG4gICAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cIml0ZW0udHlwZSA9PT0gJ2dyb3VwJyA/ICBpY29uLmdyb3VwIDogaWNvbi51c2VyXCI+PC95dmMtaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIihpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0ubGFzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmFjdGl2ZSkgfHwgaXRlbS50eXBlID09PSAnZ3JvdXAnXCI+e3tpdGVtLnRpdGxlfX1cbiAgICAgICAgICAoe3tpdGVtLm5hbWV9fSk8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiKCFpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmICFpdGVtLmxhc3RuYW1lPy5sZW5ndGggJiYgIWl0ZW0uYWN0aXZlICYmICFpdGVtLnR5cGUpXCJcbiAgICAgICAgICBjbGFzcz1cImRlbGV0ZWQtdXNlci1sYWJlbFwiPnt7J2VvLmZvcm0ucHJvcGVydHkub3JnYW5pemF0aW9uLmVycm9yLnVzZXJub3Rmb3VuZCd8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0uYWN0aXZlICYmIGl0ZW0udHlwZSAhPT0gJ2dyb3VwJ1wiPih7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmxhc3RuYW1lPy5sZW5ndGhcIj57e2l0ZW0ubGFzdG5hbWV9fSAoe3tpdGVtLm5hbWV9fSk8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoXCI+e3tpdGVtLmZpcnN0bmFtZX19ICh7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgXG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cbjwvZGl2PiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvb3JnYW5pemF0aW9uL29yZ2FuaXphdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL29yZ2FuaXphdGlvbi9vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGFBQWEsRUFBRSxpQkFBaUIsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBK0QsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRWpHLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBZSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUEwQnRGLE1BQU0sT0FBTyxxQkFBcUI7SUE2QmhDLElBQWEsaUJBQWlCLENBQUMsQ0FBVTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUNoQyxDQUFDO0lBR0QsSUFBYSxRQUFRLENBQUMsQ0FBVTtRQUM5QixJQUFJLENBQUMsU0FBUyxH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RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt3S0FJMEIsaUJBQWlCO3NCQUEzQyxTQUFTO3VCQUFDLGNBQWM7Z0JBVU0sU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBRzdCLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBWU0saUJBQWlCO3NCQUE3QixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxRQUFRO3NCQUFwQixLQUFLO2dCQU1PLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QXV0b0NvbXBsZXRlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7Zm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uRmlsdGVyIHtcbiAgdHlwZT86IHN0cmluZzsgICAgICAgIC8vIFRoZSB0eXBlIG9mIHRoZSBvcmdhbml6YXRpb24gdW5pdCAoJ1VTRVInIG9yICdHUk9VUCcpIHRvIGJlIGRpc3BsYXllZFxuICBncm91cHM/OiBzdHJpbmdbXTsgICAgLy8gYW4gYXJyYXkgb2YgZ3JvdXAgbmFtZXMgdG8gZmlsdGVyIGF1dG9jb21wbGV0ZSByZXN1bHRzIHdpdGhcbiAgcm9sZXM/OiBzdHJpbmdbXTsgICAgIC8vIGFuIGFycmF5IG9mIHJvbGUgbmFtZXMgdG8gZmlsdGVyIGF1dG9jb21wbGV0ZSByZXN1bHRzIHdpdGhcbiAgYWN0aXZlb25seT86IGJvb2xlYW47IC8vIHdoZXRoZXIgb3Igbm90IHRvIGZldGNoIG9ubHkgYWN0aXZlIG9yZ2FuaXphdGlvbiBvYmplY3RzXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9yZ2FuaXphdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vcmdhbml6YXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPcmdhbml6YXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBPcmdhbml6YXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudENoZWNrZWQsIFZhbGlkYXRvciB7XG5cbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b0NvbXBsZXRlSW5wdXQ6IEF1dG9Db21wbGV0ZTtcblxuICBpY29uID0ge1xuICAgIHVzZXI6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjBcIj48cGF0aCBkPVwiTTQ4MC00ODBxLTYwIDAtMTAyLTQydC00Mi0xMDJxMC02MCA0Mi0xMDJ0MTAyLTQycTYwIDAgMTAyIDQydDQyIDEwMnEwIDYwLTQyIDEwMnQtMTAyIDQyWk0xOTItMTkydi05NnEwLTIzIDEyLjUtNDMuNVQyMzktMzY2cTU1LTMyIDExNi41LTQ5VDQ4MC00MzJxNjMgMCAxMjQuNSAxN1Q3MjEtMzY2cTIyIDEzIDM0LjUgMzR0MTIuNSA0NHY5NkgxOTJaXCIvPjwvc3ZnPicsXG4gICAgZ3JvdXA6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjBcIj48cGF0aCBkPVwiTTk2LTE5MnYtOTJxMC0yNiAxMi41LTQ3LjVUMTQzLTM2NnE1NC0zMiAxMTQuNS00OVQzODQtNDMycTY2IDAgMTI2LjUgMTdUNjI1LTM2NnEyMiAxMyAzNC41IDM0LjVUNjcyLTI4NHY5Mkg5NlptNjQ4IDB2LTkycTAtNDItMTkuNS03OFQ2NzItNDIxcTM5IDggNzUuNSAyMS41VDgxNy0zNjZxMjIgMTMgMzQuNSAzNC41VDg2NC0yODR2OTJINzQ0Wk0zODQtNDgwcS02MCAwLTEwMi00MnQtNDItMTAycTAtNjAgNDItMTAydDEwMi00MnE2MCAwIDEwMiA0MnQ0MiAxMDJxMCA2MC00MiAxMDJ0LTEwMiA0MlptMzM2LTE0NHEwIDYwLTQyIDEwMnQtMTAyIDQycS04IDAtMTUtLjV0LTE1LTIuNXEyNS0yOSAzOS41LTY0LjVUNjAwLTYyNHEwLTQxLTE0LjUtNzYuNVQ1NDYtNzY1cTgtMiAxNS0yLjV0MTUtLjVxNjAgMCAxMDIgNDJ0NDIgMTAyWlwiLz48L3N2Zz4nXG4gIH1cblxuICByZW1vdGVVcmwgPSAnL29yZ2FuaXphdGlvbi9xdWVyeT9xPSc7XG4gIG1pbkxlbmd0aCA9IDI7XG4gIHdpbGRDYXJkID0gJyonO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JykgX3JlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICBvblZhbHVlUmVzb2x2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIGVtaXR0ZWQgd2hlbiB2YWx1ZSBjaGFuZ2VkIGhvbGRpbmcgdGhlIHJlc29sdmVkIGRhdGFfbWV0YVxuICBAT3V0cHV0KClcbiAgb25EYXRhTWV0YUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgYXV0b2NvbXBsZXRlUmVzOiBhbnlbXTtcbiAgLy8gbW9kZWwgdmFsdWVcbiAgdmFsdWU7XG4gIGN1cnJlbnRVc2VySWQ6IHN0cmluZztcbiAgLy8gaW5uZXIgbmctbW9kZWwgdmFsdWVcbiAgaW5uZXJWYWx1ZTogYW55W10gPSBbXTtcbiAgZXJyb3I6IGFueSA9IHt9O1xuICBkZWxldGVkSXRlbUlEOiBzdHJpbmc7XG4gIHByaXZhdGUgX3JlbW92ZUN1cnJlbnRVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCByZW1vdmVDdXJyZW50VXNlcihiOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVtb3ZlQ3VycmVudFVzZXIgPSBiO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IGIgPyB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LmlkIDogdW5kZWZpbmVkO1xuICB9XG4gIGdldCByZW1vdmVDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3ZlQ3VycmVudFVzZXJcbiAgfVxuICBASW5wdXQoKSBzaXR1YXRpb246IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlzZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNldCByZWFkb25seShyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSByO1xuICB9XG4gIGdldCByZWFkb25seSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGFNZXRhKGRNOiBhbnkpIHtcbiAgICBpZiAoZE0pIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IEFycmF5LmlzQXJyYXkoZE0pID8gZE0gOiBbZE1dO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvLyBsaXN0IG9mIHZhbHVlcyB0aGF0IHNob3VsZCBub3QgYmUgc2VsZWN0YWJsZVxuICBASW5wdXQoKSBleGNlcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBmaWx0ZXJPYmplY3Q6IE9yZ2FuaXphdGlvbkZpbHRlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICApIHsgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdXRvY29tcGxldGVVcmkocXVlcnk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgcTogcXVlcnksXG4gICAgICBhY3RpdmVvbmx5OiAodGhpcy5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICBkZXRhaWxzOiB0cnVlXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmZpbHRlck9iamVjdCkge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyT2JqZWN0LnR5cGUpIHtcbiAgICAgICAgcGFyYW1zWydzY29wZSddID0gdGhpcy5maWx0ZXJPYmplY3QudHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZpbHRlck9iamVjdC5ncm91cHMpIHtcbiAgICAgICAgcGFyYW1zWydncm91cGZpbHRlciddID0gdGhpcy5maWx0ZXJPYmplY3QuZ3JvdXBzO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZmlsdGVyT2JqZWN0LnJvbGVzKSB7XG4gICAgICAgIHBhcmFtc1sncm9sZWZpbHRlciddID0gdGhpcy5maWx0ZXJPYmplY3Qucm9sZXM7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5maWx0ZXJPYmplY3QuaGFzT3duUHJvcGVydHkoJ2FjdGl2ZW9ubHknKSkge1xuICAgICAgICBwYXJhbXNbJ2FjdGl2ZW9ubHknXSA9IHRoaXMuZmlsdGVyT2JqZWN0LmFjdGl2ZW9ubHkgPyAndHJ1ZScgOiAnZmFsc2UnIDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFV0aWxzLmJ1aWxkVXJpKCcvb3JnYW5pemF0aW9uL3F1ZXJ5JywgcGFyYW1zKTtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5yZXNvbHZlRm4odmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gIH1cblxuICBwcml2YXRlIHByb3BhZ2F0ZSgpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uRGF0YU1ldGFDaGFuZ2VkLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgfVxuXG4gIGF1dG9jb21wbGV0ZUZuKHRlcm06IHN0cmluZykge1xuICAgIGlmICh0ZXJtLmxlbmd0aCA+PSB0aGlzLm1pbkxlbmd0aCB8fCB0ZXJtID09PSB0aGlzLndpbGRDYXJkKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCB8fCAoIXRoaXMubXVsdGlzZWxlY3QgJiYgdGhpcy5pbm5lclZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgdGhpcy5iYWNrZW5kLmdldEpzb24odGhpcy5idWlsZEF1dG9jb21wbGV0ZVVyaSh0ZXJtKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIC8vIGF1dG9jb21wbGV0ZSB2YWx1ZXMgc2hvdWxkIGJlIHVuaXF1ZSBhbmQgbm90IHBhcnQgb2YgdGhlIGV4Y2VwdGlvbnNcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gcmVzLmZpbHRlcih2ID0+ICghdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlLmluZGV4T2Yodi5uYW1lKSA9PT0gLTEpICYmIHRoaXMuZXhjZXB0aW9ucy5pbmRleE9mKHYubmFtZSkgPT09IC0xICYmICghdGhpcy5yZW1vdmVDdXJyZW50VXNlciB8fCB0aGlzLmN1cnJlbnRVc2VySWQgIT09IHYuaWQpKVxuICAgICAgICAgICAgICAuc29ydChVdGlscy5zb3J0VmFsdWVzKCd0aXRsZScpKS5zbGljZSgwLCAxMCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAgIFV0aWxzLnRocm93KG51bGwsXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmZvcm0ucHJvcGVydHkub3JnYW5pemF0aW9uLnJlcXVlc3QuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZm9ybS5wcm9wZXJ0eS5vcmdhbml6YXRpb24ucmVxdWVzdC5lcnJvci5tc2cnKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVJlcyA9IFtdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVJlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVGbih2YWx1ZTogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICBsZXQgbWFwID0gKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgPyB2YWx1ZSA6IFt2YWx1ZV0pLm1hcCh2ID0+IHtcbiAgICAgIGxldCBtYXRjaCA9IHRoaXMuaW5uZXJWYWx1ZS5maW5kKGl2ID0+IGl2Lm5hbWUgPT09IHYpO1xuICAgICAgcmV0dXJuIG1hdGNoID8gb2JzZXJ2YWJsZU9mKG1hdGNoKSA6IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3Qodik7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbihtYXApLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IGRhdGE7XG4gICAgICB0aGlzLm9uVmFsdWVSZXNvbHZlZC5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBoYW5kbGUgc2VsZWN0aW9uIGNoYW5nZXMgdG8gdGhlIG1vZGVsXG4gIG9uVW5zZWxlY3QodmFsdWUpIHtcbiAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLmlubmVyVmFsdWUuZmlsdGVyKHYgPT4gdi5uYW1lICE9PSB2YWx1ZS5uYW1lKTtcbiAgICBsZXQgX3ZhbHVlID0gdGhpcy5pbm5lclZhbHVlLm1hcCh2ID0+IHYubmFtZSk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubXVsdGlzZWxlY3QgPyBfdmFsdWUgOiBudWxsO1xuICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy5jbGVhcklubmVySW5wdXQoKTtcbiAgICB9XG4gICAgdGhpcy5hdXRvQ29tcGxldGVJbnB1dC5mb2N1c0lucHV0KCk7XG4gICAgdGhpcy5wcm9wYWdhdGUoKTtcbiAgfVxuXG4gIC8vIGhhbmRsZSBzZWxlY3Rpb24gY2hhbmdlcyB0byB0aGUgbW9kZWxcbiAgb25TZWxlY3QodmFsdWUpIHtcbiAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZS5tYXAodiA9PiB2Lm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbnRlcm5hbCBhdXRvY29tcGxldGUgY29udHJvbCBpcyBhbHdheXMgc2V0IHRvIG11bHRpc2VsZWN0XG4gICAgICAvLyBzbyB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYWx3YXlzIGFuIGFycmF5XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pbm5lclZhbHVlWzBdLm5hbWU7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlKCk7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZUJsdXIoKSB7XG4gICAgdGhpcy5jbGVhcklubmVySW5wdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJJbm5lcklucHV0KCkge1xuICAgIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQuY2xlYXJJbnB1dCgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGlmICh0aGlzLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3QgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLW9yZ2FuaXphdGlvblwiIFtuZ0NsYXNzXT1cInthY0lucHV0SGlkZGVuOiAhbXVsdGlzZWxlY3QgJiYgaW5uZXJWYWx1ZS5sZW5ndGh9XCI+XG5cbiAgPHl2Yy1hdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCIgI2F1dG9jb21wbGV0ZSAoc3VnZ2VzdGlvblNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAoc3VnZ2VzdGlvblVuc2VsZWN0KT1cIm9uVW5zZWxlY3QoJGV2ZW50KVwiIChibHVyKT1cIm9uQXV0b0NvbXBsZXRlQmx1cigpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiIGZpZWxkPVwiaWRcIlxuICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcmctaXRlbVwiPlxuICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpdGVtLnR5cGUgPT09ICdncm91cCcgPyAgaWNvbi5ncm91cCA6IGljb24udXNlclwiPjwveXZjLWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiKGl0ZW0uZmlyc3RuYW1lPy5sZW5ndGggJiYgaXRlbS5sYXN0bmFtZT8ubGVuZ3RoKSB8fCBpdGVtLnR5cGUgPT09ICdncm91cCdcIj57e2l0ZW0udGl0bGV9fVxuICAgICAgICAgICh7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0udHlwZSAhPT0gJ2dyb3VwJ1wiPih7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmxhc3RuYW1lPy5sZW5ndGhcIj57e2l0ZW0ubGFzdG5hbWV9fSAoe3tpdGVtLm5hbWV9fSk8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoXCI+e3tpdGVtLmZpcnN0bmFtZX19ICh7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NoaXBUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcmctaXRlbVwiPlxuICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpdGVtLnR5cGUgPT09ICdncm91cCcgPyAgaWNvbi5ncm91cCA6IGljb24udXNlclwiPjwveXZjLWljb24+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCIoaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmxhc3RuYW1lPy5sZW5ndGggJiYgaXRlbS5hY3RpdmUpIHx8IGl0ZW0udHlwZSA9PT0gJ2dyb3VwJ1wiPnt7aXRlbS50aXRsZX19XG4gICAgICAgICAgKHt7aXRlbS5uYW1lfX0pPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImluYWN0aXZlXCJcbiAgICAgICAgICAqbmdJZj1cIihpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0ubGFzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5hY3RpdmUpXCI+e3tpdGVtLnRpdGxlfX1cbiAgICAgICAgICAoe3tpdGVtLm5hbWV9fSk8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiKCFpdGVtLmZpcnN0bmFtZT8ubGVuZ3RoICYmICFpdGVtLmxhc3RuYW1lPy5sZW5ndGggJiYgIWl0ZW0uYWN0aXZlICYmICFpdGVtLnR5cGUpXCJcbiAgICAgICAgICBjbGFzcz1cImRlbGV0ZWQtdXNlci1sYWJlbFwiPnt7J2VvLmZvcm0ucHJvcGVydHkub3JnYW5pemF0aW9uLmVycm9yLnVzZXJub3Rmb3VuZCd8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoICYmIGl0ZW0uYWN0aXZlICYmIGl0ZW0udHlwZSAhPT0gJ2dyb3VwJ1wiPih7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiBpdGVtLmxhc3RuYW1lPy5sZW5ndGhcIj57e2l0ZW0ubGFzdG5hbWV9fSAoe3tpdGVtLm5hbWV9fSk8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5maXJzdG5hbWU/Lmxlbmd0aCAmJiAhaXRlbS5sYXN0bmFtZT8ubGVuZ3RoXCI+e3tpdGVtLmZpcnN0bmFtZX19ICh7e2l0ZW0ubmFtZX19KTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC95dmMtYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=