@eo-sdk/client 10.6.0-rc.1 → 10.6.0-rc.10

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 (144) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts +5 -3
  3. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +0 -6
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  7. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  8. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  9. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -0
  10. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  11. package/app/eo-client/login/login.component.d.ts +2 -4
  12. package/app/eo-client/login/login.component.d.ts.map +1 -1
  13. package/app/eo-client/settings/settings.component.d.ts +2 -4
  14. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  15. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +1 -0
  16. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts.map +1 -1
  17. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +10 -5
  18. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  19. package/app/eo-framework/form-elements/date/date.component.d.ts +2 -1
  20. package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
  21. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts +1 -0
  22. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
  23. package/app/eo-framework/form-elements/organization/organization.component.d.ts +3 -1
  24. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  25. package/app/eo-framework/form-elements/string/string.component.d.ts +2 -3
  26. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  27. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +2 -1
  28. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  29. package/app/eo-framework/media/media.component.d.ts +6 -1
  30. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  31. package/app/eo-framework/object-details/object-details.component.d.ts +7 -9
  32. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  33. package/app/eo-framework/object-details/object-details.module.d.ts +2 -1
  34. package/app/eo-framework/object-details/object-details.module.d.ts.map +1 -1
  35. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +13 -4
  36. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  37. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +1 -0
  38. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  39. package/app/eo-framework/object-state-details/object-state-details.component.d.ts +5 -3
  40. package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
  41. package/app/eo-framework/plugins/plugin.component.d.ts +7 -7
  42. package/app/eo-framework/plugins/plugin.component.d.ts.map +1 -1
  43. package/app/eo-framework/plugins/plugins.module.d.ts +1 -1
  44. package/app/eo-framework/process/details/process-details.component.d.ts +2 -1
  45. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  46. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +2 -1
  47. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
  48. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +5 -18
  49. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
  50. package/app/eo-framework/ui/ui.module.d.ts +3 -2
  51. package/app/eo-framework/ui/ui.module.d.ts.map +1 -1
  52. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  53. package/app/eo-framework-core/api/plugins.service.d.ts +6 -0
  54. package/app/eo-framework-core/api/plugins.service.d.ts.map +1 -1
  55. package/assets/_default/i18n/de.json +15 -5
  56. package/assets/_default/i18n/en.json +16 -7
  57. package/assets/_default/svg/ic_export.svg +1 -0
  58. package/assets/_default/svg/ic_import.svg +1 -0
  59. package/assets/_default/svg/ic_upload2.svg +1 -0
  60. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  61. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +31 -8
  62. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +30 -11
  63. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +22 -6
  64. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +13 -4
  65. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +15 -4
  66. package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +7 -8
  67. package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +11 -3
  68. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +5 -5
  69. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +5 -5
  70. package/esm2020/app/eo-client/login/login.component.mjs +7 -11
  71. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +5 -5
  72. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +7 -7
  73. package/esm2020/app/eo-client/process-state/process-state.component.mjs +5 -5
  74. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +5 -5
  75. package/esm2020/app/eo-client/result-state/result-state.component.mjs +5 -5
  76. package/esm2020/app/eo-client/settings/settings.component.mjs +6 -10
  77. package/esm2020/app/eo-client/version-state/version-state.component.mjs +5 -5
  78. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +10 -4
  79. package/esm2020/app/eo-framework/actions/actions/download-action/download-action.mjs +2 -2
  80. package/esm2020/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -5
  81. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +1 -1
  82. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +44 -19
  83. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +1 -1
  84. package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +2 -2
  85. package/esm2020/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +4 -3
  86. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +1 -1
  87. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +7 -4
  88. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +1 -1
  89. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +1 -1
  90. package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +10 -3
  91. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +11 -3
  92. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +1 -1
  93. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +5 -6
  94. package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +1 -1
  95. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  96. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +1 -1
  97. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +1 -1
  98. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +10 -13
  99. package/esm2020/app/eo-framework/media/media.component.mjs +13 -8
  100. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +44 -36
  101. package/esm2020/app/eo-framework/object-details/object-details.module.mjs +7 -3
  102. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +1 -1
  103. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +130 -15
  104. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
  105. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +11 -3
  106. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +19 -23
  107. package/esm2020/app/eo-framework/plugins/plugin.component.mjs +19 -27
  108. package/esm2020/app/eo-framework/plugins/plugins.module.mjs +6 -6
  109. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +10 -13
  110. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +7 -7
  111. package/esm2020/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +2 -2
  112. package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +35 -119
  113. package/esm2020/app/eo-framework/ui/ui.module.mjs +5 -1
  114. package/esm2020/app/eo-framework-core/api/grid.service.mjs +3 -2
  115. package/esm2020/app/eo-framework-core/api/plugins.service.mjs +10 -3
  116. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +21 -169
  117. package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +3 -2
  118. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +4 -4
  119. package/esm2020/projects/eo-sdk/core/public_api.mjs +1 -3
  120. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +21 -192
  121. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  122. package/fesm2015/eo-sdk-client.mjs +584 -409
  123. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  124. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +21 -192
  125. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  126. package/fesm2020/eo-sdk-client.mjs +576 -404
  127. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  128. package/package.json +4 -4
  129. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +1 -23
  130. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
  131. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +1 -0
  132. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +1 -1
  133. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
  134. package/projects/eo-sdk/core/public_api.d.ts +0 -2
  135. package/projects/eo-sdk/core/public_api.d.ts.map +1 -1
  136. package/scss/_main.scss +3 -1
  137. package/scss/_yuuvis-components.scss +34 -14
  138. package/styles.css +18 -2
  139. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.mjs +0 -2
  140. package/esm2020/projects/eo-sdk/core/lib/service/environment/environment.service.mjs +0 -28
  141. package/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.d.ts +0 -12
  142. package/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.d.ts.map +0 -1
  143. package/projects/eo-sdk/core/lib/service/environment/environment.service.d.ts +0 -14
  144. package/projects/eo-sdk/core/lib/service/environment/environment.service.d.ts.map +0 -1
@@ -25,8 +25,8 @@ import * as i18 from "../../../eo-framework/ui/error-message/error-message.compo
25
25
  import * as i19 from "../../../eo-framework/object-details/object-details.component";
26
26
  import * as i20 from "../../../eo-framework/inbox-details/inbox-details.component";
27
27
  import * as i21 from "../../../eo-framework/list-container/list-container.component";
28
- import * as i22 from "../../../eo-framework/plugins/plugin.component";
29
- import * as i23 from "@yuuvis/components/split-view";
28
+ import * as i22 from "@yuuvis/components/split-view";
29
+ import * as i23 from "../../../eo-framework/plugins/plugin.component";
30
30
  let InboxStateComponent = class InboxStateComponent {
31
31
  constructor(translate, selection, titleService, inboxService, pendingChanges, empty, eventService, route, storageService) {
32
32
  this.translate = translate;
@@ -203,16 +203,16 @@ let InboxStateComponent = class InboxStateComponent {
203
203
  }
204
204
  };
205
205
  InboxStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InboxStateComponent, deps: [{ token: i1.TranslateService }, { token: i2.SelectionService }, { token: i3.PageTitleService }, { token: i1.InboxService }, { token: i4.PendingChangesService }, { token: i5.EmptyStateService }, { token: i1.EventService }, { token: i6.ActivatedRoute }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component });
206
- InboxStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></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'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\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_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.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\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\">\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\n </eo-object-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 .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}: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 .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .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 .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.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: i9.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i10.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i11.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i12.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i13.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i14.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i15.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i16.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i17.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i18.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i19.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: i20.InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["emptyState", "applySelection", "item"] }, { kind: "component", type: i21.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i22.TabPluginComponent, selector: "eo-tab-plugin", inputs: ["type"] }, { 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: i15.TranslatePipe, name: "translate" }] });
206
+ InboxStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></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'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\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_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.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\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-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 .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}: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 .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .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 .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.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: i9.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i10.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i11.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i12.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i13.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i14.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i15.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i16.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i17.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i18.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i19.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i20.InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["plugins", "emptyState", "applySelection", "item"] }, { kind: "component", type: i21.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i22.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i22.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.PluginPipe, name: "plugins" }] });
207
207
  InboxStateComponent = __decorate([
208
208
  UntilDestroy()
209
209
  ], InboxStateComponent);
