@eo-sdk/client 10.7.0-rc.5 → 11.0.0-rc.1

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 (890) 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/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +3 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  7. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +2 -0
  8. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  9. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +1 -1
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +1 -1
  11. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts +1 -1
  12. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  13. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +1 -1
  14. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +1 -1
  15. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts +1 -1
  16. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +1 -1
  17. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts +1 -1
  18. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +1 -1
  19. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts +1 -1
  20. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts +21 -0
  21. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts.map +1 -0
  22. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +15 -8
  23. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -1
  24. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.d.ts +7 -0
  25. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.d.ts.map +1 -0
  26. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -1
  27. package/app/eo-client/eo-client.module.d.ts +18 -17
  28. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  29. package/app/eo-client/settings/settings.component.d.ts +2 -11
  30. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  31. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  32. package/app/eo-framework/accordion/simple-accordion/simple-accordion.component.d.ts +1 -1
  33. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  34. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +1 -1
  35. package/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.d.ts +1 -1
  36. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.d.ts +1 -1
  37. package/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.d.ts +1 -1
  38. package/app/eo-framework/actions/actions/custom-actions/custom-actions.component.d.ts +1 -1
  39. package/app/eo-framework/actions/actions/delete-action/delete/delete.component.d.ts +1 -1
  40. package/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.d.ts +1 -1
  41. package/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.d.ts +1 -1
  42. package/app/eo-framework/actions/actions/email/email/email.component.d.ts +1 -1
  43. package/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.d.ts +1 -1
  44. package/app/eo-framework/actions/actions/open-document-action/open-document-action.component.d.ts +1 -1
  45. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +1 -1
  46. package/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.d.ts +1 -1
  47. package/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.d.ts +1 -1
  48. package/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.d.ts +1 -1
  49. package/app/eo-framework/actions/actions/workflow-action/workflow-action.component.d.ts +1 -1
  50. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +1 -1
  51. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +7 -3
  52. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  53. package/app/eo-framework/app-shell/app-bar/context-search/context-search.component.d.ts +1 -1
  54. package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts +1 -1
  55. package/app/eo-framework/app-shell/app-shell.module.d.ts +17 -16
  56. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  57. package/app/eo-framework/app-shell/index.d.ts +1 -0
  58. package/app/eo-framework/app-shell/index.d.ts.map +1 -1
  59. package/app/eo-framework/app-shell/license-warning/license-warning.component.d.ts +10 -0
  60. package/app/eo-framework/app-shell/license-warning/license-warning.component.d.ts.map +1 -0
  61. package/app/eo-framework/cta/component/cta.component.d.ts +1 -1
  62. package/app/eo-framework/form-elements/checkbox/checkbox.component.d.ts +1 -1
  63. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +1 -1
  64. package/app/eo-framework/form-elements/date/date.component.d.ts +1 -1
  65. package/app/eo-framework/form-elements/date/year-range/year-range.directive.d.ts +1 -1
  66. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -1
  67. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  68. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +1 -1
  69. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  70. package/app/eo-framework/form-elements/form-input/form-input.component.d.ts +1 -1
  71. package/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.d.ts +1 -1
  72. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts +1 -1
  73. package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts +1 -1
  74. package/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.d.ts +1 -1
  75. package/app/eo-framework/form-elements/number/number.component.d.ts +1 -1
  76. package/app/eo-framework/form-elements/number-range/number-range.component.d.ts +1 -1
  77. package/app/eo-framework/form-elements/organization/organization.component.d.ts +1 -1
  78. package/app/eo-framework/form-elements/password/password.component.d.ts +1 -1
  79. package/app/eo-framework/form-elements/reference/reference.component.d.ts +1 -1
  80. package/app/eo-framework/form-elements/string/string.component.d.ts +1 -1
  81. package/app/eo-framework/grid/column-configurator/column-configurator.component.d.ts +1 -1
  82. package/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.d.ts +1 -1
  83. package/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.d.ts.map +1 -1
  84. package/app/eo-framework/grid/extensions/filter/abstract-filter.component.d.ts +3 -3
  85. package/app/eo-framework/grid/extensions/filter/abstract-filter.component.d.ts.map +1 -1
  86. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts +1 -1
  87. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +1 -1
  88. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +3 -3
  89. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts.map +1 -1
  90. package/app/eo-framework/grid/extensions/pagination/pagination.component.d.ts +1 -1
  91. package/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.d.ts +1 -1
  92. package/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.d.ts +1 -1
  93. package/app/eo-framework/grid/extensions/total-count/total-count.component.d.ts +1 -1
  94. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  95. package/app/eo-framework/grid/grid.component.d.ts +6 -17
  96. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  97. package/app/eo-framework/grid/grid.module.d.ts +0 -3
  98. package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
  99. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts +13 -0
  100. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts.map +1 -0
  101. package/app/eo-framework/grid/row-grouping/group-stage.d.ts +14 -14
  102. package/app/eo-framework/grid/row-grouping/group-stage.d.ts.map +1 -1
  103. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts +1 -0
  104. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts.map +1 -1
  105. package/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.d.ts +1 -1
  106. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +1 -1
  107. package/app/eo-framework/list-container/list-container.component.d.ts +1 -1
  108. package/app/eo-framework/media/media.component.d.ts +1 -1
  109. package/app/eo-framework/object-details/edit-icon/edit-icon.component.d.ts +1 -1
  110. package/app/eo-framework/object-details/favorite-icon/favorite-icon.component.d.ts +1 -1
  111. package/app/eo-framework/object-details/object-details.component.d.ts +1 -1
  112. package/app/eo-framework/object-details/object-history/history-filter/history-filter.component.d.ts +1 -1
  113. package/app/eo-framework/object-details/object-history/object-history.component.d.ts +1 -1
  114. package/app/eo-framework/object-details/object-links/object-links.component.d.ts +1 -1
  115. package/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.d.ts +1 -1
  116. package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts +1 -1
  117. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +4 -1
  118. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  119. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +1 -1
  120. package/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.d.ts +1 -1
  121. package/app/eo-framework/object-form/object-form/object-form.component.d.ts +1 -1
  122. package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts +1 -1
  123. package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -1
  124. package/app/eo-framework/plugins/plugin.component.d.ts +2 -2
  125. package/app/eo-framework/plugins/plugins.module.d.ts.map +1 -1
  126. package/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.d.ts +1 -1
  127. package/app/eo-framework/prepare-details/prepare-details.component.d.ts +1 -1
  128. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  129. package/app/eo-framework/process/details/process-details.component.d.ts +1 -1
  130. package/app/eo-framework/process/history/process-history.component.d.ts +1 -1
  131. package/app/eo-framework/process/process-file/process-file.component.d.ts +1 -1
  132. package/app/eo-framework/process-form/process-form.component.d.ts +1 -1
  133. package/app/eo-framework/quick-search/quick-search/quick-search.component.d.ts +1 -1
  134. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +1 -1
  135. package/app/eo-framework/result-list/result-list.component.d.ts +1 -1
  136. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  137. package/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.d.ts +1 -1
  138. package/app/eo-framework/settings/permissions/permissions.component.d.ts +1 -1
  139. package/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.d.ts +1 -1
  140. package/app/eo-framework/shortcuts/shortcuts.directive.d.ts +1 -1
  141. package/app/eo-framework/stored-query/stored-query/stored-query.component.d.ts +1 -1
  142. package/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.d.ts +1 -1
  143. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +1 -1
  144. package/app/eo-framework/tree/tree-node/tree-node.component.d.ts +1 -1
  145. package/app/eo-framework/tree/tree.component.d.ts +1 -1
  146. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +1 -1
  147. package/app/eo-framework/ui/eo-icon/eo-icon.component.d.ts +1 -1
  148. package/app/eo-framework/ui/error-message/error-message.component.d.ts +1 -1
  149. package/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.d.ts +1 -1
  150. package/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.d.ts.map +1 -1
  151. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +1 -1
  152. package/app/eo-framework/ui/loading-spinner/loading-spinner.component.d.ts +1 -1
  153. package/app/eo-framework/ui/overlay/overlay.component.d.ts +1 -1
  154. package/app/eo-framework/ui/query-scope-select/query-scope-select.component.d.ts +1 -1
  155. package/app/eo-framework/ui/rtl-aware/rtl-aware.directive.d.ts +1 -1
  156. package/app/eo-framework/ui/signature-tab/signature-tab.component.d.ts +1 -1
  157. package/app/eo-framework/ui/user-avatar/user-avatar.component.d.ts +1 -1
  158. package/app/eo-framework/upload-overlay/upload-overlay-guard.service.d.ts +2 -2
  159. package/app/eo-framework/upload-overlay/upload-overlay-guard.service.d.ts.map +1 -1
  160. package/app/eo-framework/util/directive/prevent-double-click.directive.d.ts +1 -1
  161. package/app/eo-framework-core/api/grid.service.d.ts +4 -3
  162. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  163. package/app/eo-framework-core/error-handler/error-handler.service.d.ts.map +1 -1
  164. package/app/eo-framework-core/pending-changes/pending-changes-guard.service.d.ts +1 -2
  165. package/app/eo-framework-core/pending-changes/pending-changes-guard.service.d.ts.map +1 -1
  166. package/app/eo-framework-core/route-guards/auth/auth-guard.service.d.ts +2 -2
  167. package/app/eo-framework-core/route-guards/auth/auth-guard.service.d.ts.map +1 -1
  168. package/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.d.ts +2 -2
  169. package/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.d.ts.map +1 -1
  170. package/assets/_default/i18n/de.json +11 -5
  171. package/assets/_default/i18n/en.json +13 -7
  172. package/esm2022/app/eo-client/about-state/about-state.component.mjs +81 -0
  173. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +307 -0
  174. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +296 -0
  175. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +296 -0
  176. package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  177. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +121 -0
  178. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +125 -0
  179. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +193 -0
  180. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +164 -0
  181. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +59 -0
  182. package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +8 -8
  183. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +60 -0
  184. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +42 -0
  185. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +69 -0
  186. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +43 -0
  187. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +69 -0
  188. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +185 -0
  189. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +2 -0
  190. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +123 -0
  191. package/{esm2020 → esm2022}/app/eo-client/eo-client-routing.module.mjs +5 -5
  192. package/esm2022/app/eo-client/eo-client.module.mjs +173 -0
  193. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +150 -0
  194. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +218 -0
  195. package/{esm2020 → esm2022}/app/eo-client/inbox-state/inbox-state-routing.module.mjs +5 -5
  196. package/{esm2020 → esm2022}/app/eo-client/inbox-state/inbox-state.module.mjs +13 -13
  197. package/esm2022/app/eo-client/login/login.component.mjs +111 -0
  198. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +227 -0
  199. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +342 -0
  200. package/{esm2020 → esm2022}/app/eo-client/object-state/object-state-routing.module.mjs +5 -5
  201. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +134 -0
  202. package/{esm2020 → esm2022}/app/eo-client/object-state/object-state.module.mjs +11 -11
  203. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +159 -0
  204. package/{esm2020 → esm2022}/app/eo-client/prepare-state/prepare-state-routing.module.mjs +5 -5
  205. package/{esm2020 → esm2022}/app/eo-client/prepare-state/prepare-state.module.mjs +15 -15
  206. package/esm2022/app/eo-client/process-state/process-state.component.mjs +330 -0
  207. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +150 -0
  208. package/esm2022/app/eo-client/result-state/result-state.component.mjs +71 -0
  209. package/esm2022/app/eo-client/settings/settings.component.mjs +275 -0
  210. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +209 -0
  211. package/esm2022/app/eo-client/version-state/version-state.component.mjs +142 -0
  212. package/{esm2020 → esm2022}/app/eo-framework/accordion/accordion.module.mjs +5 -5
  213. package/{esm2020 → esm2022}/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +4 -4
  214. package/{esm2020 → esm2022}/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +5 -5
  215. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +208 -0
  216. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +185 -0
  217. package/esm2022/app/eo-framework/actions/action-target.mjs +28 -0
  218. package/esm2022/app/eo-framework/actions/action.module.mjs +269 -0
  219. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +201 -0
  220. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +50 -0
  221. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +134 -0
  222. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +50 -0
  223. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +6 -6
  224. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +5 -5
  225. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +5 -5
  226. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +95 -0
  227. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/copy-action/copy-action.mjs +5 -5
  228. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +88 -0
  229. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/cut-action/cut-action.mjs +5 -5
  230. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +111 -0
  231. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/delete-action/delete-action.mjs +5 -5
  232. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +5 -5
  233. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +6 -6
  234. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +5 -5
  235. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/download-action/download-action.mjs +5 -5
  236. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +6 -6
  237. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +97 -0
  238. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/email/email-action.mjs +5 -5
  239. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +76 -0
  240. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/finalize/definalize-action.mjs +5 -5
  241. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/finalize/finalize-action.mjs +6 -6
  242. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +6 -6
  243. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +56 -0
  244. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +69 -0
  245. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +5 -5
  246. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +5 -5
  247. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +45 -0
  248. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +5 -5
  249. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +89 -0
  250. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +5 -5
  251. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +184 -0
  252. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +53 -0
  253. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +146 -0
  254. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -5
  255. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +5 -5
  256. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +5 -5
  257. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +5 -5
  258. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +107 -0
  259. package/{esm2020 → esm2022}/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +5 -5
  260. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +173 -0
  261. package/{esm2020 → esm2022}/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +5 -5
  262. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +204 -0
  263. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +112 -0
  264. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +805 -0
  265. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +46 -0
  266. package/{esm2020 → esm2022}/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +6 -6
  267. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +42 -0
  268. package/{esm2020 → esm2022}/app/eo-framework/app-shell/app-shell-routing.module.mjs +5 -5
  269. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +108 -0
  270. package/{esm2020 → esm2022}/app/eo-framework/app-shell/index.mjs +2 -1
  271. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +26 -0
  272. package/{esm2020 → esm2022}/app/eo-framework/cta/component/cta.component.mjs +4 -4
  273. package/{esm2020 → esm2022}/app/eo-framework/cta/cta.module.mjs +5 -5
  274. package/{esm2020 → esm2022}/app/eo-framework/eo-framework.module.mjs +110 -110
  275. package/{esm2020 → esm2022}/app/eo-framework/error/error.module.mjs +9 -9
  276. package/{esm2020 → esm2022}/app/eo-framework/error/error404/error404.component.mjs +4 -4
  277. package/{esm2020 → esm2022}/app/eo-framework/error/not-found/not-found.component.mjs +5 -5
  278. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +62 -0
  279. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +312 -0
  280. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +101 -0
  281. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +44 -0
  282. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +188 -0
  283. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +306 -0
  284. package/{esm2020 → esm2022}/app/eo-framework/form-elements/form-elements.module.mjs +76 -76
  285. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +73 -0
  286. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +35 -0
  287. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +252 -0
  288. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +253 -0
  289. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +33 -0
  290. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +106 -0
  291. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +171 -0
  292. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +138 -0
  293. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +216 -0
  294. package/{esm2020 → esm2022}/app/eo-framework/form-elements/password/password.component.mjs +4 -4
  295. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +223 -0
  296. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +254 -0
  297. package/{esm2020 → esm2022}/app/eo-framework/frame/frame.component.mjs +5 -5
  298. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +211 -0
  299. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +83 -0
  300. package/{esm2020 → esm2022}/app/eo-framework/grid/extensions/empty/empty.component.mjs +4 -4
  301. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +65 -0
  302. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +82 -0
  303. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +85 -0
  304. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +98 -0
  305. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +52 -0
  306. package/{esm2020 → esm2022}/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +6 -6
  307. package/{esm2020 → esm2022}/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +4 -4
  308. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +42 -0
  309. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +36 -0
  310. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +94 -0
  311. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +75 -0
  312. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +96 -0
  313. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +54 -0
  314. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +64 -0
  315. package/esm2022/app/eo-framework/grid/grid.component.mjs +420 -0
  316. package/esm2022/app/eo-framework/grid/grid.module.mjs +97 -0
  317. package/esm2022/app/eo-framework/grid/row-grouping/batchRemover.mjs +50 -0
  318. package/esm2022/app/eo-framework/grid/row-grouping/group-stage.mjs +623 -0
  319. package/{esm2020 → esm2022}/app/eo-framework/grid/row-grouping/row-grouping.module.mjs +2 -1
  320. package/{esm2020 → esm2022}/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +5 -5
  321. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +457 -0
  322. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +101 -0
  323. package/{esm2020 → esm2022}/app/eo-framework/list-container/list-container.module.mjs +7 -7
  324. package/esm2022/app/eo-framework/media/content-preview.service.mjs +42 -0
  325. package/esm2022/app/eo-framework/media/media.component.mjs +315 -0
  326. package/{esm2020 → esm2022}/app/eo-framework/media/media.module.mjs +13 -13
  327. package/{esm2020 → esm2022}/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +5 -5
  328. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +104 -0
  329. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +439 -0
  330. package/{esm2020 → esm2022}/app/eo-framework/object-details/object-details.module.mjs +42 -42
  331. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +32 -0
  332. package/{esm2020 → esm2022}/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +4 -4
  333. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +82 -0
  334. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +292 -0
  335. package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +5 -5
  336. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +123 -0
  337. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +639 -0
  338. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +238 -0
  339. package/esm2022/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +40 -0
  340. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +81 -0
  341. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +113 -0
  342. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +267 -0
  343. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +148 -0
  344. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +216 -0
  345. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +717 -0
  346. package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form.module.mjs +37 -37
  347. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +135 -0
  348. package/{esm2020 → esm2022}/app/eo-framework/plugins/plugin.component.mjs +16 -16
  349. package/{esm2020 → esm2022}/app/eo-framework/plugins/plugin.directive.mjs +5 -5
  350. package/{esm2020 → esm2022}/app/eo-framework/plugins/plugin.service.mjs +6 -6
  351. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +55 -0
  352. package/{esm2020 → esm2022}/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +4 -4
  353. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +568 -0
  354. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +226 -0
  355. package/{esm2020 → esm2022}/app/eo-framework/process/history/process-history.component.mjs +4 -4
  356. package/{esm2020 → esm2022}/app/eo-framework/process/process-file/process-file.component.mjs +6 -6
  357. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +50 -0
  358. package/{esm2020 → esm2022}/app/eo-framework/process-form/process-form.module.mjs +11 -11
  359. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +220 -0
  360. package/{esm2020 → esm2022}/app/eo-framework/quick-search/quick-search.module.mjs +11 -11
  361. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +271 -0
  362. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +384 -0
  363. package/{esm2020 → esm2022}/app/eo-framework/result-list/result-list.module.mjs +11 -11
  364. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +125 -0
  365. package/{esm2020 → esm2022}/app/eo-framework/settings/permissions/permissions.component.mjs +4 -4
  366. package/{esm2020 → esm2022}/app/eo-framework/settings/settings.module.mjs +13 -13
  367. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +65 -0
  368. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +130 -0
  369. package/{esm2020 → esm2022}/app/eo-framework/shortcuts/shortcut.interface.mjs +1 -1
  370. package/{esm2020 → esm2022}/app/eo-framework/shortcuts/shortcuts.directive.mjs +5 -5
  371. package/{esm2020 → esm2022}/app/eo-framework/shortcuts/shortcuts.module.mjs +9 -9
  372. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +45 -0
  373. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +225 -0
  374. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +46 -0
  375. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +501 -0
  376. package/{esm2020 → esm2022}/app/eo-framework/stored-query/stored-query.module.mjs +20 -20
  377. package/{esm2020 → esm2022}/app/eo-framework/tree/tree-node/tree-node.component.mjs +5 -5
  378. package/esm2022/app/eo-framework/tree/tree.component.mjs +281 -0
  379. package/{esm2020 → esm2022}/app/eo-framework/tree/tree.module.mjs +7 -7
  380. package/{esm2020 → esm2022}/app/eo-framework/ui/animations/panel-loading.animation.mjs +1 -1
  381. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +159 -0
  382. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +130 -0
  383. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +119 -0
  384. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +33 -0
  385. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +50 -0
  386. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +147 -0
  387. package/{esm2020 → esm2022}/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +8 -8
  388. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +60 -0
  389. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +71 -0
  390. package/{esm2020 → esm2022}/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +5 -5
  391. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +26 -0
  392. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +57 -0
  393. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +32 -0
  394. package/{esm2020 → esm2022}/app/eo-framework/ui/ui.module.mjs +59 -59
  395. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +54 -0
  396. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +17 -0
  397. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +397 -0
  398. package/{esm2020 → esm2022}/app/eo-framework/util/directive/prevent-double-click.directive.mjs +5 -5
  399. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +69 -0
  400. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +25 -0
  401. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +48 -0
  402. package/{esm2020 → esm2022}/app/eo-framework/util/util.module.mjs +5 -5
  403. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +178 -0
  404. package/esm2022/app/eo-framework-core/api/grid.service.mjs +728 -0
  405. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +258 -0
  406. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +53 -0
  407. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +105 -0
  408. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +89 -0
  409. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +106 -0
  410. package/esm2022/app/eo-framework-core/location/location.service.mjs +146 -0
  411. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +18 -0
  412. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +112 -0
  413. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +30 -0
  414. package/{esm2020 → esm2022}/app/eo-framework-core/pipes/keys.pipe.mjs +4 -4
  415. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +63 -0
  416. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +109 -0
  417. package/{esm2020 → esm2022}/app/eo-framework-core/pipes/pipes.module.mjs +19 -19
  418. package/{esm2020 → esm2022}/app/eo-framework-core/pipes/safe-html.pipe.mjs +5 -5
  419. package/esm2022/app/eo-framework-core/references/reference.service.mjs +266 -0
  420. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +29 -0
  421. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +55 -0
  422. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +387 -0
  423. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +63 -0
  424. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +42 -0
  425. package/{fesm2020 → fesm2022}/eo-sdk-client.mjs +2617 -2254
  426. package/fesm2022/eo-sdk-client.mjs.map +1 -0
  427. package/misc/scripts/copy-client-assets.js +1 -1
  428. package/package.json +31 -44
  429. package/styles.css +725 -550
  430. package/styles.scss +3 -3
  431. package/esm2020/app/eo-client/about-state/about-state.component.mjs +0 -81
  432. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +0 -305
  433. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +0 -288
  434. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +0 -265
  435. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +0 -121
  436. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +0 -125
  437. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +0 -192
  438. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +0 -164
  439. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +0 -59
  440. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +0 -60
  441. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +0 -42
  442. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +0 -69
  443. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +0 -43
  444. package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +0 -116
  445. package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +0 -123
  446. package/esm2020/app/eo-client/eo-client.module.mjs +0 -170
  447. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +0 -150
  448. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +0 -218
  449. package/esm2020/app/eo-client/login/login.component.mjs +0 -111
  450. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +0 -227
  451. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +0 -342
  452. package/esm2020/app/eo-client/object-state/object-state-service/object-state.service.mjs +0 -134
  453. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +0 -159
  454. package/esm2020/app/eo-client/process-state/process-state.component.mjs +0 -330
  455. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +0 -150
  456. package/esm2020/app/eo-client/result-state/result-state.component.mjs +0 -71
  457. package/esm2020/app/eo-client/settings/settings.component.mjs +0 -287
  458. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +0 -209
  459. package/esm2020/app/eo-client/version-state/version-state.component.mjs +0 -142
  460. package/esm2020/app/eo-framework/actions/action-menu/action-menu.component.mjs +0 -208
  461. package/esm2020/app/eo-framework/actions/action-service/action.service.mjs +0 -185
  462. package/esm2020/app/eo-framework/actions/action-target.mjs +0 -28
  463. package/esm2020/app/eo-framework/actions/action.module.mjs +0 -274
  464. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +0 -201
  465. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +0 -50
  466. package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +0 -134
  467. package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +0 -50
  468. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +0 -95
  469. package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +0 -88
  470. package/esm2020/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +0 -111
  471. package/esm2020/app/eo-framework/actions/actions/email/email/email.component.mjs +0 -97
  472. package/esm2020/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +0 -76
  473. package/esm2020/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +0 -56
  474. package/esm2020/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +0 -69
  475. package/esm2020/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +0 -45
  476. package/esm2020/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +0 -89
  477. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +0 -184
  478. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +0 -53
  479. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +0 -146
  480. package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +0 -107
  481. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +0 -173
  482. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +0 -203
  483. package/esm2020/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +0 -112
  484. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +0 -793
  485. package/esm2020/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +0 -46
  486. package/esm2020/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +0 -42
  487. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +0 -102
  488. package/esm2020/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +0 -62
  489. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +0 -312
  490. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +0 -101
  491. package/esm2020/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +0 -44
  492. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +0 -184
  493. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +0 -303
  494. package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +0 -73
  495. package/esm2020/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +0 -35
  496. package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +0 -252
  497. package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +0 -253
  498. package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +0 -33
  499. package/esm2020/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +0 -106
  500. package/esm2020/app/eo-framework/form-elements/number/number.component.mjs +0 -171
  501. package/esm2020/app/eo-framework/form-elements/number-range/number-range.component.mjs +0 -138
  502. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +0 -216
  503. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +0 -223
  504. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +0 -254
  505. package/esm2020/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +0 -211
  506. package/esm2020/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +0 -83
  507. package/esm2020/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +0 -65
  508. package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +0 -82
  509. package/esm2020/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +0 -85
  510. package/esm2020/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +0 -98
  511. package/esm2020/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +0 -52
  512. package/esm2020/app/eo-framework/grid/extensions/services/list-settings.service.mjs +0 -42
  513. package/esm2020/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +0 -36
  514. package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +0 -94
  515. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +0 -75
  516. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +0 -96
  517. package/esm2020/app/eo-framework/grid/filters/list-filter.component.mjs +0 -54
  518. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +0 -64
  519. package/esm2020/app/eo-framework/grid/grid.component.mjs +0 -421
  520. package/esm2020/app/eo-framework/grid/grid.module.mjs +0 -107
  521. package/esm2020/app/eo-framework/grid/row-grouping/group-stage.mjs +0 -528
  522. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +0 -457
  523. package/esm2020/app/eo-framework/list-container/list-container.component.mjs +0 -101
  524. package/esm2020/app/eo-framework/media/content-preview.service.mjs +0 -42
  525. package/esm2020/app/eo-framework/media/media.component.mjs +0 -314
  526. package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +0 -104
  527. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +0 -439
  528. package/esm2020/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +0 -32
  529. package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +0 -82
  530. package/esm2020/app/eo-framework/object-details/object-links/object-links.component.mjs +0 -292
  531. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +0 -123
  532. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +0 -634
  533. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +0 -238
  534. package/esm2020/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +0 -40
  535. package/esm2020/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +0 -81
  536. package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +0 -113
  537. package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +0 -267
  538. package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +0 -148
  539. package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +0 -216
  540. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +0 -717
  541. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +0 -134
  542. package/esm2020/app/eo-framework/plugins/plugins.module.mjs +0 -59
  543. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +0 -557
  544. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +0 -226
  545. package/esm2020/app/eo-framework/process-form/process-form.component.mjs +0 -50
  546. package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +0 -220
  547. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +0 -271
  548. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +0 -368
  549. package/esm2020/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +0 -125
  550. package/esm2020/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +0 -65
  551. package/esm2020/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +0 -130
  552. package/esm2020/app/eo-framework/shortcuts/shortcuts.service.mjs +0 -45
  553. package/esm2020/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +0 -225
  554. package/esm2020/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +0 -46
  555. package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +0 -501
  556. package/esm2020/app/eo-framework/tree/tree.component.mjs +0 -281
  557. package/esm2020/app/eo-framework/ui/clipboard/clipboard.component.mjs +0 -159
  558. package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +0 -130
  559. package/esm2020/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +0 -119
  560. package/esm2020/app/eo-framework/ui/error-message/error-message.component.mjs +0 -33
  561. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +0 -41
  562. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +0 -146
  563. package/esm2020/app/eo-framework/ui/outside-click/outside-click.directive.mjs +0 -60
  564. package/esm2020/app/eo-framework/ui/overlay/overlay.component.mjs +0 -71
  565. package/esm2020/app/eo-framework/ui/router-link/router-link.directive.mjs +0 -26
  566. package/esm2020/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +0 -57
  567. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +0 -32
  568. package/esm2020/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +0 -54
  569. package/esm2020/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +0 -17
  570. package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +0 -397
  571. package/esm2020/app/eo-framework/util/directive/trap-focus.directive.mjs +0 -69
  572. package/esm2020/app/eo-framework/util/services/utilities.service.mjs +0 -25
  573. package/esm2020/app/eo-framework/util/sortable/order-by.pipe.mjs +0 -48
  574. package/esm2020/app/eo-framework-core/agent/agent.service.mjs +0 -178
  575. package/esm2020/app/eo-framework-core/api/grid.service.mjs +0 -732
  576. package/esm2020/app/eo-framework-core/api/plugins.service.mjs +0 -258
  577. package/esm2020/app/eo-framework-core/empty-state/empty-state.service.mjs +0 -53
  578. package/esm2020/app/eo-framework-core/eo-framework-core.module.mjs +0 -105
  579. package/esm2020/app/eo-framework-core/error-handler/error-handler.service.mjs +0 -89
  580. package/esm2020/app/eo-framework-core/layout/layout.service.mjs +0 -106
  581. package/esm2020/app/eo-framework-core/location/location.service.mjs +0 -146
  582. package/esm2020/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +0 -18
  583. package/esm2020/app/eo-framework-core/pending-changes/pending-changes.service.mjs +0 -112
  584. package/esm2020/app/eo-framework-core/pipes/filesize.pipe.mjs +0 -30
  585. package/esm2020/app/eo-framework-core/pipes/locale-date.pipe.mjs +0 -63
  586. package/esm2020/app/eo-framework-core/pipes/locale-number.pipe.mjs +0 -109
  587. package/esm2020/app/eo-framework-core/references/reference.service.mjs +0 -266
  588. package/esm2020/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +0 -29
  589. package/esm2020/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +0 -55
  590. package/esm2020/app/eo-framework-core/search/app-search.service.mjs +0 -387
  591. package/esm2020/app/eo-framework-core/selection/selection.service.mjs +0 -63
  592. package/esm2020/app/eo-framework-core/title/page-title.service.mjs +0 -42
  593. package/esm2020/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.mjs +0 -5
  594. package/esm2020/projects/eo-sdk/core/lib/config/core-config.mjs +0 -23
  595. package/esm2020/projects/eo-sdk/core/lib/config/core-init.service.mjs +0 -71
  596. package/esm2020/projects/eo-sdk/core/lib/config/core-init.tokens.mjs +0 -8
  597. package/esm2020/projects/eo-sdk/core/lib/config/initialize-module.mjs +0 -11
  598. package/esm2020/projects/eo-sdk/core/lib/config/missing-translation-handler.mjs +0 -15
  599. package/esm2020/projects/eo-sdk/core/lib/config/translate-json-loader.mjs +0 -130
  600. package/esm2020/projects/eo-sdk/core/lib/environment.enaio.mjs +0 -12
  601. package/esm2020/projects/eo-sdk/core/lib/eo-core-shared.module.mjs +0 -24
  602. package/esm2020/projects/eo-sdk/core/lib/eo-core.module.mjs +0 -117
  603. package/esm2020/projects/eo-sdk/core/lib/interface/change-password.interface.mjs +0 -2
  604. package/esm2020/projects/eo-sdk/core/lib/interface/event.interface.mjs +0 -2
  605. package/esm2020/projects/eo-sdk/core/lib/interface/http-options.interface.mjs +0 -2
  606. package/esm2020/projects/eo-sdk/core/lib/interface/logger.interface.mjs +0 -7
  607. package/esm2020/projects/eo-sdk/core/lib/interface/organization-objects.interface.mjs +0 -2
  608. package/esm2020/projects/eo-sdk/core/lib/interface/tree-node.interface.mjs +0 -2
  609. package/esm2020/projects/eo-sdk/core/lib/model/baseparams.model.mjs +0 -2
  610. package/esm2020/projects/eo-sdk/core/lib/model/bpm.model.mjs +0 -70
  611. package/esm2020/projects/eo-sdk/core/lib/model/custom-action.model.mjs +0 -2
  612. package/esm2020/projects/eo-sdk/core/lib/model/dms-object-history.model.mjs +0 -30
  613. package/esm2020/projects/eo-sdk/core/lib/model/dms-object.model.mjs +0 -140
  614. package/esm2020/projects/eo-sdk/core/lib/model/eo-error.model.mjs +0 -37
  615. package/esm2020/projects/eo-sdk/core/lib/model/eo-user.model.mjs +0 -86
  616. package/esm2020/projects/eo-sdk/core/lib/model/inbox-item.model.mjs +0 -36
  617. package/esm2020/projects/eo-sdk/core/lib/model/object-type.model.mjs +0 -39
  618. package/esm2020/projects/eo-sdk/core/lib/model/org.model.mjs +0 -2
  619. package/esm2020/projects/eo-sdk/core/lib/model/prepared-item.model.mjs +0 -35
  620. package/esm2020/projects/eo-sdk/core/lib/model/range-value.model.mjs +0 -45
  621. package/esm2020/projects/eo-sdk/core/lib/model/upload-file-item.model.mjs +0 -17
  622. package/esm2020/projects/eo-sdk/core/lib/model/upload-target.model.mjs +0 -50
  623. package/esm2020/projects/eo-sdk/core/lib/model/work-item-history.model.mjs +0 -54
  624. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-interceptor.mjs +0 -29
  625. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.mjs +0 -2
  626. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +0 -215
  627. package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +0 -2
  628. package/esm2020/projects/eo-sdk/core/lib/service/backend/backend.service.mjs +0 -358
  629. package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +0 -286
  630. package/esm2020/projects/eo-sdk/core/lib/service/cache/app-cache.service.mjs +0 -117
  631. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +0 -2
  632. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +0 -60
  633. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.mjs +0 -6
  634. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.mjs +0 -2
  635. package/esm2020/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.mjs +0 -100
  636. package/esm2020/projects/eo-sdk/core/lib/service/config/config.enum.mjs +0 -6
  637. package/esm2020/projects/eo-sdk/core/lib/service/config/config.interface.mjs +0 -2
  638. package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +0 -135
  639. package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +0 -507
  640. package/esm2020/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.mjs +0 -2
  641. package/esm2020/projects/eo-sdk/core/lib/service/events/event.service.mjs +0 -44
  642. package/esm2020/projects/eo-sdk/core/lib/service/events/events.mjs +0 -27
  643. package/esm2020/projects/eo-sdk/core/lib/service/inbox/inbox.service.mjs +0 -111
  644. package/esm2020/projects/eo-sdk/core/lib/service/logger/console-log.service.mjs +0 -41
  645. package/esm2020/projects/eo-sdk/core/lib/service/logger/logger.mjs +0 -47
  646. package/esm2020/projects/eo-sdk/core/lib/service/notifications/notifications.service.mjs +0 -136
  647. package/esm2020/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.mjs +0 -2
  648. package/esm2020/projects/eo-sdk/core/lib/service/prepare/prepare.service.mjs +0 -305
  649. package/esm2020/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.mjs +0 -2
  650. package/esm2020/projects/eo-sdk/core/lib/service/search/search-query.model.mjs +0 -510
  651. package/esm2020/projects/eo-sdk/core/lib/service/search/search.service.mjs +0 -478
  652. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +0 -60
  653. package/esm2020/projects/eo-sdk/core/lib/service/storage/local-storage.service.mjs +0 -111
  654. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.mjs +0 -2
  655. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.mjs +0 -216
  656. package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.mjs +0 -98
  657. package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +0 -345
  658. package/esm2020/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.mjs +0 -2
  659. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system-status.service.mjs +0 -104
  660. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.enum.mjs +0 -9
  661. package/esm2020/projects/eo-sdk/core/lib/service/system-status/system.status.interface.mjs +0 -2
  662. package/esm2020/projects/eo-sdk/core/lib/service/upload/upload.service.mjs +0 -46
  663. package/esm2020/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.mjs +0 -83
  664. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +0 -399
  665. package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +0 -304
  666. package/esm2020/projects/eo-sdk/core/public_api.mjs +0 -85
  667. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6118
  668. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
  669. package/fesm2015/eo-sdk-client.mjs +0 -27040
  670. package/fesm2015/eo-sdk-client.mjs.map +0 -1
  671. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +0 -6133
  672. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +0 -1
  673. package/fesm2020/eo-sdk-client.mjs.map +0 -1
  674. package/projects/eo-sdk/core/README.md +0 -113
  675. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.d.ts.map +0 -1
  676. package/projects/eo-sdk/core/index.d.ts +0 -6
  677. package/projects/eo-sdk/core/lib/config/core-config.d.ts +0 -14
  678. package/projects/eo-sdk/core/lib/config/core-config.d.ts.map +0 -1
  679. package/projects/eo-sdk/core/lib/config/core-init.service.d.ts +0 -33
  680. package/projects/eo-sdk/core/lib/config/core-init.service.d.ts.map +0 -1
  681. package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts +0 -8
  682. package/projects/eo-sdk/core/lib/config/core-init.tokens.d.ts.map +0 -1
  683. package/projects/eo-sdk/core/lib/config/initialize-module.d.ts +0 -7
  684. package/projects/eo-sdk/core/lib/config/initialize-module.d.ts.map +0 -1
  685. package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts +0 -14
  686. package/projects/eo-sdk/core/lib/config/missing-translation-handler.d.ts.map +0 -1
  687. package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts +0 -21
  688. package/projects/eo-sdk/core/lib/config/translate-json-loader.d.ts.map +0 -1
  689. package/projects/eo-sdk/core/lib/environment.enaio.d.ts +0 -6
  690. package/projects/eo-sdk/core/lib/environment.enaio.d.ts.map +0 -1
  691. package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts +0 -12
  692. package/projects/eo-sdk/core/lib/eo-core-shared.module.d.ts.map +0 -1
  693. package/projects/eo-sdk/core/lib/eo-core.module.d.ts +0 -46
  694. package/projects/eo-sdk/core/lib/eo-core.module.d.ts.map +0 -1
  695. package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts +0 -8
  696. package/projects/eo-sdk/core/lib/interface/change-password.interface.d.ts.map +0 -1
  697. package/projects/eo-sdk/core/lib/interface/event.interface.d.ts +0 -14
  698. package/projects/eo-sdk/core/lib/interface/event.interface.d.ts.map +0 -1
  699. package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts +0 -17
  700. package/projects/eo-sdk/core/lib/interface/http-options.interface.d.ts.map +0 -1
  701. package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts +0 -20
  702. package/projects/eo-sdk/core/lib/interface/logger.interface.d.ts.map +0 -1
  703. package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts +0 -20
  704. package/projects/eo-sdk/core/lib/interface/organization-objects.interface.d.ts.map +0 -1
  705. package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts +0 -24
  706. package/projects/eo-sdk/core/lib/interface/tree-node.interface.d.ts.map +0 -1
  707. package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts +0 -58
  708. package/projects/eo-sdk/core/lib/model/baseparams.model.d.ts.map +0 -1
  709. package/projects/eo-sdk/core/lib/model/bpm.model.d.ts +0 -253
  710. package/projects/eo-sdk/core/lib/model/bpm.model.d.ts.map +0 -1
  711. package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts +0 -34
  712. package/projects/eo-sdk/core/lib/model/custom-action.model.d.ts.map +0 -1
  713. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +0 -59
  714. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts.map +0 -1
  715. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts +0 -137
  716. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts.map +0 -1
  717. package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts +0 -19
  718. package/projects/eo-sdk/core/lib/model/eo-error.model.d.ts.map +0 -1
  719. package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts +0 -107
  720. package/projects/eo-sdk/core/lib/model/eo-user.model.d.ts.map +0 -1
  721. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts +0 -71
  722. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts.map +0 -1
  723. package/projects/eo-sdk/core/lib/model/object-type.model.d.ts +0 -125
  724. package/projects/eo-sdk/core/lib/model/object-type.model.d.ts.map +0 -1
  725. package/projects/eo-sdk/core/lib/model/org.model.d.ts +0 -94
  726. package/projects/eo-sdk/core/lib/model/org.model.d.ts.map +0 -1
  727. package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts +0 -190
  728. package/projects/eo-sdk/core/lib/model/prepared-item.model.d.ts.map +0 -1
  729. package/projects/eo-sdk/core/lib/model/range-value.model.d.ts +0 -22
  730. package/projects/eo-sdk/core/lib/model/range-value.model.d.ts.map +0 -1
  731. package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts +0 -30
  732. package/projects/eo-sdk/core/lib/model/upload-file-item.model.d.ts.map +0 -1
  733. package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts +0 -60
  734. package/projects/eo-sdk/core/lib/model/upload-target.model.d.ts.map +0 -1
  735. package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts +0 -52
  736. package/projects/eo-sdk/core/lib/model/work-item-history.model.d.ts.map +0 -1
  737. package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts +0 -12
  738. package/projects/eo-sdk/core/lib/service/auth/auth-interceptor.d.ts.map +0 -1
  739. package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts +0 -23
  740. package/projects/eo-sdk/core/lib/service/auth/auth-profile.interface.d.ts.map +0 -1
  741. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +0 -104
  742. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +0 -1
  743. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -18
  744. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +0 -1
  745. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +0 -209
  746. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts.map +0 -1
  747. package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts +0 -150
  748. package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts.map +0 -1
  749. package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts +0 -59
  750. package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts.map +0 -1
  751. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +0 -54
  752. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +0 -1
  753. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +0 -35
  754. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +0 -1
  755. package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts +0 -5
  756. package/projects/eo-sdk/core/lib/service/clipboard/clipboard-action.enum.d.ts.map +0 -1
  757. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts +0 -16
  758. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.interface.d.ts.map +0 -1
  759. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts +0 -49
  760. package/projects/eo-sdk/core/lib/service/clipboard/clipboard.service.d.ts.map +0 -1
  761. package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts +0 -5
  762. package/projects/eo-sdk/core/lib/service/config/config.enum.d.ts.map +0 -1
  763. package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts +0 -55
  764. package/projects/eo-sdk/core/lib/service/config/config.interface.d.ts.map +0 -1
  765. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts +0 -80
  766. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +0 -1
  767. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +0 -286
  768. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +0 -1
  769. package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts +0 -13
  770. package/projects/eo-sdk/core/lib/service/dms/dmsParams.interface.d.ts.map +0 -1
  771. package/projects/eo-sdk/core/lib/service/events/event.service.d.ts +0 -31
  772. package/projects/eo-sdk/core/lib/service/events/event.service.d.ts.map +0 -1
  773. package/projects/eo-sdk/core/lib/service/events/events.d.ts +0 -27
  774. package/projects/eo-sdk/core/lib/service/events/events.d.ts.map +0 -1
  775. package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts +0 -66
  776. package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts.map +0 -1
  777. package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts +0 -20
  778. package/projects/eo-sdk/core/lib/service/logger/console-log.service.d.ts.map +0 -1
  779. package/projects/eo-sdk/core/lib/service/logger/logger.d.ts +0 -25
  780. package/projects/eo-sdk/core/lib/service/logger/logger.d.ts.map +0 -1
  781. package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts +0 -78
  782. package/projects/eo-sdk/core/lib/service/notifications/notifications.service.d.ts.map +0 -1
  783. package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts +0 -9
  784. package/projects/eo-sdk/core/lib/service/prepare/objectTypes.interface.d.ts.map +0 -1
  785. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +0 -189
  786. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts.map +0 -1
  787. package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts +0 -10
  788. package/projects/eo-sdk/core/lib/service/search/search-filter-type.interface.d.ts.map +0 -1
  789. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +0 -327
  790. package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts.map +0 -1
  791. package/projects/eo-sdk/core/lib/service/search/search.service.d.ts +0 -173
  792. package/projects/eo-sdk/core/lib/service/search/search.service.d.ts.map +0 -1
  793. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +0 -52
  794. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +0 -1
  795. package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts +0 -53
  796. package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts.map +0 -1
  797. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts +0 -15
  798. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries-subscription.interface.d.ts.map +0 -1
  799. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts +0 -108
  800. package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts.map +0 -1
  801. package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts +0 -74
  802. package/projects/eo-sdk/core/lib/service/stored-queries/stored-query.model.d.ts.map +0 -1
  803. package/projects/eo-sdk/core/lib/service/system/system.service.d.ts +0 -125
  804. package/projects/eo-sdk/core/lib/service/system/system.service.d.ts.map +0 -1
  805. package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts +0 -53
  806. package/projects/eo-sdk/core/lib/service/system/systemdefinition.interface.d.ts.map +0 -1
  807. package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts +0 -26
  808. package/projects/eo-sdk/core/lib/service/system-status/system-status.service.d.ts.map +0 -1
  809. package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts +0 -8
  810. package/projects/eo-sdk/core/lib/service/system-status/system.status.enum.d.ts.map +0 -1
  811. package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts +0 -8
  812. package/projects/eo-sdk/core/lib/service/system-status/system.status.interface.d.ts.map +0 -1
  813. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts +0 -28
  814. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts.map +0 -1
  815. package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts +0 -50
  816. package/projects/eo-sdk/core/lib/service/upload-registry/upload-registry.service.d.ts.map +0 -1
  817. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +0 -216
  818. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +0 -1
  819. package/projects/eo-sdk/core/lib/util/utils.d.ts +0 -148
  820. package/projects/eo-sdk/core/lib/util/utils.d.ts.map +0 -1
  821. package/projects/eo-sdk/core/public_api.d.ts +0 -82
  822. package/projects/eo-sdk/core/public_api.d.ts.map +0 -1
  823. /package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +0 -0
  824. /package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +0 -0
  825. /package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +0 -0
  826. /package/{esm2020 → esm2022}/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +0 -0
  827. /package/{esm2020 → esm2022}/app/eo-client/inbox-state/inbox-state/inbox.types.enum.mjs +0 -0
  828. /package/{esm2020 → esm2022}/app/eo-client/index.mjs +0 -0
  829. /package/{esm2020 → esm2022}/app/eo-client/notifications-state/notifications-state.interface.mjs +0 -0
  830. /package/{esm2020 → esm2022}/app/eo-client/object-state/object-state-service/object-state.interface.mjs +0 -0
  831. /package/{esm2020 → esm2022}/app/eo-client/settings/agent-lock-settings.enum.mjs +0 -0
  832. /package/{esm2020 → esm2022}/app/eo-framework/accordion/index.mjs +0 -0
  833. /package/{esm2020 → esm2022}/app/eo-framework/actions/actions/signature-action/signature.model.mjs +0 -0
  834. /package/{esm2020 → esm2022}/app/eo-framework/actions/index.mjs +0 -0
  835. /package/{esm2020 → esm2022}/app/eo-framework/actions/interfaces/action-component.interface.mjs +0 -0
  836. /package/{esm2020 → esm2022}/app/eo-framework/actions/interfaces/action-list-entry.mjs +0 -0
  837. /package/{esm2020 → esm2022}/app/eo-framework/actions/interfaces/action.interface.mjs +0 -0
  838. /package/{esm2020 → esm2022}/app/eo-framework/actions/selection-range.enum.mjs +0 -0
  839. /package/{esm2020 → esm2022}/app/eo-framework/animations/animations.mjs +0 -0
  840. /package/{esm2020 → esm2022}/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.mjs +0 -0
  841. /package/{esm2020 → esm2022}/app/eo-framework/cta/index.mjs +0 -0
  842. /package/{esm2020 → esm2022}/app/eo-framework/error/index.mjs +0 -0
  843. /package/{esm2020 → esm2022}/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.mjs +0 -0
  844. /package/{esm2020 → esm2022}/app/eo-framework/form-elements/id-reference/interface/reference-finder.interface.mjs +0 -0
  845. /package/{esm2020 → esm2022}/app/eo-framework/form-elements/index.mjs +0 -0
  846. /package/{esm2020 → esm2022}/app/eo-framework/grid/extensions/filter/setFilters/set-filters.interface.mjs +0 -0
  847. /package/{esm2020 → esm2022}/app/eo-framework/grid/filters/filesize-filter.component.mjs +0 -0
  848. /package/{esm2020 → esm2022}/app/eo-framework/grid/grid-filter.model.mjs +0 -0
  849. /package/{esm2020 → esm2022}/app/eo-framework/grid/index.mjs +0 -0
  850. /package/{esm2020 → esm2022}/app/eo-framework/grid/loader.interface.mjs +0 -0
  851. /package/{esm2020 → esm2022}/app/eo-framework/index.mjs +0 -0
  852. /package/{esm2020 → esm2022}/app/eo-framework/list-container/index.mjs +0 -0
  853. /package/{esm2020 → esm2022}/app/eo-framework/media/index.mjs +0 -0
  854. /package/{esm2020 → esm2022}/app/eo-framework/object-details/index.mjs +0 -0
  855. /package/{esm2020 → esm2022}/app/eo-framework/object-details/object-history/history-filter/history-filter.mjs +0 -0
  856. /package/{esm2020 → esm2022}/app/eo-framework/object-form/form-status-changed-event.interface.mjs +0 -0
  857. /package/{esm2020 → esm2022}/app/eo-framework/object-form/index.mjs +0 -0
  858. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +0 -0
  859. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/object-form-control-wrapper.mjs +0 -0
  860. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/object-form-control.mjs +0 -0
  861. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/object-form-group.model.mjs +0 -0
  862. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/object-form-script/object-form-script.interface.mjs +0 -0
  863. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form/object-form.model.mjs +0 -0
  864. /package/{esm2020 → esm2022}/app/eo-framework/object-form/object-form-options.interface.mjs +0 -0
  865. /package/{esm2020 → esm2022}/app/eo-framework/plugins/index.mjs +0 -0
  866. /package/{esm2020 → esm2022}/app/eo-framework/process/process-file/file-entry-permissions.interface.mjs +0 -0
  867. /package/{esm2020 → esm2022}/app/eo-framework/quick-search/index.mjs +0 -0
  868. /package/{esm2020 → esm2022}/app/eo-framework/quick-search/quick-search/quick-search-result.interface.mjs +0 -0
  869. /package/{esm2020 → esm2022}/app/eo-framework/result-list/index.mjs +0 -0
  870. /package/{esm2020 → esm2022}/app/eo-framework/settings/change-password/change-password.interface.mjs +0 -0
  871. /package/{esm2020 → esm2022}/app/eo-framework/settings/index.mjs +0 -0
  872. /package/{esm2020 → esm2022}/app/eo-framework/shortcuts/global-shortcut-action.interface.mjs +0 -0
  873. /package/{esm2020 → esm2022}/app/eo-framework/shortcuts/global-shortcut-component.interface.mjs +0 -0
  874. /package/{esm2020 → esm2022}/app/eo-framework/shortcuts/index.mjs +0 -0
  875. /package/{esm2020 → esm2022}/app/eo-framework/stored-query/index.mjs +0 -0
  876. /package/{esm2020 → esm2022}/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +0 -0
  877. /package/{esm2020 → esm2022}/app/eo-framework/stored-query/stored-query.interface.mjs +0 -0
  878. /package/{esm2020 → esm2022}/app/eo-framework/tree/index.mjs +0 -0
  879. /package/{esm2020 → esm2022}/app/eo-framework/tree/tree.component.interface.mjs +0 -0
  880. /package/{esm2020 → esm2022}/app/eo-framework/ui/index.mjs +0 -0
  881. /package/{esm2020 → esm2022}/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry.interface.mjs +0 -0
  882. /package/{esm2020 → esm2022}/app/eo-framework/util/index.mjs +0 -0
  883. /package/{esm2020 → esm2022}/app/eo-framework-core/agent/agent.interface.mjs +0 -0
  884. /package/{esm2020 → esm2022}/app/eo-framework-core/api/model/dms-object.api.interface.mjs +0 -0
  885. /package/{esm2020 → esm2022}/app/eo-framework-core/empty-state/empty-state.interface.mjs +0 -0
  886. /package/{esm2020 → esm2022}/app/eo-framework-core/error-handler/error-keys.mjs +0 -0
  887. /package/{esm2020 → esm2022}/app/eo-framework-core/index.mjs +0 -0
  888. /package/{esm2020 → esm2022}/app/eo-framework-core/pending-changes/pending-changes-component.interface.mjs +0 -0
  889. /package/{esm2020 → esm2022}/eo-sdk-client.mjs +0 -0
  890. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -0,0 +1,639 @@
