@eo-sdk/client 10.0.0-beta.2 → 10.0.0-beta.4

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 (176) hide show
  1. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  2. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +7 -3
  3. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  4. package/app/eo-framework/app-shell/app-shell.module.d.ts +2 -1
  5. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  6. package/app/eo-framework/eo-framework.module.d.ts +26 -29
  7. package/app/eo-framework/eo-framework.module.d.ts.map +1 -1
  8. package/app/eo-framework/form-elements/checkbox/checkbox.component.d.ts.map +1 -1
  9. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +3 -1
  10. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
  11. package/app/eo-framework/form-elements/date/date.component.d.ts +2 -0
  12. package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
  13. package/app/eo-framework/form-elements/date/year-range/year-range.directive.d.ts.map +1 -0
  14. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +3 -1
  15. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  16. package/app/eo-framework/form-elements/form-elements.module.d.ts +37 -39
  17. package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
  18. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
  19. package/app/eo-framework/form-elements/index.d.ts +1 -3
  20. package/app/eo-framework/form-elements/index.d.ts.map +1 -1
  21. package/app/eo-framework/form-elements/reference/reference.component.d.ts.map +1 -1
  22. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +3 -2
  23. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts.map +1 -1
  24. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +1 -5
  25. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts.map +1 -1
  26. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +4 -7
  27. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  28. package/app/eo-framework/grid/grid.module.d.ts +4 -3
  29. package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
  30. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +2 -7
  31. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  32. package/app/eo-framework/index.d.ts +0 -1
  33. package/app/eo-framework/index.d.ts.map +1 -1
  34. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  35. package/app/eo-framework/object-details/object-details.component.d.ts +2 -7
  36. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  37. package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
  38. package/app/eo-framework/object-form/object-form/object-form.component.d.ts +6 -59
  39. package/app/eo-framework/object-form/object-form/object-form.component.d.ts.map +1 -1
  40. package/app/eo-framework/object-form/object-form-helper.service.d.ts +86 -2
  41. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  42. package/app/eo-framework/object-state-details/object-state-details.component.d.ts +3 -11
  43. package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
  44. package/app/eo-framework/plugins/plugin.component.d.ts +0 -2
  45. package/app/eo-framework/plugins/plugin.component.d.ts.map +1 -1
  46. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  47. package/app/eo-framework/process/details/process-details.component.d.ts +2 -7
  48. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  49. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +2 -7
  50. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
  51. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +2 -1
  52. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
  53. package/assets/_default/i18n/de.json +2 -0
  54. package/assets/_default/i18n/en.json +4 -2
  55. package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -5
  56. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  57. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
  58. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  59. package/esm2020/app/eo-client/login/login.component.mjs +5 -6
  60. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
  61. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +4 -4
  62. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
  63. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +6 -8
  64. package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
  65. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +4 -4
  66. package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
  67. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  68. package/esm2020/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +1 -1
  69. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +1 -1
  70. package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +1 -1
  71. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +2 -2
  72. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +1 -1
  73. package/esm2020/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +1 -1
  74. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +32 -20
  75. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +8 -4
  76. package/esm2020/app/eo-framework/eo-framework.module.mjs +3 -36
  77. package/esm2020/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +1 -4
  78. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +9 -3
  79. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +9 -24
  80. package/esm2020/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +44 -0
  81. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +2 -2
  82. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +9 -3
  83. package/esm2020/app/eo-framework/form-elements/form-elements.module.mjs +3 -13
  84. package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +11 -12
  85. package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +2 -2
  86. package/esm2020/app/eo-framework/form-elements/index.mjs +2 -4
  87. package/esm2020/app/eo-framework/form-elements/number-range/number-range.component.mjs +2 -2
  88. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  89. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +5 -5
  90. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  91. package/esm2020/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +8 -3
  92. package/esm2020/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +9 -17
  93. package/esm2020/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  94. package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +2 -2
  95. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +9 -27
  96. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +2 -2
  97. package/esm2020/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  98. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +2 -2
  99. package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
  100. package/esm2020/app/eo-framework/grid/grid.module.mjs +5 -8
  101. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +8 -15
  102. package/esm2020/app/eo-framework/index.mjs +1 -2
  103. package/esm2020/app/eo-framework/media/media.component.mjs +5 -4
  104. package/esm2020/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +1 -1
  105. package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +1 -1
  106. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +10 -15
  107. package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +1 -2
  108. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +4 -4
  109. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
  110. package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +18 -494
  111. package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +1 -1
  112. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +506 -7
  113. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +19 -27
  114. package/esm2020/app/eo-framework/plugins/plugin.component.mjs +5 -7
  115. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -4
  116. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +10 -16
  117. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +7 -16
  118. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +1 -1
  119. package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +6 -3
  120. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  121. package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +6 -1
  122. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
  123. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  124. package/fesm2015/eo-sdk-client.mjs +3744 -4567
  125. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  126. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
  127. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  128. package/fesm2020/eo-sdk-client.mjs +3746 -4568
  129. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  130. package/package.json +4 -4
  131. package/projects/eo-sdk/core/lib/util/utils.d.ts +1 -0
  132. package/projects/eo-sdk/core/lib/util/utils.d.ts.map +1 -1
  133. package/scss/_eo-variables.scss +70 -40
  134. package/scss/_form.scss +6 -0
  135. package/scss/_main.scss +1 -1
  136. package/scss/_theme-dark.scss +22 -0
  137. package/scss/_yuuvis-components.scss +13 -2
  138. package/styles.css +51 -24
  139. package/styles.scss +5 -10
  140. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts +0 -67
  141. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts.map +0 -1
  142. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts +0 -21
  143. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts.map +0 -1
  144. package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts +0 -33
  145. package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts.map +0 -1
  146. package/app/eo-framework/form-elements/datetime/datetime.component.d.ts +0 -51
  147. package/app/eo-framework/form-elements/datetime/datetime.component.d.ts.map +0 -1
  148. package/app/eo-framework/form-elements/datetime/year-range/year-range.directive.d.ts.map +0 -1
  149. package/app/eo-framework/tab-container/index.d.ts +0 -6
  150. package/app/eo-framework/tab-container/index.d.ts.map +0 -1
  151. package/app/eo-framework/tab-container/tab-container.component.d.ts +0 -62
  152. package/app/eo-framework/tab-container/tab-container.component.d.ts.map +0 -1
  153. package/app/eo-framework/tab-container/tab-container.module.d.ts +0 -18
  154. package/app/eo-framework/tab-container/tab-container.module.d.ts.map +0 -1
  155. package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts +0 -13
  156. package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts.map +0 -1
  157. package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts +0 -19
  158. package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts.map +0 -1
  159. package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts +0 -11
  160. package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts.map +0 -1
  161. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.mjs +0 -239
  162. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.mjs +0 -2
  163. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.mjs +0 -109
  164. package/esm2020/app/eo-framework/form-elements/datetime/datetime.component.mjs +0 -142
  165. package/esm2020/app/eo-framework/form-elements/datetime/year-range/year-range.directive.mjs +0 -44
  166. package/esm2020/app/eo-framework/tab-container/index.mjs +0 -6
  167. package/esm2020/app/eo-framework/tab-container/tab-container.component.mjs +0 -184
  168. package/esm2020/app/eo-framework/tab-container/tab-container.module.mjs +0 -47
  169. package/esm2020/app/eo-framework/tab-container/tab-panel/tab-panel.component.mjs +0 -26
  170. package/esm2020/app/eo-framework/tab-container/tab-view/tab-view.component.mjs +0 -61
  171. package/esm2020/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.mjs +0 -25
  172. package/scss/_eo-inverted.scss +0 -73
  173. package/scss/_eo-pink-theme.scss +0 -73
  174. package/scss/_eo-theme.scss +0 -81
  175. package/scss/_eo-vars.scss +0 -3
  176. /package/app/eo-framework/form-elements/{datetime → date}/year-range/year-range.directive.d.ts +0 -0
@@ -110,7 +110,7 @@ export class ObjectStateComponent extends UnsubscribeOnDestroy {
110
110
  this.setupFrontPage();
111
111
  }
112
112
  this.updateContextTree();
113
- }, 500);
113
+ }, 1000);
114
114
  });
115
115
  this.eventService
116
116
  .on(EnaioEvent.DMS_OBJECT_UPDATED)
@@ -325,14 +325,14 @@ export class ObjectStateComponent extends UnsubscribeOnDestroy {
325
325
  }
326
326
  }