210
210
  export { InboxStateComponent };
211
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InboxStateComponent, decorators: [{
212
212
  type: Component,
213
- args: [{ selector: 'eo-inbox-state', template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></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'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\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_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.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\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\">\n <eo-tab-plugin [type]=\"'inbox-details-tab.inbox'\"></eo-tab-plugin>\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.inbox'\"></eo-tab-plugin>\n </eo-object-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 .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}: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 .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .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 .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"] }]
213
+ args: [{ selector: 'eo-inbox-state', template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></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'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\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_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.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\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-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 .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}: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 .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .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 .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"] }]
214
214
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.SelectionService }, { type: i3.PageTitleService }, { type: i1.InboxService }, { type: i4.PendingChangesService }, { type: i5.EmptyStateService }, { type: i1.EventService }, { type: i6.ActivatedRoute }, { type: i1.LocalStorageService }]; }, propDecorators: { eoGrid: [{
215
215
  type: ViewChild,
216
216
  args: ['eoGrid']
217
217
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBT25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBRzVHLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RCxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQW1COUIsWUFBbUIsU0FBMkIsRUFDckMsU0FBMkIsRUFDMUIsWUFBOEIsRUFDL0IsWUFBMEIsRUFDekIsY0FBcUMsRUFDckMsS0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsY0FBbUM7UUFSMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFk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LFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0V2ZW50U2VydmljZSwgSW5ib3hJdGVtLCBJbmJveFNlcnZpY2UsIEluYm94U3RhdGUsIExvY2FsU3RvcmFnZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9jdXN0b20tc29ydC9jdXN0b20tc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7SW5ib3hUeXBlcywgSW5ib3hUeXBlc0ZpbHRlcn0gZnJvbSAnLi9pbmJveC50eXBlcy5lbnVtJztcbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8taW5ib3gtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmJveC1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluYm94U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIGluYm94RmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgdHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdID0gW107XG4gIGluYm94U2VsZWN0aW9uSWQgPSAnaW5ib3gnO1xuICBpbmJveERtc09iamVjdFNlbGVjdGlvbklkID0gJ2luYm94X2Rtcyc7XG4gIGluYm94U2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlO1xuICBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIGlkTWF0Y2ggPSB0cnVlO1xuICBncmlkRGF0YTtcbiAgZGVmYXVsdEZpbHRlclBhcmFtczogYW55ID0ge307XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJ2ljX25vLWZpbGUuc3ZnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuICBpbmJveENoYW5nZWQgPSBmYWxzZTtcbiAgc3RvcmFnZUtleUxhc3RJdGVtSUQgPSAnZW8uaW5ib3gubGFzdEl0ZW1JRCc7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwdWJsaWMgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5saXN0LnRpdGxlJykpO1xuICAgIC8vc2Vjb25kYXJ5IHNlbGVjdGlvbiBpbnN0YW5jZSBmb3IgaW5ib3ggaXRlbXNcbiAgICB0aGlzLmluYm94U2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uY3JlYXRlTmV3KHRoaXMuaW5ib3hTZWxlY3Rpb25JZCk7XG4gICAgdGhpcy5zZWxlY3Rpb24uY3JlYXRlTmV3KHRoaXMuaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZCk7XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcyA9IHtjb250ZXh0OiB7ZGVmYXVsdFZhbHVlOiBwYXJhbXMuaWR9fTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5pbmJveFNlcnZpY2UuaW5ib3hTdGF0ZSRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IEluYm94U3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZW9HcmlkKSB7XG4gICAgICAgICAgLy8gdG9kbzogdGVtcG9yYXJ5IGZpeCB1bnRpbCBzdGF0dXMgc2VydmljZSB1cGRhdGVcbiAgICAgICAgICAvLyB0aGlzLmluYm94Q2hhbmdlZCA9IHRoaXMuZW9HcmlkLmNvbnRleHRDb3VudCAhPT0gc3RhdGUudG90YWxtZXNzYWdlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvbkNvdW50Q2hhbmdlZChldnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dCAmJiB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIGlmIChldnQucm93Q291bnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5pZE1hdGNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmluYm94U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLmluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZShmYWxzZSk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UuZ2V0SXRlbXMoKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICB9XG5cbiAgaXRlbUZpbHRlckZpZWxkcyhub2RlLCBpdGVtKSB7XG4gICAgY29uc3QgdmFsdWUgPSBub2RlLmRhdGFbSW5ib3hUeXBlc0ZpbHRlcltpdGVtXV07XG4gICAgY29uc3QgYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPSB0aGlzLmluYm94RmlsdGVyRmllbGRzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5pZCA9PT0gJ2FjY2VwdGVkVGFza3MnKS52YWx1ZVxuICAgICAgJiYgdGhpcy5pbmJveEZpbHRlckZpZWxkcy5maW5kKGZpbHRlciA9PiBmaWx0ZXIuaWQgPT09ICd1bmFjY2VwdGVkVGFza3MnKS52YWx1ZTtcbiAgICBzd2l0Y2ggKEluYm94VHlwZXNGaWx0ZXJbaXRlbV0pIHtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5vdmVyZHVlOlxuICAgICAgICByZXR1cm4gbm9kZS5kYXRhLmlzT3ZlcmR1ZSgpO1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLmFic2VudDpcbiAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIuYWNjZXB0ZWRUYXNrczpcbiAgICAgICAgcmV0dXJuIGFjY2VwdGVkQW5kVW5hY2NlcHRlZENvbWJpbmVkID8gbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nIDogbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nICYmICEhbm9kZS5kYXRhLmFjY2VwdGVkO1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLnVuYWNjZXB0ZWRUYXNrczpcbiAgICAgICAgcmV0dXJuIGFjY2VwdGVkQW5kVW5hY2NlcHRlZENvbWJpbmVkID8gbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nIDogbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nICYmICFub2RlLmRhdGEuYWNjZXB0ZWQ7XG4gICAgfVxuICB9XG5cbiAgZmllbGRGaWx0ZXJzKCkge1xuICAgIHRoaXMudHlwZUZpbHRlckZpZWxkcyA9IE9iamVjdC5rZXlzKEluYm94VHlwZXMpLm1hcChpdGVtID0+ICh7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guJHtpdGVtfWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gbm9kZS5kYXRhLnR5cGUgPT09IGl0ZW0sXG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIGlkOiBpdGVtXG4gICAgfSkpO1xuXG4gICAgdGhpcy5pbmJveEZpbHRlckZpZWxkcyA9IE9iamVjdC5rZXlzKEluYm94VHlwZXNGaWx0ZXIpLm1hcChpdGVtID0+ICh7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guZmlsdGVyLiR7aXRlbX1gKSxcbiAgICAgIGZpbHRlcjogKG5vZGUpID0+IHRoaXMuaXRlbUZpbHRlckZpZWxkcyhub2RlLCBpdGVtKSxcbiAgICAgIHZhbHVlOiBmYWxzZSxcbiAgICAgIGlkOiBpdGVtXG4gICAgfSkpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZmllbGRGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGE6IEluYm94SXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eVN0YXRlID0gdGhpcy5lbXB0eS5nZXRFbXB0eVN0YXRlKGRhdGEgPyBkYXRhLmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuXG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVvR3JpZC51cGRhdGVSb3dEYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBsZXQgY29sRGVmczogQ29sRGVmW10gPSBbe1xuICAgICAgaGVhZGVyTmFtZTogJycsXG4gICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5jZWxsUmVuZGVyZXIsXG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgICAvLyBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IEluYm94UmVuZGVyZXJDb21wb25lbnRcbiAgICB9XTtcblxuICAgIHRoaXMuc29ydEZpZWxkcyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6ICdyZWNlaXZlZCcsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQuZGF0ZScpLCBzb3J0OiAnJyxcbiAgICAgICAgdmFsdWVHZXR0ZXI6IChwKSA9PiAocC5kYXRhW3AuY29sRGVmLmZpZWxkXSB8fCAnJykubWF0Y2goL1xcK1xcZFxcZDpcXGRcXGQvKSA/IG5ldyBEYXRlKHAuZGF0YVtwLmNvbERlZi5maWVsZF0pLnRvSVNPU3RyaW5nKCkgOiBwLmRhdGFbcC5jb2xEZWYuZmllbGRdXG4gICAgICB9LFxuICAgICAge2ZpZWxkOiAndGl0bGUnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LnRpdGxlJyksIHNvcnQ6ICcnfSxcbiAgICAgIHtmaWVsZDogJ2Rlc2NyaXB0aW9uJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC5kZXNjcmlwdGlvbicpLCBzb3J0OiAnJ31cbiAgICBdO1xuXG4gICAgbGV0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IHtjb3VudDogZGF0YS5sZW5ndGh9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJ1xuICAgIH07XG4gIH1cblxuICBjZWxsUmVuZGVyZXIocGFyYW1zKSB7XG5cbiAgICBsZXQgbGFiZWwgPSAnJztcbiAgICBpZiAoT2JqZWN0LmtleXMoSW5ib3hUeXBlcykuaW5jbHVkZXMocGFyYW1zLmRhdGEudHlwZSkpIHtcbiAgICAgIGxhYmVsID0gcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoYGVvLmluYm94LiR7cGFyYW1zLmRhdGEudHlwZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBgYXNzZXRzL19kZWZhdWx0L3N2Zy9pY18ke0luYm94VHlwZXNbcGFyYW1zLmRhdGEudHlwZV19LnN2Z2A7XG5cbiAgICBsZXQgaWNvbiA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignaWNvbicsIHBhcmFtcywge3ZhbHVlOiB7dXJsLCBsYWJlbH19KTtcbiAgICBsZXQgc2hvcnREYXRlID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5yZWNlaXZlZCwgcGF0dGVybjogJ2VvU2hvcnREYXRlJ30pO1xuICAgIGxldCBzaG9ydFRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLnJlY2VpdmVkLCBwYXR0ZXJuOiAnZW9TaG9ydFRpbWUnfSk7XG4gICAgbGV0IGR1ZXRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLmR1ZXRpbWV9KTtcbiAgICBjb25zdCB0aXRsZUNsYXNzID0gcGFyYW1zLmRhdGEuYWNjZXB0ZWQgPyAndGl0bGUnIDogJ3RpdGxlLWJvbGQnO1xuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtJHtwYXJhbXMuZGF0YS5mb2xkZXIgPyAnIGZvbGRlcicgOiAnJ31cIiB1bnNlbGVjdGFibGU+XG4gICAgICAgICAgICAgICR7aWNvbn1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGVudCc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nJHt0aXRsZUNsYXNzfSc+JHtwYXJhbXMuZGF0YS50aXRsZSB8fCAnJ308L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdkZXNjcmlwdGlvbic+JHtwYXJhbXMuZGF0YS5kZXNjcmlwdGlvbiB8fCAnJ308L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdub3RlcyR7cGFyYW1zLmRhdGEuaXNPdmVyZHVlKCkgPyAnIHBhc3REdWUnIDogJyd9Jz5cbiAgICAgICAgICAgICAgICAgICR7cGFyYW1zLmRhdGEuZHVldGltZSA/ICc8c3BhbiBjbGFzcz1cInBlcmlvZFwiPicgKyBkdWV0aW1lICsgJzwvc3Bhbj4nIDogJyd9XG4gICAgICAgICAgICAgICAgICAke3BhcmFtcy5kYXRhLmlzZGVwdXR5ID8gJzxzcGFuPicgKyBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guaXRlbS5ub3RlLmFic2VuY2UnKSArICc8L3NwYW4+JyA6ICcnfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPiR7c2hvcnREYXRlfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+JHtzaG9ydFRpbWV9PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAuaW5ib3hJdGVtc0dyaWREYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBJbmJveEl0ZW1bXSkgPT4ge1xuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5ncmlkRGF0YSk7XG5cbiAgICAgICAgY29uc3QgbGFzdEluYm94SXRlbUlEID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleUxhc3RJdGVtSUQpO1xuICAgICAgICBpZiAobGFzdEluYm94SXRlbUlEKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ3JpZERhdGEuZmluZChpID0+IGkuaWQgPT09IGxhc3RJbmJveEl0ZW1JRCk7XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lb0dyaWQuc2VsZWN0Um93KGl0ZW0pLCA1MDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG59XG4iLCI8eXZjLXNwbGl0LXZpZXcgW2xheW91dFNldHRpbmdzSURdPVwiJ2luYm94LnN0YXRlJ1wiPlxuICA8IS0tIGxpc3QgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie291dDogaW5ib3hTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cblxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImVvLWhlYWRlci1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5pbmJveC5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIntpbmJveENoYW5nZWQ6IGluYm94Q2hhbmdlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTsgcmVmcmVzaEdyaWQoKVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ubGlzdC5yZWZyZXNoJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb0ZpbHRlciBjbGFzcz1cIm92ZXJsYXktZmlsdGVyXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIiBbaWNvblRpdGxlXT1cIidlby5saXN0LmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jdXN0b20tZmlsdGVyICNjRmlsdGVyIChjaGFuZ2UpPVwiY0ZpbHRlci51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWRTdWJqZWN0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvRmlsdGVyLm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxlby10ZXh0LWZpbHRlciBbdGl0bGVdPVwiJ2VvLmluYm94LmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtpZF09XCInaW5ib3gudGV4dCdcIiBbbWF0Y2hGaWVsZHNdPVwiWyd0aXRsZScsJ2Rlc2NyaXB0aW9uJywnaWQnXVwiIFtlbmFibGVTYXZlXT1cInRydWVcIj48L2VvLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBjbGFzcz1cInR5cGUtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidpbmJveC50eXBlJ1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIGNsYXNzPVwiaW5ib3gtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInQU5EJ1wiIFtpZF09XCInaW5ib3guc2V0J1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cImluYm94RmlsdGVyRmllbGRzXCI+PC9lby1zZXQtZmlsdGVyPlxuICAgICAgICAgICAgPC9lby1jdXN0b20tZmlsdGVyPlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cblxuICAgICAgICAgIDxlby1vdmVybGF5ICNvU29ydCBjbGFzcz1cIm92ZXJsYXktc29ydFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NvcnQuc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIidlby5saXN0LnNvcnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLXNvcnQgI2NTb3J0IFtpZF09XCInaW5ib3guc29ydCdcIiAoY2hhbmdlKT1cImNTb3J0LnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib1NvcnQub25BY3RpdmVDaGFuZ2VkKCRldmVudClcIiBbc29ydEZpZWxkc109XCJzb3J0RmllbGRzXCI+PC9lby1jdXN0b20tc29ydD5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5XCI+XG4gICAgICAgIDxlby1ncmlkICNlb0dyaWQgKm5nSWY9XCJncmlkT3B0aW9ucz8ucm93RGF0YVwiIFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9uc1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiBbc2VsZWN0Rmlyc3RdPVwic2VsZWN0Rmlyc3RcIiBbb3B0aW9uc109XCJ7ZmlsdGVyQWN0aXZlOiBvRmlsdGVyLmFjdGl2ZX1cIlxuICAgICAgICAgIChlb0dyaWRDb3VudENoYW5nZWQpPVwiZW9MaXN0Lm9uQ291bnRDaGFuZ2VkKCRldmVudCk7b25Db3VudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZFNlbGVjdGlvbkNoYW5nZWQpPVwiZW9MaXN0Lm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkRm9jdXNDaGFuZ2VkKT1cImVvTGlzdC5vbkZvY3VzQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2luYm94LnN2ZycsIHRleHQ6IG9GaWx0ZXIuYWN0aXZlID8gJ2VvLm5vLmZpbHRlci5yZXN1bHQnIDogJ2VvLmluYm94Lmxpc3QuZW1wdHknfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDxlby1yZXNldC1maWx0ZXIgW2lzRmlsdGVyQWN0aXZlXT1cIm9GaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTtjU29ydC5yZXNldCgpO3JlZnJlc2hHcmlkKClcIj48L2VvLXJlc2V0LWZpbHRlcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2VvLWdyaWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIGluYm94IGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8taW5ib3gtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie2luOiBpbmJveFNlbGVjdGlvbklkLCBvdXQ6IGluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWR9XCJcbiAgICAgIFtlbXB0eVN0YXRlXT1cImVtcHR5U3RhdGVcIj5cbiAgICAgIDxlby10YWItcGx1Z2luIFt0eXBlXT1cIidpbmJveC1kZXRhaWxzLXRhYi5pbmJveCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgPC9lby1pbmJveC1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIG9iamVjdCBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjQwXCI+XG4gICAgPGVvLW9iamVjdC1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7aW46IGluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWR9XCIgW2NhY2hlTGF5b3V0XT1cIidpbmJveC5zdGF0ZS5vYmplY3QtZGV0YWlscydcIj5cbiAgICAgIDxlby10YWItcGx1Z2luIFt0eXBlXT1cIidvYmplY3QtZGV0YWlscy10YWIuaW5ib3gnXCI+PC9lby10YWItcGx1Z2luPlxuICAgIDwvZW8tb2JqZWN0LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBT25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBRzVHLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RCxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQW1COUIsWUFBbUIsU0FBMkIsRUFDckMsU0FBMkIsRUFDMUIsWUFBOEIsRUFDL0IsWUFBMEIsRUFDekIsY0FBcUMsRUFDckMsS0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsY0FBbUM7UUFSMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFk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LFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0V2ZW50U2VydmljZSwgSW5ib3hJdGVtLCBJbmJveFNlcnZpY2UsIEluYm94U3RhdGUsIExvY2FsU3RvcmFnZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9jdXN0b20tc29ydC9jdXN0b20tc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7SW5ib3hUeXBlcywgSW5ib3hUeXBlc0ZpbHRlcn0gZnJvbSAnLi9pbmJveC50eXBlcy5lbnVtJztcbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8taW5ib3gtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmJveC1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluYm94U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIGluYm94RmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgdHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdID0gW107XG4gIGluYm94U2VsZWN0aW9uSWQgPSAnaW5ib3gnO1xuICBpbmJveERtc09iamVjdFNlbGVjdGlvbklkID0gJ2luYm94X2Rtcyc7XG4gIGluYm94U2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlO1xuICBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIGlkTWF0Y2ggPSB0cnVlO1xuICBncmlkRGF0YTtcbiAgZGVmYXVsdEZpbHRlclBhcmFtczogYW55ID0ge307XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJ2ljX25vLWZpbGUuc3ZnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuICBpbmJveENoYW5nZWQgPSBmYWxzZTtcbiAgc3RvcmFnZUtleUxhc3RJdGVtSUQgPSAnZW8uaW5ib3gubGFzdEl0ZW1JRCc7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwdWJsaWMgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5saXN0LnRpdGxlJykpO1xuICAgIC8vc2Vjb25kYXJ5IHNlbGVjdGlvbiBpbnN0YW5jZSBmb3IgaW5ib3ggaXRlbXNcbiAgICB0aGlzLmluYm94U2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uY3JlYXRlTmV3KHRoaXMuaW5ib3hTZWxlY3Rpb25JZCk7XG4gICAgdGhpcy5zZWxlY3Rpb24uY3JlYXRlTmV3KHRoaXMuaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZCk7XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcyA9IHtjb250ZXh0OiB7ZGVmYXVsdFZhbHVlOiBwYXJhbXMuaWR9fTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5pbmJveFNlcnZpY2UuaW5ib3hTdGF0ZSRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IEluYm94U3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZW9HcmlkKSB7XG4gICAgICAgICAgLy8gdG9kbzogdGVtcG9yYXJ5IGZpeCB1bnRpbCBzdGF0dXMgc2VydmljZSB1cGRhdGVcbiAgICAgICAgICAvLyB0aGlzLmluYm94Q2hhbmdlZCA9IHRoaXMuZW9HcmlkLmNvbnRleHRDb3VudCAhPT0gc3RhdGUudG90YWxtZXNzYWdlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvbkNvdW50Q2hhbmdlZChldnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dCAmJiB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIGlmIChldnQucm93Q291bnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5pZE1hdGNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmluYm94U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLmluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZShmYWxzZSk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UuZ2V0SXRlbXMoKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICB9XG5cbiAgaXRlbUZpbHRlckZpZWxkcyhub2RlLCBpdGVtKSB7XG4gICAgY29uc3QgdmFsdWUgPSBub2RlLmRhdGFbSW5ib3hUeXBlc0ZpbHRlcltpdGVtXV07XG4gICAgY29uc3QgYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPSB0aGlzLmluYm94RmlsdGVyRmllbGRzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5pZCA9PT0gJ2FjY2VwdGVkVGFza3MnKS52YWx1ZVxuICAgICAgJiYgdGhpcy5pbmJveEZpbHRlckZpZWxkcy5maW5kKGZpbHRlciA9PiBmaWx0ZXIuaWQgPT09ICd1bmFjY2VwdGVkVGFza3MnKS52YWx1ZTtcbiAgICBzd2l0Y2ggKEluYm94VHlwZXNGaWx0ZXJbaXRlbV0pIHtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5vdmVyZHVlOlxuICAgICAgICByZXR1cm4gbm9kZS5kYXRhLmlzT3ZlcmR1ZSgpO1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLmFic2VudDpcbiAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIuYWNjZXB0ZWRUYXNrczpcbiAgICAgICAgcmV0dXJuIGFjY2VwdGVkQW5kVW5hY2NlcHRlZENvbWJpbmVkID8gbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nIDogbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nICYmICEhbm9kZS5kYXRhLmFjY2VwdGVkO1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLnVuYWNjZXB0ZWRUYXNrczpcbiAgICAgICAgcmV0dXJuIGFjY2VwdGVkQW5kVW5hY2NlcHRlZENvbWJpbmVkID8gbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nIDogbm9kZS5kYXRhLnR5cGUgPT09ICdCUE0nICYmICFub2RlLmRhdGEuYWNjZXB0ZWQ7XG4gICAgfVxuICB9XG5cbiAgZmllbGRGaWx0ZXJzKCkge1xuICAgIHRoaXMudHlwZUZpbHRlckZpZWxkcyA9IE9iamVjdC5rZXlzKEluYm94VHlwZXMpLm1hcChpdGVtID0+ICh7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guJHtpdGVtfWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gbm9kZS5kYXRhLnR5cGUgPT09IGl0ZW0sXG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIGlkOiBpdGVtXG4gICAgfSkpO1xuXG4gICAgdGhpcy5pbmJveEZpbHRlckZpZWxkcyA9IE9iamVjdC5rZXlzKEluYm94VHlwZXNGaWx0ZXIpLm1hcChpdGVtID0+ICh7XG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guZmlsdGVyLiR7aXRlbX1gKSxcbiAgICAgIGZpbHRlcjogKG5vZGUpID0+IHRoaXMuaXRlbUZpbHRlckZpZWxkcyhub2RlLCBpdGVtKSxcbiAgICAgIHZhbHVlOiBmYWxzZSxcbiAgICAgIGlkOiBpdGVtXG4gICAgfSkpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZmllbGRGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGE6IEluYm94SXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5lbXB0eVN0YXRlID0gdGhpcy5lbXB0eS5nZXRFbXB0eVN0YXRlKGRhdGEgPyBkYXRhLmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuXG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVvR3JpZC51cGRhdGVSb3dEYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBsZXQgY29sRGVmczogQ29sRGVmW10gPSBbe1xuICAgICAgaGVhZGVyTmFtZTogJycsXG4gICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5jZWxsUmVuZGVyZXIsXG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgICAvLyBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IEluYm94UmVuZGVyZXJDb21wb25lbnRcbiAgICB9XTtcblxuICAgIHRoaXMuc29ydEZpZWxkcyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6ICdyZWNlaXZlZCcsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQuZGF0ZScpLCBzb3J0OiAnJyxcbiAgICAgICAgdmFsdWVHZXR0ZXI6IChwKSA9PiAocC5kYXRhW3AuY29sRGVmLmZpZWxkXSB8fCAnJykubWF0Y2goL1xcK1xcZFxcZDpcXGRcXGQvKSA/IG5ldyBEYXRlKHAuZGF0YVtwLmNvbERlZi5maWVsZF0pLnRvSVNPU3RyaW5nKCkgOiBwLmRhdGFbcC5jb2xEZWYuZmllbGRdXG4gICAgICB9LFxuICAgICAge2ZpZWxkOiAndGl0bGUnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LnRpdGxlJyksIHNvcnQ6ICcnfSxcbiAgICAgIHtmaWVsZDogJ2Rlc2NyaXB0aW9uJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC5kZXNjcmlwdGlvbicpLCBzb3J0OiAnJ31cbiAgICBdO1xuXG4gICAgbGV0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IHtjb3VudDogZGF0YS5sZW5ndGh9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJ1xuICAgIH07XG4gIH1cblxuICBjZWxsUmVuZGVyZXIocGFyYW1zKSB7XG5cbiAgICBsZXQgbGFiZWwgPSAnJztcbiAgICBpZiAoT2JqZWN0LmtleXMoSW5ib3hUeXBlcykuaW5jbHVkZXMocGFyYW1zLmRhdGEudHlwZSkpIHtcbiAgICAgIGxhYmVsID0gcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoYGVvLmluYm94LiR7cGFyYW1zLmRhdGEudHlwZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBgYXNzZXRzL19kZWZhdWx0L3N2Zy9pY18ke0luYm94VHlwZXNbcGFyYW1zLmRhdGEudHlwZV19LnN2Z2A7XG5cbiAgICBsZXQgaWNvbiA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignaWNvbicsIHBhcmFtcywge3ZhbHVlOiB7dXJsLCBsYWJlbH19KTtcbiAgICBsZXQgc2hvcnREYXRlID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5yZWNlaXZlZCwgcGF0dGVybjogJ2VvU2hvcnREYXRlJ30pO1xuICAgIGxldCBzaG9ydFRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLnJlY2VpdmVkLCBwYXR0ZXJuOiAnZW9TaG9ydFRpbWUnfSk7XG4gICAgbGV0IGR1ZXRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLmR1ZXRpbWV9KTtcbiAgICBjb25zdCB0aXRsZUNsYXNzID0gcGFyYW1zLmRhdGEuYWNjZXB0ZWQgPyAndGl0bGUnIDogJ3RpdGxlLWJvbGQnO1xuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtJHtwYXJhbXMuZGF0YS5mb2xkZXIgPyAnIGZvbGRlcicgOiAnJ31cIiB1bnNlbGVjdGFibGU+XG4gICAgICAgICAgICAgICR7aWNvbn1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGVudCc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nJHt0aXRsZUNsYXNzfSc+JHtwYXJhbXMuZGF0YS50aXRsZSB8fCAnJ308L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdkZXNjcmlwdGlvbic+JHtwYXJhbXMuZGF0YS5kZXNjcmlwdGlvbiB8fCAnJ308L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdub3RlcyR7cGFyYW1zLmRhdGEuaXNPdmVyZHVlKCkgPyAnIHBhc3REdWUnIDogJyd9Jz5cbiAgICAgICAgICAgICAgICAgICR7cGFyYW1zLmRhdGEuZHVldGltZSA/ICc8c3BhbiBjbGFzcz1cInBlcmlvZFwiPicgKyBkdWV0aW1lICsgJzwvc3Bhbj4nIDogJyd9XG4gICAgICAgICAgICAgICAgICAke3BhcmFtcy5kYXRhLmlzZGVwdXR5ID8gJzxzcGFuPicgKyBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guaXRlbS5ub3RlLmFic2VuY2UnKSArICc8L3NwYW4+JyA6ICcnfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPiR7c2hvcnREYXRlfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+JHtzaG9ydFRpbWV9PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAuaW5ib3hJdGVtc0dyaWREYXRhJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBJbmJveEl0ZW1bXSkgPT4ge1xuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5ncmlkRGF0YSk7XG5cbiAgICAgICAgY29uc3QgbGFzdEluYm94SXRlbUlEID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleUxhc3RJdGVtSUQpO1xuICAgICAgICBpZiAobGFzdEluYm94SXRlbUlEKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ3JpZERhdGEuZmluZChpID0+IGkuaWQgPT09IGxhc3RJbmJveEl0ZW1JRCk7XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lb0dyaWQuc2VsZWN0Um93KGl0ZW0pLCA1MDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICB9XG59XG4iLCI8eXZjLXNwbGl0LXZpZXcgW2xheW91dFNldHRpbmdzSURdPVwiJ2luYm94LnN0YXRlJ1wiPlxuICA8IS0tIGxpc3QgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie291dDogaW5ib3hTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cblxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImVvLWhlYWRlci1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5pbmJveC5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIntpbmJveENoYW5nZWQ6IGluYm94Q2hhbmdlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTsgcmVmcmVzaEdyaWQoKVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ubGlzdC5yZWZyZXNoJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb0ZpbHRlciBjbGFzcz1cIm92ZXJsYXktZmlsdGVyXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIiBbaWNvblRpdGxlXT1cIidlby5saXN0LmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jdXN0b20tZmlsdGVyICNjRmlsdGVyIChjaGFuZ2UpPVwiY0ZpbHRlci51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWRTdWJqZWN0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvRmlsdGVyLm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxlby10ZXh0LWZpbHRlciBbdGl0bGVdPVwiJ2VvLmluYm94LmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtpZF09XCInaW5ib3gudGV4dCdcIiBbbWF0Y2hGaWVsZHNdPVwiWyd0aXRsZScsJ2Rlc2NyaXB0aW9uJywnaWQnXVwiIFtlbmFibGVTYXZlXT1cInRydWVcIj48L2VvLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBjbGFzcz1cInR5cGUtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidpbmJveC50eXBlJ1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIGNsYXNzPVwiaW5ib3gtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInQU5EJ1wiIFtpZF09XCInaW5ib3guc2V0J1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cImluYm94RmlsdGVyRmllbGRzXCI+PC9lby1zZXQtZmlsdGVyPlxuICAgICAgICAgICAgPC9lby1jdXN0b20tZmlsdGVyPlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cblxuICAgICAgICAgIDxlby1vdmVybGF5ICNvU29ydCBjbGFzcz1cIm92ZXJsYXktc29ydFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NvcnQuc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIidlby5saXN0LnNvcnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLXNvcnQgI2NTb3J0IFtpZF09XCInaW5ib3guc29ydCdcIiAoY2hhbmdlKT1cImNTb3J0LnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib1NvcnQub25BY3RpdmVDaGFuZ2VkKCRldmVudClcIiBbc29ydEZpZWxkc109XCJzb3J0RmllbGRzXCI+PC9lby1jdXN0b20tc29ydD5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5XCI+XG4gICAgICAgIDxlby1ncmlkICNlb0dyaWQgKm5nSWY9XCJncmlkT3B0aW9ucz8ucm93RGF0YVwiIFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9uc1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiBbc2VsZWN0Rmlyc3RdPVwic2VsZWN0Rmlyc3RcIiBbb3B0aW9uc109XCJ7ZmlsdGVyQWN0aXZlOiBvRmlsdGVyLmFjdGl2ZX1cIlxuICAgICAgICAgIChlb0dyaWRDb3VudENoYW5nZWQpPVwiZW9MaXN0Lm9uQ291bnRDaGFuZ2VkKCRldmVudCk7b25Db3VudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZFNlbGVjdGlvbkNoYW5nZWQpPVwiZW9MaXN0Lm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkRm9jdXNDaGFuZ2VkKT1cImVvTGlzdC5vbkZvY3VzQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2luYm94LnN2ZycsIHRleHQ6IG9GaWx0ZXIuYWN0aXZlID8gJ2VvLm5vLmZpbHRlci5yZXN1bHQnIDogJ2VvLmluYm94Lmxpc3QuZW1wdHknfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDxlby1yZXNldC1maWx0ZXIgW2lzRmlsdGVyQWN0aXZlXT1cIm9GaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTtjU29ydC5yZXNldCgpO3JlZnJlc2hHcmlkKClcIj48L2VvLXJlc2V0LWZpbHRlcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2VvLWdyaWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIGluYm94IGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8taW5ib3gtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie2luOiBpbmJveFNlbGVjdGlvbklkLCBvdXQ6IGluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWR9XCJcbiAgICAgIFtlbXB0eVN0YXRlXT1cImVtcHR5U3RhdGVcIiBbcGx1Z2luc109XCInaW5ib3gtZGV0YWlscy10YWIuaW5ib3gnIHwgcGx1Z2luc1wiPlxuICAgIDwvZW8taW5ib3gtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPCEtLSBvYmplY3QgZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI0MFwiPlxuICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie2luOiBpbmJveERtc09iamVjdFNlbGVjdGlvbklkfVwiIFtjYWNoZUxheW91dF09XCInaW5ib3guc3RhdGUub2JqZWN0LWRldGFpbHMnXCJcbiAgICBbcGx1Z2luc109XCInb2JqZWN0LWRldGFpbHMtdGFiLmluYm94JyB8IHBsdWdpbnNcIj5cbiAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuPC95dmMtc3BsaXQtdmlldz4iXX0=
@@ -14,13 +14,12 @@ import * as i8 from "../../eo-framework/ui/eo-icon/eo-icon.component";
14
14
  import * as i9 from "../../eo-framework/ui/eo-dialog/eo-dialog.component";
15
15
  import * as i10 from "@yuuvis/components/dropdown";
16
16
  export class LoginComponent {
17
- constructor(route, router, config, titleService, translate, envService, sanitizer, cd, authService, userService) {
17
+ constructor(route, router, config, titleService, translate, sanitizer, cd, authService, userService) {
18
18
  this.route = route;
19
19
  this.router = router;
20
20
  this.config = config;
21
21
  this.titleService = titleService;
22
22
  this.translate = translate;
23
- this.envService = envService;
24
23
  this.sanitizer = sanitizer;
25
24
  this.cd = cd;
26
25
  this.authService = authService;
@@ -32,7 +31,6 @@ export class LoginComponent {
32
31
  this.native = false;
33
32
  this.showAbsentDialog = false;
34
33
  this.removeProfile = (p) => p;
35
- this.cloudEnvironment = this.envService.isCloud();
36
34
  this.backgroundImage = this.sanitizer.bypassSecurityTrustStyle(`url(${this.config.getDashboardBackgroundImage()})`);
37
35
  this.titleService.setDefaultTitle();
38
36
  // if we are no web app (e.g. cordova or electron) the login
@@ -68,9 +66,7 @@ export class LoginComponent {
68
66
  this.loading = true;
69
67
  this.invalid = false;
70
68
  observableOf(null).pipe(switchMap(() => {
71
- return this.cloudEnvironment ?
72
- this.authService.cloudLogin(this.form.host, this.form.tenant) :
73
- this.authService.login(this.form.host, this.form.username, this.form.password);
69
+ return this.authService.login(this.form.host, this.form.username, this.form.password);
74
70
  }), finalize(() => (this.loading = false))).subscribe(() => {
75
71
  this.urlToNavigate = this.returnUrl || '/';
76
72
  if (!this.userService.getCurrentUser().present) {
@@ -96,13 +92,13 @@ export class LoginComponent {
96
92
  });
97
93
  }
98
94
  }
99
- LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LoginComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.Config }, { token: i3.PageTitleService }, { token: i2.TranslateService }, { token: i2.EnvironmentService }, { token: i4.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i2.AuthService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
100
- LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LoginComponent, selector: "eo-login", viewQueries: [{ propertyName: "setAsPresentButton", first: true, predicate: ["setAsPresent"], descendants: true }], ngImport: i0, template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\" *ngIf=\"!cloudEnvironment\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <ng-container *ngIf=\"!cloudEnvironment; else tplCloudLogin\">\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n </ng-container>\n\n <!-- cloud login -->\n <ng-template #tplCloudLogin>\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"tenant\" placeholder=\"{{'eo.state.login.tenant'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.tenant\" name=\"tenant\" required tabindex=\"1\">\n <label for=\"tenant\" translate>eo.state.login.tenant</label>\n </div>\n </ng-template>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
95
+ LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LoginComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.Config }, { token: i3.PageTitleService }, { token: i2.TranslateService }, { token: i4.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i2.AuthService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
96
+ LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LoginComponent, selector: "eo-login", viewQueries: [{ propertyName: "setAsPresentButton", first: true, predicate: ["setAsPresent"], descendants: true }], ngImport: i0, template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
101
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LoginComponent, decorators: [{
102
98
  type: Component,
103
- args: [{ selector: 'eo-login', template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\" *ngIf=\"!cloudEnvironment\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <ng-container *ngIf=\"!cloudEnvironment; else tplCloudLogin\">\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n </ng-container>\n\n <!-- cloud login -->\n <ng-template #tplCloudLogin>\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"tenant\" placeholder=\"{{'eo.state.login.tenant'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.tenant\" name=\"tenant\" required tabindex=\"1\">\n <label for=\"tenant\" translate>eo.state.login.tenant</label>\n </div>\n </ng-template>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"] }]
104
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Config }, { type: i3.PageTitleService }, { type: i2.TranslateService }, { type: i2.EnvironmentService }, { type: i4.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i2.AuthService }, { type: i2.UserService }]; }, propDecorators: { setAsPresentButton: [{
99
+ args: [{ selector: 'eo-login', template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"] }]
100
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Config }, { type: i3.PageTitleService }, { type: i2.TranslateService }, { type: i4.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i2.AuthService }, { type: i2.UserService }]; }, propDecorators: { setAsPresentButton: [{
105
101
  type: ViewChild,
106
102
  args: ['setAsPresent']
107
103
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUE2QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFrQyxLQUFLLEVBQVUsZ0JBQWdCLEVBQWdDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7QUFRN0gsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQW9CLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsWUFBOEIsRUFDOUIsU0FBMkIsRUFDM0IsVUFBOEIsRUFDOUIsU0FBdUIsRUFDdkIsRUFBcUIsRUFDckIsV0FBd0IsRUFDeEIsV0FBd0I7UUFUeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCNUMsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUNmLGFBQVEsR0FBcUMs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R0FBRyxLQUFLO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFOUIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBakdVLGNBQWM7K0ZBQWQsY0FBYyxvS0NiM0IsdW1IQStFQTsyRkRsRWEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVOzZWQU1PLGtCQUFrQjtzQkFBNUMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmaW5hbGl6ZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge29mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBdXRoU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBVdGlscywgQ29uZmlnLCBFbnZpcm9ubWVudEVuYWlvLCBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2dpbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdzZXRBc1ByZXNlbnQnKSBzZXRBc1ByZXNlbnRCdXR0b246IEVsZW1lbnRSZWY7XG4gIGJhY2tncm91bmRJbWFnZTogU2FmZVJlc291cmNlVXJsO1xuICBhcHBMb2dvOiBzdHJpbmc7XG4gIGZvcm06IGFueSA9IHt9O1xuICBwcm9maWxlczoge2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W10gPSBbXTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBpbnZhbGlkID0gZmFsc2U7XG4gIHByaXZhdGUgcmV0dXJuVXJsOiBzdHJpbmc7XG4gIG5hdGl2ZSA9IGZhbHNlO1xuICBjbG91ZEVudmlyb25tZW50OiBib29sZWFuO1xuICB1cmxUb05hdmlnYXRlOiBzdHJpbmc7XG4gIHNob3dBYnNlbnREaWFsb2cgPSBmYWxzZTtcbiAgcmVtb3ZlUHJvZmlsZSA9IChwKSA9PiBwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW52U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG5cbiAgICB0aGlzLmNsb3VkRW52aXJvbm1lbnQgPSB0aGlzLmVudlNlcnZpY2UuaXNDbG91ZCgpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYCk7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0RGVmYXVsdFRpdGxlKCk7XG4gICAgLy8gaWYgd2UgYXJlIG5vIHdlYiBhcHAgKGUuZy4gY29yZG92YSBvciBlbGVjdHJvbikgdGhlIGxvZ2luXG4gICAgLy8gZm9ybSB3aWxsIGJlIGV4dGVuZGVkIGJ5IGEgZmllbGQgZm9yIHNlbGVjdGluZyBhIHRhcmdldCBob3N0XG4gICAgdGhpcy5uYXRpdmUgPSAhRW52aXJvbm1lbnRFbmFpby5pc1dlYkVudmlyb25tZW50KCk7XG4gICAgdGhpcy5wcm9maWxlcyA9IGF1dGhTZXJ2aWNlLmhvc3RzLm1hcChob3N0ID0+ICh7XG4gICAgICBsYWJlbDogaG9zdCA/IGhvc3QgOiAnbG9jYWwnLFxuICAgICAgdmFsdWU6IGhvc3QgfHwgJydcbiAgICB9KSk7XG4gICAgdGhpcy5hcHBMb2dvID0gdGhpcy5jb25maWcuZ2V0UmF3KCdhcHBMb2dvJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2xvZ291dCddKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5yZXR1cm5VcmwgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydyZXR1cm5VcmwnXSB8fCAnLyc7XG4gICAgLy8gYmVjYXVzZSByZXR1cm5Vcmwgd2FzIGZldGNoZWQgZnJvbSBsb2NhdGlvbiwgd2UgbmVlZCB0byBncmFiIHRoZSBhY3R1YWwgcm91dGVcbiAgICBjb25zdCBjdXJyZW50TG9jID0gbG9jYXRpb24uaHJlZi5zdWJzdHIobG9jYXRpb24ub3JpZ2luLmxlbmd0aCk7XG5cbiAgICBjb25zdCBwcmVmaXggPSBjdXJyZW50TG9jLnN1YnN0cmluZygwLCBjdXJyZW50TG9jLmluZGV4T2YoJy9lbnRlcicpKTtcbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucmV0dXJuVXJsLnJlcGxhY2UocHJlZml4LCAnJykucmVwbGFjZSgnaW5kZXguaHRtbCcsICcnKTtcblxuICAgIC8vIGxvYWRpbmcgbG9naW4gc3RhdGUgYXMgdGhlIHVzZXIgaXMgYWxyZWFkeSBhdXRoZW50aWNhdGVkIHdpbGwgcmVkaXJlY3QgdG8gaG9tZVxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmlzTG9nZ2VkSW4oKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiB0aGVyZSBpcyBubyBsb2dnZWQgaW4gdXNlciwgc2VsZWN0IHRoZSBicm93c2VycyBsYW5ndWFnZSBmb3JcbiAgICAgIC8vIHRoZSBsb2dpbiBkaWFsb2dcbiAgICAgIGxldCBicm93c2VyTGFuZyA9IHRoaXMudHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCk7XG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoYnJvd3NlckxhbmcubWF0Y2goL2VufGRlLykgPyBicm93c2VyTGFuZyA6ICdlbicpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2luKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgb2JzZXJ2YWJsZU9mKG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG91ZEVudmlyb25tZW50ID9cbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmNsb3VkTG9naW4odGhpcy5mb3JtLmhvc3QsIHRoaXMuZm9ybS50ZW5hbnQpIDpcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKHRoaXMuZm9ybS5ob3N0LCB0aGlzLmZvcm0udXNlcm5hbWUsIHRoaXMuZm9ybS5wYXNzd29yZCk7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVybFRvTmF2aWdhdGUgPSB0aGlzLnJldHVyblVybCB8fCAnLyc7XG4gICAgICAgIGlmICghdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnByZXNlbnQpIHtcbiAgICAgICAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBc1ByZXNlbnRCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudXJsVG9OYXZpZ2F0ZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgIHRoaXMuaW52YWxpZCA9IHRydWU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZVNob3dBYnNlbnREaWFsb2coc2V0QXNQcmVzZW50ID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSBmYWxzZTtcblxuICAgIGlmIChzZXRBc1ByZXNlbnQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0UHJlc2VuY2Uoc2V0QXNQcmVzZW50KS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRvTmF2aWdhdGUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWxvZ2luLWNvbnRhaW5lclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICA8ZGl2IGNsYXNzPVwiZW8tbG9naW5cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWFkXCIgKm5nSWY9XCIhY2xvdWRFbnZpcm9ubWVudFwiPlxuICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiYXBwTG9nb1wiPjwvZW8taWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkXCIgKm5nSWY9XCJpbnZhbGlkXCIgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLm1zZy5pbnZhbGlkPC9kaXY+XG5cbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwibG9naW4oKVwiICNsb2dpbkZvcm09XCJuZ0Zvcm1cIj5cblxuICAgICAgPGZpZWxkc2V0IFtuZ0NsYXNzXT1cIntsb2FkaW5nOiBsb2FkaW5nfVwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1cIiAqbmdJZj1cIm5hdGl2ZVwiIFtuZ0NsYXNzXT1cIntlbXB0eTogIXByb2ZpbGVzIHx8IHByb2ZpbGVzLmxlbmd0aCA9PT0gMH1cIj5cbiAgICAgICAgICA8eXZjLWRyb3Bkb3duIFtvcHRpb25zXT1cInByb2ZpbGVzXCIgcGxhY2Vob2xkZXI9XCJob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLmhvc3RcIiBuYW1lPVwicHJvZmlsZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1wcm9maWxlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1yb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7cHJvZmlsZS5sYWJlbH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVByb2ZpbGUocHJvZmlsZS52YWx1ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3l2Yy1kcm9wZG93bj5cbiAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLmhvc3Q8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIGZvcm0gbG9naW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2xvdWRFbnZpcm9ubWVudDsgZWxzZSB0cGxDbG91ZExvZ2luXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cInVzZXJuYW1lXCIgcGxhY2Vob2xkZXI9XCJ7eydlby5zdGF0ZS5sb2dpbi51c2VybmFtZSd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgYXV0b2ZvY3VzXG4gICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnVzZXJuYW1lXCIgbmFtZT1cInVzZXJuYW1lXCIgcmVxdWlyZWQgdGFiaW5kZXg9XCIxXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlcm5hbWVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4udXNlcm5hbWU8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3snZW8uc3RhdGUubG9naW4ucGFzc3dvcmQnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnBhc3N3b3JkXCIgbmFtZT1cInBhc3N3b3JkXCIgcmVxdWlyZWQgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwicGFzc3dvcmRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ucGFzc3dvcmQ8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIGNsb3VkIGxvZ2luIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RwbENsb3VkTG9naW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cInRlbmFudFwiIHBsYWNlaG9sZGVyPVwie3snZW8uc3RhdGUubG9naW4udGVuYW50J3x0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBhdXRvZm9jdXNcbiAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0udGVuYW50XCIgbmFtZT1cInRlbmFudFwiIHJlcXVpcmVkIHRhYmluZGV4PVwiMVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRlbmFudFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi50ZW5hbnQ8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0uZm9ybS52YWxpZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7c3Bpbm5lcjogbG9hZGluZ31cIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB0YWJpbmRleD1cIjNcIj5lby5zdGF0ZS5sb2dpbi5zdWJtaXQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cInNob3dBYnNlbnREaWFsb2dcIlxuICAgICAgICAgICBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2xvZ2luLXByZXNlbmNlX19kaWFsb2cnXCI+XG5cbiAgPGRpdj5cbiAgICA8c3Bhbj57eydlby5zdGF0ZS5sb2dpbi5wcmVzZW5jZS5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGxvZ2luLXByZXNlbmNlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJjbG9zZVNob3dBYnNlbnREaWFsb2coKVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ucHJlc2VuY2UuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNzZXRBc1ByZXNlbnQgKGNsaWNrKT1cImNsb3NlU2hvd0Fic2VudERpYWxvZyh0cnVlKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy5zZXRBc1ByZXNlbnQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUE2QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFjLEtBQUssRUFBVSxnQkFBZ0IsRUFBZ0MsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztBQVF6RyxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBYyxFQUNkLFlBQThCLEVBQzlCLFNBQTJCLEVBQzNCLFNBQXVCLEVBQ3ZCLEVBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLFdBQXdCO1FBUnhCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQjVDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixhQUFRLEdBQXFDLEVBQUUsQ0FBQztRQUNoRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hC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QyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQTVGVSxjQUFjOytGQUFkLGNBQWMsb0tDYjNCLHErRkFtRUE7MkZEdERhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTs0VEFNTyxrQkFBa0I7c0JBQTVDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZmluYWxpemUsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7QXV0aFNlcnZpY2UsIFV0aWxzLCBDb25maWcsIEVudmlyb25tZW50RW5haW8sIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ3NldEFzUHJlc2VudCcpIHNldEFzUHJlc2VudEJ1dHRvbjogRWxlbWVudFJlZjtcbiAgYmFja2dyb3VuZEltYWdlOiBTYWZlUmVzb3VyY2VVcmw7XG4gIGFwcExvZ286IHN0cmluZztcbiAgZm9ybTogYW55ID0ge307XG4gIHByb2ZpbGVzOiB7bGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSA9IFtdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGludmFsaWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZXR1cm5Vcmw6IHN0cmluZztcbiAgbmF0aXZlID0gZmFsc2U7XG4gIHVybFRvTmF2aWdhdGU6IHN0cmluZztcbiAgc2hvd0Fic2VudERpYWxvZyA9IGZhbHNlO1xuICByZW1vdmVQcm9maWxlID0gKHApID0+IHA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuXG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICAvLyBpZiB3ZSBhcmUgbm8gd2ViIGFwcCAoZS5nLiBjb3Jkb3ZhIG9yIGVsZWN0cm9uKSB0aGUgbG9naW5cbiAgICAvLyBmb3JtIHdpbGwgYmUgZXh0ZW5kZWQgYnkgYSBmaWVsZCBmb3Igc2VsZWN0aW5nIGEgdGFyZ2V0IGhvc3RcbiAgICB0aGlzLm5hdGl2ZSA9ICFFbnZpcm9ubWVudEVuYWlvLmlzV2ViRW52aXJvbm1lbnQoKTtcbiAgICB0aGlzLnByb2ZpbGVzID0gYXV0aFNlcnZpY2UuaG9zdHMubWFwKGhvc3QgPT4gKHtcbiAgICAgIGxhYmVsOiBob3N0ID8gaG9zdCA6ICdsb2NhbCcsXG4gICAgICB2YWx1ZTogaG9zdCB8fCAnJ1xuICAgIH0pKTtcbiAgICB0aGlzLmFwcExvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2FwcExvZ28nKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snbG9nb3V0J10pIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8ICcvJztcbiAgICAvLyBiZWNhdXNlIHJldHVyblVybCB3YXMgZmV0Y2hlZCBmcm9tIGxvY2F0aW9uLCB3ZSBuZWVkIHRvIGdyYWIgdGhlIGFjdHVhbCByb3V0ZVxuICAgIGNvbnN0IGN1cnJlbnRMb2MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cihsb2NhdGlvbi5vcmlnaW4ubGVuZ3RoKTtcblxuICAgIGNvbnN0IHByZWZpeCA9IGN1cnJlbnRMb2Muc3Vic3RyaW5nKDAsIGN1cnJlbnRMb2MuaW5kZXhPZignL2VudGVyJykpO1xuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5yZXR1cm5VcmwucmVwbGFjZShwcmVmaXgsICcnKS5yZXBsYWNlKCdpbmRleC5odG1sJywgJycpO1xuXG4gICAgLy8gbG9hZGluZyBsb2dpbiBzdGF0ZSBhcyB0aGUgdXNlciBpcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQgd2lsbCByZWRpcmVjdCB0byBob21lXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGxvZ2dlZCBpbiB1c2VyLCBzZWxlY3QgdGhlIGJyb3dzZXJzIGxhbmd1YWdlIGZvclxuICAgICAgLy8gdGhlIGxvZ2luIGRpYWxvZ1xuICAgICAgbGV0IGJyb3dzZXJMYW5nID0gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShicm93c2VyTGFuZy5tYXRjaCgvZW58ZGUvKSA/IGJyb3dzZXJMYW5nIDogJ2VuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9naW4oKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICBvYnNlcnZhYmxlT2YobnVsbCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKHRoaXMuZm9ybS5ob3N0LCB0aGlzLmZvcm0udXNlcm5hbWUsIHRoaXMuZm9ybS5wYXNzd29yZCk7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVybFRvTmF2aWdhdGUgPSB0aGlzLnJldHVyblVybCB8fCAnLyc7XG4gICAgICAgIGlmICghdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnByZXNlbnQpIHtcbiAgICAgICAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBc1ByZXNlbnRCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudXJsVG9OYXZpZ2F0ZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgIHRoaXMuaW52YWxpZCA9IHRydWU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZVNob3dBYnNlbnREaWFsb2coc2V0QXNQcmVzZW50ID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSBmYWxzZTtcblxuICAgIGlmIChzZXRBc1ByZXNlbnQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0UHJlc2VuY2Uoc2V0QXNQcmVzZW50KS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRvTmF2aWdhdGUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWxvZ2luLWNvbnRhaW5lclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICA8ZGl2IGNsYXNzPVwiZW8tbG9naW5cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWFkXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCJhcHBMb2dvXCI+PC9lby1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWRcIiAqbmdJZj1cImludmFsaWRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ubXNnLmludmFsaWQ8L2Rpdj5cblxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJsb2dpbigpXCIgI2xvZ2luRm9ybT1cIm5nRm9ybVwiPlxuXG4gICAgICA8ZmllbGRzZXQgW25nQ2xhc3NdPVwie2xvYWRpbmc6IGxvYWRpbmd9XCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiICpuZ0lmPVwibmF0aXZlXCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhcHJvZmlsZXMgfHwgcHJvZmlsZXMubGVuZ3RoID09PSAwfVwiPlxuICAgICAgICAgIDx5dmMtZHJvcGRvd24gW29wdGlvbnNdPVwicHJvZmlsZXNcIiBwbGFjZWhvbGRlcj1cImhvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0uaG9zdFwiIG5hbWU9XCJwcm9maWxlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2ZpbGUgcFRlbXBsYXRlPVwiaXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXY+e3twcm9maWxlLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUHJvZmlsZShwcm9maWxlLnZhbHVlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwveXZjLWRyb3Bkb3duPlxuICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4uaG9zdDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gZm9ybSBsb2dpbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJ1c2VybmFtZVwiIHBsYWNlaG9sZGVyPVwie3snZW8uc3RhdGUubG9naW4udXNlcm5hbWUnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBhdXRvZm9jdXNcbiAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnVzZXJuYW1lXCIgbmFtZT1cInVzZXJuYW1lXCIgcmVxdWlyZWQgdGFiaW5kZXg9XCIxXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJuYW1lXCIgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnVzZXJuYW1lPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydlby5zdGF0ZS5sb2dpbi5wYXNzd29yZCd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS5wYXNzd29yZFwiIG5hbWU9XCJwYXNzd29yZFwiIHJlcXVpcmVkIHRhYmluZGV4PVwiMlwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXNzd29yZFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi5wYXNzd29yZDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0uZm9ybS52YWxpZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7c3Bpbm5lcjogbG9hZGluZ31cIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB0YWJpbmRleD1cIjNcIj5lby5zdGF0ZS5sb2dpbi5zdWJtaXQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cInNob3dBYnNlbnREaWFsb2dcIlxuICAgICAgICAgICBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2xvZ2luLXByZXNlbmNlX19kaWFsb2cnXCI+XG5cbiAgPGRpdj5cbiAgICA8c3Bhbj57eydlby5zdGF0ZS5sb2dpbi5wcmVzZW5jZS5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGxvZ2luLXByZXNlbmNlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJjbG9zZVNob3dBYnNlbnREaWFsb2coKVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ucHJlc2VuY2UuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNzZXRBc1ByZXNlbnQgKGNsaWNrKT1cImNsb3NlU2hvd0Fic2VudERpYWxvZyh0cnVlKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy5zZXRBc1ByZXNlbnQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cbiJdfQ==