1
+ import { __decorate } from "tslib";
2
+ import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
3
+ import { CsvExportModule } from '@ag-grid-community/csv-export';
4
+ import { Component, HostListener, Input, ViewChild, forwardRef } from '@angular/core';
5
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import { Utils } from '@eo-sdk/core';
7
+ import { firstValueFrom, forkJoin } from 'rxjs';
8
+ import { map } from 'rxjs/operators';
9
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
10
+ import { CellRenderer } from '../../../../eo-framework-core/api/grid.service';
11
+ import { LocaleNumberPipe } from "../../../../eo-framework-core";
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@eo-sdk/core";
14
+ import * as i2 from "./../../../../eo-framework-core/pending-changes/pending-changes.service";
15
+ import * as i3 from "../../../../eo-framework-core/api/grid.service";
16
+ import * as i4 from "@angular/common";
17
+ import * as i5 from "@ngx-translate/core";
18
+ import * as i6 from "../../../ui/eo-icon/eo-icon.component";
19
+ import * as i7 from "../../../ui/eo-dialog/eo-dialog.component";
20
+ import * as i8 from "@ag-grid-community/angular";
21
+ import * as i9 from "../../../media/media.component";
22
+ import * as i10 from "@yuuvis/components/split-view";
23
+ import * as i11 from "./row-edit/row-edit.component";
24
+ let FormElementTableComponent = class FormElementTableComponent {
25
+ set params(p) {
26
+ this.cacheLayoutKey = p ? `${this.BASE_CACHE_LAYOUT_KEY}.${p.element.name}` : this.BASE_CACHE_LAYOUT_KEY;
27
+ if (p) {
28
+ this._params = p;
29
+ this._cachedColumns = this.storageService.getItem(this.cacheLayoutKey + '.colDef') || [];
30
+ this._cachedColumnsOverlay = this.storageService.getItem(this.cacheLayoutKey + '.colDefOverlay') || [];
31
+ this.showPreview = this.storageService.getItem(this.cacheLayoutKey + '.showPreview');
32
+ CellRenderer.situation = this._params.situation;
33
+ if (this._params.situation === 'SEARCH') {
34
+ this._params.size = 'supersmall';
35
+ }
36
+ else if (!this._params.size) {
37
+ this._params.size = 'small';
38
+ }
39
+ this.gridReady = false;
40
+ this._elements = p.element.elements;
41
+ this.gridOptions.columnDefs = this.createColumnDefinition();
42
+ if (this._params.situation === 'SEARCH') {
43
+ this.gridOptions.columnDefs.push({ headerName: '', colId: 'actions', width: 34, minWidth: 34, pinned: 'right', cellRenderer: this.actionsCellRenderer });
44
+ }
45
+ else {
46
+ this.overlayGridOptions.columnDefs = this.createColumnDefinition(true);
47
+ }
48
+ this.gridReady = true;
49
+ }
50
+ }
51
+ get params() {
52
+ return this._params;
53
+ }
54
+ copyCellHandler(event) {
55
+ this.gridApi.copyToClipboard(event, this.agGrid, this.gridOptions);
56
+ }
57
+ constructor(storageService, systemService, pendingChanges, gridApi, toast, translate) {
58
+ this.storageService = storageService;
59
+ this.systemService = systemService;
60
+ this.pendingChanges = pendingChanges;
61
+ this.gridApi = gridApi;
62
+ this.toast = toast;
63
+ this.translate = translate;
64
+ this.modules = [ClientSideRowModelModule, CsvExportModule];
65
+ this.BASE_CACHE_LAYOUT_KEY = 'table.state';
66
+ this.cacheLayoutKey = this.BASE_CACHE_LAYOUT_KEY;
67
+ this.minWidth = '97vw';
68
+ this.height = '95vh';
69
+ this.gridReady = false;
70
+ this.showDialog = false;
71
+ this.showPreview = false;
72
+ this.showImportReportDialog = false;
73
+ this.mappedRows = [];
74
+ this.mappingErrorFields = [];
75
+ this.propagateChange = (_) => {
76
+ };
77
+ this.gridOptions = {
78
+ context: this.gridApi.getContext(),
79
+ headerHeight: 30,
80
+ rowHeight: 30,
81
+ rowBuffer: 20,
82
+ multiSortKey: 'ctrl',
83
+ accentedSort: true,
84
+ // suppressCellSelection: true,
85
+ rowSelection: 'single',
86
+ suppressMovableColumns: true,
87
+ enableFilter: false,
88
+ suppressNoRowsOverlay: true,
89
+ suppressLoadingOverlay: true,
90
+ suppressContextMenu: true
91
+ };
92
+ this.gridOptions.context.tableComponent = this;
93
+ this.overlayGridOptions = {
94
+ context: this.gridApi.getContext(),
95
+ headerHeight: 30,
96
+ rowHeight: 30,
97
+ rowBuffer: 20,
98
+ multiSortKey: 'ctrl',
99
+ accentedSort: true,
100
+ // suppressCellSelection: true,
101
+ rowSelection: 'single',
102
+ suppressMovableColumns: true,
103
+ enableFilter: false,
104
+ suppressNoRowsOverlay: true,
105
+ suppressLoadingOverlay: true,
106
+ suppressContextMenu: true
107
+ };
108
+ this.overlayGridOptions.context.tableComponent = this;
109
+ this.overlayGridOptions.rowClassRules = {
110
+ 'new-row': function (params) {
111
+ if (params.data.isNewRow) {
112
+ delete params.data.isNewRow;
113
+ delete params.context.tableComponent.innerValue[params.context.tableComponent.innerValue.length - 1].isNewRow;
114
+ return true;
115
+ }
116
+ else {
117
+ return false;
118
+ }
119
+ }
120
+ };
121
+ this.pendingChanges.tasks$
122
+ .pipe(untilDestroyed(this))
123
+ .subscribe(tasks => {
124
+ setTimeout(() => {
125
+ this.overlayGridOptions.suppressRowClickSelection = !!this.rowEdit && !!tasks.includes(this.rowEdit.pendingTaskId);
126
+ }, 0);
127
+ });
128
+ }
129
+ actionsCellRenderer(params) {
130
+ let div = document.createElement('div');
131
+ if (params.context.tableComponent.params.situation === 'SEARCH') {
132
+ div.innerHTML = `<div class="action-icon" id="actionIcon-${params.rowIndex}">
133
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
134
+ <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
135
+ </svg>
136
+ </div>`;
137
+ let clearIcon = div.querySelectorAll(`#actionIcon-${params.rowIndex}`)[0];
138
+ clearIcon.addEventListener('click', () => params.context.tableComponent.clearRow(params.rowIndex));
139
+ }
140
+ else {
141
+ div.innerHTML = `<div class="action-icon" id="actionIcon-${params.rowIndex}">
142
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
143
+ <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/>
144
+ </svg>
145
+ </div>`;
146
+ let deleteIcon = div.querySelectorAll(`#actionIcon-${params.rowIndex}`)[0];
147
+ deleteIcon.addEventListener('click', () => params.context.tableComponent.deleteRow(params.rowIndex));
148
+ }
149
+ return div;
150
+ }
151
+ writeValue(value) {
152
+ if (!value && this._params.situation === 'SEARCH') {
153
+ // for search row data will always be one empty row
154
+ // todo: re-enable again when search in tables is supported
155
+ value = [{}];
156
+ }
157
+ this.value = value instanceof Array ? value : [];
158
+ // create a clone of the actual value for internal usage
159
+ this.innerValue = Utils.formDataParse(Utils.formDataStringify(this.value));
160
+ if (this.agGrid) {
161
+ this.agGrid.api.setGridOption('rowData', this.innerValue);
162
+ }
163
+ else {
164
+ this.gridOptions.rowData = this.innerValue;
165
+ }
166
+ if (this.overlayGrid) {
167
+ this.overlayGrid.api.setGridOption('rowData', this.innerValue);
168
+ setTimeout(() => this.selectEditRow(), 0);
169
+ }
170
+ else {
171
+ this.overlayGridOptions.rowData = this.innerValue;
172
+ }
173
+ }
174
+ registerOnChange(fn) {
175
+ this.propagateChange = fn;
176
+ }
177
+ registerOnTouched(fn) {
178
+ }
179
+ /**
180
+ * Create column definition from form element.
181
+ * @returns column definition to be added to the gridOptions
182
+ */
183
+ createColumnDefinition(overlay) {
184
+ return this._elements.map((el) => {
185
+ let col = this.gridApi.getColumnDefinition(el);
186
+ Object.assign(col, {
187
+ headerName: el.label,
188
+ suppressMenu: true,
189
+ filter: false,
190
+ sortable: true,
191
+ resizable: true,
192
+ field: el.name,
193
+ refData: {
194
+ ...col.refData,
195
+ _eoFormElement: el,
196
+ _situation: this._params.situation
197
+ }
198
+ });
199
+ let cachedColumns = this._cachedColumns;
200
+ if (overlay) {
201
+ cachedColumns = this._cachedColumnsOverlay;
202
+ }
203
+ let cachedColumn = cachedColumns.find(f => f.qname === el.qname);
204
+ if (cachedColumn) {
205
+ col.width = cachedColumn.width;
206
+ }
207
+ return col;
208
+ });
209
+ }
210
+ addRow() {
211
+ const rowData = {};
212
+ const asyncFetches = [];
213
+ this._elements
214
+ .forEach(el => {
215
+ if (el.defaultvalue !== undefined) {
216
+ rowData[el.name] = el.defaultvalue;
217
+ }
218
+ else if (el.defaultvaluefunction) {
219
+ rowData[el.name] = this.systemService.getDefaultValue(el.defaultvaluefunction);
220
+ if (el.defaultvaluefunction === 'CURRENT_USER') {
221
+ asyncFetches.push(this.resolveOrgDataMeta(el.name, rowData[el.name]));
222
+ }
223
+ }
224
+ });
225
+ if (asyncFetches.length > 0) {
226
+ forkJoin(asyncFetches).subscribe((res) => {
227
+ res.forEach(r => {
228
+ rowData[r.key] = r.value;
229
+ });
230
+ this.setEditRow(-1, rowData);
231
+ });
232
+ }
233
+ else {
234
+ this.setEditRow(-1, rowData);
235
+ }
236
+ }
237
+ resolveOrgDataMeta(elementName, value) {
238
+ return this.systemService.getOrganizationObject(value).pipe(map(res => ({
239
+ key: `${elementName}_meta`,
240
+ value: res
241
+ })));
242
+ }
243
+ editRow(event) {
244
+ this.setEditRow(event.node.id, event.node.data);
245
+ }
246
+ onEditComplete(event) {
247
+ //todo: is it obsolete?
248
+ }
249
+ setEditRow(index, data) {
250
+ // setup the row to be edited. Beside some properties, the
251
+ // row contains a form model and form data. If the parent form model
252
+ // provided a script, this will be added as well, so editing a row will
253
+ // respect the form script.
254
+ this.editingRow = {
255
+ situation: this._params.situation,
256
+ index: index,
257
+ tableElement: this._params.element,
258
+ form: {
259
+ elements: this._elements,
260
+ disabled: this._params.element.readonly,
261
+ data
262
+ }
263
+ };
264
+ // we need this line to reload the cached columns in case of reopening the dialog without refreshing the page
265
+ this.params = this._params;
266
+ this.showDialog = true;
267
+ setTimeout(() => this.selectEditRow(), 0);
268
+ }
269
+ selectEditRow() {
270
+ if (this.overlayGrid) {
271
+ this.overlayGrid.api.deselectAll();
272
+ if (this.editingRow && this.editingRow.index !== -1) {
273
+ let rowNode = this.overlayGrid.api.getRowNode('' + this.editingRow.index);
274
+ rowNode.setSelected(true, true);
275
+ this.overlayGrid.api.ensureNodeVisible(rowNode);
276
+ }
277
+ }
278
+ }
279
+ updateTableValue() {
280
+ this.agGrid.api.setGridOption('rowData', this.innerValue);
281
+ if (this.overlayGrid) {
282
+ this.overlayGrid.api.setGridOption('rowData', this.innerValue);
283
+ }
284
+ else {
285
+ this.overlayGridOptions.rowData = this.innerValue;
286
+ }
287
+ this.value = this.innerValue;
288
+ if (Object.keys(this.value.includes('isNewRow'))) {
289
+ delete this.value['isNewRow'];
290
+ }
291
+ this.propagateChange(this.value);
292
+ }
293
+ cancelRowEdit() {
294
+ if (this.rowEdit) {
295
+ this.rowEdit.finishPending();
296
+ }
297
+ this.editingRow = null;
298
+ if (this._params.situation === 'SEARCH') {
299
+ this.showDialog = false;
300
+ }
301
+ }
302
+ onClose() {
303
+ this.editingRow = null;
304
+ this.showDialog = false;
305
+ }
306
+ cancelImportReport() {
307
+ this.showImportReportDialog = false;
308
+ this.mappedRows = [];
309
+ this.mappingErrorFields = [];
310
+ }
311
+ updateRow(rowResult) {
312
+ const isNewRow = rowResult.index === -1;
313
+ if (isNewRow) {
314
+ this.innerValue.push({ ...rowResult.rowData, ...{ isNewRow: true } });
315
+ }
316
+ else {
317
+ this._elements.forEach(el => {
318
+ // this.innerValue[rowResult.index] = {...this.innerValue[rowResult.index], ...rowResult.rowData};
319
+ this.innerValue[rowResult.index][el.name] = rowResult.rowData[el.name];
320
+ if (rowResult.rowData[el.name + '_meta'] && this._params.situation !== 'SEARCH') {
321
+ this.innerValue[rowResult.index][el.name + '_meta'] = rowResult.rowData[el.name + '_meta'];
322
+ }
323
+ });
324
+ }
325
+ this.updateTableValue();
326
+ if (this._params.situation === 'SEARCH') {
327
+ this.showDialog = false;
328
+ }
329
+ else if (isNewRow && !rowResult.createNewRow) {
330
+ this.setEditRow(this.innerValue.length - 1, this.innerValue[this.innerValue.length - 1]);
331
+ }
332
+ else if (rowResult.createNewRow) {
333
+ this.addRow();
334
+ let rowNode = this.overlayGrid.api.getRowNode('' + (this.innerValue.length - 1));
335
+ this.overlayGrid.api.ensureNodeVisible(rowNode);
336
+ }
337
+ else {
338
+ this.setEditRow(rowResult.index, this.innerValue[rowResult.index]);
339
+ }
340
+ }
341
+ copyRow(rowResult) {
342
+ rowResult.index = -1;
343
+ this.innerValue.push({ ...rowResult.rowData, ...{ isNewRow: true } });
344
+ this.updateTableValue();
345
+ if (rowResult.createNewRow) {
346
+ this.addRow();
347
+ }
348
+ else {
349
+ this.setEditRow(this.innerValue.length - 1, JSON.parse(JSON.stringify(rowResult.rowData)));
350
+ }
351
+ }
352
+ deleteRow(index) {
353
+ if (index > -1) {
354
+ this.innerValue.splice(index, 1);
355
+ this.updateTableValue();
356
+ if (this.innerValue.length) {
357
+ const nextIndex = index == this.innerValue.length ? this.innerValue.length - 1 : index;
358
+ this.setEditRow(nextIndex, this.innerValue[nextIndex]);
359
+ }
360
+ else {
361
+ this.cancelRowEdit();
362
+ }
363
+ }
364
+ }
365
+ clearRow(index) {
366
+ this.innerValue[index] = {};
367
+ this.updateTableValue();
368
+ }
369
+ exportCSV() {
370
+ this.agGrid.api.exportDataAsCsv({
371
+ ...this.gridApi.csvExportParams,
372
+ fileName: this._params.element.label
373
+ });
374
+ }
375
+ importCSV(event) {
376
+ const fields = this._params.element.elements;
377
+ const file = event.files[0];
378
+ const reader = new FileReader();
379
+ reader.addEventListener('load', async (e) => {
380
+ let parsedata = [];
381
+ if (typeof e.target.result === 'string') {
382
+ let newLineBreak = e.target.result.split('\n').filter(result => result !== '');
383
+ for (let i = 0; i < newLineBreak.length; i++) {
384
+ parsedata.push(newLineBreak[i].split(';'));
385
+ }
386
+ if (parsedata.length > 5000) {
387
+ this.toast.error(this.translate.instant('eo.form.table.options.btn.upload.error'));
388
+ return;
389
+ }
390
+ parsedata = parsedata.map(data => data.map(d => d.replace(/"/gi, '').replace('\n', '').replace(/[^-.:,a-zA-Z0-9() ]/g, '').trim()));
391
+ const columns = this.gridOptions.columnDefs.map(column => column['field']);
392
+ const columnsUploaded = parsedata[0];
393
+ parsedata.shift();
394
+ const rowsUploaded = parsedata;
395
+ const metaFields = [];
396
+ for (let rowIndex = 0; rowIndex < rowsUploaded.length; rowIndex++) {
397
+ const mappedRow = {};
398
+ let currentRow = rowsUploaded[rowIndex];
399
+ for (let i = 0; i < currentRow.length && i < columns.length; i++) {
400
+ if (currentRow[i] !== '') {
401
+ const currentField = fields.find(field => field.name === columns[i]);
402
+ if (currentField.type === 'ORGANIZATION') {
403
+ let orgObj = await firstValueFrom(this.systemService.getOrganizationObject(currentRow[i]));
404
+ if (orgObj.active) {
405
+ mappedRow[columns[i]] = currentRow[i];
406
+ metaFields.push({ column: columns[i], rowIndex: rowIndex, value: orgObj });
407
+ }
408
+ else {
409
+ mappedRow[columns[i]] = '';
410
+ this.mappingErrorFields.push({ technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i] });
411
+ }
412
+ }
413
+ else if (currentField.type === 'CODESYSTEM') {
414
+ const codesystem = this.systemService.getCodesystem(currentField.codesystem.id);
415
+ const codesystemEntry = codesystem.entries.find(entry => entry.data === currentRow[i] || entry.defaultrepresentation === currentRow[i]);
416
+ if (codesystemEntry) {
417
+ mappedRow[columns[i]] = currentRow[i];
418
+ metaFields.push({
419
+ column: columns[i],
420
+ rowIndex: rowIndex,
421
+ value: { id: codesystemEntry.id, defaultrepresentation: codesystemEntry.defaultrepresentation, label: codesystemEntry.label
422
+ }
423
+ });
424
+ }
425
+ else {
426
+ mappedRow[columns[i]] = '';
427
+ this.mappingErrorFields.push({ technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i] });
428
+ }
429
+ }
430
+ else if (currentField.type === 'REFERENCE') {
431
+ if (currentRow[i].length === 32) {
432
+ mappedRow[columns[i]] = currentRow[i];
433
+ }
434
+ else {
435
+ mappedRow[columns[i]] = '';
436
+ this.mappingErrorFields.push({ technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i] });
437
+ }
438
+ }
439
+ else if (currentField.type === 'DATETIME') {
440
+ if (new Date(currentRow[i]).toString() === 'Invalid Date') {
441
+ mappedRow[columns[i]] = '';
442
+ this.mappingErrorFields.push({ technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i] });
443
+ }
444
+ else {
445
+ mappedRow[columns[i]] = currentRow[i];
446
+ }
447
+ }
448
+ else if (currentField.type === 'NUMBER') {
449
+ mappedRow[columns[i]] = new LocaleNumberPipe(this.translate).stringToNumber(currentRow[i]);
450
+ if (isNaN(mappedRow[columns[i]])) {
451
+ mappedRow[columns[i]] = '';
452
+ this.mappingErrorFields.push({ technicalName: columns[i], uploadedName: columnsUploaded[i], row: rowIndex, value: currentRow[i] });
453
+ }
454
+ }
455
+ else {
456
+ mappedRow[columns[i]] = currentRow[i];
457
+ }
458
+ }
459
+ }
460
+ this.mappedRows.push(mappedRow);
461
+ }
462
+ metaFields.forEach(field => {
463
+ this.mappedRows[field.rowIndex][field.column + '_meta'] = field.value;
464
+ });
465
+ this.openImportReportDialog();
466
+ }
467
+ });
468
+ reader.readAsBinaryString(file);
469
+ }
470
+ addImportValuesToTable() {
471
+ this.showImportReportDialog = false;
472
+ this.openDialog();
473
+ this.innerValue = [...this.innerValue, ...this.mappedRows];
474
+ this.updateTableValue();
475
+ }
476
+ sizeToFit(overlay) {
477
+ if (overlay) {
478
+ this.overlayGrid.api.sizeColumnsToFit();
479
+ }
480
+ else {
481
+ this.agGrid.api.sizeColumnsToFit();
482
+ }
483
+ }
484
+ openDialog() {
485
+ // we need this line to reload the cached columns in case of reopening the dialog without refreshing the page
486
+ this.params = this._params;
487
+ this.showDialog = true;
488
+ }
489
+ openImportReportDialog() {
490
+ this.showImportReportDialog = true;
491
+ }
492
+ validateTableData() {
493
+ // todo: implement
494
+ return true;
495
+ }
496
+ validate(c) {
497
+ return this.validateTableData() ? null : {
498
+ table: {
499
+ valid: false
500
+ }
501
+ };
502
+ }
503
+ onMouseDown($event) {
504
+ if (this.overlayGridOptions.suppressRowClickSelection) {
505
+ if (!this.pendingChanges.checkForPendingTasks(this.rowEdit.pendingTaskId)) {
506
+ this.overlayGridOptions.suppressRowClickSelection = false;
507
+ this.rowEdit.finishPending();
508
+ let rowIndex = this.gridApi.getRowIndex($event.target, 'ag-body');
509
+ if (rowIndex !== null) {
510
+ this.overlayGrid.api.getRowNode('' + rowIndex).setSelected(true, true);
511
+ $event.target.click();
512
+ }
513
+ }
514
+ else {
515
+ $event.preventDefault();
516
+ $event.stopImmediatePropagation();
517
+ }
518
+ }
519
+ }
520
+ onSortChanged() {
521
+ let rowNode = this.overlayGrid.api.getRowNode('' + this.editingRow.index);
522
+ this.overlayGrid.api.ensureNodeVisible(rowNode);
523
+ }
524
+ onCellClicked($event) {
525
+ if ($event.colDef.cellClass === 'router-link-cell' && $event.rowIndex !== null && !this.pendingChanges.check()) {
526
+ if (!$event.node.group && $event.data) {
527
+ this.gridApi.openRouterLink($event.event, 'ag-row');
528
+ }
529
+ }
530
+ }
531
+ onCellClickedRowEdit($event) {
532
+ if ($event.rowIndex !== null && !this.pendingChanges.checkForPendingTasks(this.rowEdit ? this.rowEdit.pendingTaskId : undefined)) {
533
+ if (!$event.node.group && $event.data) {
534
+ if ($event.colDef.cellClass === 'router-link-cell') {
535
+ this.gridApi.openRouterLink($event.event, 'ag-row');
536
+ }
537
+ }
538
+ }
539
+ this.editRow($event);
540
+ }
541
+ onColumnResized(column, overlay) {
542
+ let columnsDefinition = this.cacheLayoutKey + '.colDef';
543
+ let cachedColumns = this._cachedColumns;
544
+ if (overlay) {
545
+ columnsDefinition = this.cacheLayoutKey + '.colDefOverlay';
546
+ cachedColumns = this._cachedColumnsOverlay;
547
+ }
548
+ let col = cachedColumns.find(c => c.qname === column.colDef.refData.qname);
549
+ if (col) {
550
+ col.width = column.actualWidth;
551
+ }
552
+ else {
553
+ cachedColumns.push({ qname: column.colDef.refData.qname, width: column.actualWidth });
554
+ }
555
+ this.storageService.setItem(columnsDefinition, cachedColumns);
556
+ }
557
+ // private _updateSplitViewLayoutCache() {
558
+ // setTimeout(() => {
559
+ // this.splitView?.updateLayoutCache();
560
+ // });
561
+ // }
562
+ togglePreview() {
563
+ this.showPreview = !this.showPreview;
564
+ // make sure that the layout of the split view is updated after the preview panels
565
+ // visibility changed
566
+ // this._updateSplitViewLayoutCache();
567
+ this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);
568
+ }
569
+ // ngAfterViewInit(): void {
570
+ // this._updateSplitViewLayoutCache();
571
+ // }
572
+ ngOnInit() {
573
+ this.hasPreviewFile = this.hasPreviewFile !== undefined ? this.hasPreviewFile : !!this.params.object?.content;
574
+ }
575
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormElementTableComponent, deps: [{ token: i1.LocalStorageService }, { token: i1.SystemService }, { token: i2.PendingChangesService }, { token: i3.GridService }, { token: i1.NotificationsService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
576
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: FormElementTableComponent, selector: "eo-table", inputs: { limit: "limit", hasPreviewFile: "hasPreviewFile", minWidth: "minWidth", height: "height", params: "params" }, host: { listeners: { "keydown.control.alt.shift.c": "copyCellHandler($event)", "keydown.control.shift.c": "copyCellHandler($event)", "keydown.control.alt.c": "copyCellHandler($event)", "keydown.control.c": "copyCellHandler($event)" } }, providers: [
577
+ {
578
+ provide: NG_VALUE_ACCESSOR,
579
+ useExisting: forwardRef(() => FormElementTableComponent),
580
+ multi: true
581
+ },
582
+ {
583
+ provide: NG_VALIDATORS,
584
+ useExisting: forwardRef(() => FormElementTableComponent),
585
+ multi: true,
586
+ }
587
+ ], viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }, { propertyName: "overlayGrid", first: true, predicate: ["overlayGrid"], descendants: true }, { propertyName: "rowEdit", first: true, predicate: ["rowEdit"], descendants: true }], ngImport: i0, template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"object-form-table-header\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData?.length\" [iconSrc]=\"'assets/_default/svg/ic_export.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon *ngIf=\"!_params.element.readonly\" class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_import.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.upload'| translate)\" (click)=\"file.click()\"></eo-icon>\n <input type=\"file\" accept=\".csv\" style=\"display:none;\" #file (change)=\"importCSV($event.target)\"\n (click)=\"$event.target.value = null\">\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\" [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\" (cellClicked)=\"onCellClicked($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog [title]=\"params.element.label\" [visible]=\"showDialog\" [dirtyCheck]=\"rowEdit?.pendingTaskId\"\n [minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\" [width]=\"_params.situation !== 'SEARCH' ? '95vw' : 500\"\n [height]=\"height\" [styleClass]=\"'object-form-table-dialog'\" (hide)=\"onClose()\" [isFormTable]=\"true\"\n [hasPreviewFile]=\"hasPreviewFile\" [showPreview]=\"showPreview\" (onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n\n <!-- <yvc-split-view [layoutSettingsID]=\"cacheLayoutKey\"> -->\n <yvc-split-view>\n\n <!-- the table itself-->\n <ng-template yvcSplitArea [size]=\"40\" [visible]=\"_params.situation !== 'SEARCH'\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"object-form-table-header\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #overlayGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\" (cellClicked)=\"onCellClickedRowEdit($event)\"\n (mousedown)=\"onMouseDown($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- table edit component-->\n <ng-template yvcSplitArea [size]=\"20\" [visible]=\"!!editingRow\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions.rowData.length\" #rowEdit\n (onSave)=\"updateRow($event)\" (onSaveCopy)=\"copyRow($event)\" (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </ng-template>\n\n <!-- viewer-->\n <ng-template yvcSplitArea [size]=\"40\" [visible]=\"showPreview && hasPreviewFile\">\n <eo-media *ngIf=\"hasPreviewFile\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\" [dmsObject]=\"params.object\"></eo-media>\n </ng-template>\n\n </yvc-split-view>\n </div>\n</eo-dialog>\n\n<eo-dialog [title]=\"('eo.form.table.csv.import.report.title' | translate)\" [visible]=\"showImportReportDialog\"\n (hide)=\"cancelImportReport()\" [styleClass]=\"'import-report__dialog'\">\n <div class=\"body\">\n <h4 translate [translateParams]=\"{readRows: mappedRows.length}\">eo.form.table.csv.import.report.readRows</h4>\n <div *ngIf=\"mappingErrorFields.length !== 0\" class=\"flex-col\">\n <h4 translate>eo.form.table.csv.import.report.errors</h4>\n <table>\n <thead>\n <tr>\n <th translate>eo.form.table.csv.import.report.errors.row</th>\n <th translate>eo.form.table.csv.import.report.errors.csvColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.tableColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.value</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let error of mappingErrorFields; let i = index\">\n <tr>\n <td>{{error.row + 1}}</td>\n <td>{{error.uploadedName}}</td>\n <td>{{error.technicalName}}</td>\n <td>{{error.value}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n <div class=\"actions\">\n <button (click)=\"cancelImportReport()\" class=\"button-cancel\" translate>eo.resubmission.cancel</button>\n <button (click)=\"addImportValuesToTable()\" class=\"primary\" translate>eo.form.table.csv.import.report.import</button>\n </div>\n</eo-dialog>\n", styles: [":host-context(.dark) .label{color:var(--color-white);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-header-cell{color:rgba(var(--color-white-rgb),.7);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-root{background-color:transparent}:host ::ng-deep{--oft-row-height: 30px}:host ::ng-deep .ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box}:host ::ng-deep .ag-theme-balham .ag-root{background-color:var(--color-white)}:host ::ng-deep .ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}:host ::ng-deep .ag-theme-balham .ag-cell{display:flex;align-items:center;padding:0 calc(var(--app-pane-padding) / 4);font-size:var(--font-caption);line-height:var(--oft-row-height)}:host ::ng-deep .ag-theme-balham .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important;border-color:transparent!important}:host ::ng-deep .ag-theme-balham .ag-cell svg{pointer-events:none}:host ::ng-deep .ag-theme-balham .ag-cell.res-ico,:host ::ng-deep .ag-theme-balham .ag-cell.col-boolean{justify-content:center}:host ::ng-deep .ag-theme-balham .ag-cell.col-number{justify-content:flex-end}:host ::ng-deep .ag-theme-balham .ag-cell .no-value{border-radius:2px;font-size:var(--font-hint);background-color:var(--color-accent);padding:calc(var(--app-pane-padding) / 4);color:var(--color-white)}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon{display:flex;cursor:pointer}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon svg{fill:var(--text-color-caption)}:host ::ng-deep .ag-theme-balham .ag-header-cell{color:var(--text-color-caption);font-size:var(--font-caption);line-height:var(--oft-row-height);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);font-weight:400;border-bottom-color:var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-header-cell:after{opacity:0}:host ::ng-deep .ag-theme-balham .ag-ltr .ag-header-cell{border-right:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-rtl .ag-header-cell{border-left:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .chip{display:flex;align-items:center}:host ::ng-deep .ag-theme-balham .chip .link{display:flex;align-items:center}:host{width:100%;display:block;padding:0!important;background:rgba(var(--color-black-rgb),.02);border:1px solid var(--color-gainsboro)}:host.ng-invalid{border-color:var(--color-error);background:rgba(var(--color-error),.15)}:host .object-form-table .grid-body{width:100%;position:relative}:host .object-form-table .grid-body.size-supersmall{height:100px}:host .object-form-table .grid-body.size-small{height:200px}:host .object-form-table .grid-body.size-medium{height:300px}:host .object-form-table .grid-body.size-large{height:400px}:host .object-form-table .grid-body ag-grid-angular{width:100%;height:100%;background-color:transparent}:host .object-form-table.medium .body{height:300px}:host .object-form-table.large .body{height:500px}:host .object-form-table-header{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);border-bottom:0}:host .object-form-table-header span{display:block;flex:1 1 auto}:host .object-form-table-header eo-icon.stf{width:16px;height:16px;margin:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption);cursor:pointer}:host .object-form-table-header eo-icon.stf.add-row{width:24px;height:24px;background-color:var(--text-color-hint);color:#fff;border-radius:2px}:host .object-form-table-header button.add{border-radius:2px;padding:calc(var(--app-pane-padding) / 2)}:host .object-form-table-header button.export{border-radius:2px;border:1px solid black;color:#000;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4);font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding) / 4)}::ng-deep .import-report__dialog{padding:8px;min-height:unset!important;overflow:hidden}::ng-deep .import-report__dialog .body{overflow:auto}::ng-deep .import-report__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .import-report__dialog td,::ng-deep .import-report__dialog th{border:1px solid #dddddd;text-align:left;padding:8px}::ng-deep .import-report__dialog .actions{display:flex;flex:0;flex-direction:row;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .import-report__dialog .actions button{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.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: "component", type: i8.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "component", type: i9.MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"] }, { kind: "component", type: i10.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i10.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: i11.RowEditComponent, selector: "eo-row-edit", inputs: ["limitReached", "row"], outputs: ["onCancel", "onSave", "onSaveCopy", "onDelete"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
588
+ };
589
+ FormElementTableComponent = __decorate([
590
+ UntilDestroy()
591
+ ], FormElementTableComponent);
592
+ export { FormElementTableComponent };
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormElementTableComponent, decorators: [{
594
+ type: Component,
595
+ args: [{ selector: 'eo-table', providers: [
596
+ {
597
+ provide: NG_VALUE_ACCESSOR,
598
+ useExisting: forwardRef(() => FormElementTableComponent),
599
+ multi: true
600
+ },
601
+ {
602
+ provide: NG_VALIDATORS,
603
+ useExisting: forwardRef(() => FormElementTableComponent),
604
+ multi: true,
605
+ }
606
+ ], template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"object-form-table-header\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData?.length\" [iconSrc]=\"'assets/_default/svg/ic_export.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon *ngIf=\"!_params.element.readonly\" class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_import.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.upload'| translate)\" (click)=\"file.click()\"></eo-icon>\n <input type=\"file\" accept=\".csv\" style=\"display:none;\" #file (change)=\"importCSV($event.target)\"\n (click)=\"$event.target.value = null\">\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\" [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\" (cellClicked)=\"onCellClicked($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog [title]=\"params.element.label\" [visible]=\"showDialog\" [dirtyCheck]=\"rowEdit?.pendingTaskId\"\n [minWidth]=\"_params.situation !== 'SEARCH' ? minWidth : 200\" [width]=\"_params.situation !== 'SEARCH' ? '95vw' : 500\"\n [height]=\"height\" [styleClass]=\"'object-form-table-dialog'\" (hide)=\"onClose()\" [isFormTable]=\"true\"\n [hasPreviewFile]=\"hasPreviewFile\" [showPreview]=\"showPreview\" (onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n\n <!-- <yvc-split-view [layoutSettingsID]=\"cacheLayoutKey\"> -->\n <yvc-split-view>\n\n <!-- the table itself-->\n <ng-template yvcSplitArea [size]=\"40\" [visible]=\"_params.situation !== 'SEARCH'\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"object-form-table-header\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"\n [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #overlayGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\" (cellClicked)=\"onCellClickedRowEdit($event)\"\n (mousedown)=\"onMouseDown($event)\" (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\" (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </ng-template>\n\n <!-- table edit component-->\n <ng-template yvcSplitArea [size]=\"20\" [visible]=\"!!editingRow\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" [limitReached]=\"limit <= overlayGridOptions.rowData.length\" #rowEdit\n (onSave)=\"updateRow($event)\" (onSaveCopy)=\"copyRow($event)\" (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </ng-template>\n\n <!-- viewer-->\n <ng-template yvcSplitArea [size]=\"40\" [visible]=\"showPreview && hasPreviewFile\">\n <eo-media *ngIf=\"hasPreviewFile\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\" [dmsObject]=\"params.object\"></eo-media>\n </ng-template>\n\n </yvc-split-view>\n </div>\n</eo-dialog>\n\n<eo-dialog [title]=\"('eo.form.table.csv.import.report.title' | translate)\" [visible]=\"showImportReportDialog\"\n (hide)=\"cancelImportReport()\" [styleClass]=\"'import-report__dialog'\">\n <div class=\"body\">\n <h4 translate [translateParams]=\"{readRows: mappedRows.length}\">eo.form.table.csv.import.report.readRows</h4>\n <div *ngIf=\"mappingErrorFields.length !== 0\" class=\"flex-col\">\n <h4 translate>eo.form.table.csv.import.report.errors</h4>\n <table>\n <thead>\n <tr>\n <th translate>eo.form.table.csv.import.report.errors.row</th>\n <th translate>eo.form.table.csv.import.report.errors.csvColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.tableColumn</th>\n <th translate>eo.form.table.csv.import.report.errors.value</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let error of mappingErrorFields; let i = index\">\n <tr>\n <td>{{error.row + 1}}</td>\n <td>{{error.uploadedName}}</td>\n <td>{{error.technicalName}}</td>\n <td>{{error.value}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n <div class=\"actions\">\n <button (click)=\"cancelImportReport()\" class=\"button-cancel\" translate>eo.resubmission.cancel</button>\n <button (click)=\"addImportValuesToTable()\" class=\"primary\" translate>eo.form.table.csv.import.report.import</button>\n </div>\n</eo-dialog>\n", styles: [":host-context(.dark) .label{color:var(--color-white);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-header-cell{color:rgba(var(--color-white-rgb),.7);background-color:rgba(var(--color-white-rgb),.1)}:host-context(.dark) ::ng-deep .ag-theme-balham .ag-root{background-color:transparent}:host ::ng-deep{--oft-row-height: 30px}:host ::ng-deep .ag-theme-balham{position:absolute;top:0;bottom:0;width:100%;box-sizing:border-box}:host ::ng-deep .ag-theme-balham .ag-root{background-color:var(--color-white)}:host ::ng-deep .ag-theme-balham .copy-cell{animation-name:copy-cell;animation-duration:4s}@keyframes copy-cell{0%{background-color:var(--color-accent)}to{background-color:none}}:host ::ng-deep .ag-theme-balham .ag-cell{display:flex;align-items:center;padding:0 calc(var(--app-pane-padding) / 4);font-size:var(--font-caption);line-height:var(--oft-row-height)}:host ::ng-deep .ag-theme-balham .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);outline:0!important;border-color:transparent!important}:host ::ng-deep .ag-theme-balham .ag-cell svg{pointer-events:none}:host ::ng-deep .ag-theme-balham .ag-cell.res-ico,:host ::ng-deep .ag-theme-balham .ag-cell.col-boolean{justify-content:center}:host ::ng-deep .ag-theme-balham .ag-cell.col-number{justify-content:flex-end}:host ::ng-deep .ag-theme-balham .ag-cell .no-value{border-radius:2px;font-size:var(--font-hint);background-color:var(--color-accent);padding:calc(var(--app-pane-padding) / 4);color:var(--color-white)}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon{display:flex;cursor:pointer}:host ::ng-deep .ag-theme-balham .ag-cell .action-icon svg{fill:var(--text-color-caption)}:host ::ng-deep .ag-theme-balham .ag-header-cell{color:var(--text-color-caption);font-size:var(--font-caption);line-height:var(--oft-row-height);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);font-weight:400;border-bottom-color:var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-header-cell:after{opacity:0}:host ::ng-deep .ag-theme-balham .ag-ltr .ag-header-cell{border-right:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .ag-rtl .ag-header-cell{border-left:1px solid var(--color-gainsboro)}:host ::ng-deep .ag-theme-balham .chip{display:flex;align-items:center}:host ::ng-deep .ag-theme-balham .chip .link{display:flex;align-items:center}:host{width:100%;display:block;padding:0!important;background:rgba(var(--color-black-rgb),.02);border:1px solid var(--color-gainsboro)}:host.ng-invalid{border-color:var(--color-error);background:rgba(var(--color-error),.15)}:host .object-form-table .grid-body{width:100%;position:relative}:host .object-form-table .grid-body.size-supersmall{height:100px}:host .object-form-table .grid-body.size-small{height:200px}:host .object-form-table .grid-body.size-medium{height:300px}:host .object-form-table .grid-body.size-large{height:400px}:host .object-form-table .grid-body ag-grid-angular{width:100%;height:100%;background-color:transparent}:host .object-form-table.medium .body{height:300px}:host .object-form-table.large .body{height:500px}:host .object-form-table-header{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 4);border-bottom:0}:host .object-form-table-header span{display:block;flex:1 1 auto}:host .object-form-table-header eo-icon.stf{width:16px;height:16px;margin:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption);cursor:pointer}:host .object-form-table-header eo-icon.stf.add-row{width:24px;height:24px;background-color:var(--text-color-hint);color:#fff;border-radius:2px}:host .object-form-table-header button.add{border-radius:2px;padding:calc(var(--app-pane-padding) / 2)}:host .object-form-table-header button.export{border-radius:2px;border:1px solid black;color:#000;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4);font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding) / 4)}::ng-deep .import-report__dialog{padding:8px;min-height:unset!important;overflow:hidden}::ng-deep .import-report__dialog .body{overflow:auto}::ng-deep .import-report__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}::ng-deep .import-report__dialog td,::ng-deep .import-report__dialog th{border:1px solid #dddddd;text-align:left;padding:8px}::ng-deep .import-report__dialog .actions{display:flex;flex:0;flex-direction:row;min-height:0;min-width:0;align-items:flex-end;justify-content:flex-end;margin:0 var(--app-pane-padding) var(--app-pane-padding);min-height:3em}::ng-deep .import-report__dialog .actions button{white-space:nowrap}\n"] }]
607
+ }], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i1.SystemService }, { type: i2.PendingChangesService }, { type: i3.GridService }, { type: i1.NotificationsService }, { type: i1.TranslateService }], propDecorators: { agGrid: [{
608
+ type: ViewChild,
609
+ args: ['agGrid']
610
+ }], overlayGrid: [{
611
+ type: ViewChild,
612
+ args: ['overlayGrid']
613
+ }], rowEdit: [{
614
+ type: ViewChild,
615
+ args: ['rowEdit']
616
+ }], limit: [{
617
+ type: Input
618
+ }], hasPreviewFile: [{
619
+ type: Input
620
+ }], minWidth: [{
621
+ type: Input
622
+ }], height: [{
623
+ type: Input
624
+ }], params: [{
625
+ type: Input
626
+ }], copyCellHandler: [{
627
+ type: HostListener,
628
+ args: ['keydown.control.alt.shift.c', ['$event']]
629
+ }, {
630
+ type: HostListener,
631
+ args: ['keydown.control.shift.c', ['$event']]
632
+ }, {
633
+ type: HostListener,
634
+ args: ['keydown.control.alt.c', ['$event']]
635
+ }, {
636
+ type: HostListener,
637
+ args: ['keydown.control.c', ['$event']]
638
+ }] } });
639
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL2Zvcm0tZWxlbWVudC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBdUIsYUFBYSxFQUFFLGlCQUFpQixFQUFnQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBNkUsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9HLE9BQU8sRUFBQyxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQWMsTUFBTSxnREFBZ0QsQ0FBQztBQUl6RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQXVCeEQsSUFBTSx5QkFBeUIsR0FBL0IsTUFB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QTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUdYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQWlCRixNQUFNO3NCQURULEtBQUs7Z0JBb0NOLGVBQWU7c0JBSmQsWUFBWTt1QkFBQyw2QkFBNkIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3RELFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNsRCxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDaEQsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xpZW50U2lkZVJvd01vZGVsTW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsJztcbmltcG9ydCB7Q29sRGVmLCBHcmlkT3B0aW9ucywgTW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NzdkV4cG9ydE1vZHVsZX0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2Nzdi1leHBvcnQnO1xuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tLCBmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0NlbGxSZW5kZXJlciwgR3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7RWRpdFJvdywgVGFibGVDb21wb25lbnRQYXJhbXN9IGZyb20gJy4vZm9ybS1lbGVtZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1Jvd0VkaXRDb21wb25lbnR9IGZyb20gJy4vcm93LWVkaXQvcm93LWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxlTnVtYmVyUGlwZX0gZnJvbSBcIi4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlXCI7XG5pbXBvcnQge0FnR3JpZEFuZ3VsYXJ9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50LnNjc3MnXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuXG4gIHByaXZhdGUgX2NhY2hlZENvbHVtbnM6IGFueVtdO1xuICBwcml2YXRlIF9jYWNoZWRDb2x1bW5zT3ZlcmxheTogYW55W107XG5cbiAgcHVibGljIG1vZHVsZXM6IE1vZHVsZVtdID0gW0NsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSwgQ3N2RXhwb3J0TW9kdWxlXTtcblxuICBCQVNFX0NBQ0hFX0xBWU9VVF9LRVkgPSAndGFibGUuc3RhdGUnO1xuICBjYWNoZUxheW91dEtleSA9IHRoaXMuQkFTRV9DQUNIRV9MQVlPVVRfS0VZO1xuXG4gIEBWaWV3Q2hpbGQoJ2FnR3JpZCcpIGFnR3JpZCE6IEFnR3JpZEFuZ3VsYXI7XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlHcmlkJykgb3ZlcmxheUdyaWQhOiBBZ0dyaWRBbmd1bGFyO1xuICBAVmlld0NoaWxkKCdyb3dFZGl0Jykgcm93RWRpdDogUm93RWRpdENvbXBvbmVudDtcbiAgLy8gQFZpZXdDaGlsZCgnc3BsaXRWaWV3Jykgc3BsaXRWaWV3OiBTcGxpdENvbXBvbmVudDtcblxuICBASW5wdXQoKSBsaW1pdDogbnVtYmVyO1xuICBASW5wdXQoKSBoYXNQcmV2aWV3RmlsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWluV2lkdGggPSAnOTd2dyc7XG4gIEBJbnB1dCgpIGhlaWdodCA9ICc5NXZoJztcblxuICBfcGFyYW1zOiBUYWJsZUNvbXBvbmVudFBhcmFtcztcbiAgcHJpdmF0ZSBfZWxlbWVudHM6IGFueVtdO1xuICBncmlkUmVhZHkgPSBmYWxzZTtcbiAgdmFsdWU6IGFueVtdO1xuICBpbm5lclZhbHVlOiBhbnlbXTtcbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBvdmVybGF5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBlZGl0aW5nUm93OiBFZGl0Um93O1xuICBzaG93RGlhbG9nID0gZmFsc2U7XG4gIHNob3dQcmV2aWV3ID0gZmFsc2U7XG4gIHNob3dJbXBvcnRSZXBvcnREaWFsb2cgPSBmYWxzZTtcbiAgbWFwcGVkUm93cyA9IFtdO1xuICBtYXBwaW5nRXJyb3JGaWVsZHMgPSBbXTtcblxuICBASW5wdXQoKVxuICBzZXQgcGFyYW1zKHA6IFRhYmxlQ29tcG9uZW50UGFyYW1zKSB7XG4gICAgdGhpcy5jYWNoZUxheW91dEtleSA9IHAgPyBgJHt0aGlzLkJBU0VfQ0FDSEVfTEFZT1VUX0tFWX0uJHtwLmVsZW1lbnQubmFtZX1gIDogdGhpcy5CQVNFX0NBQ0hFX0xBWU9VVF9LRVk7XG4gICAgaWYgKHApIHtcbiAgICAgIHRoaXMuX3BhcmFtcyA9IHA7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVMYXlvdXRLZXkgKyAnLmNvbERlZicpIHx8IFtdO1xuICAgICAgdGhpcy5fY2FjaGVkQ29sdW1uc092ZXJsYXkgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUxheW91dEtleSArICcuY29sRGVmT3ZlcmxheScpIHx8IFtdO1xuICAgICAgdGhpcy5zaG93UHJldmlldyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLmNhY2hlTGF5b3V0S2V5ICsgJy5zaG93UHJldmlldycpO1xuXG5cbiAgICAgIENlbGxSZW5kZXJlci5zaXR1YXRpb24gPSB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uO1xuICAgICAgaWYgKHRoaXMuX3BhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICAgIHRoaXMuX3BhcmFtcy5zaXplID0gJ3N1cGVyc21hbGwnO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5fcGFyYW1zLnNpemUpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zLnNpemUgPSAnc21hbGwnO1xuICAgICAgfVxuICAgICAgdGhpcy5ncmlkUmVhZHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2VsZW1lbnRzID0gcC5lbGVtZW50LmVsZW1lbnRzO1xuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5jcmVhdGVDb2x1bW5EZWZpbml0aW9uKCk7XG4gICAgICBpZiAodGhpcy5fcGFyYW1zLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5jb2x1bW5EZWZzLnB1c2goe2hlYWRlck5hbWU6ICcnLCBjb2xJZDogJ2FjdGlvbnMnLCB3aWR0aDogMzQsIG1pbldpZHRoOiAzNCwgcGlubmVkOiAncmlnaHQnLCBjZWxsUmVuZGVyZXI6IHRoaXMuYWN0aW9uc0NlbGxSZW5kZXJlcn0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuY3JlYXRlQ29sdW1uRGVmaW5pdGlvbih0cnVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ncmlkUmVhZHkgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBnZXQgcGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbXM7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuYWx0LnNoaWZ0LmMnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuc2hpZnQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5hbHQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5jJywgWyckZXZlbnQnXSlcbiAgY29weUNlbGxIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5ncmlkQXBpLmNvcHlUb0NsaXBib2FyZChldmVudCwgdGhpcy5hZ0dyaWQsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBncmlkQXBpOiBHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0OiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSA8R3JpZE9wdGlvbnM+e1xuICAgICAgY29udGV4dDogdGhpcy5ncmlkQXBpLmdldENvbnRleHQoKSxcbiAgICAgIGhlYWRlckhlaWdodDogMzAsXG4gICAgICByb3dIZWlnaHQ6IDMwLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIG11bHRpU29ydEtleTogJ2N0cmwnLFxuICAgICAgYWNjZW50ZWRTb3J0OiB0cnVlLFxuICAgICAgLy8gc3VwcHJlc3NDZWxsU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICAgIHN1cHByZXNzTW92YWJsZUNvbHVtbnM6IHRydWUsXG4gICAgICBlbmFibGVGaWx0ZXI6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NOb1Jvd3NPdmVybGF5OiB0cnVlLFxuICAgICAgc3VwcHJlc3NMb2FkaW5nT3ZlcmxheTogdHJ1ZSxcbiAgICAgIHN1cHByZXNzQ29udGV4dE1lbnU6IHRydWVcbiAgICB9O1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMuY29udGV4dC50YWJsZUNvbXBvbmVudCA9IHRoaXM7XG5cbiAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucyA9IDxHcmlkT3B0aW9ucz57XG4gICAgICBjb250ZXh0OiB0aGlzLmdyaWRBcGkuZ2V0Q29udGV4dCgpLFxuICAgICAgaGVhZGVySGVpZ2h0OiAzMCxcbiAgICAgIHJvd0hlaWdodDogMzAsXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgbXVsdGlTb3J0S2V5OiAnY3RybCcsXG4gICAgICBhY2NlbnRlZFNvcnQ6IHRydWUsXG4gICAgICAvLyBzdXBwcmVzc0NlbGxTZWxlY3Rpb246IHRydWUsXG4gICAgICByb3dTZWxlY3Rpb246ICdzaW5nbGUnLFxuICAgICAgc3VwcHJlc3NNb3ZhYmxlQ29sdW1uczogdHJ1ZSxcbiAgICAgIGVuYWJsZUZpbHRlcjogZmFsc2UsXG4gICAgICBzdXBwcmVzc05vUm93c092ZXJsYXk6IHRydWUsXG4gICAgICBzdXBwcmVzc0xvYWRpbmdPdmVybGF5OiB0cnVlLFxuICAgICAgc3VwcHJlc3NDb250ZXh0TWVudTogdHJ1ZVxuICAgIH07XG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuY29udGV4dC50YWJsZUNvbXBvbmVudCA9IHRoaXM7XG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMucm93Q2xhc3NSdWxlcyA9IHtcbiAgICAgICduZXctcm93JzogZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICBpZiAocGFyYW1zLmRhdGEuaXNOZXdSb3cpIHtcbiAgICAgICAgICBkZWxldGUgcGFyYW1zLmRhdGEuaXNOZXdSb3c7XG4gICAgICAgICAgZGVsZXRlIHBhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LmlubmVyVmFsdWVbcGFyYW1zLmNvbnRleHQudGFibGVDb21wb25lbnQuaW5uZXJWYWx1ZS5sZW5ndGggLSAxXS5pc05ld1JvdztcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy50YXNrcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSAhIXRoaXMucm93RWRpdCAmJiAhIXRhc2tzLmluY2x1ZGVzKHRoaXMucm93RWRpdC5wZW5kaW5nVGFza0lkKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFjdGlvbnNDZWxsUmVuZGVyZXIocGFyYW1zKSB7XG4gICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgaWYgKHBhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LnBhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJhY3Rpb24taWNvblwiIGlkPVwiYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1cIj5cbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+YDtcbiAgICAgIGxldCBjbGVhckljb24gPSBkaXYucXVlcnlTZWxlY3RvckFsbChgI2FjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9YClbMF07XG4gICAgICBjbGVhckljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5jbGVhclJvdyhwYXJhbXMucm93SW5kZXgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPVwiYWN0aW9uLWljb25cIiBpZD1cImFjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9XCI+XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8cGF0aCBkPVwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PmA7XG4gICAgICBsZXQgZGVsZXRlSWNvbiA9IGRpdi5xdWVyeVNlbGVjdG9yQWxsKGAjYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1gKVswXTtcbiAgICAgIGRlbGV0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5kZWxldGVSb3cocGFyYW1zLnJvd0luZGV4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG5cbiAgICBpZiAoIXZhbHVlICYmIHRoaXMuX3BhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICAvLyBmb3Igc2VhcmNoIHJvdyBkYXRhIHdpbGwgYWx3YXlzIGJlIG9uZSBlbXB0eSByb3dcbiAgICAgIC8vIHRvZG86IHJlLWVuYWJsZSBhZ2FpbiB3aGVuIHNlYXJjaCBpbiB0YWJsZXMgaXMgc3VwcG9ydGVkXG4gICAgICB2YWx1ZSA9IFt7fV07XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gdmFsdWUgOiBbXTtcbiAgICAvLyBjcmVhdGUgYSBjbG9uZSBvZiB0aGUgYWN0dWFsIHZhbHVlIGZvciBpbnRlcm5hbCB1c2FnZVxuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkodGhpcy52YWx1ZSkpO1xuXG4gICAgaWYgKHRoaXMuYWdHcmlkKSB7XG4gICAgICB0aGlzLmFnR3JpZC5hcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdmVybGF5R3JpZCkge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZC5hcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0RWRpdFJvdygpLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBjb2x1bW4gZGVmaW5pdGlvbiBmcm9tIGZvcm0gZWxlbWVudC5cbiAgICogQHJldHVybnMgY29sdW1uIGRlZmluaXRpb24gdG8gYmUgYWRkZWQgdG8gdGhlIGdyaWRPcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvbHVtbkRlZmluaXRpb24ob3ZlcmxheT86IGJvb2xlYW4pOiBDb2xEZWZbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzLm1hcCgoZWwpID0+IHtcbiAgICAgIGxldCBjb2w6IENvbERlZiA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZpbml0aW9uKGVsKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY29sLCB7XG4gICAgICAgIGhlYWRlck5hbWU6IGVsLmxhYmVsLFxuICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXG4gICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgIGZpZWxkOiBlbC5uYW1lLFxuICAgICAgICByZWZEYXRhOiB7XG4gICAgICAgICAgLi4uY29sLnJlZkRhdGEsXG4gICAgICAgICAgX2VvRm9ybUVsZW1lbnQ6IGVsLFxuICAgICAgICAgIF9zaXR1YXRpb246IHRoaXMuX3BhcmFtcy5zaXR1YXRpb25cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBsZXQgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnM7XG4gICAgICBpZiAob3ZlcmxheSkge1xuICAgICAgICBjYWNoZWRDb2x1bW5zID0gdGhpcy5fY2FjaGVkQ29sdW1uc092ZXJsYXk7XG4gICAgICB9XG4gICAgICBsZXQgY2FjaGVkQ29sdW1uID0gY2FjaGVkQ29sdW1ucy5maW5kKGYgPT4gZi5xbmFtZSA9PT0gZWwucW5hbWUpO1xuICAgICAgaWYgKGNhY2hlZENvbHVtbikge1xuICAgICAgICBjb2wud2lkdGggPSBjYWNoZWRDb2x1bW4ud2lkdGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29sO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkUm93KCkge1xuICAgIGNvbnN0IHJvd0RhdGEgPSB7fTtcbiAgICBjb25zdCBhc3luY0ZldGNoZXMgPSBbXTtcbiAgICB0aGlzLl9lbGVtZW50c1xuICAgICAgLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAoZWwuZGVmYXVsdHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByb3dEYXRhW2VsLm5hbWVdID0gZWwuZGVmYXVsdHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKGVsLmRlZmF1bHR2YWx1ZWZ1bmN0aW9uKSB7XG4gICAgICAgICAgcm93RGF0YVtlbC5uYW1lXSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXREZWZhdWx0VmFsdWUoZWwuZGVmYXVsdHZhbHVlZnVuY3Rpb24pO1xuICAgICAgICAgIGlmIChlbC5kZWZhdWx0dmFsdWVmdW5jdGlvbiA9PT0gJ0NVUlJFTlRfVVNFUicpIHtcbiAgICAgICAgICAgIGFzeW5jRmV0Y2hlcy5wdXNoKHRoaXMucmVzb2x2ZU9yZ0RhdGFNZXRhKGVsLm5hbWUsIHJvd0RhdGFbZWwubmFtZV0pKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgaWYgKGFzeW5jRmV0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3JrSm9pbihhc3luY0ZldGNoZXMpLnN1YnNjcmliZSgocmVzOiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBhbnl9W10pID0+IHtcbiAgICAgICAgcmVzLmZvckVhY2gociA9PiB7XG4gICAgICAgICAgcm93RGF0YVtyLmtleV0gPSByLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRFZGl0Um93KC0xLCByb3dEYXRhKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEVkaXRSb3coLTEsIHJvd0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZU9yZ0RhdGFNZXRhKGVsZW1lbnROYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbk9iamVjdCh2YWx1ZSkucGlwZShcbiAgICAgIG1hcChyZXMgPT4gKHtcbiAgICAgICAga2V5OiBgJHtlbGVtZW50TmFtZX1fbWV0YWAsXG4gICAgICAgIHZhbHVlOiByZXNcbiAgICAgIH0pKVxuICAgICk7XG4gIH1cblxuICBlZGl0Um93KGV2ZW50KSB7XG4gICAgdGhpcy5zZXRFZGl0Um93KGV2ZW50Lm5vZGUuaWQsIGV2ZW50Lm5vZGUuZGF0YSk7XG4gIH1cblxuICBvbkVkaXRDb21wbGV0ZShldmVudCkge1xuICAgIC8vdG9kbzogaXMgaXQgb2Jzb2xldGU/XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXRSb3coaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XG4gICAgLy8gc2V0dXAgdGhlIHJvdyB0byBiZSBlZGl0ZWQuIEJlc2lkZSBzb21lIHByb3BlcnRpZXMsIHRoZVxuICAgIC8vIHJvdyBjb250YWlucyBhIGZvcm0gbW9kZWwgYW5kIGZvcm0gZGF0YS4gSWYgdGhlIHBhcmVudCBmb3JtIG1vZGVsXG4gICAgLy8gcHJvdmlkZWQgYSBzY3JpcHQsIHRoaXMgd2lsbCBiZSBhZGRlZCBhcyB3ZWxsLCBzbyBlZGl0aW5nIGEgcm93IHdpbGxcbiAgICAvLyByZXNwZWN0IHRoZSBmb3JtIHNjcmlwdC5cbiAgICB0aGlzLmVkaXRpbmdSb3cgPSB7XG4gICAgICBzaXR1YXRpb246IHRoaXMuX3BhcmFtcy5zaXR1YXRpb24sXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB0YWJsZUVsZW1lbnQ6IHRoaXMuX3BhcmFtcy5lbGVtZW50LFxuICAgICAgZm9ybToge1xuICAgICAgICBlbGVtZW50czogdGhpcy5fZWxlbWVudHMsXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLl9wYXJhbXMuZWxlbWVudC5yZWFkb25seSxcbiAgICAgICAgZGF0YVxuICAgICAgfVxuICAgIH07XG4gICAgLy8gd2UgbmVlZCB0aGlzIGxpbmUgdG8gcmVsb2FkIHRoZSBjYWNoZWQgY29sdW1ucyBpbiBjYXNlIG9mIHJlb3BlbmluZyB0aGUgZGlhbG9nIHdpdGhvdXQgcmVmcmVzaGluZyB0aGUgcGFnZVxuICAgIHRoaXMucGFyYW1zID0gdGhpcy5fcGFyYW1zO1xuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdEVkaXRSb3coKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEVkaXRSb3coKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheUdyaWQpIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICBpZiAodGhpcy5lZGl0aW5nUm93ICYmIHRoaXMuZWRpdGluZ1Jvdy5pbmRleCAhPT0gLTEpIHtcbiAgICAgICAgbGV0IHJvd05vZGUgPSB0aGlzLm92ZXJsYXlHcmlkLmFwaS5nZXRSb3dOb2RlKCcnICsgdGhpcy5lZGl0aW5nUm93LmluZGV4KTtcbiAgICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlLCB0cnVlKTtcbiAgICAgICAgdGhpcy5vdmVybGF5R3JpZC5hcGkuZW5zdXJlTm9kZVZpc2libGUocm93Tm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYWJsZVZhbHVlKCkge1xuICAgIHRoaXMuYWdHcmlkLmFwaS5zZXRHcmlkT3B0aW9uKCdyb3dEYXRhJywgdGhpcy5pbm5lclZhbHVlKTtcbiAgICBpZiAodGhpcy5vdmVybGF5R3JpZCkge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZC5hcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnJvd0RhdGEgPSB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmlubmVyVmFsdWU7XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMudmFsdWUuaW5jbHVkZXMoJ2lzTmV3Um93JykpKSB7XG4gICAgICBkZWxldGUgdGhpcy52YWx1ZVsnaXNOZXdSb3cnXTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICBjYW5jZWxSb3dFZGl0KCkge1xuICAgIGlmICh0aGlzLnJvd0VkaXQpIHtcbiAgICAgIHRoaXMucm93RWRpdC5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICAgIHRoaXMuZWRpdGluZ1JvdyA9IG51bGw7XG4gICAgaWYgKHRoaXMuX3BhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlKCkge1xuICAgIHRoaXMuZWRpdGluZ1JvdyA9IG51bGw7XG4gICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWxJbXBvcnRSZXBvcnQoKSB7XG4gICAgdGhpcy5zaG93SW1wb3J0UmVwb3J0RGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5tYXBwZWRSb3dzID0gW107XG4gICAgdGhpcy5tYXBwaW5nRXJyb3JGaWVsZHMgPSBbXTtcbiAgfVxuXG4gIHVwZGF0ZVJvdyhyb3dSZXN1bHQ6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3Um93ID0gcm93UmVzdWx0LmluZGV4ID09PSAtMTtcbiAgICBpZiAoaXNOZXdSb3cpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZS5wdXNoKHsuLi5yb3dSZXN1bHQucm93RGF0YSwgLi4ue2lzTmV3Um93OiB0cnVlfX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgLy8gdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0gPSB7Li4udGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0sIC4uLnJvd1Jlc3VsdC5yb3dEYXRhfTtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF1bZWwubmFtZV0gPSByb3dSZXN1bHQucm93RGF0YVtlbC5uYW1lXTtcbiAgICAgICAgaWYgKHJvd1Jlc3VsdC5yb3dEYXRhW2VsLm5hbWUgKyAnX21ldGEnXSAmJiB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uICE9PSAnU0VBUkNIJykge1xuICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdW2VsLm5hbWUgKyAnX21ldGEnXSA9IHJvd1Jlc3VsdC5yb3dEYXRhW2VsLm5hbWUgKyAnX21ldGEnXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgIGlmICh0aGlzLl9wYXJhbXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChpc05ld1JvdyAmJiAhcm93UmVzdWx0LmNyZWF0ZU5ld1Jvdykge1xuICAgICAgdGhpcy5zZXRFZGl0Um93KHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggLSAxLCB0aGlzLmlubmVyVmFsdWVbdGhpcy5pbm5lclZhbHVlLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKHJvd1Jlc3VsdC5jcmVhdGVOZXdSb3cpIHtcbiAgICAgIHRoaXMuYWRkUm93KCk7XG4gICAgICBsZXQgcm93Tm9kZSA9IHRoaXMub3ZlcmxheUdyaWQuYXBpLmdldFJvd05vZGUoJycgKyAodGhpcy5pbm5lclZhbHVlLmxlbmd0aCAtIDEpKTtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWQuYXBpLmVuc3VyZU5vZGVWaXNpYmxlKHJvd05vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEVkaXRSb3cocm93UmVzdWx0LmluZGV4LCB0aGlzLmlubmVyVmFsdWVbcm93UmVzdWx0LmluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgY29weVJvdyhyb3dSZXN1bHQ6IGFueSkge1xuICAgIHJvd1Jlc3VsdC5pbmRleCA9IC0xO1xuICAgIHRoaXMuaW5uZXJWYWx1ZS5wdXNoKHsuLi5yb3dSZXN1bHQucm93RGF0YSwgLi4ue2lzTmV3Um93OiB0cnVlfX0pO1xuICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgIGlmIChyb3dSZXN1bHQuY3JlYXRlTmV3Um93KSB7XG4gICAgICB0aGlzLmFkZFJvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEVkaXRSb3codGhpcy5pbm5lclZhbHVlLmxlbmd0aCAtIDEsIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocm93UmVzdWx0LnJvd0RhdGEpKSk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlUm93KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlVmFsdWUoKTtcbiAgICAgIGlmICh0aGlzLmlubmVyVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ID09IHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggPyB0aGlzLmlubmVyVmFsdWUubGVuZ3RoIC0gMSA6IGluZGV4O1xuICAgICAgICB0aGlzLnNldEVkaXRSb3cobmV4dEluZGV4LCB0aGlzLmlubmVyVmFsdWVbbmV4dEluZGV4XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhbmNlbFJvd0VkaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhclJvdyhpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5pbm5lclZhbHVlW2luZGV4XSA9IHt9O1xuICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICB9XG5cbiAgZXhwb3J0Q1NWKCkge1xuICAgIHRoaXMuYWdHcmlkLmFwaS5leHBvcnREYXRhQXNDc3Yoe1xuICAgICAgLi4udGhpcy5ncmlkQXBpLmNzdkV4cG9ydFBhcmFtcyxcbiAgICAgIGZpbGVOYW1lOiB0aGlzLl9wYXJhbXMuZWxlbWVudC5sYWJlbFxuICAgIH0pO1xuICB9XG5cbiAgaW1wb3J0Q1NWKGV2ZW50KSB7XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5fcGFyYW1zLmVsZW1lbnQuZWxlbWVudHM7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGUgPT4ge1xuICAgICAgbGV0IHBhcnNlZGF0YSA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBlLnRhcmdldC5yZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGxldCBuZXdMaW5lQnJlYWsgPSBlLnRhcmdldC5yZXN1bHQuc3BsaXQoJ1xcbicpLmZpbHRlcihyZXN1bHQgPT4gcmVzdWx0ICE9PSAnJyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3TGluZUJyZWFrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcGFyc2VkYXRhLnB1c2gobmV3TGluZUJyZWFrW2ldLnNwbGl0KCc7JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZGF0YS5sZW5ndGggPiA1MDAwKSB7XG4gICAgICAgICAgdGhpcy50b2FzdC5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLnVwbG9hZC5lcnJvcicpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VkYXRhID0gcGFyc2VkYXRhLm1hcChkYXRhID0+IGRhdGEubWFwKGQgPT4gZC5yZXBsYWNlKC9cIi9naSwgJycpLnJlcGxhY2UoJ1xcbicsICcnKS5yZXBsYWNlKC9bXi0uOixhLXpBLVowLTkoKSBdL2csICcnKS50cmltKCkpKTtcblxuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5ncmlkT3B0aW9ucy5jb2x1bW5EZWZzLm1hcChjb2x1bW4gPT4gY29sdW1uWydmaWVsZCddKTtcbiAgICAgICAgY29uc3QgY29sdW1uc1VwbG9hZGVkID0gcGFyc2VkYXRhWzBdO1xuICAgICAgICBwYXJzZWRhdGEuc2hpZnQoKTtcbiAgICAgICAgY29uc3Qgcm93c1VwbG9hZGVkID0gcGFyc2VkYXRhO1xuXG4gICAgICAgIGNvbnN0IG1ldGFGaWVsZHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHJvd3NVcGxvYWRlZC5sZW5ndGg7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBtYXBwZWRSb3cgPSB7fTtcbiAgICAgICAgICBsZXQgY3VycmVudFJvdyA9IHJvd3NVcGxvYWRlZFtyb3dJbmRleF07XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aCAmJiBpIDwgY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3dbaV0gIT09ICcnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGaWVsZCA9IGZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IGNvbHVtbnNbaV0pO1xuICAgICAgICAgICAgICBpZiAoY3VycmVudEZpZWxkLnR5cGUgPT09ICdPUkdBTklaQVRJT04nKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9yZ09iaiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3QoY3VycmVudFJvd1tpXSkpO1xuICAgICAgICAgICAgICAgIGlmIChvcmdPYmouYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICBtYXBwZWRSb3dbY29sdW1uc1tpXV0gPSBjdXJyZW50Um93W2ldO1xuICAgICAgICAgICAgICAgICAgbWV0YUZpZWxkcy5wdXNoKHtjb2x1bW46IGNvbHVtbnNbaV0sIHJvd0luZGV4OiByb3dJbmRleCwgdmFsdWU6IG9yZ09ian0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtYXBwZWRSb3dbY29sdW1uc1tpXV0gPSAnJztcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFwcGluZ0Vycm9yRmllbGRzLnB1c2goe3RlY2huaWNhbE5hbWU6IGNvbHVtbnNbaV0sIHVwbG9hZGVkTmFtZTogY29sdW1uc1VwbG9hZGVkW2ldLCByb3c6IHJvd0luZGV4LCB2YWx1ZTogY3VycmVudFJvd1tpXX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50RmllbGQudHlwZSA9PT0gJ0NPREVTWVNURU0nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29kZXN5c3RlbSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRDb2Rlc3lzdGVtKGN1cnJlbnRGaWVsZC5jb2Rlc3lzdGVtLmlkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2Rlc3lzdGVtRW50cnkgPSBjb2Rlc3lzdGVtLmVudHJpZXMuZmluZChlbnRyeSA9PiBlbnRyeS5kYXRhID09PSBjdXJyZW50Um93W2ldIHx8IGVudHJ5LmRlZmF1bHRyZXByZXNlbnRhdGlvbiA9PT0gY3VycmVudFJvd1tpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGNvZGVzeXN0ZW1FbnRyeSkge1xuICAgICAgICAgICAgICAgICAgbWFwcGVkUm93W2NvbHVtbnNbaV1dID0gY3VycmVudFJvd1tpXTtcbiAgICAgICAgICAgICAgICAgIG1ldGFGaWVsZHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uc1tpXSxcbiAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleDogcm93SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtpZDogY29kZXN5c3RlbUVudHJ5LmlkLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IGNvZGVzeXN0ZW1FbnRyeS5kZWZhdWx0cmVwcmVzZW50YXRpb24sIGxhYmVsOiBjb2Rlc3lzdGVtRW50cnkubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG1hcHBlZFJvd1tjb2x1bW5zW2ldXSA9ICcnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5tYXBwaW5nRXJyb3JGaWVsZHMucHVzaCh7dGVjaG5pY2FsTmFtZTogY29sdW1uc1tpXSwgdXBsb2FkZWROYW1lOiBjb2x1bW5zVXBsb2FkZWRbaV0sIHJvdzogcm93SW5kZXgsIHZhbHVlOiBjdXJyZW50Um93W2ldfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRGaWVsZC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Um93W2ldLmxlbmd0aCA9PT0gMzIpIHtcbiAgICAgICAgICAgICAgICAgIG1hcHBlZFJvd1tjb2x1bW5zW2ldXSA9IGN1cnJlbnRSb3dbaV07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG1hcHBlZFJvd1tjb2x1bW5zW2ldXSA9ICcnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5tYXBwaW5nRXJyb3JGaWVsZHMucHVzaCh7dGVjaG5pY2FsTmFtZTogY29sdW1uc1tpXSwgdXBsb2FkZWROYW1lOiBjb2x1bW5zVXBsb2FkZWRbaV0sIHJvdzogcm93SW5kZXgsIHZhbHVlOiBjdXJyZW50Um93W2ldfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRGaWVsZC50eXBlID09PSAnREFURVRJTUUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ldyBEYXRlKGN1cnJlbnRSb3dbaV0pLnRvU3RyaW5nKCkgPT09ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgICAgICAgICAgICBtYXBwZWRSb3dbY29sdW1uc1tpXV0gPSAnJztcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFwcGluZ0Vycm9yRmllbGRzLnB1c2goe3RlY2huaWNhbE5hbWU6IGNvbHVtbnNbaV0sIHVwbG9hZGVkTmFtZTogY29sdW1uc1VwbG9hZGVkW2ldLCByb3c6IHJvd0luZGV4LCB2YWx1ZTogY3VycmVudFJvd1tpXX0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtYXBwZWRSb3dbY29sdW1uc1tpXV0gPSBjdXJyZW50Um93W2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50RmllbGQudHlwZSA9PT0gJ05VTUJFUicpIHtcbiAgICAgICAgICAgICAgICBtYXBwZWRSb3dbY29sdW1uc1tpXV0gPSBuZXcgTG9jYWxlTnVtYmVyUGlwZSh0aGlzLnRyYW5zbGF0ZSkuc3RyaW5nVG9OdW1iZXIoY3VycmVudFJvd1tpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKG1hcHBlZFJvd1tjb2x1bW5zW2ldXSkpIHtcbiAgICAgICAgICAgICAgICAgIG1hcHBlZFJvd1tjb2x1bW5zW2ldXSA9ICcnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5tYXBwaW5nRXJyb3JGaWVsZHMucHVzaCh7dGVjaG5pY2FsTmFtZTogY29sdW1uc1tpXSwgdXBsb2FkZWROYW1lOiBjb2x1bW5zVXBsb2FkZWRbaV0sIHJvdzogcm93SW5kZXgsIHZhbHVlOiBjdXJyZW50Um93W2ldfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcHBlZFJvd1tjb2x1bW5zW2ldXSA9IGN1cnJlbnRSb3dbaV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tYXBwZWRSb3dzLnB1c2gobWFwcGVkUm93KTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgIHRoaXMubWFwcGVkUm93c1tmaWVsZC5yb3dJbmRleF1bZmllbGQuY29sdW1uICsgJ19tZXRhJ10gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3BlbkltcG9ydFJlcG9ydERpYWxvZygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcbiAgfVxuXG4gIGFkZEltcG9ydFZhbHVlc1RvVGFibGUoKSB7XG4gICAgdGhpcy5zaG93SW1wb3J0UmVwb3J0RGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5vcGVuRGlhbG9nKCk7XG4gICAgdGhpcy5pbm5lclZhbHVlID0gWy4uLnRoaXMuaW5uZXJWYWx1ZSwgLi4udGhpcy5tYXBwZWRSb3dzXTtcbiAgICB0aGlzLnVwZGF0ZVRhYmxlVmFsdWUoKTtcbiAgfVxuXG4gIHNpemVUb0ZpdChvdmVybGF5PzogYm9vbGVhbikge1xuICAgIGlmIChvdmVybGF5KSB7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWdHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkRpYWxvZygpIHtcbiAgICAvLyB3ZSBuZWVkIHRoaXMgbGluZSB0byByZWxvYWQgdGhlIGNhY2hlZCBjb2x1bW5zIGluIGNhc2Ugb2YgcmVvcGVuaW5nIHRoZSBkaWFsb2cgd2l0aG91dCByZWZyZXNoaW5nIHRoZSBwYWdlXG4gICAgdGhpcy5wYXJhbXMgPSB0aGlzLl9wYXJhbXM7XG4gICAgdGhpcy5zaG93RGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIG9wZW5JbXBvcnRSZXBvcnREaWFsb2coKSB7XG4gICAgdGhpcy5zaG93SW1wb3J0UmVwb3J0RGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUYWJsZURhdGEoKTogYm9vbGVhbiB7XG4gICAgLy8gdG9kbzogaW1wbGVtZW50XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZShjOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVRhYmxlRGF0YSgpID8gbnVsbCA6IHtcbiAgICAgIHRhYmxlOiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5zdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2tGb3JQZW5kaW5nVGFza3ModGhpcy5yb3dFZGl0LnBlbmRpbmdUYXNrSWQpKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3dFZGl0LmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgbGV0IHJvd0luZGV4ID0gdGhpcy5ncmlkQXBpLmdldFJvd0luZGV4KCRldmVudC50YXJnZXQsICdhZy1ib2R5Jyk7XG4gICAgICAgIGlmIChyb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWQuYXBpLmdldFJvd05vZGUoJycgKyByb3dJbmRleCkuc2V0U2VsZWN0ZWQodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgJGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU29ydENoYW5nZWQoKSB7XG4gICAgbGV0IHJvd05vZGUgPSB0aGlzLm92ZXJsYXlHcmlkLmFwaS5nZXRSb3dOb2RlKCcnICsgdGhpcy5lZGl0aW5nUm93LmluZGV4KTtcbiAgICB0aGlzLm92ZXJsYXlHcmlkLmFwaS5lbnN1cmVOb2RlVmlzaWJsZShyb3dOb2RlKTtcbiAgfVxuXG4gIG9uQ2VsbENsaWNrZWQoJGV2ZW50KSB7XG4gICAgaWYgKCRldmVudC5jb2xEZWYuY2VsbENsYXNzID09PSAncm91dGVyLWxpbmstY2VsbCcgJiYgJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsICYmICF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCkpIHtcbiAgICAgIGlmICghJGV2ZW50Lm5vZGUuZ3JvdXAgJiYgJGV2ZW50LmRhdGEpIHtcbiAgICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKCRldmVudC5ldmVudCwgJ2FnLXJvdycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQ2VsbENsaWNrZWRSb3dFZGl0KCRldmVudCkge1xuICAgIGlmICgkZXZlbnQucm93SW5kZXggIT09IG51bGwgJiYgIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2tGb3JQZW5kaW5nVGFza3ModGhpcy5yb3dFZGl0ID8gdGhpcy5yb3dFZGl0LnBlbmRpbmdUYXNrSWQgOiB1bmRlZmluZWQpKSB7XG4gICAgICBpZiAoISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XG4gICAgICAgIGlmICgkZXZlbnQuY29sRGVmLmNlbGxDbGFzcyA9PT0gJ3JvdXRlci1saW5rLWNlbGwnKSB7XG4gICAgICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKCRldmVudC5ldmVudCwgJ2FnLXJvdycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZWRpdFJvdygkZXZlbnQpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55LCBvdmVybGF5PzogYm9vbGVhbikge1xuICAgIGxldCBjb2x1bW5zRGVmaW5pdGlvbiA9IHRoaXMuY2FjaGVMYXlvdXRLZXkgKyAnLmNvbERlZic7XG4gICAgbGV0IGNhY2hlZENvbHVtbnMgPSB0aGlzLl9jYWNoZWRDb2x1bW5zO1xuICAgIGlmIChvdmVybGF5KSB7XG4gICAgICBjb2x1bW5zRGVmaW5pdGlvbiA9IHRoaXMuY2FjaGVMYXlvdXRLZXkgKyAnLmNvbERlZk92ZXJsYXknO1xuICAgICAgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5O1xuICAgIH1cbiAgICBsZXQgY29sID0gY2FjaGVkQ29sdW1ucy5maW5kKGMgPT4gYy5xbmFtZSA9PT0gY29sdW1uLmNvbERlZi5yZWZEYXRhLnFuYW1lKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb2wud2lkdGggPSBjb2x1bW4uYWN0dWFsV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oY29sdW1uc0RlZmluaXRpb24sIGNhY2hlZENvbHVtbnMpO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBfdXBkYXRlU3BsaXRWaWV3TGF5b3V0Q2FjaGUoKSB7XG4gIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XG4gIC8vICAgICB0aGlzLnNwbGl0Vmlldz8udXBkYXRlTGF5b3V0Q2FjaGUoKTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIHRvZ2dsZVByZXZpZXcoKSB7XG4gICAgdGhpcy5zaG93UHJldmlldyA9ICF0aGlzLnNob3dQcmV2aWV3O1xuICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBsYXlvdXQgb2YgdGhlIHNwbGl0IHZpZXcgaXMgdXBkYXRlZCBhZnRlciB0aGUgcHJldmlldyBwYW5lbHNcbiAgICAvLyB2aXNpYmlsaXR5IGNoYW5nZWRcbiAgICAvLyB0aGlzLl91cGRhdGVTcGxpdFZpZXdMYXlvdXRDYWNoZSgpO1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlTGF5b3V0S2V5ICsgJy5zaG93UHJldmlldycsIHRoaXMuc2hvd1ByZXZpZXcpO1xuICB9XG5cbiAgLy8gbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAvLyAgIHRoaXMuX3VwZGF0ZVNwbGl0Vmlld0xheW91dENhY2hlKCk7XG4gIC8vIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhc1ByZXZpZXdGaWxlID0gdGhpcy5oYXNQcmV2aWV3RmlsZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5oYXNQcmV2aWV3RmlsZSA6ICEhdGhpcy5wYXJhbXMub2JqZWN0Py5jb250ZW50O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tdGFibGVcIiBbbmdDbGFzc109XCJ7bWVkaXVtOiBfcGFyYW1zLnNpemUgPT09ICdtZWRpdW0nLCBsYXJnZTogX3BhcmFtcy5zaXplID09PSAnbGFyZ2UnfVwiPlxuICA8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tdGFibGUtaGVhZGVyXCI+XG4gICAgPHNwYW4+e3tfcGFyYW1zLmVsZW1lbnQubGFiZWx9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3BhcmFtcy5zaXR1YXRpb24gIT09ICdTRUFSQ0gnXCI+XG5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwic3RmXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZXhwYW5kLnN2ZydcIlxuICAgICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5vcGVuJ3wgdHJhbnNsYXRlKVwiIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj48L2VvLWljb24+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cInN0ZlwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NpemVfdG9fZml0LnN2ZydcIlxuICAgICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5maXQnfCB0cmFuc2xhdGUpXCIgKGNsaWNrKT1cInNpemVUb0ZpdCgpXCI+PC9lby1pY29uPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJzdGZcIiAqbmdJZj1cImdyaWRPcHRpb25zLnJvd0RhdGE/Lmxlbmd0aFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2V4cG9ydC5zdmcnXCJcbiAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uY3N2J3wgdHJhbnNsYXRlKVwiIChjbGljayk9XCJleHBvcnRDU1YoKVwiPjwvZW8taWNvbj5cbiAgICAgIDxlby1pY29uICpuZ0lmPVwiIV9wYXJhbXMuZWxlbWVudC5yZWFkb25seVwiIGNsYXNzPVwic3RmXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW1wb3J0LnN2ZydcIlxuICAgICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi51cGxvYWQnfCB0cmFuc2xhdGUpXCIgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiPjwvZW8taWNvbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5jc3ZcIiBzdHlsZT1cImRpc3BsYXk6bm9uZTtcIiAjZmlsZSAoY2hhbmdlKT1cImltcG9ydENTVigkZXZlbnQudGFyZ2V0KVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQudGFyZ2V0LnZhbHVlID0gbnVsbFwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJzdGYgYWRkLXJvd1wiICpuZ0lmPVwiIV9wYXJhbXMuZWxlbWVudC5yZWFkb25seVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2FkZC5zdmcnXCJcbiAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uYWRkJ3wgdHJhbnNsYXRlKVwiIChjbGljayk9XCJhZGRSb3coKVwiPjwvZW8taWNvbj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdyaWQtYm9keSBzaXplLXt7IHBhcmFtcy5zaXplIH19XCI+XG4gICAgPGFnLWdyaWQtYW5ndWxhciAjYWdHcmlkICpuZ0lmPVwiZ3JpZFJlYWR5XCIgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW1cIiBbbW9kdWxlc109XCJtb2R1bGVzXCIgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCJcbiAgICAgIChyb3dEb3VibGVDbGlja2VkKT1cImVkaXRSb3coJGV2ZW50KVwiIChjZWxsQ2xpY2tlZCk9XCJvbkNlbGxDbGlja2VkKCRldmVudClcIiAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZCgpXCJcbiAgICAgIChjZWxsVmFsdWVDaGFuZ2VkKT1cIm9uRWRpdENvbXBsZXRlKCRldmVudClcIiAoY29sdW1uUmVzaXplZCk9XCJvbkNvbHVtblJlc2l6ZWQoJGV2ZW50LmNvbHVtbilcIj5cbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCJwYXJhbXMuZWxlbWVudC5sYWJlbFwiIFt2aXNpYmxlXT1cInNob3dEaWFsb2dcIiBbZGlydHlDaGVja109XCJyb3dFZGl0Py5wZW5kaW5nVGFza0lkXCJcbiAgW21pbldpZHRoXT1cIl9wYXJhbXMuc2l0dWF0aW9uICE9PSAnU0VBUkNIJyA/IG1pbldpZHRoIDogMjAwXCIgW3dpZHRoXT1cIl9wYXJhbXMuc2l0dWF0aW9uICE9PSAnU0VBUkNIJyA/ICc5NXZ3JyA6IDUwMFwiXG4gIFtoZWlnaHRdPVwiaGVpZ2h0XCIgW3N0eWxlQ2xhc3NdPVwiJ29iamVjdC1mb3JtLXRhYmxlLWRpYWxvZydcIiAoaGlkZSk9XCJvbkNsb3NlKClcIiBbaXNGb3JtVGFibGVdPVwidHJ1ZVwiXG4gIFtoYXNQcmV2aWV3RmlsZV09XCJoYXNQcmV2aWV3RmlsZVwiIFtzaG93UHJldmlld109XCJzaG93UHJldmlld1wiIChvblRvZ2dsZVByZXZpZXcpPVwidG9nZ2xlUHJldmlldygpXCI+XG5cbiAgPGRpdiBjbGFzcz1cImJvZHlcIiAqbmdJZj1cInNob3dEaWFsb2dcIj5cblxuICAgIDwhLS0gPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cImNhY2hlTGF5b3V0S2V5XCI+IC0tPlxuICAgIDx5dmMtc3BsaXQtdmlldz5cblxuICAgICAgPCEtLSB0aGUgdGFibGUgaXRzZWxmLS0+XG4gICAgICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjQwXCIgW3Zpc2libGVdPVwiX3BhcmFtcy5zaXR1YXRpb24gIT09ICdTRUFSQ0gnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1mb3JtLXRhYmxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cInN0ZlwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NpemVfdG9fZml0LnN2ZydcIlxuICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uZml0J3wgdHJhbnNsYXRlKVwiIChjbGljayk9XCJzaXplVG9GaXQodHJ1ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJzdGYgYWRkLXJvd1wiICpuZ0lmPVwiIV9wYXJhbXMuZWxlbWVudC5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hZGQuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5hZGQnfCB0cmFuc2xhdGUpXCIgKGNsaWNrKT1cImFkZFJvdygpXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtYm9keVwiPlxuICAgICAgICAgICAgICA8YWctZ3JpZC1hbmd1bGFyICNvdmVybGF5R3JpZCAqbmdJZj1cImdyaWRSZWFkeVwiIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCIgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cIm92ZXJsYXlHcmlkT3B0aW9uc1wiIChjZWxsQ2xpY2tlZCk9XCJvbkNlbGxDbGlja2VkUm93RWRpdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIiAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICAoY2VsbFZhbHVlQ2hhbmdlZCk9XCJvbkVkaXRDb21wbGV0ZSgkZXZlbnQpXCIgKGNvbHVtblJlc2l6ZWQpPVwib25Db2x1bW5SZXNpemVkKCRldmVudC5jb2x1bW4sIHRydWUpXCI+XG4gICAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSB0YWJsZSBlZGl0IGNvbXBvbmVudC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIyMFwiIFt2aXNpYmxlXT1cIiEhZWRpdGluZ1Jvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1ib2R5XCI+XG4gICAgICAgICAgPGVvLXJvdy1lZGl0IFtyb3ddPVwiZWRpdGluZ1Jvd1wiIFtsaW1pdFJlYWNoZWRdPVwibGltaXQgPD0gb3ZlcmxheUdyaWRPcHRpb25zLnJvd0RhdGEubGVuZ3RoXCIgI3Jvd0VkaXRcbiAgICAgICAgICAgIChvblNhdmUpPVwidXBkYXRlUm93KCRldmVudClcIiAob25TYXZlQ29weSk9XCJjb3B5Um93KCRldmVudClcIiAob25EZWxldGUpPVwiZGVsZXRlUm93KCRldmVudClcIlxuICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbFJvd0VkaXQoKVwiPjwvZW8tcm93LWVkaXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPCEtLSB2aWV3ZXItLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDBcIiBbdmlzaWJsZV09XCJzaG93UHJldmlldyAmJiBoYXNQcmV2aWV3RmlsZVwiPlxuICAgICAgICA8ZW8tbWVkaWEgKm5nSWY9XCJoYXNQcmV2aWV3RmlsZVwiIFt1bmRvY2tEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbdXNlVmVyc2lvbl09XCJwYXJhbXMub2JqZWN0Py5pZCA9PT0gcGFyYW1zLm9iamVjdD8uY29udGVudD8uaWRcIiBbZG1zT2JqZWN0XT1cInBhcmFtcy5vYmplY3RcIj48L2VvLW1lZGlhPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwveXZjLXNwbGl0LXZpZXc+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+XG5cbjxlby1kaWFsb2cgW3RpdGxlXT1cIignZW8uZm9ybS50YWJsZS5jc3YuaW1wb3J0LnJlcG9ydC50aXRsZScgfCB0cmFuc2xhdGUpXCIgW3Zpc2libGVdPVwic2hvd0ltcG9ydFJlcG9ydERpYWxvZ1wiXG4gIChoaWRlKT1cImNhbmNlbEltcG9ydFJlcG9ydCgpXCIgW3N0eWxlQ2xhc3NdPVwiJ2ltcG9ydC1yZXBvcnRfX2RpYWxvZydcIj5cbiAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICA8aDQgdHJhbnNsYXRlIFt0cmFuc2xhdGVQYXJhbXNdPVwie3JlYWRSb3dzOiBtYXBwZWRSb3dzLmxlbmd0aH1cIj5lby5mb3JtLnRhYmxlLmNzdi5pbXBvcnQucmVwb3J0LnJlYWRSb3dzPC9oND5cbiAgICA8ZGl2ICpuZ0lmPVwibWFwcGluZ0Vycm9yRmllbGRzLmxlbmd0aCAhPT0gMFwiIGNsYXNzPVwiZmxleC1jb2xcIj5cbiAgICAgIDxoNCB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5jc3YuaW1wb3J0LnJlcG9ydC5lcnJvcnM8L2g0PlxuICAgICAgPHRhYmxlPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLmNzdi5pbXBvcnQucmVwb3J0LmVycm9ycy5yb3c8L3RoPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLmNzdi5pbXBvcnQucmVwb3J0LmVycm9ycy5jc3ZDb2x1bW48L3RoPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLmNzdi5pbXBvcnQucmVwb3J0LmVycm9ycy50YWJsZUNvbHVtbjwvdGg+XG4gICAgICAgICAgICA8dGggdHJhbnNsYXRlPmVvLmZvcm0udGFibGUuY3N2LmltcG9ydC5yZXBvcnQuZXJyb3JzLnZhbHVlPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgbWFwcGluZ0Vycm9yRmllbGRzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZD57e2Vycm9yLnJvdyArIDF9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZD57e2Vycm9yLnVwbG9hZGVkTmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7ZXJyb3IudGVjaG5pY2FsTmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7ZXJyb3IudmFsdWV9fTwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsSW1wb3J0UmVwb3J0KClcIiBjbGFzcz1cImJ1dHRvbi1jYW5jZWxcIiB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImFkZEltcG9ydFZhbHVlc1RvVGFibGUoKVwiIGNsYXNzPVwicHJpbWFyeVwiIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLmNzdi5pbXBvcnQucmVwb3J0LmltcG9ydDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19