327
327
  ObjectStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.PageTitleService }, { token: i3.SystemService }, { token: i3.DmsService }, { token: i4.SelectionService }, { token: i3.TranslateService }, { token: i5.ObjectStateService }, { token: i6.ActionService }, { token: i7.LocationService }, { token: i8.PendingChangesService }, { token: i3.EventService }, { token: i9.GridService }, { token: i10.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
328
- ObjectStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n\n\n\n\n\n\n <!-- <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split> -->\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host eo-split-area{box-shadow:0 2px 5px #0003}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head:not(.eo-head-tabs){height:calc(var(--app-pane-header-height) - 20px)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i14.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i15.ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: i16.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i17.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i18.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.Error404Component, selector: "eo-error404" }, { kind: "component", type: i21.TabPluginComponent, selector: "eo-tab-plugin", inputs: ["type"] }, { kind: "component", type: i22.ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i23.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i23.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }, { kind: "pipe", type: i24.LocaleDatePipe, name: "localeDate" }], animations: [panelLoadingAnimations] });
328
+ ObjectStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n\n\n\n\n\n\n <!-- <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split> -->\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head:not(.eo-head-tabs){height:calc(var(--app-pane-header-height) - 20px)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i14.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i15.ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: i16.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i17.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i18.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.Error404Component, selector: "eo-error404" }, { kind: "component", type: i21.TabPluginComponent, selector: "eo-tab-plugin", inputs: ["type"] }, { kind: "component", type: i22.ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i23.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i23.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }, { kind: "pipe", type: i24.LocaleDatePipe, name: "localeDate" }], animations: [panelLoadingAnimations] });
329
329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateComponent, decorators: [{
330
330
  type: Component,
331
- args: [{ selector: 'eo-object-state', providers: [ObjectStateService], animations: [panelLoadingAnimations], template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n\n\n\n\n\n\n <!-- <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split> -->\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host eo-split-area{box-shadow:0 2px 5px #0003}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head:not(.eo-head-tabs){height:calc(var(--app-pane-header-height) - 20px)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"] }]
331
+ args: [{ selector: 'eo-object-state', providers: [ObjectStateService], animations: [panelLoadingAnimations], template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n\n\n\n\n\n\n <!-- <eo-undock-split>\n <eo-split [gutterSize]=\"16\" [visibleTransition]=\"true\" [cacheLayout]=\"cacheLayout\">\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"230\" class=\"tree\">\n <ng-template pTemplate=\"content\">\n\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" (ngModelChange)=\"onTermFilterChange.emit($event)\"/>\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.tree.state\"\n *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\" translate>eo.state.object.tree.references</h3> \n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\" [@panelLoading]=\"loadingState.treeRef.state\"\n *ngIf=\"contextTreeRef?.length\" [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"35\" [minSizePixel]=\"250\" [@panelLoading]=\"loadingState.list.state\">\n <ng-template pTemplate=\"content\">\n\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\" [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\" [reference]=\"selectedNode?.isReference\"\n [searchResult]=\"searchResult\" [configType]=\"configType\" [configContext]=\"\"\n [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n\n </ng-template>\n </eo-split-area>\n\n <eo-split-area [size]=\"45\" [minSizePixel]=\"250\" [cache]=\"false\" [@panelLoading]=\"loadingState.details.state\">\n <ng-template pTemplate=\"content\">\n <eo-object-details eoTrapFocus [applySelection]=\"{}\" [reference]=\"isReferenceActive\" [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </eo-split-area>\n\n </eo-split>\n </eo-undock-split> -->\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head:not(.eo-head-tabs){height:calc(var(--app-pane-header-height) - 20px)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"] }]
332
332
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.PageTitleService }, { type: i3.SystemService }, { type: i3.DmsService }, { type: i4.SelectionService }, { type: i3.TranslateService }, { type: i5.ObjectStateService }, { type: i6.ActionService }, { type: i7.LocationService }, { type: i8.PendingChangesService }, { type: i3.EventService }, { type: i9.GridService }, { type: i10.LayoutService }]; }, propDecorators: { eoGrid: [{
333
333
  type: ViewChild,
334
334
  args: ['eoGrid']
335
335
  }], onTermFilterChange: [{
336
336
  type: Output
337
337
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQW1CLFVBQVUsRUFBdUMsS0FBSyxFQUEwQyxNQUFNLGNBQWMsQ0FBQztBQUsvSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFRakgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV2xHLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFzQzVELFlBQW9CLEtBQXFCLEVBQy9CLFlBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFVBQXNCLEVBQ3RCLFNBQTJCLEVBQzVCLFNBQTJCLEVBQzNCLFdBQStCLEVBQzlCLGFBQTRCLEVBQzVCLFFBQXlCLEVBQ3pCLGNBQXFDLEVBQ3JDLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBRXBDLEtBQUssRUFBRSxDQUFD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QUMvRCxJQUFJLENBQUMsVUFBVTtxQkFDWixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7cUJBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQWMsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0VBQXdFO1FBQ3hFLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUhBcFdVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlHQUhwQixDQUFDLGtCQUFrQixDQUFDLG1KQzFCakMsdzRSQWtLYyx5elBEdklBLENBQUMsc0JBQXNCLENBQUM7MkZBRXpCLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBQyxrQkFBa0IsQ0FBQyxjQUNuQixDQUFDLHNCQUFzQixDQUFDO3djQUlmLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFtQlQsa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBEbXNTZXJ2aWNlLCBEbXNPYmplY3QsIFV0aWxzLCBTZWFyY2hSZXN1bHQsIE9iamVjdFR5cGUsIFN5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5cbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtwYW5lbExvYWRpbmdBbmltYXRpb25zLCBQYW5lbExvYWRpbmd9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay91aS9hbmltYXRpb25zL3BhbmVsLWxvYWRpbmcuYW5pbWF0aW9uJztcbmltcG9ydCB7QWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9sYXlvdXQvbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xvY2F0aW9uL2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdFNlYXJjaFJlc3VsdCwgRnJvbnRQYWdlRGF0YX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0U3RhdGVTZXJ2aWNlXSxcbiAgYW5pbWF0aW9uczogW3BhbmVsTG9hZGluZ0FuaW1hdGlvbnNdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN0YXRlQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBlcnJvciA9IGZhbHNlO1xuICBjb250ZXh0OiBEbXNPYmplY3Q7XG4gIHNlbGVjdGVkSXRlbTogRG1zT2JqZWN0O1xuICBmcm9udFBhZ2U6IGJvb2xlYW47XG4gIGZyb250UGFnZURhdGE6IEZyb250UGFnZURhdGE7XG4gIGNvbnRleHRUcmVlOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVVwZGF0ZTogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVSZWY6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlUmVmVXBkYXRlOiBUcmVlTm9kZVtdO1xuICBzZWxlY3RlZE5vZGVzOiBUcmVlTm9kZVtdO1xuICBzZWxlY3RlZE5vZGU6IFRyZWVOb2RlO1xuICBoaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXTtcbiAgaXNSZWZlcmVuY2VBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBhbmRlZE5vZGVJZHM6IHN0cmluZ1tdID0gW107XG4gIHRlcm1GaWx0ZXI6IHN0cmluZztcbiAgYWxsVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGU7XG4gIEBPdXRwdXQoKSBvblRlcm1GaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBncmlkVGl0bGU6IHN0cmluZztcbiAgZW1wdHlHcmlkID0gdHJ1ZTtcblxuICBzZWFyY2hSZXN1bHQ6IFNlYXJjaFJlc3VsdDtcbiAgdHlwZU5hbWUgPSAnJztcbiAgY2FjaGVMYXlvdXQgPSAnJztcblxuICBsb2FkaW5nU3RhdGUgPSB7XG4gICAgdHJlZTogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIHRyZWVSZWY6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICBsaXN0OiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgZGV0YWlsczogbmV3IFBhbmVsTG9hZGluZygpLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgb2JqZWN0U3RhdGU6IE9iamVjdFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSkge1xuXG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUobnVsbCk7XG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IDxHcmlkT3B0aW9ucz57fTtcblxuICAgIHRoaXMub25UZXJtRmlsdGVyQ2hhbmdlXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpXG4gICAgICAuc3Vic2NyaWJlKHYgPT4gdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKSk7XG5cbiAgICAvLyBzdWJzY3JpYmUgZm9yIGRhdGEgZnJvbSB0aGUgY29ubmVjdGVkIHNlcnZpY2VcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAubGlzdCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBPYmplY3RTZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSAhcmVzO1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgLy8gc2V0dXAgdGhlIGdyaWQgd2l0aCB0aGUgbmV3IGRhdGFcbiAgICAgICAgICBsZXQge25hbWUsIHJlc3VsdH0gPSByZXM7XG4gICAgICAgICAgdGhpcy5lbXB0eUdyaWQgPSByZXN1bHQuY291bnQudmFsdWUgPT09IDA7XG4gICAgICAgICAgdGhpcy5ncmlkVGl0bGUgPSBuYW1lO1xuICAgICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKHJlc3VsdC50eXBlTmFtZSkgfHwge3FuYW1lOiByZXN1bHQudHlwZU5hbWV9IGFzIE9iamVjdFR5cGU7XG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTdGF0ZS5saXN0LnJlYWR5KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMub2JqZWN0U3RhdGUudHJlZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5idWlsZENvbnRleHRUcmVlKHJlcy5mb2xkZXIpKTtcblxuICAgIHRoaXMub2JqZWN0U3RhdGUudHJlZVJlZiRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5idWlsZENvbnRleHRUcmVlUmVmKHJlcy5mb2xkZXIpKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICB0aGlzLmhpZ2hsaWdodChpdGVtLmlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmRldGFpbHMucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmlkID09PSBldnQuZGF0YS5pZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5mcm9udFBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0VHJlZSgpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiBldmVudC5kYXRhICYmIHRoaXMuY29udGV4dC5pZCA9PT0gZXZlbnQuZGF0YS5pZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZnJvbnRQYWdlKSB7XG4gICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1BBU1RFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5jbGlwYm9hcmQucGFzdGUucmVzdWx0bGlzdC5oZWFkbGluZScpO1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgICAgLnNlbGVjdFRyZWVOb2RlKDxhbnk+e30sIDxhbnk+e25hbWV9LCB7aWQ6IGV2dC5kYXRhLm1hcChkID0+IGQuaWQpfSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dFRyZWUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxuXG4gIG9uRXhwYW5kZWROb2Rlc0NoYW5nZWQoZXhwYW5kZWROb2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmV4cGFuZGVkTm9kZUlkcyA9IGV4cGFuZGVkTm9kZXM7XG4gIH1cblxuICAvLyBzZWxlY3QgYW4gZW50cnkgZnJvbSB0aGUgdHJlZVxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICBpZiAobm9kZS5kYXRhLnR5cGUpIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0LCB0aGlzLnNlbGVjdGVkTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UudXBkYXRlQ29udGV4dChub2RlLmlzUmVmZXJlbmNlIHx8IHRoaXMuYWxsVHlwZXMuaW5jbHVkZXMobm9kZS5kYXRhLnR5cGUpID8gW25vZGUuZGF0YS50eXBlXSA6IHRoaXMuYWxsVHlwZXMpO1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGUubGlzdFxuICAgICAgICAuc3Vic2NyaWJlKG5vZGUuaXNSZWZlcmVuY2UgP1xuICAgICAgICAgIHRoaXMub2JqZWN0U3RhdGUuc2VsZWN0VHJlZU5vZGUodGhpcy5jb250ZXh0LCBub2RlLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKSA6XG4gICAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5zZWxlY3RUcmVlTm9kZSh0aGlzLmNvbnRleHQsIG5vZGUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRleHRNZW51Q2xpY2tlZChldnQsIGRvYz8pIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKFtkb2MgfHwgdGhpcy5jb250ZXh0XSwgJ0RNU19PQkpFQ1QnKTtcbiAgfVxuXG4gIHJlZnJlc2hMaXN0KCkge1xuICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlZCh0aGlzLnNlbGVjdGVkTm9kZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3MoaXRlbTogRG1zT2JqZWN0LCBzZWxlY3RlZElkPykge1xuICAgIGlmIChpdGVtLmlzQ29udGV4dEZvbGRlcikge1xuICAgICAgLy8gaWYgdGhlcmUgYWxyZWFkeSBpcyBhIGNvbnRleHQgc2V0LCB3ZSBuZWVkIHRvIGxlYXZlIGxvY2F0aW9uIGZvciB0aGUgb2xkIGNvbnRleHQgZmlyc3RcbiAgICAgIC8vIG90aGVyd2lzZSBVcGxvYWRUYXJnZXRzIHdpbGwgbm90IGJlIHVucmVnaXN0ZXJlZCBjb3JyZWN0bHlcbiAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0ID0gaXRlbTtcbiAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnb2JqZWN0LnN0YXRlLS0nICsgaXRlbS50eXBlTmFtZTtcbiAgICAgIC8vIGFkZCB0aGlzIGxvY2F0aW9uIHRvIHRoZSBsb2NhdGlvbiBzZXJ2aWNlLCB3aGljaCB3aWxsIHRyYWNrIGFjdGl2ZSBsb2NhdGlvbnNcbiAgICAgIC8vIGFuZCBoYW5kbGUgYSBoaXN0b3J5IG9mIHZpc2l0ZWQgbG9jYXRpb25zLlxuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQsIHRoaXMuc2VsZWN0ZWROb2RlKTtcblxuICAgICAgdGhpcy5vYmplY3RTdGF0ZS5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHtkZWZpbml0aW9uOiBbe2ZpZWxkOiAndHlwZScsIGtleTogJ1R5cGVzJywgc2l6ZTogMTAwMH1dfSlcbiAgICAgICAgLnN1YnNjcmliZSh0eXBlcyA9PiAodGhpcy5hbGxUeXBlcyA9ICh0eXBlcy5mb2xkZXJbMF0uZm9sZGVyIHx8IFtdKS5tYXAodCA9PiB0LnR5cGUpKSk7XG5cbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSgnJywgc2VsZWN0ZWRJZCk7XG4gICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZldGNoIHRoZSBjb250ZXh0IGZvbGRlclxuICAgICAgaWYgKGl0ZW0uY29udGV4dEZvbGRlcikge1xuICAgICAgICB0aGlzLmNhY2hlTGF5b3V0ID0gJ29iamVjdC5zdGF0ZS0tJyArIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZTtcbiAgICAgICAgdGhpcy5kbXNTZXJ2aWNlXG4gICAgICAgICAgLmdldERtc09iamVjdChpdGVtLmNvbnRleHRGb2xkZXIuaWQsIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZSwgbnVsbCwgJ0RFVEFJTFMnKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocmVzLCBpdGVtLmlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGp1c3QgdGhlIGRvY3VtZW50IGluIHJvb3RcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyBoaWRlIGVtcHR5IHRyZWUgJiBsaXN0XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5oaWRlQXJlYXMoKGEsIGkpID0+IGkgPCAyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnZpc2liaWxpdHlVcGRhdGUoKTtcbiAgfVxuXG4gIHNldHVwRnJvbnRQYWdlKHVwZGF0ZVNlbGVjdGlvbiA9IGZhbHNlLCB1cGRhdGVUcmVlID0gZmFsc2UpIHtcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAuc2VsZWN0RnJvbnRQYWdlKHRoaXMuY29udGV4dClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmZyb250UGFnZURhdGEgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZm9jdXModGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVRyZWUpIHtcbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSh0aGlzLnRlcm1GaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmVlRGF0YSh0ZXJtRmlsdGVyPzogc3RyaW5nLCBzZWxlY3RlZElkPzogYW55KSB7XG4gICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRJZCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudHJlZS5zdWJzY3JpYmUodGhpcy5vYmplY3RTdGF0ZS51cGRhdGVUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQsIHt0ZXJtOiB0ZXJtRmlsdGVyfSkpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWVSZWYuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHQoc2VsZWN0ZWRJZCkge1xuICAgIGlmIChzZWxlY3RlZElkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgZm9ya0pvaW4oW1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSksXG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7aWQ6IHNlbGVjdGVkSWR9LCAncmVmZXJlbmNldmlldycpXG4gICAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTm9kZXMgPSB0aGlzLmhpZ2hsaWdodE5vZGVzKFsuLi5yZXNbMF0uZm9sZGVyLCAuLi5yZXNbMV0uZm9sZGVyXSk7XG4gICAgICAgIHRoaXMuaXNSZWZlcmVuY2VBY3RpdmUgPSAhIShyZXNbMV0udG90YWwudmFsdWUgJiYgIXJlc1swXS50b3RhbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0VHJlZSgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgIC5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSkpO1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdLCB0cnVlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Tm9kZXMoZm9sZGVyID0gW10sIG5vZGVzID0gW10pIHtcbiAgICBmb2xkZXIuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChmLmNvdW50KSB7XG4gICAgICAgIG5vZGVzLnB1c2goZi5rZXkpO1xuICAgICAgfVxuICAgICAgaWYgKGYuZm9sZGVyKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Tm9kZXMoZi5mb2xkZXIsIG5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWUoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10pKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250ZXh0VHJlZVJlZihmb2xkZXIgPSBbXSkge1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWZVcGRhdGUgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWYgPSBmb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwcml2YXRlIGFkZFRyZWVOb2RlKG5vZGVEYXRhLCBwYXRoOiBzdHJpbmdbXSwgaXNSZWZlcmVuY2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHtrZXksIHRpdGxlLCBmb2xkZXIsIGV4cGFuZGVkLCBjb3VudCwgc3RhdHN9ID0gbm9kZURhdGE7XG4gICAgLy8gaW1wb3J0YW50IHRvIGNyZWF0ZSBjbG9uZSBoZXJlLCBiZWNhdXNlIG90aGVyd2lzZSBwYXRoIHdpbGwgYmUgbWVzc2VkIHVwXG4gICAgY29uc3QgcCA9IHBhdGguY29uY2F0KFt0aXRsZV0pO1xuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgIGlkOiBrZXksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIHBhdGg6IHAsXG4gICAgICBjaGlsZHJlbjogKGZvbGRlciB8fCBbXSkubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBwLCBpc1JlZmVyZW5jZSkpLFxuICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkIHx8ICEhfnRoaXMuZXhwYW5kZWROb2RlSWRzLmluZGV4T2Yoa2V5KSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBpc1JlZmVyZW5jZSxcbiAgICAgIGJhZGdlczogKHN0YXRzIHx8IFtdKS5tYXAoc3RhdCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgdmFsdWU6IHN0YXQudmFsdWUgKyAnICcgKyBzdGF0LnRpdGxlLFxuICAgICAgICBjc3NDbGFzczogJ3N0YXRzJ1xuICAgICAgfSkpLFxuICAgICAgZGF0YTogbm9kZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKGNvdW50KSB7XG4gICAgICBub2RlLmJhZGdlcy5wdXNoKHt2YWx1ZTogY291bnR9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKCgpID0+IGZhbHNlKTtcbiAgICAgICAgY29uc3Qge3BhcmFtcywgcXVlcnlQYXJhbXN9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMudHlwZU5hbWUgPSBxdWVyeVBhcmFtc1sndHlwZSddIHx8ICcnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHtpZDogcGFyYW1zLmlkLCB0eXBlTmFtZTogdGhpcy50eXBlTmFtZX0pO1xuICAgICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgICAgLmdldERtc09iamVjdChwYXJhbXMuaWQsIHRoaXMudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHJlcyk7XG4gICAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zZXRBcmVhcyhbXSk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHdlIHRlbGwgdGhlIGxvY2F0aW9uIHNlcnZpY2UgdGhhdCB3ZVxuICAgIC8vIGxlZnQgdGhlIGxvY2F0aW9uXG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZpbGVcIiBbbmdDbGFzc109XCJ7cmVhZHk6IGNvbnRleHQgfHwgY29udGV4dCA9PT0gbnVsbH1cIiAqbmdJZj1cIiFlcnJvcjsgZWxzZSBlcnJvclRtcGxcIj5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZS1oZWFkXCIgKm5nSWY9XCJjb250ZXh0ICYmIGNvbnRleHQuaXNDb250ZXh0Rm9sZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwidHlwZS1pY29uXCIgW29iamVjdFR5cGVdPVwiY29udGV4dC50eXBlXCI+PC9lby1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKGNsaWNrKT1cInNldHVwRnJvbnRQYWdlKClcIiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57e2NvbnRleHQudGl0bGUgfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e2NvbnRleHQuZGVzY3JpcHRpb24gfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9sZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtZGF0ZVwiPnt7Y29udGV4dC5jcmVhdGVkLm9uIHwgbG9jYWxlRGF0ZX19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtdGl0bGVcIj57e2NvbnRleHQuY3JlYXRlZC5ieS50aXRsZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWxlLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1ib2R5LXdyYXBcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgIT09IG51bGw7IGVsc2UgdHBsRGV0YWlsc09ubHlcIj5cblxuICAgICAgICA8eXZjLXNwbGl0LXZpZXcgW2xheW91dFNldHRpbmdzSURdPVwiY2FjaGVMYXlvdXRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtwYW5lbENsYXNzXT1cIid0cmVlJ1wiIFtzaXplXT1cIjIwXCIgW3Zpc2libGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyZWUtcGFuZWwtZXJyb3JcIiAqbmdJZj1cImxvYWRpbmdTdGF0ZS50cmVlLmlzRXJyb3IoKTsgZWxzZSB0cGxUcmVlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICBlby5zdGF0ZS5vYmplY3QudHJlZS5lcnJvcjwvZGl2PlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RwbFRyZWU+XG5cbiAgICAgICAgICAgICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2xvYWRpbmddPVwiIWNvbnRleHRUcmVlXCIgW3RhYnNdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyIGRhcmtcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUudGl0bGU8L2gyPlxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPVwic3RydWN0dXJlRm9ybVwiIGNsYXNzPVwidHJlZS1maWx0ZXItZm9ybVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6ICEhdGVybUZpbHRlcn1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIiAnZW8uc3RhdGUub2JqZWN0LnRyZWUuZmlsdGVyLmxhYmVsJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwidGVybUZpbHRlclwiIG1heGxlbmd0aD1cIjI1MFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRlcm1GaWx0ZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5IHRyZWVcIj5cbiAgICAgICAgICAgICAgICAgIDxlby10cmVlIFt0cmVlXT1cImNvbnRleHRUcmVlXCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBmYWxzZSwgZGlzYWJsZURlc2VsZWN0aW9uOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgIFtAcGFuZWxMb2FkaW5nXT1cImxvYWRpbmdTdGF0ZS50cmVlLnN0YXRlXCIgKm5nSWY9XCJjb250ZXh0VHJlZVwiIFtoaWdobGlnaHRlZE5vZGVzXT1cImhpZ2hsaWdodGVkTm9kZXNcIlxuICAgICAgICAgICAgICAgICAgICBbdHJlZVVwZGF0ZV09XCJjb250ZXh0VHJlZVVwZGF0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiPjwvZW8tdHJlZT5cbiAgICAgICAgICAgICAgICAgIDxoMyAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIiB0aXRsZT1cInt7J2VvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXMudG9vbHRpcCd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUucmVmZXJlbmNlczwvaDM+XG4gICAgICAgICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJjb250ZXh0VHJlZVJlZlwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogZmFsc2UsIGRpc2FibGVEZXNlbGVjdGlvbjogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUudHJlZVJlZi5zdGF0ZVwiICpuZ0lmPVwiY29udGV4dFRyZWVSZWY/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZE5vZGVzXT1cImhpZ2hsaWdodGVkTm9kZXNcIiBbdHJlZVVwZGF0ZV09XCJjb250ZXh0VHJlZVJlZlVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVmZXJlbmNlXCI+PC9lby10cmVlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtwYW5lbENsYXNzXT1cIid0cmVlJ1wiIFtzaXplXT1cIjM1XCIgW3Zpc2libGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGVvLW9iamVjdC1zdGF0ZS1kZXRhaWxzICpuZ0lmPVwiY29udGV4dFwiIFtjb250ZXh0XT1cImNvbnRleHRcIiBbZnJvbnRQYWdlRGF0YV09XCJmcm9udFBhZ2VEYXRhXCJcbiAgICAgICAgICAgICAgW3Zpc2libGVdPVwiZnJvbnRQYWdlXCIgKG9uVGFiQ2hhbmdlKT1cInNldHVwRnJvbnRQYWdlKHRydWUpXCI+XG4gICAgICAgICAgICAgIDxlby10YWItcGx1Z2luIFt0eXBlXT1cIidvYmplY3Qtc3RhdGUtZGV0YWlscy10YWIub2JqZWN0J1wiPjwvZW8tdGFiLXBsdWdpbj5cbiAgICAgICAgICAgIDwvZW8tb2JqZWN0LXN0YXRlLWRldGFpbHM+XG5cbiAgICAgICAgICAgIDxlby1yZXN1bHQtbGlzdCAqbmdJZj1cIiFmcm9udFBhZ2UgJiYgc2VhcmNoUmVzdWx0XCIgW3NlbGVjdEZpcnN0XT1cImZhbHNlXCIgW3RpdGxlXT1cImdyaWRUaXRsZVwiXG4gICAgICAgICAgICAgIFtyZWZlcmVuY2VdPVwic2VsZWN0ZWROb2RlPy5pc1JlZmVyZW5jZVwiIFtzZWFyY2hSZXN1bHRdPVwic2VhcmNoUmVzdWx0XCIgW2NvbmZpZ1R5cGVdPVwiY29uZmlnVHlwZVwiXG4gICAgICAgICAgICAgIFtjb25maWdDb250ZXh0XT1cIlwiIFtlbXB0eU1lc3NhZ2VdPVwiJ2VvLnN0YXRlLm9iamVjdC5saXN0LmVycm9yJ1wiIChvblJlZnJlc2gpPVwicmVmcmVzaExpc3QoKVwiPlxuICAgICAgICAgICAgPC9lby1yZXN1bHQtbGlzdD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI0NVwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxPYmplY3REZXRhaWxzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC95dmMtc3BsaXQtdmlldz5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHBsRGV0YWlsc09ubHk+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbE9iamVjdERldGFpbHNcIj48L25nLWNvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3RwbE9iamVjdERldGFpbHM+XG4gICAgICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbcmVmZXJlbmNlXT1cImlzUmVmZXJlbmNlQWN0aXZlXCJcbiAgICAgICAgICBbY2FjaGVMYXlvdXRdPVwiJ29iamVjdC5zdGF0ZS0tJyArIHR5cGVOYW1lICsgJy5vYmplY3QtZGV0YWlscydcIj5cbiAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgIDwvZW8tb2JqZWN0LWRldGFpbHM+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG5cblxuXG5cblxuICAgICAgPCEtLSA8ZW8tdW5kb2NrLXNwbGl0PlxuICAgICAgICA8ZW8tc3BsaXQgW2d1dHRlclNpemVdPVwiMTZcIiBbdmlzaWJsZVRyYW5zaXRpb25dPVwidHJ1ZVwiIFtjYWNoZUxheW91dF09XCJjYWNoZUxheW91dFwiPlxuXG4gICAgICAgICAgPGVvLXNwbGl0LWFyZWEgW3NpemVdPVwiMjBcIiBbbWluU2l6ZVBpeGVsXT1cIjIzMFwiIGNsYXNzPVwidHJlZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJlZS1wYW5lbC1lcnJvclwiICpuZ0lmPVwibG9hZGluZ1N0YXRlLnRyZWUuaXNFcnJvcigpOyBlbHNlIHRwbFRyZWVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUuZXJyb3I8L2Rpdj5cblxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RwbFRyZWU+XG5cbiAgICAgICAgICAgICAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbbG9hZGluZ109XCIhY29udGV4dFRyZWVcIiBbdGFic109XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlciBkYXJrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5vYmplY3QudHJlZS50aXRsZTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT1cInN0cnVjdHVyZUZvcm1cIiBjbGFzcz1cInRyZWUtZmlsdGVyLWZvcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAhIXRlcm1GaWx0ZXJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIiAnZW8uc3RhdGUub2JqZWN0LnRyZWUuZmlsdGVyLmxhYmVsJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJ0ZXJtRmlsdGVyXCIgbWF4bGVuZ3RoPVwiMjUwXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGVybUZpbHRlckNoYW5nZS5lbWl0KCRldmVudClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWJvZHkgdHJlZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJjb250ZXh0VHJlZVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogZmFsc2UsIGRpc2FibGVEZXNlbGVjdGlvbjogdHJ1ZX1cIiBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUudHJlZS5zdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dFRyZWVcIiBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCIgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVVcGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2VvLXRyZWU+XG4gICAgICAgICAgICAgICAgICAgIDxoMyAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIiB0aXRsZT1cInt7J2VvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXMudG9vbHRpcCd8dHJhbnNsYXRlfX1cIiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUucmVmZXJlbmNlczwvaDM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGVvLXRyZWUgW3RyZWVdPVwiY29udGV4dFRyZWVSZWZcIiBbb3B0aW9uc109XCJ7bXVsdGlzZWxlY3Q6IGZhbHNlLCBkaXNhYmxlRGVzZWxlY3Rpb246IHRydWV9XCIgW0BwYW5lbExvYWRpbmddPVwibG9hZGluZ1N0YXRlLnRyZWVSZWYuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIiBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCIgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVSZWZVcGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIiBjbGFzcz1cInJlZmVyZW5jZVwiPjwvZW8tdHJlZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9lby1zcGxpdC1hcmVhPlxuXG4gICAgICAgICAgPGVvLXNwbGl0LWFyZWEgW3NpemVdPVwiMzVcIiBbbWluU2l6ZVBpeGVsXT1cIjI1MFwiIFtAcGFuZWxMb2FkaW5nXT1cImxvYWRpbmdTdGF0ZS5saXN0LnN0YXRlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxuXG4gICAgICAgICAgICAgIDxlby1vYmplY3Qtc3RhdGUtZGV0YWlscyAqbmdJZj1cImNvbnRleHRcIiBbY29udGV4dF09XCJjb250ZXh0XCIgW2Zyb250UGFnZURhdGFdPVwiZnJvbnRQYWdlRGF0YVwiIFt2aXNpYmxlXT1cImZyb250UGFnZVwiIChvblRhYkNoYW5nZSk9XCJzZXR1cEZyb250UGFnZSh0cnVlKVwiPlxuICAgICAgICAgICAgICAgIDxlby10YWItcGx1Z2luIFt0eXBlXT1cIidvYmplY3Qtc3RhdGUtZGV0YWlscy10YWIub2JqZWN0J1wiPjwvZW8tdGFiLXBsdWdpbj5cbiAgICAgICAgICAgICAgPC9lby1vYmplY3Qtc3RhdGUtZGV0YWlscz5cblxuICAgICAgICAgICAgICA8ZW8tcmVzdWx0LWxpc3QgKm5nSWY9XCIhZnJvbnRQYWdlICYmIHNlYXJjaFJlc3VsdFwiIFtzZWxlY3RGaXJzdF09XCJmYWxzZVwiIFt0aXRsZV09XCJncmlkVGl0bGVcIiBbcmVmZXJlbmNlXT1cInNlbGVjdGVkTm9kZT8uaXNSZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaFJlc3VsdF09XCJzZWFyY2hSZXN1bHRcIiBbY29uZmlnVHlwZV09XCJjb25maWdUeXBlXCIgW2NvbmZpZ0NvbnRleHRdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbXB0eU1lc3NhZ2VdPVwiJ2VvLnN0YXRlLm9iamVjdC5saXN0LmVycm9yJ1wiIChvblJlZnJlc2gpPVwicmVmcmVzaExpc3QoKVwiPlxuICAgICAgICAgICAgICA8L2VvLXJlc3VsdC1saXN0PlxuXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZW8tc3BsaXQtYXJlYT5cblxuICAgICAgICAgIDxlby1zcGxpdC1hcmVhIFtzaXplXT1cIjQ1XCIgW21pblNpemVQaXhlbF09XCIyNTBcIiBbY2FjaGVdPVwiZmFsc2VcIiBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUuZGV0YWlscy5zdGF0ZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGVvLW9iamVjdC1kZXRhaWxzIGVvVHJhcEZvY3VzIFthcHBseVNlbGVjdGlvbl09XCJ7fVwiIFtyZWZlcmVuY2VdPVwiaXNSZWZlcmVuY2VBY3RpdmVcIiBbY2FjaGVMYXlvdXRdPVwiJ29iamVjdC5zdGF0ZS0tJyArIHR5cGVOYW1lICsgJy5vYmplY3QtZGV0YWlscydcIj5cbiAgICAgICAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgICAgICAgIDwvZW8tb2JqZWN0LWRldGFpbHM+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZW8tc3BsaXQtYXJlYT5cblxuICAgICAgICA8L2VvLXNwbGl0PlxuICAgICAgPC9lby11bmRvY2stc3BsaXQ+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2Vycm9yVG1wbD5cbiAgPGVvLWVycm9yNDA0PjwvZW8tZXJyb3I0MDQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQW1CLFVBQVUsRUFBdUMsS0FBSyxFQUEwQyxNQUFNLGNBQWMsQ0FBQztBQUsvSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFRakgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV2xHLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFzQzVELFlBQW9CLEtBQXFCLEVBQy9CLFlBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFVBQXNCLEVBQ3RCLFNBQTJCLEVBQzVCLFNBQTJCLEVBQzNCLFdBQStCLEVBQzlCLGFBQTRCLEVBQzVCLFFBQXlCLEVBQ3pCLGNBQXFDLEVBQ3JDLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBRXBDLEtBQUssRUFBRSxDQUFD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QUMvRCxJQUFJLENBQUMsVUFBVTtxQkFDWixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUM7cUJBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQWMsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0VBQXdFO1FBQ3hFLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUhBcFdVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlHQUhwQixDQUFDLGtCQUFrQixDQUFDLG1KQzFCakMsdzRSQWtLYyxxNFBEdklBLENBQUMsc0JBQXNCLENBQUM7MkZBRXpCLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBQyxrQkFBa0IsQ0FBQyxjQUNuQixDQUFDLHNCQUFzQixDQUFDO3djQUlmLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFtQlQsa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBEbXNTZXJ2aWNlLCBEbXNPYmplY3QsIFV0aWxzLCBTZWFyY2hSZXN1bHQsIE9iamVjdFR5cGUsIFN5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5cbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtwYW5lbExvYWRpbmdBbmltYXRpb25zLCBQYW5lbExvYWRpbmd9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay91aS9hbmltYXRpb25zL3BhbmVsLWxvYWRpbmcuYW5pbWF0aW9uJztcbmltcG9ydCB7QWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9sYXlvdXQvbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xvY2F0aW9uL2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdFNlYXJjaFJlc3VsdCwgRnJvbnRQYWdlRGF0YX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0U3RhdGVTZXJ2aWNlXSxcbiAgYW5pbWF0aW9uczogW3BhbmVsTG9hZGluZ0FuaW1hdGlvbnNdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN0YXRlQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBlcnJvciA9IGZhbHNlO1xuICBjb250ZXh0OiBEbXNPYmplY3Q7XG4gIHNlbGVjdGVkSXRlbTogRG1zT2JqZWN0O1xuICBmcm9udFBhZ2U6IGJvb2xlYW47XG4gIGZyb250UGFnZURhdGE6IEZyb250UGFnZURhdGE7XG4gIGNvbnRleHRUcmVlOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVVwZGF0ZTogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVSZWY6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlUmVmVXBkYXRlOiBUcmVlTm9kZVtdO1xuICBzZWxlY3RlZE5vZGVzOiBUcmVlTm9kZVtdO1xuICBzZWxlY3RlZE5vZGU6IFRyZWVOb2RlO1xuICBoaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXTtcbiAgaXNSZWZlcmVuY2VBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBleHBhbmRlZE5vZGVJZHM6IHN0cmluZ1tdID0gW107XG4gIHRlcm1GaWx0ZXI6IHN0cmluZztcbiAgYWxsVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGU7XG4gIEBPdXRwdXQoKSBvblRlcm1GaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBncmlkVGl0bGU6IHN0cmluZztcbiAgZW1wdHlHcmlkID0gdHJ1ZTtcblxuICBzZWFyY2hSZXN1bHQ6IFNlYXJjaFJlc3VsdDtcbiAgdHlwZU5hbWUgPSAnJztcbiAgY2FjaGVMYXlvdXQgPSAnJztcblxuICBsb2FkaW5nU3RhdGUgPSB7XG4gICAgdHJlZTogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIHRyZWVSZWY6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICBsaXN0OiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgZGV0YWlsczogbmV3IFBhbmVsTG9hZGluZygpLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgb2JqZWN0U3RhdGU6IE9iamVjdFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSkge1xuXG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUobnVsbCk7XG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IDxHcmlkT3B0aW9ucz57fTtcblxuICAgIHRoaXMub25UZXJtRmlsdGVyQ2hhbmdlXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpXG4gICAgICAuc3Vic2NyaWJlKHYgPT4gdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKSk7XG5cbiAgICAvLyBzdWJzY3JpYmUgZm9yIGRhdGEgZnJvbSB0aGUgY29ubmVjdGVkIHNlcnZpY2VcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAubGlzdCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBPYmplY3RTZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSAhcmVzO1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgLy8gc2V0dXAgdGhlIGdyaWQgd2l0aCB0aGUgbmV3IGRhdGFcbiAgICAgICAgICBsZXQge25hbWUsIHJlc3VsdH0gPSByZXM7XG4gICAgICAgICAgdGhpcy5lbXB0eUdyaWQgPSByZXN1bHQuY291bnQudmFsdWUgPT09IDA7XG4gICAgICAgICAgdGhpcy5ncmlkVGl0bGUgPSBuYW1lO1xuICAgICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKHJlc3VsdC50eXBlTmFtZSkgfHwge3FuYW1lOiByZXN1bHQudHlwZU5hbWV9IGFzIE9iamVjdFR5cGU7XG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTdGF0ZS5saXN0LnJlYWR5KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMub2JqZWN0U3RhdGUudHJlZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5idWlsZENvbnRleHRUcmVlKHJlcy5mb2xkZXIpKTtcblxuICAgIHRoaXMub2JqZWN0U3RhdGUudHJlZVJlZiRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5idWlsZENvbnRleHRUcmVlUmVmKHJlcy5mb2xkZXIpKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICB0aGlzLmhpZ2hsaWdodChpdGVtLmlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmRldGFpbHMucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmlkID09PSBldnQuZGF0YS5pZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5mcm9udFBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0VHJlZSgpO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgZXZlbnQuZGF0YSAmJiB0aGlzLmNvbnRleHQuaWQgPT09IGV2ZW50LmRhdGEuaWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHQgPSBldmVudC5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZyb250UGFnZSkge1xuICAgICAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0VHJlZSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9QQVNURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uY2xpcGJvYXJkLnBhc3RlLnJlc3VsdGxpc3QuaGVhZGxpbmUnKTtcbiAgICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAgIC5zZWxlY3RUcmVlTm9kZSg8YW55Pnt9LCA8YW55PntuYW1lfSwge2lkOiBldnQuZGF0YS5tYXAoZCA9PiBkLmlkKX0pLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICBvbkV4cGFuZGVkTm9kZXNDaGFuZ2VkKGV4cGFuZGVkTm9kZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5leHBhbmRlZE5vZGVJZHMgPSBleHBhbmRlZE5vZGVzO1xuICB9XG5cbiAgLy8gc2VsZWN0IGFuIGVudHJ5IGZyb20gdGhlIHRyZWVcbiAgb25UcmVlU2VsZWN0aW9uQ2hhbmdlZChub2RlOiBUcmVlTm9kZSkge1xuICAgIHRoaXMubG9jYXRpb24ubGVhdmUoKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG5vZGU7XG4gICAgaWYgKG5vZGUuZGF0YS50eXBlKSB7XG4gICAgICB0aGlzLmxvY2F0aW9uLmVudGVyKHRoaXMuY29udGV4dCwgdGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvY2F0aW9uLmVudGVyKHRoaXMuY29udGV4dCk7XG4gICAgfVxuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLnVwZGF0ZUNvbnRleHQobm9kZS5pc1JlZmVyZW5jZSB8fCB0aGlzLmFsbFR5cGVzLmluY2x1ZGVzKG5vZGUuZGF0YS50eXBlKSA/IFtub2RlLmRhdGEudHlwZV0gOiB0aGlzLmFsbFR5cGVzKTtcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlLmxpc3RcbiAgICAgICAgLnN1YnNjcmliZShub2RlLmlzUmVmZXJlbmNlID9cbiAgICAgICAgICB0aGlzLm9iamVjdFN0YXRlLnNlbGVjdFRyZWVOb2RlKHRoaXMuY29udGV4dCwgbm9kZSwge3Rlcm06IHRoaXMudGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykgOlxuICAgICAgICAgIHRoaXMub2JqZWN0U3RhdGUuc2VsZWN0VHJlZU5vZGUodGhpcy5jb250ZXh0LCBub2RlLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db250ZXh0TWVudUNsaWNrZWQoZXZ0LCBkb2M/KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWN0aW9uU2VydmljZS5zaG93QWN0aW9ucyhbZG9jIHx8IHRoaXMuY29udGV4dF0sICdETVNfT0JKRUNUJyk7XG4gIH1cblxuICByZWZyZXNoTGlzdCgpIHtcbiAgICB0aGlzLm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZE5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzKGl0ZW06IERtc09iamVjdCwgc2VsZWN0ZWRJZD8pIHtcbiAgICBpZiAoaXRlbS5pc0NvbnRleHRGb2xkZXIpIHtcbiAgICAgIC8vIGlmIHRoZXJlIGFscmVhZHkgaXMgYSBjb250ZXh0IHNldCwgd2UgbmVlZCB0byBsZWF2ZSBsb2NhdGlvbiBmb3IgdGhlIG9sZCBjb250ZXh0IGZpcnN0XG4gICAgICAvLyBvdGhlcndpc2UgVXBsb2FkVGFyZ2V0cyB3aWxsIG5vdCBiZSB1bnJlZ2lzdGVyZWQgY29ycmVjdGx5XG4gICAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICAgIHRoaXMubG9jYXRpb24ubGVhdmUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGV4dCA9IGl0ZW07XG4gICAgICB0aGlzLmNhY2hlTGF5b3V0ID0gJ29iamVjdC5zdGF0ZS0tJyArIGl0ZW0udHlwZU5hbWU7XG4gICAgICAvLyBhZGQgdGhpcyBsb2NhdGlvbiB0byB0aGUgbG9jYXRpb24gc2VydmljZSwgd2hpY2ggd2lsbCB0cmFjayBhY3RpdmUgbG9jYXRpb25zXG4gICAgICAvLyBhbmQgaGFuZGxlIGEgaGlzdG9yeSBvZiB2aXNpdGVkIGxvY2F0aW9ucy5cbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0LCB0aGlzLnNlbGVjdGVkTm9kZSk7XG5cbiAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7ZGVmaW5pdGlvbjogW3tmaWVsZDogJ3R5cGUnLCBrZXk6ICdUeXBlcycsIHNpemU6IDEwMDB9XX0pXG4gICAgICAgIC5zdWJzY3JpYmUodHlwZXMgPT4gKHRoaXMuYWxsVHlwZXMgPSAodHlwZXMuZm9sZGVyWzBdLmZvbGRlciB8fCBbXSkubWFwKHQgPT4gdC50eXBlKSkpO1xuXG4gICAgICB0aGlzLmZldGNoVHJlZURhdGEoJycsIHNlbGVjdGVkSWQpO1xuICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmZXRjaCB0aGUgY29udGV4dCBmb2xkZXJcbiAgICAgIGlmIChpdGVtLmNvbnRleHRGb2xkZXIpIHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICdvYmplY3Quc3RhdGUtLScgKyBpdGVtLmNvbnRleHRGb2xkZXIudHlwZU5hbWU7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgIC5nZXREbXNPYmplY3QoaXRlbS5jb250ZXh0Rm9sZGVyLmlkLCBpdGVtLmNvbnRleHRGb2xkZXIudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcywgaXRlbS5pZCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBqdXN0IHRoZSBkb2N1bWVudCBpbiByb290XG4gICAgICAgIHRoaXMuY29udGV4dCA9IG51bGw7XG4gICAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnJztcbiAgICAgICAgLy8gaGlkZSBlbXB0eSB0cmVlICYgbGlzdFxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKChhLCBpKSA9PiBpIDwgMik7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubGF5b3V0U2VydmljZS52aXNpYmlsaXR5VXBkYXRlKCk7XG4gIH1cblxuICBzZXR1cEZyb250UGFnZSh1cGRhdGVTZWxlY3Rpb24gPSBmYWxzZSwgdXBkYXRlVHJlZSA9IGZhbHNlKSB7XG4gICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgLnNlbGVjdEZyb250UGFnZSh0aGlzLmNvbnRleHQpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuZnJvbnRQYWdlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2VEYXRhID0gZGF0YTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKCF1cGRhdGVTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMubG9jYXRpb24ubGVhdmUoKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHRoaXMuY29udGV4dCk7XG4gICAgICB0aGlzLmxvY2F0aW9uLmVudGVyKHRoaXMuY29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKCF1cGRhdGVUcmVlKSB7XG4gICAgICB0aGlzLmZldGNoVHJlZURhdGEodGhpcy50ZXJtRmlsdGVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZldGNoVHJlZURhdGEodGVybUZpbHRlcj86IHN0cmluZywgc2VsZWN0ZWRJZD86IGFueSkge1xuICAgIHRoaXMuaGlnaGxpZ2h0KHNlbGVjdGVkSWQpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWUuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0pKTtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS50cmVlUmVmLnN1YnNjcmliZSh0aGlzLm9iamVjdFN0YXRlLnVwZGF0ZVRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dCwge3Rlcm06IHRlcm1GaWx0ZXJ9LCAncmVmZXJlbmNldmlldycpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0KHNlbGVjdGVkSWQpIHtcbiAgICBpZiAoc2VsZWN0ZWRJZCAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgIGZvcmtKb2luKFtcbiAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHtpZDogc2VsZWN0ZWRJZH0pLFxuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gdGhpcy5oaWdobGlnaHROb2RlcyhbLi4ucmVzWzBdLmZvbGRlciwgLi4ucmVzWzFdLmZvbGRlcl0pO1xuICAgICAgICB0aGlzLmlzUmVmZXJlbmNlQWN0aXZlID0gISEocmVzWzFdLnRvdGFsLnZhbHVlICYmICFyZXNbMF0udG90YWwudmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWROb2RlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGV4dFRyZWUoKSB7XG4gICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSlcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5jb250ZXh0VHJlZVVwZGF0ZSA9IHJlcy5mb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSkpKTtcbiAgICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgICAgLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge3Rlcm06IHRoaXMudGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JylcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5jb250ZXh0VHJlZVJlZlVwZGF0ZSA9IHJlcy5mb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodE5vZGVzKGZvbGRlciA9IFtdLCBub2RlcyA9IFtdKSB7XG4gICAgZm9sZGVyLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoZi5jb3VudCkge1xuICAgICAgICBub2Rlcy5wdXNoKGYua2V5KTtcbiAgICAgIH1cbiAgICAgIGlmIChmLmZvbGRlcikge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodE5vZGVzKGYuZm9sZGVyLCBub2Rlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbnRleHRUcmVlKGZvbGRlciA9IFtdKSB7XG4gICAgdGhpcy5jb250ZXh0VHJlZVVwZGF0ZSA9IG51bGw7XG4gICAgdGhpcy5jb250ZXh0VHJlZSA9IGZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWVSZWYoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlUmVmID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10sIHRydWUpKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmVlTm9kZShub2RlRGF0YSwgcGF0aDogc3RyaW5nW10sIGlzUmVmZXJlbmNlID0gZmFsc2UpIHtcbiAgICBjb25zdCB7a2V5LCB0aXRsZSwgZm9sZGVyLCBleHBhbmRlZCwgY291bnQsIHN0YXRzfSA9IG5vZGVEYXRhO1xuICAgIC8vIGltcG9ydGFudCB0byBjcmVhdGUgY2xvbmUgaGVyZSwgYmVjYXVzZSBvdGhlcndpc2UgcGF0aCB3aWxsIGJlIG1lc3NlZCB1cFxuICAgIGNvbnN0IHAgPSBwYXRoLmNvbmNhdChbdGl0bGVdKTtcbiAgICBsZXQgbm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICBpZDoga2V5LFxuICAgICAgbmFtZTogdGl0bGUsXG4gICAgICBwYXRoOiBwLFxuICAgICAgY2hpbGRyZW46IChmb2xkZXIgfHwgW10pLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgcCwgaXNSZWZlcmVuY2UpKSxcbiAgICAgIGV4cGFuZGVkOiBleHBhbmRlZCB8fCAhIX50aGlzLmV4cGFuZGVkTm9kZUlkcy5pbmRleE9mKGtleSksXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgaXNSZWZlcmVuY2UsXG4gICAgICBiYWRnZXM6IChzdGF0cyB8fCBbXSkubWFwKHN0YXQgPT4gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIHZhbHVlOiBzdGF0LnZhbHVlICsgJyAnICsgc3RhdC50aXRsZSxcbiAgICAgICAgY3NzQ2xhc3M6ICdzdGF0cydcbiAgICAgIH0pKSxcbiAgICAgIGRhdGE6IG5vZGVEYXRhXG4gICAgfTtcblxuICAgIGlmIChjb3VudCkge1xuICAgICAgbm9kZS5iYWRnZXMucHVzaCh7dmFsdWU6IGNvdW50fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlLnVybFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnJztcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmhpZGVBcmVhcygoKSA9PiBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHtwYXJhbXMsIHF1ZXJ5UGFyYW1zfSA9IHRoaXMucm91dGUuc25hcHNob3Q7XG4gICAgICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgICAgICB0aGlzLnR5cGVOYW1lID0gcXVlcnlQYXJhbXNbJ3R5cGUnXSB8fCAnJztcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5mb2N1cyh7aWQ6IHBhcmFtcy5pZCwgdHlwZU5hbWU6IHRoaXMudHlwZU5hbWV9KTtcbiAgICAgICAgICB0aGlzLmRtc1NlcnZpY2VcbiAgICAgICAgICAgIC5nZXREbXNPYmplY3QocGFyYW1zLmlkLCB0aGlzLnR5cGVOYW1lLCBudWxsLCAnREVUQUlMUycpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMucHJvY2VzcyhyZXMpO1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5mb2N1cyhyZXMpO1xuICAgICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc2V0QXJlYXMoW10pO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLCB3ZSB0ZWxsIHRoZSBsb2NhdGlvbiBzZXJ2aWNlIHRoYXQgd2VcbiAgICAvLyBsZWZ0IHRoZSBsb2NhdGlvblxuICAgIHRoaXMubG9jYXRpb24ubGVhdmUoKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmaWxlXCIgW25nQ2xhc3NdPVwie3JlYWR5OiBjb250ZXh0IHx8IGNvbnRleHQgPT09IG51bGx9XCIgKm5nSWY9XCIhZXJyb3I7IGVsc2UgZXJyb3JUbXBsXCI+XG5cbiAgPGRpdiBjbGFzcz1cImZpbGUtaGVhZFwiICpuZ0lmPVwiY29udGV4dCAmJiBjb250ZXh0LmlzQ29udGV4dEZvbGRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cInR5cGUtaWNvblwiIFtvYmplY3RUeXBlXT1cImNvbnRleHQudHlwZVwiPjwvZW8taWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIChjbGljayk9XCJzZXR1cEZyb250UGFnZSgpXCIgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dE1lbnVDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3tjb250ZXh0LnRpdGxlIHx8ICcmbmJzcDsnfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3tjb250ZXh0LmRlc2NyaXB0aW9uIHx8ICcmbmJzcDsnfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvbGRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcmVhdGVkLWRhdGVcIj57e2NvbnRleHQuY3JlYXRlZC5vbiB8IGxvY2FsZURhdGV9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcmVhdGVkLXRpdGxlXCI+e3tjb250ZXh0LmNyZWF0ZWQuYnkudGl0bGV9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZS1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtYm9keS13cmFwXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0ICE9PSBudWxsOyBlbHNlIHRwbERldGFpbHNPbmx5XCI+XG5cbiAgICAgICAgPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cImNhY2hlTGF5b3V0XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbcGFuZWxDbGFzc109XCIndHJlZSdcIiBbc2l6ZV09XCIyMFwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVlLXBhbmVsLWVycm9yXCIgKm5nSWY9XCJsb2FkaW5nU3RhdGUudHJlZS5pc0Vycm9yKCk7IGVsc2UgdHBsVHJlZVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgZW8uc3RhdGUub2JqZWN0LnRyZWUuZXJyb3I8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0cGxUcmVlPlxuXG4gICAgICAgICAgICAgIDxlby1saXN0LWNvbnRhaW5lciAjZW9MaXN0IFtsb2FkaW5nXT1cIiFjb250ZXh0VHJlZVwiIFt0YWJzXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlciBkYXJrXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLnRpdGxlPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT1cInN0cnVjdHVyZUZvcm1cIiBjbGFzcz1cInRyZWUtZmlsdGVyLWZvcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAhIXRlcm1GaWx0ZXJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCIgJ2VvLnN0YXRlLm9iamVjdC50cmVlLmZpbHRlci5sYWJlbCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInRlcm1GaWx0ZXJcIiBtYXhsZW5ndGg9XCIyNTBcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXJtRmlsdGVyQ2hhbmdlLmVtaXQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keSB0cmVlXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJjb250ZXh0VHJlZVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogZmFsc2UsIGRpc2FibGVEZXNlbGVjdGlvbjogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUudHJlZS5zdGF0ZVwiICpuZ0lmPVwiY29udGV4dFRyZWVcIiBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVVcGRhdGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2VvLXRyZWU+XG4gICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJjb250ZXh0VHJlZVJlZj8ubGVuZ3RoXCIgdGl0bGU9XCJ7eydlby5zdGF0ZS5vYmplY3QudHJlZS5yZWZlcmVuY2VzLnRvb2x0aXAnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgPGVvLXRyZWUgW3RyZWVdPVwiY29udGV4dFRyZWVSZWZcIiBbb3B0aW9uc109XCJ7bXVsdGlzZWxlY3Q6IGZhbHNlLCBkaXNhYmxlRGVzZWxlY3Rpb246IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgW0BwYW5lbExvYWRpbmddPVwibG9hZGluZ1N0YXRlLnRyZWVSZWYuc3RhdGVcIiAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCIgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVSZWZVcGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZmVyZW5jZVwiPjwvZW8tdHJlZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9lby1saXN0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbcGFuZWxDbGFzc109XCIndHJlZSdcIiBbc2l6ZV09XCIzNVwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxlby1vYmplY3Qtc3RhdGUtZGV0YWlscyAqbmdJZj1cImNvbnRleHRcIiBbY29udGV4dF09XCJjb250ZXh0XCIgW2Zyb250UGFnZURhdGFdPVwiZnJvbnRQYWdlRGF0YVwiXG4gICAgICAgICAgICAgIFt2aXNpYmxlXT1cImZyb250UGFnZVwiIChvblRhYkNoYW5nZSk9XCJzZXR1cEZyb250UGFnZSh0cnVlKVwiPlxuICAgICAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LXN0YXRlLWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgICAgICA8L2VvLW9iamVjdC1zdGF0ZS1kZXRhaWxzPlxuXG4gICAgICAgICAgICA8ZW8tcmVzdWx0LWxpc3QgKm5nSWY9XCIhZnJvbnRQYWdlICYmIHNlYXJjaFJlc3VsdFwiIFtzZWxlY3RGaXJzdF09XCJmYWxzZVwiIFt0aXRsZV09XCJncmlkVGl0bGVcIlxuICAgICAgICAgICAgICBbcmVmZXJlbmNlXT1cInNlbGVjdGVkTm9kZT8uaXNSZWZlcmVuY2VcIiBbc2VhcmNoUmVzdWx0XT1cInNlYXJjaFJlc3VsdFwiIFtjb25maWdUeXBlXT1cImNvbmZpZ1R5cGVcIlxuICAgICAgICAgICAgICBbY29uZmlnQ29udGV4dF09XCJcIiBbZW1wdHlNZXNzYWdlXT1cIidlby5zdGF0ZS5vYmplY3QubGlzdC5lcnJvcidcIiAob25SZWZyZXNoKT1cInJlZnJlc2hMaXN0KClcIj5cbiAgICAgICAgICAgIDwvZW8tcmVzdWx0LWxpc3Q+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsT2JqZWN0RGV0YWlsc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwveXZjLXNwbGl0LXZpZXc+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3RwbERldGFpbHNPbmx5PjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxPYmplY3REZXRhaWxzXCI+PC9uZy1jb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICN0cGxPYmplY3REZXRhaWxzPlxuICAgICAgICA8ZW8tb2JqZWN0LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCIgW3JlZmVyZW5jZV09XCJpc1JlZmVyZW5jZUFjdGl2ZVwiXG4gICAgICAgICAgW2NhY2hlTGF5b3V0XT1cIidvYmplY3Quc3RhdGUtLScgKyB0eXBlTmFtZSArICcub2JqZWN0LWRldGFpbHMnXCI+XG4gICAgICAgICAgPGVvLXRhYi1wbHVnaW4gW3R5cGVdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5vYmplY3QnXCI+PC9lby10YWItcGx1Z2luPlxuICAgICAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuXG5cblxuXG5cbiAgICAgIDwhLS0gPGVvLXVuZG9jay1zcGxpdD5cbiAgICAgICAgPGVvLXNwbGl0IFtndXR0ZXJTaXplXT1cIjE2XCIgW3Zpc2libGVUcmFuc2l0aW9uXT1cInRydWVcIiBbY2FjaGVMYXlvdXRdPVwiY2FjaGVMYXlvdXRcIj5cblxuICAgICAgICAgIDxlby1zcGxpdC1hcmVhIFtzaXplXT1cIjIwXCIgW21pblNpemVQaXhlbF09XCIyMzBcIiBjbGFzcz1cInRyZWVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyZWUtcGFuZWwtZXJyb3JcIiAqbmdJZj1cImxvYWRpbmdTdGF0ZS50cmVlLmlzRXJyb3IoKTsgZWxzZSB0cGxUcmVlXCIgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLmVycm9yPC9kaXY+XG5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0cGxUcmVlPlxuXG4gICAgICAgICAgICAgICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2xvYWRpbmddPVwiIWNvbnRleHRUcmVlXCIgW3RhYnNdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXIgZGFya1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUudGl0bGU8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9XCJzdHJ1Y3R1cmVGb3JtXCIgY2xhc3M9XCJ0cmVlLWZpbHRlci1mb3JtXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogISF0ZXJtRmlsdGVyfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCIgJ2VvLnN0YXRlLm9iamVjdC50cmVlLmZpbHRlci5sYWJlbCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwidGVybUZpbHRlclwiIG1heGxlbmd0aD1cIjI1MFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiAobmdNb2RlbENoYW5nZSk9XCJvblRlcm1GaWx0ZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5IHRyZWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGVvLXRyZWUgW3RyZWVdPVwiY29udGV4dFRyZWVcIiBbb3B0aW9uc109XCJ7bXVsdGlzZWxlY3Q6IGZhbHNlLCBkaXNhYmxlRGVzZWxlY3Rpb246IHRydWV9XCIgW0BwYW5lbExvYWRpbmddPVwibG9hZGluZ1N0YXRlLnRyZWUuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHRUcmVlXCIgW2hpZ2hsaWdodGVkTm9kZXNdPVwiaGlnaGxpZ2h0ZWROb2Rlc1wiIFt0cmVlVXBkYXRlXT1cImNvbnRleHRUcmVlVXBkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE5vZGVzXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby10cmVlPlxuICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJjb250ZXh0VHJlZVJlZj8ubGVuZ3RoXCIgdGl0bGU9XCJ7eydlby5zdGF0ZS5vYmplY3QudHJlZS5yZWZlcmVuY2VzLnRvb2x0aXAnfHRyYW5zbGF0ZX19XCIgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXM8L2gzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxlby10cmVlIFt0cmVlXT1cImNvbnRleHRUcmVlUmVmXCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBmYWxzZSwgZGlzYWJsZURlc2VsZWN0aW9uOiB0cnVlfVwiIFtAcGFuZWxMb2FkaW5nXT1cImxvYWRpbmdTdGF0ZS50cmVlUmVmLnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0VHJlZVJlZj8ubGVuZ3RoXCIgW2hpZ2hsaWdodGVkTm9kZXNdPVwiaGlnaGxpZ2h0ZWROb2Rlc1wiIFt0cmVlVXBkYXRlXT1cImNvbnRleHRUcmVlUmVmVXBkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE5vZGVzXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgY2xhc3M9XCJyZWZlcmVuY2VcIj48L2VvLXRyZWU+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZW8tc3BsaXQtYXJlYT5cblxuICAgICAgICAgIDxlby1zcGxpdC1hcmVhIFtzaXplXT1cIjM1XCIgW21pblNpemVQaXhlbF09XCIyNTBcIiBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUubGlzdC5zdGF0ZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cblxuICAgICAgICAgICAgICA8ZW8tb2JqZWN0LXN0YXRlLWRldGFpbHMgKm5nSWY9XCJjb250ZXh0XCIgW2NvbnRleHRdPVwiY29udGV4dFwiIFtmcm9udFBhZ2VEYXRhXT1cImZyb250UGFnZURhdGFcIiBbdmlzaWJsZV09XCJmcm9udFBhZ2VcIiAob25UYWJDaGFuZ2UpPVwic2V0dXBGcm9udFBhZ2UodHJ1ZSlcIj5cbiAgICAgICAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LXN0YXRlLWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgICAgICAgIDwvZW8tb2JqZWN0LXN0YXRlLWRldGFpbHM+XG5cbiAgICAgICAgICAgICAgPGVvLXJlc3VsdC1saXN0ICpuZ0lmPVwiIWZyb250UGFnZSAmJiBzZWFyY2hSZXN1bHRcIiBbc2VsZWN0Rmlyc3RdPVwiZmFsc2VcIiBbdGl0bGVdPVwiZ3JpZFRpdGxlXCIgW3JlZmVyZW5jZV09XCJzZWxlY3RlZE5vZGU/LmlzUmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hSZXN1bHRdPVwic2VhcmNoUmVzdWx0XCIgW2NvbmZpZ1R5cGVdPVwiY29uZmlnVHlwZVwiIFtjb25maWdDb250ZXh0XT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlNZXNzYWdlXT1cIidlby5zdGF0ZS5vYmplY3QubGlzdC5lcnJvcidcIiAob25SZWZyZXNoKT1cInJlZnJlc2hMaXN0KClcIj5cbiAgICAgICAgICAgICAgPC9lby1yZXN1bHQtbGlzdD5cblxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2VvLXNwbGl0LWFyZWE+XG5cbiAgICAgICAgICA8ZW8tc3BsaXQtYXJlYSBbc2l6ZV09XCI0NVwiIFttaW5TaXplUGl4ZWxdPVwiMjUwXCIgW2NhY2hlXT1cImZhbHNlXCIgW0BwYW5lbExvYWRpbmddPVwibG9hZGluZ1N0YXRlLmRldGFpbHMuc3RhdGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgIDxlby1vYmplY3QtZGV0YWlscyBlb1RyYXBGb2N1cyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbcmVmZXJlbmNlXT1cImlzUmVmZXJlbmNlQWN0aXZlXCIgW2NhY2hlTGF5b3V0XT1cIidvYmplY3Quc3RhdGUtLScgKyB0eXBlTmFtZSArICcub2JqZWN0LWRldGFpbHMnXCI+XG4gICAgICAgICAgICAgICAgPGVvLXRhYi1wbHVnaW4gW3R5cGVdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5vYmplY3QnXCI+PC9lby10YWItcGx1Z2luPlxuICAgICAgICAgICAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2VvLXNwbGl0LWFyZWE+XG5cbiAgICAgICAgPC9lby1zcGxpdD5cbiAgICAgIDwvZW8tdW5kb2NrLXNwbGl0PiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNlcnJvclRtcGw+XG4gIDxlby1lcnJvcjQwND48L2VvLWVycm9yNDA0PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -145,7 +145,7 @@ export class PrepareStateComponent extends UnsubscribeOnDestroy {
145
145
  }
146
146
  }
147
147
  PrepareStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: PrepareStateComponent, deps: [{ token: i1.SelectionService }, { token: i2.TranslateService }, { token: i2.BackendService }, { token: i3.PageTitleService }, { token: i2.PrepareService }, { token: i4.EmptyStateService }, { token: i5.PendingChangesService }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component });
148
- PrepareStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background-color:rgba(var(--color-white-rgb),.06)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
148
+ PrepareStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background-color:rgba(var(--color-white-rgb),.06)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: PrepareStateComponent, decorators: [{
150
150
  type: Component,
151
151
  args: [{ selector: 'eo-prepare-state', template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background-color:rgba(var(--color-white-rgb),.06)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]