ngx-edu-sharing-ui 9.1.1 → 9.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2022/lib/actionbar/actionbar.component.mjs +31 -16
  2. package/esm2022/lib/directives/icon.directive.mjs +24 -7
  3. package/esm2022/lib/dropdown/dropdown.component.mjs +15 -8
  4. package/esm2022/lib/edu-sharing-ui.module.mjs +5 -1
  5. package/esm2022/lib/list-items/list-text/list-text.component.mjs +3 -5
  6. package/esm2022/lib/mds/mds-helper.service.mjs +167 -0
  7. package/esm2022/lib/mds/mds.module.mjs +16 -0
  8. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +3 -3
  9. package/esm2022/lib/node-entries/entries-model.mjs +1 -1
  10. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +6 -4
  11. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +2 -2
  12. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +7 -3
  13. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +5 -3
  14. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +8 -3
  15. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +7 -5
  16. package/esm2022/lib/pipes/file-size.pipe.mjs +6 -5
  17. package/esm2022/lib/pipes/node-title.pipe.mjs +7 -1
  18. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +3 -3
  19. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  20. package/esm2022/lib/services/node-helper.service.mjs +5 -2
  21. package/esm2022/lib/services/options-helper-data.service.mjs +2 -2
  22. package/esm2022/lib/services/ui.service.mjs +16 -1
  23. package/esm2022/lib/translations/translation-loader.mjs +12 -9
  24. package/esm2022/lib/translations/translations.service.mjs +24 -6
  25. package/esm2022/lib/types/option-item.mjs +6 -1
  26. package/esm2022/module.mjs +3 -1
  27. package/fesm2022/ngx-edu-sharing-ui.mjs +387 -110
  28. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  29. package/lib/actionbar/actionbar.component.d.ts +13 -3
  30. package/lib/directives/icon.directive.d.ts +5 -3
  31. package/lib/dropdown/dropdown.component.d.ts +6 -3
  32. package/lib/edu-sharing-ui.module.d.ts +7 -6
  33. package/lib/list-items/list-text/list-text.component.d.ts +1 -1
  34. package/lib/list-items/list-widget.d.ts +1 -1
  35. package/lib/mds/mds-helper.service.d.ts +37 -0
  36. package/lib/mds/mds.module.d.ts +6 -0
  37. package/lib/node-entries/entries-model.d.ts +1 -1
  38. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
  39. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
  40. package/lib/node-entries/option-button/option-button.component.d.ts +2 -1
  41. package/lib/pipes/node-title.pipe.d.ts +2 -1
  42. package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
  43. package/lib/services/abstract/options-helper.service.d.ts +1 -1
  44. package/lib/services/node-helper.service.d.ts +2 -2
  45. package/lib/services/options-helper-data.service.d.ts +3 -3
  46. package/lib/services/ui.service.d.ts +7 -1
  47. package/lib/translations/translations.service.d.ts +5 -2
  48. package/lib/types/option-item.d.ts +7 -2
  49. package/module.d.ts +2 -0
  50. package/package.json +1 -1
@@ -5,6 +5,7 @@ import { switchMap } from 'rxjs/operators';
5
5
  import { ListItem } from '../../types/list-item';
6
6
  import { ListWidget } from '../list-widget';
7
7
  import * as Constants from 'ngx-edu-sharing-api';
8
+ import { MdsHelperService } from '../../mds/mds-helper.service';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "../../services/node-helper.service";
10
11
  import * as i2 from "ngx-edu-sharing-api";
@@ -85,9 +86,7 @@ export class ListTextComponent extends ListWidget {
85
86
  metadataSet: node.metadataset || Constants.DEFAULT,
86
87
  })
87
88
  .toPromise();
88
- // @TODO
89
- /*
90
- const widget = MdsHelper.getWidget(this.item.name, null, mds.widgets);
89
+ const widget = MdsHelperService.getWidget(this.item.name, null, mds.widgets);
91
90
  if (widget?.values) {
92
91
  const i18n = node.properties[this.item.name]
93
92
  ?.map((prop) => widget.values.filter((v) => v.id === prop)?.[0]?.caption)
@@ -96,7 +95,6 @@ export class ListTextComponent extends ListWidget {
96
95
  this.displayName$.next(i18n.join(', '));
97
96
  }
98
97
  }
99
- */
100
98
  }
101
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ListTextComponent, deps: [{ token: i1.NodeHelperService }, { token: i2.MdsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
102
100
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: ListTextComponent, selector: "es-list-text", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"item.config?.showLabel\">\n {{ getI18n(item) | translate }}\n</label>\n<ng-container *ngIf=\"item.type === 'ORG' || item.type === 'GROUP'\">\n <ng-container [ngSwitch]=\"item.name\">\n <span *ngSwitchCase=\"'displayName'\" [class.type-danger]=\"isDangerousGroup()\">\n {{ $any(getNode()).profile?.displayName || $any(getNode()).authorityName }}\n </span>\n <span *ngSwitchCase=\"'groupType'\">\n {{ 'PERMISSIONS.GROUP_TYPE.' + $any(getNode()).profile?.groupType | translate }}\n </span>\n <span *ngSwitchDefault>\n {{ $any(getNode())[item.name] }}\n </span>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"item.type === 'USER'\">\n <span *ngIf=\"isUserProfileAttribute(item.name)\">\n {{ $any(getNode()).profile?.[item.name] }}\n </span>\n <span *ngIf=\"item.name === 'status'\">\n {{ 'PERMISSIONS.USER_STATUS.' + $any(getNode()).status.status | translate }}\n </span>\n <span *ngIf=\"!isUserProfileAttribute(item.name) && item.name !== 'status'\">\n {{ $any(getNode())[item.name] }}\n </span>\n</ng-container>\n<ng-container\n [ngSwitch]=\"item.name\"\n *ngIf=\"item.type === 'NODE' || item.type === 'NODE_PROPOSAL' || item.type === 'COLLECTION'\"\n>\n <span *ngSwitchCase=\"'name'\">\n {{ $any(getNode()).name }}\n </span>\n <span\n *ngSwitchCase=\"'mediatype'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ 'MEDIATYPE.' + $any(getNode()).mediatype | translate }}\n </span>\n <span *ngSwitchCase=\"'size'\" [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\">\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()).size | formatSize }}\n </span>\n <span\n *ngSwitchCase=\"'dimensions'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()) | NodeImageSize }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:wf_status'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <es-list-node-workflow\n [item]=\"item\"\n [node]=\"node\"\n [provideLabel]=\"false\"\n ></es-list-node-workflow>\n <!--<span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ 'WORKFLOW.' + getWorkflowStatus().id | translate }}-->\n </span>\n <span\n *ngSwitchCase=\"'cm:creator'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()).createdBy | nodePersonName }}\n </span>\n <span\n *ngSwitchCase=\"'cm:modifier'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.cm:modifier' | translate }}:</span\n >\n {{ $any(getNode()).modifiedBy | nodePersonName }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:replicationsource'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:replicationsource' | translate }}:</span\n >\n {{ $any(getNode()).properties['ccm:replicationsource'] | appNodeSource : { mode: 'text' } }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:commonlicense_key'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:commonlicense_key' | translate }}:</span\n >\n <ng-container *ngIf=\"$any(getNode()).properties['ccm:commonlicense_key'] as license\">\n {{\n license[0] === 'CUSTOM'\n ? $any(getNode()).properties['cclom:rights_description']\n : ('LICENSE.NAMES.' + $any(getNode()).properties['ccm:commonlicense_key']\n | translate : { fallback: $any(getNode()).properties['ccm:commonlicense_key'] })\n }}\n </ng-container>\n <ng-container *ngIf=\"!$any(getNode()).properties['ccm:commonlicense_key']\">\n {{ 'LICENSE.NAMES.NONE' | translate }}\n </ng-container>\n </span>\n <span\n *ngSwitchCase=\"'ccm:educationaltypicalagerange'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:educationaltypicalagerange' | translate }}:</span\n >\n <ng-container\n *ngIf=\"\n $any(getNode()).properties['ccm:educationaltypicalagerange_from'] ||\n $any(getNode()).properties['ccm:educationaltypicalagerange_to']\n \"\n >\n {{ $any(getNode()).properties['ccm:educationaltypicalagerange_from'] }} -\n {{ $any(getNode()).properties['ccm:educationaltypicalagerange_to'] }}\n </ng-container>\n </span>\n <span\n *ngSwitchCase=\"'cclom:duration'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.cclom:duration' | translate }}:</span\n >\n {{ $any(getNode()).properties['cclom:duration']?.[0] | formatDuration }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:collection_proposal_status'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:collection_proposal_status' | translate }}:</span\n >\n <!-- use node instead of getNode() to access the raw proposal data! -->\n {{ ('PROPOSAL_STATUS.' + $any(node).properties['ccm:collection_proposal_status']?.[0]) | translate:{fallback: ''} }}\n </span>\n <span\n *ngSwitchDefault\n esCheckTextOverflow\n #text=\"esCheckTextOverflow\"\n [matTooltip]=\"\n provideLabel ? (getI18n(item) | translate) : text.hasTextOverflow() ? content.innerText : null\n \"\n #content\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n <ng-container *ngIf=\"['title', 'cm:title', 'cclom:title'].includes(item.name)\">\n {{ $any(getNode()).title || $any(getNode()).name }}\n </ng-container>\n <ng-container *ngIf=\"!['title', 'cm:title', 'cclom:title'].includes(item.name)\">\n <ng-container\n *ngIf=\"DATE_FIELDS.indexOf(item.name) === -1 && VCARD_FIELDS.indexOf(item.name) === -1\"\n >\n {{ displayName$ | async }}\n </ng-container>\n <ng-container *ngIf=\"DATE_FIELDS.includes(item.name)\">\n {{ $any(getNode()).properties[item.name]?.[0] | formatDate: { async: true, time: true, relative: true } | async }}\n </ng-container>\n <ng-container *ngIf=\"VCARD_FIELDS.includes(item.name)\">\n {{\n $any(getNode()).properties[item.name]\n ? ($any(getNode()).properties[item.name][0] | vcardName)\n : ''\n }}\n </ng-container>\n </ng-container>\n </span>\n</ng-container>\n", styles: [".type-danger{color:var(--warning)}span{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.CheckTextOverflowDirective, selector: "[esCheckTextOverflow]", inputs: ["esCheckTextOverflow"], exportAs: ["esCheckTextOverflow"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.ListNodeWorkflowComponent, selector: "es-list-node-workflow" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.FormatDatePipe, name: "formatDate" }, { kind: "pipe", type: i8.FormatSizePipe, name: "formatSize" }, { kind: "pipe", type: i9.NodeImageSizePipe, name: "NodeImageSize" }, { kind: "pipe", type: i10.NodePersonNamePipe, name: "nodePersonName" }, { kind: "pipe", type: i11.VCardNamePipe, name: "vcardName" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.NodeSourcePipe, name: "appNodeSource" }, { kind: "pipe", type: i14.FormatDurationPipe, name: "formatDuration" }] }); }
@@ -105,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
105
103
  type: Component,
106
104
  args: [{ selector: 'es-list-text', template: "<label *ngIf=\"item.config?.showLabel\">\n {{ getI18n(item) | translate }}\n</label>\n<ng-container *ngIf=\"item.type === 'ORG' || item.type === 'GROUP'\">\n <ng-container [ngSwitch]=\"item.name\">\n <span *ngSwitchCase=\"'displayName'\" [class.type-danger]=\"isDangerousGroup()\">\n {{ $any(getNode()).profile?.displayName || $any(getNode()).authorityName }}\n </span>\n <span *ngSwitchCase=\"'groupType'\">\n {{ 'PERMISSIONS.GROUP_TYPE.' + $any(getNode()).profile?.groupType | translate }}\n </span>\n <span *ngSwitchDefault>\n {{ $any(getNode())[item.name] }}\n </span>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"item.type === 'USER'\">\n <span *ngIf=\"isUserProfileAttribute(item.name)\">\n {{ $any(getNode()).profile?.[item.name] }}\n </span>\n <span *ngIf=\"item.name === 'status'\">\n {{ 'PERMISSIONS.USER_STATUS.' + $any(getNode()).status.status | translate }}\n </span>\n <span *ngIf=\"!isUserProfileAttribute(item.name) && item.name !== 'status'\">\n {{ $any(getNode())[item.name] }}\n </span>\n</ng-container>\n<ng-container\n [ngSwitch]=\"item.name\"\n *ngIf=\"item.type === 'NODE' || item.type === 'NODE_PROPOSAL' || item.type === 'COLLECTION'\"\n>\n <span *ngSwitchCase=\"'name'\">\n {{ $any(getNode()).name }}\n </span>\n <span\n *ngSwitchCase=\"'mediatype'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ 'MEDIATYPE.' + $any(getNode()).mediatype | translate }}\n </span>\n <span *ngSwitchCase=\"'size'\" [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\">\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()).size | formatSize }}\n </span>\n <span\n *ngSwitchCase=\"'dimensions'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()) | NodeImageSize }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:wf_status'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <es-list-node-workflow\n [item]=\"item\"\n [node]=\"node\"\n [provideLabel]=\"false\"\n ></es-list-node-workflow>\n <!--<span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ 'WORKFLOW.' + getWorkflowStatus().id | translate }}-->\n </span>\n <span\n *ngSwitchCase=\"'cm:creator'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n {{ $any(getNode()).createdBy | nodePersonName }}\n </span>\n <span\n *ngSwitchCase=\"'cm:modifier'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.cm:modifier' | translate }}:</span\n >\n {{ $any(getNode()).modifiedBy | nodePersonName }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:replicationsource'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:replicationsource' | translate }}:</span\n >\n {{ $any(getNode()).properties['ccm:replicationsource'] | appNodeSource : { mode: 'text' } }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:commonlicense_key'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:commonlicense_key' | translate }}:</span\n >\n <ng-container *ngIf=\"$any(getNode()).properties['ccm:commonlicense_key'] as license\">\n {{\n license[0] === 'CUSTOM'\n ? $any(getNode()).properties['cclom:rights_description']\n : ('LICENSE.NAMES.' + $any(getNode()).properties['ccm:commonlicense_key']\n | translate : { fallback: $any(getNode()).properties['ccm:commonlicense_key'] })\n }}\n </ng-container>\n <ng-container *ngIf=\"!$any(getNode()).properties['ccm:commonlicense_key']\">\n {{ 'LICENSE.NAMES.NONE' | translate }}\n </ng-container>\n </span>\n <span\n *ngSwitchCase=\"'ccm:educationaltypicalagerange'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:educationaltypicalagerange' | translate }}:</span\n >\n <ng-container\n *ngIf=\"\n $any(getNode()).properties['ccm:educationaltypicalagerange_from'] ||\n $any(getNode()).properties['ccm:educationaltypicalagerange_to']\n \"\n >\n {{ $any(getNode()).properties['ccm:educationaltypicalagerange_from'] }} -\n {{ $any(getNode()).properties['ccm:educationaltypicalagerange_to'] }}\n </ng-container>\n </span>\n <span\n *ngSwitchCase=\"'cclom:duration'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.cclom:duration' | translate }}:</span\n >\n {{ $any(getNode()).properties['cclom:duration']?.[0] | formatDuration }}\n </span>\n <span\n *ngSwitchCase=\"'ccm:collection_proposal_status'\"\n [matTooltip]=\"provideLabel ? (getI18n(item) | translate) : null\"\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\"\n >{{ 'NODE.ccm:collection_proposal_status' | translate }}:</span\n >\n <!-- use node instead of getNode() to access the raw proposal data! -->\n {{ ('PROPOSAL_STATUS.' + $any(node).properties['ccm:collection_proposal_status']?.[0]) | translate:{fallback: ''} }}\n </span>\n <span\n *ngSwitchDefault\n esCheckTextOverflow\n #text=\"esCheckTextOverflow\"\n [matTooltip]=\"\n provideLabel ? (getI18n(item) | translate) : text.hasTextOverflow() ? content.innerText : null\n \"\n #content\n >\n <span *ngIf=\"provideLabel\" class=\"cdk-visually-hidden\">{{ getI18n(item) | translate }}:</span>\n <ng-container *ngIf=\"['title', 'cm:title', 'cclom:title'].includes(item.name)\">\n {{ $any(getNode()).title || $any(getNode()).name }}\n </ng-container>\n <ng-container *ngIf=\"!['title', 'cm:title', 'cclom:title'].includes(item.name)\">\n <ng-container\n *ngIf=\"DATE_FIELDS.indexOf(item.name) === -1 && VCARD_FIELDS.indexOf(item.name) === -1\"\n >\n {{ displayName$ | async }}\n </ng-container>\n <ng-container *ngIf=\"DATE_FIELDS.includes(item.name)\">\n {{ $any(getNode()).properties[item.name]?.[0] | formatDate: { async: true, time: true, relative: true } | async }}\n </ng-container>\n <ng-container *ngIf=\"VCARD_FIELDS.includes(item.name)\">\n {{\n $any(getNode()).properties[item.name]\n ? ($any(getNode()).properties[item.name][0] | vcardName)\n : ''\n }}\n </ng-container>\n </ng-container>\n </span>\n</ng-container>\n", styles: [".type-danger{color:var(--warning)}span{display:block}\n"] }]
107
105
  }], ctorParameters: function () { return [{ type: i1.NodeHelperService }, { type: i2.MdsService }, { type: i0.ChangeDetectorRef }]; } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbGlzdC1pdGVtcy9saXN0LXRleHQvbGlzdC10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbGlzdC1pdGVtcy9saXN0LXRleHQvbGlzdC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQWtDLGFBQWEsRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBT2pELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFVO2FBQ3RDLG1CQUFjLEdBQUc7UUFDcEIsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztRQUN6QixJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDO1FBQ2xDLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7UUFDL0IsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUN4QixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO1FBQzFCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFH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QUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNwRCxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRzthQUNyQixjQUFjLENBQUM7WUFDWixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLGVBQWU7WUFDdkQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLE9BQU87U0FDckQsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO1FBQ2pCLFFBQVE7UUFDUjs7Ozs7Ozs7OztXQVVHO0lBQ1AsQ0FBQzs4R0EzRlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0dDZDlCLHlqT0FnTEE7OzJGRGxLYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWRzU2VydmljZSwgTm9kZSwgT3JnYW5pemF0aW9uLCBSZXN0Q29uc3RhbnRzLCBQcm9wb3NhbE5vZGUgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvbGlzdC1pdGVtJztcbmltcG9ydCB7IExpc3RXaWRnZXQgfSBmcm9tICcuLi9saXN0LXdpZGdldCc7XG5pbXBvcnQgeyBOb2RlSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWxpc3QtdGV4dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RUZXh0Q29tcG9uZW50IGV4dGVuZHMgTGlzdFdpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc3RhdGljIHN1cHBvcnRlZEl0ZW1zID0gW1xuICAgICAgICBuZXcgTGlzdEl0ZW0oJ05PREUnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ05PREVfUFJPUE9TQUwnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ09SRycsICcqJyksXG4gICAgICAgIG5ldyBMaXN0SXRlbSgnR1JPVVAnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ1VTRVInLCAnKicpLFxuICAgIF07XG4gICAgcmVhZG9ubHkgREFURV9GSUVMRFMgPSBSZXN0Q29uc3RhbnRzLkRBVEVfRklFTERTO1xuICAgIHJlYWRvbmx5IFZDQVJEX0ZJRUxEUyA9IFJlc3RDb25zdGFudHMuZ2V0QWxsVkNhcmRGaWVsZHMoKTtcbiAgICBkaXNwbGF5TmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZHM6IE1kc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHt9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgbWVyZ2UoW3RoaXMubm9kZVN1YmplY3QsIHRoaXMuaXRlbVN1YmplY3RdKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMudXBkYXRlRGlzcGxheW5hbWUoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkaXNwbGF5TmFtZSkgPT4ge30pO1xuICAgIH1cbiAgICBnZXROb2RlKCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtLnR5cGUgPT09ICdOT0RFX1BST1BPU0FMJykge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLm5vZGUgYXMgUHJvcG9zYWxOb2RlKS5wcm9wb3NhbCB8fCB0aGlzLm5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoKHRoaXMubm9kZSBhcyBOb2RlKS50eXBlID09PSBSZXN0Q29uc3RhbnRzLkNDTV9UWVBFX0NPTExFQ1RJT05fUFJPUE9TQUwpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ub2RlIGFzIE5vZGUpLnJlbGF0aW9ucz8uT3JpZ2luYWwgPz8gdGhpcy5ub2RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGU7XG4gICAgfVxuXG4gICAgaXNVc2VyUHJvZmlsZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFJlc3RDb25zdGFudHMuQVVUSE9SSVRZX0ZJUlNUTkFNRSxcbiAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9MQVNUTkFNRSxcbiAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9FTUFJTCxcbiAgICAgICAgICAgIF0uaW5kZXhPZihhdHRyaWJ1dGUpICE9PSAtMVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRXb3JrZmxvd1N0YXR1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZUhlbHBlci5nZXRXb3JrZmxvd1N0YXR1cyh0aGlzLm5vZGUgYXMgTm9kZSkuY3VycmVudDtcbiAgICB9XG5cbiAgICBnZXRJMThuKGl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHJldHVybiAoaXRlbS50eXBlID09PSAnTk9ERV9QUk9QT1NBTCcgPyAnTk9ERV9QUk9QT1NBTCcgOiAnTk9ERScpICsgJy4nICsgaXRlbS5uYW1lO1xuICAgIH1cblxuICAgIGlzRGFuZ2Vyb3VzR3JvdXAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5ub2RlIGFzIE9yZ2FuaXphdGlvbikuYXV0aG9yaXR5TmFtZSA9PT1cbiAgICAgICAgICAgIFJlc3RDb25zdGFudHMuR1JPVVBfQUxGUkVTQ09fQURNSU5JU1RSQVRPUlNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHVwZGF0ZURpc3BsYXluYW1lKCkge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCkgYXMgTm9kZTtcbiAgICAgICAgaWYgKCFub2RlLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheU5hbWUkLm5leHQoJycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheU5hbWUkLm5leHQoXG4gICAgICAgICAgICBub2RlLnByb3BlcnRpZXNbdGhpcy5pdGVtLm5hbWUgKyAnX0RJU1BMQVlOQU1FJ10/Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IG5vZGUucHJvcGVydGllc1t0aGlzLml0ZW0ubmFtZSArICdfRElTUExBWU5BTUUnXS5qb2luKCcsICcpXG4gICAgICAgICAgICAgICAgOiBub2RlLnByb3BlcnRpZXNbdGhpcy5pdGVtLm5hbWVdPy5qb2luKCcsICcpLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG1kcyA9IGF3YWl0IHRoaXMubWRzXG4gICAgICAgICAgICAuZ2V0TWV0YWRhdGFTZXQoe1xuICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IG5vZGUucmVmPy5yZXBvIHx8IENvbnN0YW50cy5IT01FX1JFUE9TSVRPUlksXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFTZXQ6IG5vZGUubWV0YWRhdGFzZXQgfHwgQ29uc3RhbnRzLkRFRkFVTFQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICAvLyBAVE9ET1xuICAgICAgICAvKlxuICAgICAgICBjb25zdCB3aWRnZXQgPSBNZHNIZWxwZXIuZ2V0V2lkZ2V0KHRoaXMuaXRlbS5uYW1lLCBudWxsLCBtZHMud2lkZ2V0cyk7XG4gICAgICAgIGlmICh3aWRnZXQ/LnZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgaTE4biA9IG5vZGUucHJvcGVydGllc1t0aGlzLml0ZW0ubmFtZV1cbiAgICAgICAgICAgICAgICA/Lm1hcCgocHJvcCkgPT4gd2lkZ2V0LnZhbHVlcy5maWx0ZXIoKHYpID0+IHYuaWQgPT09IHByb3ApPy5bMF0/LmNhcHRpb24pXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoY2FwKSA9PiAhIWNhcCk7XG4gICAgICAgICAgICBpZiAoaTE4bikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5hbWUkLm5leHQoaTE4bi5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAgKi9cbiAgICB9XG59XG4iLCI8bGFiZWwgKm5nSWY9XCJpdGVtLmNvbmZpZz8uc2hvd0xhYmVsXCI+XG4gIHt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnT1JHJyB8fCBpdGVtLnR5cGUgPT09ICdHUk9VUCdcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5uYW1lXCI+XG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkaXNwbGF5TmFtZSdcIiBbY2xhc3MudHlwZS1kYW5nZXJdPVwiaXNEYW5nZXJvdXNHcm91cCgpXCI+XG4gICAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvZmlsZT8uZGlzcGxheU5hbWUgfHwgJGFueShnZXROb2RlKCkpLmF1dGhvcml0eU5hbWUgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidncm91cFR5cGUnXCI+XG4gICAgICB7eyAnUEVSTUlTU0lPTlMuR1JPVVBfVFlQRS4nICsgJGFueShnZXROb2RlKCkpLnByb2ZpbGU/Lmdyb3VwVHlwZSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAge3sgJGFueShnZXROb2RlKCkpW2l0ZW0ubmFtZV0gfX1cbiAgICA8L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnVVNFUidcIj5cbiAgPHNwYW4gKm5nSWY9XCJpc1VzZXJQcm9maWxlQXR0cmlidXRlKGl0ZW0ubmFtZSlcIj5cbiAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvZmlsZT8uW2l0ZW0ubmFtZV0gfX1cbiAgPC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3N0YXR1cydcIj5cbiAgICB7eyAnUEVSTUlTU0lPTlMuVVNFUl9TVEFUVVMuJyArICRhbnkoZ2V0Tm9kZSgpKS5zdGF0dXMuc3RhdHVzIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCIhaXNVc2VyUHJvZmlsZUF0dHJpYnV0ZShpdGVtLm5hbWUpICYmIGl0ZW0ubmFtZSAhPT0gJ3N0YXR1cydcIj5cbiAgICB7eyAkYW55KGdldE5vZGUoKSlbaXRlbS5uYW1lXSB9fVxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXJcbiAgW25nU3dpdGNoXT1cIml0ZW0ubmFtZVwiXG4gICpuZ0lmPVwiaXRlbS50eXBlID09PSAnTk9ERScgfHwgaXRlbS50eXBlID09PSAnTk9ERV9QUk9QT1NBTCcgfHwgaXRlbS50eXBlID09PSAnQ09MTEVDVElPTidcIlxuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ25hbWUnXCI+XG4gICAge3sgJGFueShnZXROb2RlKCkpLm5hbWUgfX1cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaENhc2U9XCInbWVkaWF0eXBlJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICdNRURJQVRZUEUuJyArICRhbnkoZ2V0Tm9kZSgpKS5tZWRpYXR5cGUgfCB0cmFuc2xhdGUgfX1cbiAgPC9zcGFuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3NpemUnXCIgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCI+e3sgZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAge3sgJGFueShnZXROb2RlKCkpLnNpemUgfCBmb3JtYXRTaXplIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RpbWVuc2lvbnMnXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCI+e3sgZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAge3sgJGFueShnZXROb2RlKCkpIHwgTm9kZUltYWdlU2l6ZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206d2Zfc3RhdHVzJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8ZXMtbGlzdC1ub2RlLXdvcmtmbG93XG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgW3Byb3ZpZGVMYWJlbF09XCJmYWxzZVwiXG4gICAgPjwvZXMtbGlzdC1ub2RlLXdvcmtmbG93PlxuICAgIDwhLS08c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICdXT1JLRkxPVy4nICsgZ2V0V29ya2Zsb3dTdGF0dXMoKS5pZCB8IHRyYW5zbGF0ZSB9fS0tPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjbTpjcmVhdG9yJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5jcmVhdGVkQnkgfCBub2RlUGVyc29uTmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjbTptb2RpZmllcidcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNtOm1vZGlmaWVyJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAge3sgJGFueShnZXROb2RlKCkpLm1vZGlmaWVkQnkgfCBub2RlUGVyc29uTmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206cmVwbGljYXRpb25zb3VyY2UnXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgID57eyAnTk9ERS5jY206cmVwbGljYXRpb25zb3VyY2UnIHwgdHJhbnNsYXRlIH19Ojwvc3BhblxuICAgID5cbiAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1snY2NtOnJlcGxpY2F0aW9uc291cmNlJ10gfCBhcHBOb2RlU291cmNlIDogeyBtb2RlOiAndGV4dCcgfSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206Y29tbW9ubGljZW5zZV9rZXknXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgID57eyAnTk9ERS5jY206Y29tbW9ubGljZW5zZV9rZXknIHwgdHJhbnNsYXRlIH19Ojwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTpjb21tb25saWNlbnNlX2tleSddIGFzIGxpY2Vuc2VcIj5cbiAgICAgIHt7XG4gICAgICAgIGxpY2Vuc2VbMF0gPT09ICdDVVNUT00nXG4gICAgICAgICAgPyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1snY2Nsb206cmlnaHRzX2Rlc2NyaXB0aW9uJ11cbiAgICAgICAgICA6ICgnTElDRU5TRS5OQU1FUy4nICsgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTpjb21tb25saWNlbnNlX2tleSddXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgZmFsbGJhY2s6ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206Y29tbW9ubGljZW5zZV9rZXknXSB9KVxuICAgICAgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206Y29tbW9ubGljZW5zZV9rZXknXVwiPlxuICAgICAge3sgJ0xJQ0VOU0UuTkFNRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaENhc2U9XCInY2NtOmVkdWNhdGlvbmFsdHlwaWNhbGFnZXJhbmdlJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICA+e3sgJ05PREUuY2NtOmVkdWNhdGlvbmFsdHlwaWNhbGFnZXJhbmdlJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTplZHVjYXRpb25hbHR5cGljYWxhZ2VyYW5nZV9mcm9tJ10gfHxcbiAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTplZHVjYXRpb25hbHR5cGljYWxhZ2VyYW5nZV90byddXG4gICAgICBcIlxuICAgID5cbiAgICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206ZWR1Y2F0aW9uYWx0eXBpY2FsYWdlcmFuZ2VfZnJvbSddIH19IC1cbiAgICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206ZWR1Y2F0aW9uYWx0eXBpY2FsYWdlcmFuZ2VfdG8nXSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY2xvbTpkdXJhdGlvbidcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNjbG9tOmR1cmF0aW9uJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAge3sgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbG9tOmR1cmF0aW9uJ10/LlswXSB8IGZvcm1hdER1cmF0aW9uIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NjbTpjb2xsZWN0aW9uX3Byb3Bvc2FsX3N0YXR1cydcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNjbTpjb2xsZWN0aW9uX3Byb3Bvc2FsX3N0YXR1cycgfCB0cmFuc2xhdGUgfX06PC9zcGFuXG4gICAgPlxuICAgIDwhLS0gdXNlIG5vZGUgaW5zdGVhZCBvZiBnZXROb2RlKCkgdG8gYWNjZXNzIHRoZSByYXcgcHJvcG9zYWwgZGF0YSEgLS0+XG4gICAge3sgKCdQUk9QT1NBTF9TVEFUVVMuJyArICRhbnkobm9kZSkucHJvcGVydGllc1snY2NtOmNvbGxlY3Rpb25fcHJvcG9zYWxfc3RhdHVzJ10/LlswXSkgfCB0cmFuc2xhdGU6e2ZhbGxiYWNrOiAnJ30gfX1cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICBlc0NoZWNrVGV4dE92ZXJmbG93XG4gICAgI3RleHQ9XCJlc0NoZWNrVGV4dE92ZXJmbG93XCJcbiAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgIHByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IHRleHQuaGFzVGV4dE92ZXJmbG93KCkgPyBjb250ZW50LmlubmVyVGV4dCA6IG51bGxcbiAgICBcIlxuICAgICNjb250ZW50XG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ3RpdGxlJywgJ2NtOnRpdGxlJywgJ2NjbG9tOnRpdGxlJ10uaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAge3sgJGFueShnZXROb2RlKCkpLnRpdGxlIHx8ICRhbnkoZ2V0Tm9kZSgpKS5uYW1lIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFbJ3RpdGxlJywgJ2NtOnRpdGxlJywgJ2NjbG9tOnRpdGxlJ10uaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIkRBVEVfRklFTERTLmluZGV4T2YoaXRlbS5uYW1lKSA9PT0gLTEgJiYgVkNBUkRfRklFTERTLmluZGV4T2YoaXRlbS5uYW1lKSA9PT0gLTFcIlxuICAgICAgPlxuICAgICAgICB7eyBkaXNwbGF5TmFtZSQgfCBhc3luYyB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiREFURV9GSUVMRFMuaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1tpdGVtLm5hbWVdPy5bMF0gfCBmb3JtYXREYXRlOiB7IGFzeW5jOiB0cnVlLCB0aW1lOiB0cnVlLCByZWxhdGl2ZTogdHJ1ZSB9IHwgYXN5bmMgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlZDQVJEX0ZJRUxEUy5pbmNsdWRlcyhpdGVtLm5hbWUpXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbaXRlbS5uYW1lXVxuICAgICAgICAgICAgPyAoJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbaXRlbS5uYW1lXVswXSB8IHZjYXJkTmFtZSlcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbGlzdC1pdGVtcy9saXN0LXRleHQvbGlzdC10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbGlzdC1pdGVtcy9saXN0LXRleHQvbGlzdC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQWtDLGFBQWEsRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFVO2FBQ3RDLG1CQUFjLEdBQUc7UUFDcEIsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztRQUN6QixJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDO1FBQ2xDLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7UUFDL0IsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUN4QixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUs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QWlCO2tHQUFqQixpQkFBaUIsZ0dDZjlCLHlqT0FnTEE7OzJGRGpLYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWRzU2VydmljZSwgTm9kZSwgT3JnYW5pemF0aW9uLCBSZXN0Q29uc3RhbnRzLCBQcm9wb3NhbE5vZGUgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvbGlzdC1pdGVtJztcbmltcG9ydCB7IExpc3RXaWRnZXQgfSBmcm9tICcuLi9saXN0LXdpZGdldCc7XG5pbXBvcnQgeyBOb2RlSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgTWRzSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL21kcy9tZHMtaGVscGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWxpc3QtdGV4dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RUZXh0Q29tcG9uZW50IGV4dGVuZHMgTGlzdFdpZGdldCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc3RhdGljIHN1cHBvcnRlZEl0ZW1zID0gW1xuICAgICAgICBuZXcgTGlzdEl0ZW0oJ05PREUnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ05PREVfUFJPUE9TQUwnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ09SRycsICcqJyksXG4gICAgICAgIG5ldyBMaXN0SXRlbSgnR1JPVVAnLCAnKicpLFxuICAgICAgICBuZXcgTGlzdEl0ZW0oJ1VTRVInLCAnKicpLFxuICAgIF07XG4gICAgcmVhZG9ubHkgREFURV9GSUVMRFMgPSBSZXN0Q29uc3RhbnRzLkRBVEVfRklFTERTO1xuICAgIHJlYWRvbmx5IFZDQVJEX0ZJRUxEUyA9IFJlc3RDb25zdGFudHMuZ2V0QWxsVkNhcmRGaWVsZHMoKTtcbiAgICBkaXNwbGF5TmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZHM6IE1kc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHt9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgbWVyZ2UoW3RoaXMubm9kZVN1YmplY3QsIHRoaXMuaXRlbVN1YmplY3RdKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMudXBkYXRlRGlzcGxheW5hbWUoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkaXNwbGF5TmFtZSkgPT4ge30pO1xuICAgIH1cbiAgICBnZXROb2RlKCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtLnR5cGUgPT09ICdOT0RFX1BST1BPU0FMJykge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLm5vZGUgYXMgUHJvcG9zYWxOb2RlKS5wcm9wb3NhbCB8fCB0aGlzLm5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoKHRoaXMubm9kZSBhcyBOb2RlKS50eXBlID09PSBSZXN0Q29uc3RhbnRzLkNDTV9UWVBFX0NPTExFQ1RJT05fUFJPUE9TQUwpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5ub2RlIGFzIE5vZGUpLnJlbGF0aW9ucz8uT3JpZ2luYWwgPz8gdGhpcy5ub2RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGU7XG4gICAgfVxuXG4gICAgaXNVc2VyUHJvZmlsZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFJlc3RDb25zdGFudHMuQVVUSE9SSVRZX0ZJUlNUTkFNRSxcbiAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9MQVNUTkFNRSxcbiAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9FTUFJTCxcbiAgICAgICAgICAgIF0uaW5kZXhPZihhdHRyaWJ1dGUpICE9PSAtMVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRXb3JrZmxvd1N0YXR1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZUhlbHBlci5nZXRXb3JrZmxvd1N0YXR1cyh0aGlzLm5vZGUgYXMgTm9kZSkuY3VycmVudDtcbiAgICB9XG5cbiAgICBnZXRJMThuKGl0ZW06IExpc3RJdGVtKSB7XG4gICAgICAgIHJldHVybiAoaXRlbS50eXBlID09PSAnTk9ERV9QUk9QT1NBTCcgPyAnTk9ERV9QUk9QT1NBTCcgOiAnTk9ERScpICsgJy4nICsgaXRlbS5uYW1lO1xuICAgIH1cblxuICAgIGlzRGFuZ2Vyb3VzR3JvdXAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5ub2RlIGFzIE9yZ2FuaXphdGlvbikuYXV0aG9yaXR5TmFtZSA9PT1cbiAgICAgICAgICAgIFJlc3RDb25zdGFudHMuR1JPVVBfQUxGUkVTQ09fQURNSU5JU1RSQVRPUlNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHVwZGF0ZURpc3BsYXluYW1lKCkge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCkgYXMgTm9kZTtcbiAgICAgICAgaWYgKCFub2RlLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheU5hbWUkLm5leHQoJycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheU5hbWUkLm5leHQoXG4gICAgICAgICAgICBub2RlLnByb3BlcnRpZXNbdGhpcy5pdGVtLm5hbWUgKyAnX0RJU1BMQVlOQU1FJ10/Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IG5vZGUucHJvcGVydGllc1t0aGlzLml0ZW0ubmFtZSArICdfRElTUExBWU5BTUUnXS5qb2luKCcsICcpXG4gICAgICAgICAgICAgICAgOiBub2RlLnByb3BlcnRpZXNbdGhpcy5pdGVtLm5hbWVdPy5qb2luKCcsICcpLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG1kcyA9IGF3YWl0IHRoaXMubWRzXG4gICAgICAgICAgICAuZ2V0TWV0YWRhdGFTZXQoe1xuICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IG5vZGUucmVmPy5yZXBvIHx8IENvbnN0YW50cy5IT01FX1JFUE9TSVRPUlksXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFTZXQ6IG5vZGUubWV0YWRhdGFzZXQgfHwgQ29uc3RhbnRzLkRFRkFVTFQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBjb25zdCB3aWRnZXQgPSBNZHNIZWxwZXJTZXJ2aWNlLmdldFdpZGdldCh0aGlzLml0ZW0ubmFtZSwgbnVsbCwgbWRzLndpZGdldHMpO1xuICAgICAgICBpZiAod2lkZ2V0Py52YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGkxOG4gPSBub2RlLnByb3BlcnRpZXNbdGhpcy5pdGVtLm5hbWVdXG4gICAgICAgICAgICAgICAgPy5tYXAoKHByb3ApID0+IHdpZGdldC52YWx1ZXMuZmlsdGVyKCh2KSA9PiB2LmlkID09PSBwcm9wKT8uWzBdPy5jYXB0aW9uKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNhcCkgPT4gISFjYXApO1xuICAgICAgICAgICAgaWYgKGkxOG4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOYW1lJC5uZXh0KGkxOG4uam9pbignLCAnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bGFiZWwgKm5nSWY9XCJpdGVtLmNvbmZpZz8uc2hvd0xhYmVsXCI+XG4gIHt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnT1JHJyB8fCBpdGVtLnR5cGUgPT09ICdHUk9VUCdcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5uYW1lXCI+XG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkaXNwbGF5TmFtZSdcIiBbY2xhc3MudHlwZS1kYW5nZXJdPVwiaXNEYW5nZXJvdXNHcm91cCgpXCI+XG4gICAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvZmlsZT8uZGlzcGxheU5hbWUgfHwgJGFueShnZXROb2RlKCkpLmF1dGhvcml0eU5hbWUgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidncm91cFR5cGUnXCI+XG4gICAgICB7eyAnUEVSTUlTU0lPTlMuR1JPVVBfVFlQRS4nICsgJGFueShnZXROb2RlKCkpLnByb2ZpbGU/Lmdyb3VwVHlwZSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAge3sgJGFueShnZXROb2RlKCkpW2l0ZW0ubmFtZV0gfX1cbiAgICA8L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnVVNFUidcIj5cbiAgPHNwYW4gKm5nSWY9XCJpc1VzZXJQcm9maWxlQXR0cmlidXRlKGl0ZW0ubmFtZSlcIj5cbiAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvZmlsZT8uW2l0ZW0ubmFtZV0gfX1cbiAgPC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3N0YXR1cydcIj5cbiAgICB7eyAnUEVSTUlTU0lPTlMuVVNFUl9TVEFUVVMuJyArICRhbnkoZ2V0Tm9kZSgpKS5zdGF0dXMuc3RhdHVzIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCIhaXNVc2VyUHJvZmlsZUF0dHJpYnV0ZShpdGVtLm5hbWUpICYmIGl0ZW0ubmFtZSAhPT0gJ3N0YXR1cydcIj5cbiAgICB7eyAkYW55KGdldE5vZGUoKSlbaXRlbS5uYW1lXSB9fVxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXJcbiAgW25nU3dpdGNoXT1cIml0ZW0ubmFtZVwiXG4gICpuZ0lmPVwiaXRlbS50eXBlID09PSAnTk9ERScgfHwgaXRlbS50eXBlID09PSAnTk9ERV9QUk9QT1NBTCcgfHwgaXRlbS50eXBlID09PSAnQ09MTEVDVElPTidcIlxuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ25hbWUnXCI+XG4gICAge3sgJGFueShnZXROb2RlKCkpLm5hbWUgfX1cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaENhc2U9XCInbWVkaWF0eXBlJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICdNRURJQVRZUEUuJyArICRhbnkoZ2V0Tm9kZSgpKS5tZWRpYXR5cGUgfCB0cmFuc2xhdGUgfX1cbiAgPC9zcGFuPlxuICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3NpemUnXCIgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCI+e3sgZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAge3sgJGFueShnZXROb2RlKCkpLnNpemUgfCBmb3JtYXRTaXplIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RpbWVuc2lvbnMnXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCI+e3sgZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAge3sgJGFueShnZXROb2RlKCkpIHwgTm9kZUltYWdlU2l6ZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206d2Zfc3RhdHVzJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8ZXMtbGlzdC1ub2RlLXdvcmtmbG93XG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgW3Byb3ZpZGVMYWJlbF09XCJmYWxzZVwiXG4gICAgPjwvZXMtbGlzdC1ub2RlLXdvcmtmbG93PlxuICAgIDwhLS08c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICdXT1JLRkxPVy4nICsgZ2V0V29ya2Zsb3dTdGF0dXMoKS5pZCB8IHRyYW5zbGF0ZSB9fS0tPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjbTpjcmVhdG9yJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5jcmVhdGVkQnkgfCBub2RlUGVyc29uTmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjbTptb2RpZmllcidcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNtOm1vZGlmaWVyJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAge3sgJGFueShnZXROb2RlKCkpLm1vZGlmaWVkQnkgfCBub2RlUGVyc29uTmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206cmVwbGljYXRpb25zb3VyY2UnXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgID57eyAnTk9ERS5jY206cmVwbGljYXRpb25zb3VyY2UnIHwgdHJhbnNsYXRlIH19Ojwvc3BhblxuICAgID5cbiAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1snY2NtOnJlcGxpY2F0aW9uc291cmNlJ10gfCBhcHBOb2RlU291cmNlIDogeyBtb2RlOiAndGV4dCcgfSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY206Y29tbW9ubGljZW5zZV9rZXknXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm92aWRlTGFiZWwgPyAoZ2V0STE4bihpdGVtKSB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwicHJvdmlkZUxhYmVsXCIgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgID57eyAnTk9ERS5jY206Y29tbW9ubGljZW5zZV9rZXknIHwgdHJhbnNsYXRlIH19Ojwvc3BhblxuICAgID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTpjb21tb25saWNlbnNlX2tleSddIGFzIGxpY2Vuc2VcIj5cbiAgICAgIHt7XG4gICAgICAgIGxpY2Vuc2VbMF0gPT09ICdDVVNUT00nXG4gICAgICAgICAgPyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1snY2Nsb206cmlnaHRzX2Rlc2NyaXB0aW9uJ11cbiAgICAgICAgICA6ICgnTElDRU5TRS5OQU1FUy4nICsgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTpjb21tb25saWNlbnNlX2tleSddXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgZmFsbGJhY2s6ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206Y29tbW9ubGljZW5zZV9rZXknXSB9KVxuICAgICAgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206Y29tbW9ubGljZW5zZV9rZXknXVwiPlxuICAgICAge3sgJ0xJQ0VOU0UuTkFNRVMuTk9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaENhc2U9XCInY2NtOmVkdWNhdGlvbmFsdHlwaWNhbGFnZXJhbmdlJ1wiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdmlkZUxhYmVsID8gKGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUpIDogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICA+e3sgJ05PREUuY2NtOmVkdWNhdGlvbmFsdHlwaWNhbGFnZXJhbmdlJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTplZHVjYXRpb25hbHR5cGljYWxhZ2VyYW5nZV9mcm9tJ10gfHxcbiAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbTplZHVjYXRpb25hbHR5cGljYWxhZ2VyYW5nZV90byddXG4gICAgICBcIlxuICAgID5cbiAgICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206ZWR1Y2F0aW9uYWx0eXBpY2FsYWdlcmFuZ2VfZnJvbSddIH19IC1cbiAgICAgIHt7ICRhbnkoZ2V0Tm9kZSgpKS5wcm9wZXJ0aWVzWydjY206ZWR1Y2F0aW9uYWx0eXBpY2FsYWdlcmFuZ2VfdG8nXSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjY2xvbTpkdXJhdGlvbidcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNjbG9tOmR1cmF0aW9uJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cbiAgICA+XG4gICAge3sgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbJ2NjbG9tOmR1cmF0aW9uJ10/LlswXSB8IGZvcm1hdER1cmF0aW9uIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NjbTpjb2xsZWN0aW9uX3Byb3Bvc2FsX3N0YXR1cydcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IG51bGxcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJwcm92aWRlTGFiZWxcIiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgPnt7ICdOT0RFLmNjbTpjb2xsZWN0aW9uX3Byb3Bvc2FsX3N0YXR1cycgfCB0cmFuc2xhdGUgfX06PC9zcGFuXG4gICAgPlxuICAgIDwhLS0gdXNlIG5vZGUgaW5zdGVhZCBvZiBnZXROb2RlKCkgdG8gYWNjZXNzIHRoZSByYXcgcHJvcG9zYWwgZGF0YSEgLS0+XG4gICAge3sgKCdQUk9QT1NBTF9TVEFUVVMuJyArICRhbnkobm9kZSkucHJvcGVydGllc1snY2NtOmNvbGxlY3Rpb25fcHJvcG9zYWxfc3RhdHVzJ10/LlswXSkgfCB0cmFuc2xhdGU6e2ZhbGxiYWNrOiAnJ30gfX1cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICBlc0NoZWNrVGV4dE92ZXJmbG93XG4gICAgI3RleHQ9XCJlc0NoZWNrVGV4dE92ZXJmbG93XCJcbiAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgIHByb3ZpZGVMYWJlbCA/IChnZXRJMThuKGl0ZW0pIHwgdHJhbnNsYXRlKSA6IHRleHQuaGFzVGV4dE92ZXJmbG93KCkgPyBjb250ZW50LmlubmVyVGV4dCA6IG51bGxcbiAgICBcIlxuICAgICNjb250ZW50XG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInByb3ZpZGVMYWJlbFwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiPnt7IGdldEkxOG4oaXRlbSkgfCB0cmFuc2xhdGUgfX06PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ3RpdGxlJywgJ2NtOnRpdGxlJywgJ2NjbG9tOnRpdGxlJ10uaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAge3sgJGFueShnZXROb2RlKCkpLnRpdGxlIHx8ICRhbnkoZ2V0Tm9kZSgpKS5uYW1lIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFbJ3RpdGxlJywgJ2NtOnRpdGxlJywgJ2NjbG9tOnRpdGxlJ10uaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIkRBVEVfRklFTERTLmluZGV4T2YoaXRlbS5uYW1lKSA9PT0gLTEgJiYgVkNBUkRfRklFTERTLmluZGV4T2YoaXRlbS5uYW1lKSA9PT0gLTFcIlxuICAgICAgPlxuICAgICAgICB7eyBkaXNwbGF5TmFtZSQgfCBhc3luYyB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiREFURV9GSUVMRFMuaW5jbHVkZXMoaXRlbS5uYW1lKVwiPlxuICAgICAgICB7eyAkYW55KGdldE5vZGUoKSkucHJvcGVydGllc1tpdGVtLm5hbWVdPy5bMF0gfCBmb3JtYXREYXRlOiB7IGFzeW5jOiB0cnVlLCB0aW1lOiB0cnVlLCByZWxhdGl2ZTogdHJ1ZSB9IHwgYXN5bmMgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlZDQVJEX0ZJRUxEUy5pbmNsdWRlcyhpdGVtLm5hbWUpXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbaXRlbS5uYW1lXVxuICAgICAgICAgICAgPyAoJGFueShnZXROb2RlKCkpLnByb3BlcnRpZXNbaXRlbS5uYW1lXVswXSB8IHZjYXJkTmFtZSlcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,167 @@
1
+ import { RestConstants, } from 'ngx-edu-sharing-api';
2
+ import { Injectable } from '@angular/core';
3
+ import { ListItem } from '../types/list-item';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngx-edu-sharing-api";
6
+ export class MdsHelperService {
7
+ static getSortInfo(mdsSet, name) {
8
+ if (mdsSet) {
9
+ if (mdsSet.sorts) {
10
+ for (const list of mdsSet.sorts) {
11
+ if (list.id == name) {
12
+ return list;
13
+ }
14
+ }
15
+ }
16
+ console.error('mds does not define sort info for ' + name + ', invalid configuration!');
17
+ }
18
+ return null;
19
+ }
20
+ static getColumns(translate, mdsSet, name) {
21
+ let columns = [];
22
+ if (mdsSet) {
23
+ for (const list of mdsSet.lists) {
24
+ if (list.id === name) {
25
+ for (const column of list.columns) {
26
+ let type = 'NODE';
27
+ if (name === 'mediacenterGroups') {
28
+ type = 'GROUP';
29
+ }
30
+ else if (name === 'searchCollections') {
31
+ type = 'COLLECTION';
32
+ }
33
+ // in this case, the type is included
34
+ if (column.id.includes('.')) {
35
+ const split = column.id.split('.');
36
+ type = split[0];
37
+ column.id = split[1];
38
+ }
39
+ const item = new ListItem(type, column.id);
40
+ item.format = column.format;
41
+ columns.push(item);
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ if (!columns.length) {
48
+ if (mdsSet !== null) {
49
+ console.warn('mds does not define columns for ' + name + ', invalid configuration!');
50
+ }
51
+ if (name === 'search' || name === 'collectionReferences') {
52
+ columns.push(new ListItem('NODE', RestConstants.LOM_PROP_TITLE));
53
+ columns.push(new ListItem('NODE', RestConstants.CM_MODIFIED_DATE));
54
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_LICENSE));
55
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCE));
56
+ }
57
+ else if (name === 'mediacenterManaged') {
58
+ columns.push(new ListItem('NODE', RestConstants.LOM_PROP_TITLE));
59
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCEID));
60
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCE));
61
+ }
62
+ else if (name === 'mediacenterGroups') {
63
+ columns.push(new ListItem('GROUP', RestConstants.AUTHORITY_DISPLAYNAME));
64
+ columns.push(new ListItem('GROUP', RestConstants.AUTHORITY_GROUPTYPE));
65
+ }
66
+ else if (name === 'searchCollections') {
67
+ columns.push(new ListItem('COLLECTION', 'title'));
68
+ columns.push(new ListItem('COLLECTION', 'info'));
69
+ columns.push(new ListItem('COLLECTION', 'scope'));
70
+ }
71
+ }
72
+ columns.map((c) => {
73
+ const key = c.type + '.' + c.name;
74
+ if (c.type === 'NODE' && translate.instant(key) === key) {
75
+ c.label = mdsSet.widgets.filter((w) => w.id === c.name)?.[0]?.caption;
76
+ }
77
+ return c;
78
+ });
79
+ return columns;
80
+ }
81
+ /**
82
+ * Finds the appropriate widget with the id, but will not check any widget conditions
83
+ * @param cid
84
+ * @param template
85
+ * @param widgets
86
+ */
87
+ static getWidget(cid, template, widgets) {
88
+ if (widgets == null) {
89
+ console.warn('Could not iterate widget ' + cid + ': no widgets data provided');
90
+ return null;
91
+ }
92
+ for (let w of widgets) {
93
+ if (w.id == cid) {
94
+ if (template === undefined || w.template === template) {
95
+ return w;
96
+ }
97
+ }
98
+ }
99
+ return null;
100
+ }
101
+ constructor(authentication) {
102
+ this.authentication = authentication;
103
+ }
104
+ /**
105
+ * Same as getWidget, but will also check the widget conditions
106
+ * @param connector
107
+ * @param properties
108
+ * @param id
109
+ * @param template
110
+ * @param widgets
111
+ */
112
+ async getWidgetWithCondition(properties, id, template = null, widgets) {
113
+ for (let w of widgets) {
114
+ if (w.id == id) {
115
+ if ((template == null || w.template == template) &&
116
+ (await this.isWidgetConditionTrue(w, properties))) {
117
+ return w;
118
+ }
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ async isWidgetConditionTrue(widget, properties) {
124
+ if (!widget.condition)
125
+ return true;
126
+ let condition = widget.condition;
127
+ if (condition.type == 'PROPERTY' && properties) {
128
+ if ((!properties[condition.value] && !condition.negate) ||
129
+ (properties[condition.value] && condition.negate)) {
130
+ return false;
131
+ }
132
+ }
133
+ if (condition.type == 'TOOLPERMISSION') {
134
+ let tp = await this.authentication.hasToolpermission(condition.value);
135
+ if (tp == condition.negate) {
136
+ return false;
137
+ }
138
+ }
139
+ return true;
140
+ }
141
+ /**
142
+ * Find a template by id in the given mds
143
+ */
144
+ static findTemplate(mds, id) {
145
+ return mds.views.find((v) => v.id === id);
146
+ }
147
+ /**
148
+ * Returns all widgets used by the given template
149
+ */
150
+ static getUsedWidgets(mds, template = null) {
151
+ const used = [];
152
+ const templateData = MdsHelperService.findTemplate(mds, template);
153
+ for (const w of mds.widgets) {
154
+ if (templateData.html.indexOf('<' + w.id) !== -1 &&
155
+ !used.find((w2) => w2.id === w.id)) {
156
+ used.push(w);
157
+ }
158
+ }
159
+ return used;
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsHelperService, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsHelperService }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsHelperService, decorators: [{
165
+ type: Injectable
166
+ }], ctorParameters: function () { return [{ type: i1.AuthenticationService }]; } });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9tZHMvbWRzLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFLSCxhQUFhLEdBRWhCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLG9CQUFvQixDQUFDOzs7QUFHNUQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQXFCLEVBQUUsSUFBWTtRQUNsRCxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDZCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7b0JBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUU7d0JBQ2pCLE9BQU8sSUFBSSxDQUFDO3FCQUNmO2lCQUNKO2FBQ0o7WUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxHQUFHLElBQUksR0FBRywwQkFBMEIsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBMkIsRUFBRSxNQUFXLEVBQUUsSUFBWTtRQUNwRSxJQUFJLE9BQU8sR0FBZSxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLEVBQUU7WUFDUixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ2xCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDL0IsSUFBSSxJQUFJLEdB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QUFLLENBQUMsQ0FBQztZQUN0RSxJQUFJLEVBQUUsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUN4QixPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFrQixFQUFFLEVBQVU7UUFDOUMsT0FDSSxHQUFHLENBQUMsS0FHUCxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQWtCLEVBQUUsV0FBbUIsSUFBSTtRQUM3RCxNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7UUFDckIsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDekIsSUFDSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDekM7Z0JBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0F4S1EsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBNZHNEZWZpbml0aW9uLFxuICAgIE1kc1NvcnQsXG4gICAgTWRzV2lkZ2V0LFxuICAgIFJlc3RDb25zdGFudHMsXG4gICAgU29ydCxcbn0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSwgTGlzdEl0ZW1UeXBlIH0gZnJvbSAnLi4vdHlwZXMvbGlzdC1pdGVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1kc0hlbHBlclNlcnZpY2Uge1xuICAgIHN0YXRpYyBnZXRTb3J0SW5mbyhtZHNTZXQ6IE1kc0RlZmluaXRpb24sIG5hbWU6IHN0cmluZyk6IE1kc1NvcnQge1xuICAgICAgICBpZiAobWRzU2V0KSB7XG4gICAgICAgICAgICBpZiAobWRzU2V0LnNvcnRzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0IG9mIG1kc1NldC5zb3J0cykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5pZCA9PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ21kcyBkb2VzIG5vdCBkZWZpbmUgc29ydCBpbmZvIGZvciAnICsgbmFtZSArICcsIGludmFsaWQgY29uZmlndXJhdGlvbiEnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbHVtbnModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtZHNTZXQ6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBMaXN0SXRlbVtdID0gW107XG4gICAgICAgIGlmIChtZHNTZXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGlzdCBvZiBtZHNTZXQubGlzdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAobGlzdC5pZCA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBsaXN0LmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlOiBMaXN0SXRlbVR5cGUgPSAnTk9ERSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ21lZGlhY2VudGVyR3JvdXBzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnR1JPVVAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnc2VhcmNoQ29sbGVjdGlvbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdDT0xMRUNUSU9OJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSwgdGhlIHR5cGUgaXMgaW5jbHVkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uaWQuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwbGl0ID0gY29sdW1uLmlkLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IHNwbGl0WzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pZCA9IHNwbGl0WzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IG5ldyBMaXN0SXRlbSh0eXBlLCBjb2x1bW4uaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtYXQgPSBjb2x1bW4uZm9ybWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWRzU2V0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAnbWRzIGRvZXMgbm90IGRlZmluZSBjb2x1bW5zIGZvciAnICsgbmFtZSArICcsIGludmFsaWQgY29uZmlndXJhdGlvbiEnLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3NlYXJjaCcgfHwgbmFtZSA9PT0gJ2NvbGxlY3Rpb25SZWZlcmVuY2VzJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnTk9ERScsIFJlc3RDb25zdGFudHMuQ01fTU9ESUZJRURfREFURSkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX0xJQ0VOU0UpKTtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLnB1c2gobmV3IExpc3RJdGVtKCdOT0RFJywgUmVzdENvbnN0YW50cy5DQ01fUFJPUF9SRVBMSUNBVElPTlNPVVJDRSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnbWVkaWFjZW50ZXJNYW5hZ2VkJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnTk9ERScsIFJlc3RDb25zdGFudHMuQ0NNX1BST1BfUkVQTElDQVRJT05TT1VSQ0VJRCkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX1JFUExJQ0FUSU9OU09VUkNFKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdtZWRpYWNlbnRlckdyb3VwcycpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLnB1c2gobmV3IExpc3RJdGVtKCdHUk9VUCcsIFJlc3RDb25zdGFudHMuQVVUSE9SSVRZX0RJU1BMQVlOQU1FKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnR1JPVVAnLCBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9HUk9VUFRZUEUpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3NlYXJjaENvbGxlY3Rpb25zJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAndGl0bGUnKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnQ09MTEVDVElPTicsICdpbmZvJykpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAnc2NvcGUnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29sdW1ucy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGMudHlwZSArICcuJyArIGMubmFtZTtcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09ICdOT0RFJyAmJiB0cmFuc2xhdGUuaW5zdGFudChrZXkpID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICBjLmxhYmVsID0gbWRzU2V0LndpZGdldHMuZmlsdGVyKCh3OiBhbnkpID0+IHcuaWQgPT09IGMubmFtZSk/LlswXT8uY2FwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgdGhlIGFwcHJvcHJpYXRlIHdpZGdldCB3aXRoIHRoZSBpZCwgYnV0IHdpbGwgbm90IGNoZWNrIGFueSB3aWRnZXQgY29uZGl0aW9uc1xuICAgICAqIEBwYXJhbSBjaWRcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gd2lkZ2V0c1xuICAgICAqL1xuICAgIHN0YXRpYyBnZXRXaWRnZXQoY2lkOiBzdHJpbmcsIHRlbXBsYXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCB3aWRnZXRzOiBNZHNXaWRnZXRbXSkge1xuICAgICAgICBpZiAod2lkZ2V0cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBpdGVyYXRlIHdpZGdldCAnICsgY2lkICsgJzogbm8gd2lkZ2V0cyBkYXRhIHByb3ZpZGVkJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCB3IG9mIHdpZGdldHMpIHtcbiAgICAgICAgICAgIGlmICh3LmlkID09IGNpZCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHcudGVtcGxhdGUgPT09IHRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0aW9uOiBBdXRoZW50aWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIGdldFdpZGdldCwgYnV0IHdpbGwgYWxzbyBjaGVjayB0aGUgd2lkZ2V0IGNvbmRpdGlvbnNcbiAgICAgKiBAcGFyYW0gY29ubmVjdG9yXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXNcbiAgICAgKiBAcGFyYW0gaWRcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gd2lkZ2V0c1xuICAgICAqL1xuICAgIGFzeW5jIGdldFdpZGdldFdpdGhDb25kaXRpb24oXG4gICAgICAgIHByb3BlcnRpZXM6IGFueSxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgdGVtcGxhdGU6IHN0cmluZyA9IG51bGwsXG4gICAgICAgIHdpZGdldHM6IGFueSxcbiAgICApIHtcbiAgICAgICAgZm9yIChsZXQgdyBvZiB3aWRnZXRzKSB7XG4gICAgICAgICAgICBpZiAody5pZCA9PSBpZCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKHRlbXBsYXRlID09IG51bGwgfHwgdy50ZW1wbGF0ZSA9PSB0ZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuaXNXaWRnZXRDb25kaXRpb25UcnVlKHcsIHByb3BlcnRpZXMpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgYXN5bmMgaXNXaWRnZXRDb25kaXRpb25UcnVlKHdpZGdldDogYW55LCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAgICAgaWYgKCF3aWRnZXQuY29uZGl0aW9uKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgbGV0IGNvbmRpdGlvbiA9IHdpZGdldC5jb25kaXRpb247XG4gICAgICAgIGlmIChjb25kaXRpb24udHlwZSA9PSAnUFJPUEVSVFknICYmIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoIXByb3BlcnRpZXNbY29uZGl0aW9uLnZhbHVlXSAmJiAhY29uZGl0aW9uLm5lZ2F0ZSkgfHxcbiAgICAgICAgICAgICAgICAocHJvcGVydGllc1tjb25kaXRpb24udmFsdWVdICYmIGNvbmRpdGlvbi5uZWdhdGUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmRpdGlvbi50eXBlID09ICdUT09MUEVSTUlTU0lPTicpIHtcbiAgICAgICAgICAgIGxldCB0cCA9IGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb24uaGFzVG9vbHBlcm1pc3Npb24oY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGlmICh0cCA9PSBjb25kaXRpb24ubmVnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaW5kIGEgdGVtcGxhdGUgYnkgaWQgaW4gdGhlIGdpdmVuIG1kc1xuICAgICAqL1xuICAgIHN0YXRpYyBmaW5kVGVtcGxhdGUobWRzOiBNZHNEZWZpbml0aW9uLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBtZHMudmlld3MgYXMgQXJyYXk8XG4gICAgICAgICAgICAgICAgQXJyYXlFbGVtZW50PE1kc0RlZmluaXRpb25bJ3ZpZXdzJ10+IHwgQXJyYXlFbGVtZW50PE1kc0RlZmluaXRpb25bJ3ZpZXdzJ10+XG4gICAgICAgICAgICA+XG4gICAgICAgICkuZmluZCgodikgPT4gdi5pZCA9PT0gaWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCB3aWRnZXRzIHVzZWQgYnkgdGhlIGdpdmVuIHRlbXBsYXRlXG4gICAgICovXG4gICAgc3RhdGljIGdldFVzZWRXaWRnZXRzKG1kczogTWRzRGVmaW5pdGlvbiwgdGVtcGxhdGU6IHN0cmluZyA9IG51bGwpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHVzZWQ6IGFueSA9IFtdO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZURhdGEgPSBNZHNIZWxwZXJTZXJ2aWNlLmZpbmRUZW1wbGF0ZShtZHMsIHRlbXBsYXRlKTtcbiAgICAgICAgZm9yIChjb25zdCB3IG9mIG1kcy53aWRnZXRzKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVEYXRhLmh0bWwuaW5kZXhPZignPCcgKyB3LmlkKSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAhdXNlZC5maW5kKCh3MjogYW55KSA9PiB3Mi5pZCA9PT0gdy5pZClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHVzZWQucHVzaCh3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlZDtcbiAgICB9XG59XG5cbnR5cGUgQXJyYXlFbGVtZW50PEFycmF5VHlwZSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPVxuICAgIEFycmF5VHlwZSBleHRlbmRzIHJlYWRvbmx5IChpbmZlciBFbGVtZW50VHlwZSlbXSA/IEVsZW1lbnRUeXBlIDogbmV2ZXI7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MdsHelperService } from './mds-helper.service';
3
+ import * as i0 from "@angular/core";
4
+ export class MdsModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MdsModule }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsModule, providers: [MdsHelperService] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MdsModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [],
13
+ providers: [MdsHelperService],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbWRzL21kcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLFNBQVM7OEdBQVQsU0FBUzsrR0FBVCxTQUFTOytHQUFULFNBQVMsYUFGUCxDQUFDLGdCQUFnQixDQUFDOzsyRkFFcEIsU0FBUztrQkFKckIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1kc0hlbHBlclNlcnZpY2UgfSBmcm9tICcuL21kcy1oZWxwZXIuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBwcm92aWRlcnM6IFtNZHNIZWxwZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWRzTW9kdWxlIHt9XG4iXX0=
@@ -6,11 +6,11 @@ import * as i3 from "@angular/material/badge";
6
6
  import * as i4 from "../../pipes/node-icon.pipe";
7
7
  export class DragPreviewComponent {
8
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DragPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: DragPreviewComponent, selector: "es-drag-preview", inputs: { node: "node", selected: "selected", item: "item" }, ngImport: i0, template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListTextComponent, selector: "es-list-text" }, { kind: "directive", type: i3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i4.NodeIconPipe, name: "esNodeIcon" }] }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: DragPreviewComponent, selector: "es-drag-preview", inputs: { node: "node", selected: "selected", item: "item" }, ngImport: i0, template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon | async\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListTextComponent, selector: "es-list-text" }, { kind: "directive", type: i3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.NodeIconPipe, name: "esNodeIcon" }] }); }
10
10
  }
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DragPreviewComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'es-drag-preview', template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
13
+ args: [{ selector: 'es-drag-preview', template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon | async\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
14
14
  }], propDecorators: { node: [{
15
15
  type: Input
16
16
  }], selected: [{
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
18
18
  }], item: [{
19
19
  type: Input
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2RyYWctcHJldmlldy9kcmFnLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvZHJhZy1wcmV2aWV3L2RyYWctcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBVWpELE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFIQ1ZqQyxnVEFNQTs7MkZESWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGlCQUFpQjs4QkFLbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgTm9kZUVudHJpZXNEYXRhVHlwZSB9IGZyb20gJy4uL2VudHJpZXMtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWRyYWctcHJldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWctcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZy1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyYWdQcmV2aWV3Q29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgQElucHV0KCkgbm9kZTogTm9kZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZDogVFtdO1xuICAgIEBJbnB1dCgpIGl0ZW06IExpc3RJdGVtO1xufVxuIiwiPGRpdiBjbGFzcz1cImRyYWctcHJldmlld1wiIFttYXRCYWRnZV09XCJzZWxlY3RlZC5sZW5ndGggPiAxID8gc2VsZWN0ZWQubGVuZ3RoIDogbnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwiZHJhZy1wcmV2aWV3LWljb25cIj5cbiAgICA8aW1nICpuZ0lmPVwibm9kZS5pY29uVVJMXCIgW3NyY109XCJub2RlIHwgZXNOb2RlSWNvblwiIC8+XG4gIDwvZGl2PlxuICA8ZXMtbGlzdC10ZXh0IGNsYXNzPVwiZHJhZy1wcmV2aWV3LXRleHRcIiBbbm9kZV09XCJub2RlXCIgW2l0ZW1dPVwiaXRlbVwiPjwvZXMtbGlzdC10ZXh0PlxuPC9kaXY+XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2RyYWctcHJldmlldy9kcmFnLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvZHJhZy1wcmV2aWV3L2RyYWctcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBVWpELE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFIQ1ZqQyx3VEFNQTs7MkZESWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGlCQUFpQjs4QkFLbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgTm9kZUVudHJpZXNEYXRhVHlwZSB9IGZyb20gJy4uL2VudHJpZXMtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWRyYWctcHJldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWctcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZy1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyYWdQcmV2aWV3Q29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgQElucHV0KCkgbm9kZTogTm9kZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZDogVFtdO1xuICAgIEBJbnB1dCgpIGl0ZW06IExpc3RJdGVtO1xufVxuIiwiPGRpdiBjbGFzcz1cImRyYWctcHJldmlld1wiIFttYXRCYWRnZV09XCJzZWxlY3RlZC5sZW5ndGggPiAxID8gc2VsZWN0ZWQubGVuZ3RoIDogbnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwiZHJhZy1wcmV2aWV3LWljb25cIj5cbiAgICA8aW1nICpuZ0lmPVwibm9kZS5pY29uVVJMXCIgW3NyY109XCJub2RlIHwgZXNOb2RlSWNvbiB8IGFzeW5jXCIgLz5cbiAgPC9kaXY+XG4gIDxlcy1saXN0LXRleHQgY2xhc3M9XCJkcmFnLXByZXZpZXctdGV4dFwiIFtub2RlXT1cIm5vZGVcIiBbaXRlbV09XCJpdGVtXCI+PC9lcy1saXN0LXRleHQ+XG48L2Rpdj5cbiJdfQ==
@@ -21,4 +21,4 @@ export var ClickSource;
21
21
  ClickSource[ClickSource["Overlay"] = 4] = "Overlay";
22
22
  ClickSource[ClickSource["Dropdown"] = 5] = "Dropdown";
23
23
  })(ClickSource || (ClickSource = {}));
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIscUVBQUssQ0FBQTtJQUNMLG1FQUFJLENBQUE7SUFDSiw2RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFJakM7QUFFRCxNQUFNLENBQU4sSUFBWSxlQU1YO0FBTkQsV0FBWSxlQUFlO0lBQ3ZCLHFCQUFxQjtJQUNyQiwrRUFBaUIsQ0FBQTtJQUNqQixnQkFBZ0I7SUFDaEIsMkRBQU8sQ0FBQTtJQUNQLHFEQUFJLENBQUE7QUFDUixDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUE2QkQsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNuQixtREFBTyxDQUFBO0lBQ1AsNkNBQUksQ0FBQTtJQUNKLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IsbURBQU8sQ0FBQTtJQUNQLHFEQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5cbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEN1c3RvbU9wdGlvbnMsIE9wdGlvbkl0ZW0sIFRhcmdldCB9IGZyb20gJy4uL3R5cGVzL29wdGlvbi1pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtLCBMaXN0SXRlbVNvcnQgfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgQ2FuRHJvcCwgRHJhZ0RhdGEsIERyb3BBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTm9kZSwgR2VuZXJpY0F1dGhvcml0eSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBOb2RlUm9vdCA9XG4gICAgfCAnTVlfRklMRVMnXG4gICAgfCAnU0hBUkVEX0ZJTEVTJ1xuICAgIHwgJ01ZX1NIQVJFRF9GSUxFUydcbiAgICB8ICdUT19NRV9TSEFSRURfRklMRVMnXG4gICAgfCAnV09SS0ZMT1dfUkVDRUlWRSdcbiAgICB8ICdSRUNZQ0xFJ1xuICAgIHwgJ0FMTF9GSUxFUyc7XG5cbmV4cG9ydCBlbnVtIE5vZGVFbnRyaWVzRGlzcGxheVR5cGUge1xuICAgIFRhYmxlLFxuICAgIEdyaWQsXG4gICAgU21hbGxHcmlkLFxufVxuXG5leHBvcnQgZW51bSBJbnRlcmFjdGlvblR5cGUge1xuICAgIC8vIGNyZWF0ZSByb3V0ZXIgbGlua1xuICAgIERlZmF1bHRBY3Rpb25MaW5rLFxuICAgIC8vIGVtaXQgYW4gZXZlbnRcbiAgICBFbWl0dGVyLFxuICAgIE5vbmUsXG59XG5cbmV4cG9ydCB0eXBlIExpc3RPcHRpb25zID0geyBba2V5IGluIFRhcmdldF0/OiBPcHRpb25JdGVtW10gfTtcbmV4cG9ydCB0eXBlIExpc3RPcHRpb25zQ29uZmlnID0ge1xuICAgIGFjdGlvbmJhcj86IEFjdGlvbmJhckNvbXBvbmVudDtcbiAgICBwYXJlbnQ/OiBOb2RlO1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDdXN0b21PcHRpb25zO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0U29ydENvbmZpZyBleHRlbmRzIFNvcnQge1xuICAgIGNvbHVtbnM6IExpc3RJdGVtU29ydFtdO1xuICAgIGFsbG93ZWQ/OiBib29sZWFuO1xuICAgIGN1c3RvbVNvcnRpbmdJblByb2dyZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRHJvcFRhcmdldCA9IE5vZGUgfCBOb2RlUm9vdDtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wU291cmNlPFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgZWxlbWVudDogVFtdO1xuICAgIC8vIHNvdXJjZUxpc3Q6IExpc3RFdmVudEludGVyZmFjZTxUPjtcbiAgICBtb2RlOiBEcm9wQWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REcmFnR3JvcENvbmZpZzxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIGRyYWdBbGxvd2VkOiBib29sZWFuO1xuICAgIGRyb3BBbGxvd2VkPzogKGRyYWdEYXRhOiBEcmFnRGF0YTxUPikgPT4gQ2FuRHJvcDtcbiAgICBkcm9wcGVkPzogKHRhcmdldDogTm9kZSwgc291cmNlOiBEcm9wU291cmNlPE5vZGVFbnRyaWVzRGF0YVR5cGU+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZW51bSBDbGlja1NvdXJjZSB7XG4gICAgUHJldmlldyxcbiAgICBJY29uLFxuICAgIE1ldGFkYXRhLFxuICAgIENvbW1lbnRzLFxuICAgIE92ZXJsYXksXG4gICAgRHJvcGRvd24sIC8vIGtlZXA6IHVzZWQgaW4gZXh0ZW5zaW9uc1xufVxuXG5leHBvcnQgdHlwZSBOb2RlQ2xpY2tFdmVudDxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4gPSB7XG4gICAgZWxlbWVudDogVDtcbiAgICBzb3VyY2U6IENsaWNrU291cmNlO1xuICAgIGF0dHJpYnV0ZT86IExpc3RJdGVtOyAvLyBvbmx5IHdoZW4gc291cmNlID09PSBNZXRhZGF0YVxufTtcbmV4cG9ydCB0eXBlIEZldGNoRXZlbnQgPSB7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgcmVzZXQgb2YgdGhlIGN1cnJlbnQgZGF0YSByZXF1aXJlZD9cbiAgICAgKiB0aGlzIHNob3VsZCBiZSB0cnVlIGlmIHRoaXMgd2FzIGEgcGFnaW5hdGlvbiByZXF1ZXN0XG4gICAgICovXG4gICAgcmVzZXQ/OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIE5vZGVFbnRyaWVzRGF0YVR5cGUgPSBOb2RlIHwgR2VuZXJpY0F1dGhvcml0eTtcbmV4cG9ydCB0eXBlIEdyaWRMYXlvdXQgPSAnZ3JpZCcgfCAnc2Nyb2xsJztcbmV4cG9ydCB0eXBlIEdyaWRDb25maWcgPSB7XG4gICAgLyoqXG4gICAgICogbWF4IGFtb3VudCBvZiByb3dzIHRoYXQgc2hvdWxkIGJlIHZpc2libGUsIHVuc2V0IGZvciBubyBsaW1pdFxuICAgICAqL1xuICAgIG1heFJvd3M/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogbGF5b3V0LCBkZWZhdWx0cyB0byAnZ3JpZCdcbiAgICAgKiAnc2Nyb2xsJyBtYXkgb25seSBiZSB1c2VkIHdoZW4gbWF4Um93cyBpcyBub3Qgc2V0XG4gICAgICovXG4gICAgbGF5b3V0PzogR3JpZExheW91dDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEV2ZW50SW50ZXJmYWNlPFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgdXBkYXRlTm9kZXMobm9kZXM6IHZvaWQgfCBUW10pOiB2b2lkO1xuXG4gICAgZ2V0RGlzcGxheVR5cGUoKTogTm9kZUVudHJpZXNEaXNwbGF5VHlwZTtcblxuICAgIHNldERpc3BsYXlUeXBlKGRpc3BsYXlUeXBlOiBOb2RlRW50cmllc0Rpc3BsYXlUeXBlKTogdm9pZDtcblxuICAgIHNob3dSZW9yZGVyQ29sdW1uc0RpYWxvZygpOiB2b2lkO1xuXG4gICAgYWRkVmlydHVhbE5vZGVzKHZpcnR1YWw6IFRbXSk6IHZvaWQ7XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IExpc3RPcHRpb25zKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIGFjdGl2YXRlIG9wdGlvbiAoZHJvcGRvd24pIGdlbmVyYXRpb25cbiAgICAgKi9cbiAgICBpbml0T3B0aW9uc0dlbmVyYXRvcihjb25maWc6IExpc3RPcHRpb25zQ29uZmlnKTogdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgICBnZXRTZWxlY3Rpb24oKTogU2VsZWN0aW9uTW9kZWw8VD47XG5cbiAgICAvKipcbiAgICAgKiB0cmlnZ2VyZWQgd2hlbiBub2Rlcy9vYmplY3RzIGFyZSBkZWxldGVkIGFuZCBzaG91bGQgbm90IGJlIHNob3duIGluIHRoZSBsaXN0IGFueW1vcmVcbiAgICAgKi9cbiAgICBkZWxldGVOb2RlcyhvYmplY3RzOiBUW10pOiB2b2lkO1xufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIscUVBQUssQ0FBQTtJQUNMLG1FQUFJLENBQUE7SUFDSiw2RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFJakM7QUFFRCxNQUFNLENBQU4sSUFBWSxlQU1YO0FBTkQsV0FBWSxlQUFlO0lBQ3ZCLHFCQUFxQjtJQUNyQiwrRUFBaUIsQ0FBQTtJQUNqQixnQkFBZ0I7SUFDaEIsMkRBQU8sQ0FBQTtJQUNQLHFEQUFJLENBQUE7QUFDUixDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUE2QkQsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNuQixtREFBTyxDQUFBO0lBQ1AsNkNBQUksQ0FBQTtJQUNKLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IsbURBQU8sQ0FBQTtJQUNQLHFEQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5cbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEN1c3RvbU9wdGlvbnMsIE9wdGlvbkl0ZW0sIFRhcmdldCB9IGZyb20gJy4uL3R5cGVzL29wdGlvbi1pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtLCBMaXN0SXRlbVNvcnQgfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgQ2FuRHJvcCwgRHJhZ0RhdGEsIERyb3BBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTm9kZSwgR2VuZXJpY0F1dGhvcml0eSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBOb2RlUm9vdCA9XG4gICAgfCAnTVlfRklMRVMnXG4gICAgfCAnQ09MTEVDVElPTl9IT01FJ1xuICAgIHwgJ1NIQVJFRF9GSUxFUydcbiAgICB8ICdNWV9TSEFSRURfRklMRVMnXG4gICAgfCAnVE9fTUVfU0hBUkVEX0ZJTEVTJ1xuICAgIHwgJ1dPUktGTE9XX1JFQ0VJVkUnXG4gICAgfCAnUkVDWUNMRSdcbiAgICB8ICdBTExfRklMRVMnO1xuXG5leHBvcnQgZW51bSBOb2RlRW50cmllc0Rpc3BsYXlUeXBlIHtcbiAgICBUYWJsZSxcbiAgICBHcmlkLFxuICAgIFNtYWxsR3JpZCxcbn1cblxuZXhwb3J0IGVudW0gSW50ZXJhY3Rpb25UeXBlIHtcbiAgICAvLyBjcmVhdGUgcm91dGVyIGxpbmtcbiAgICBEZWZhdWx0QWN0aW9uTGluayxcbiAgICAvLyBlbWl0IGFuIGV2ZW50XG4gICAgRW1pdHRlcixcbiAgICBOb25lLFxufVxuXG5leHBvcnQgdHlwZSBMaXN0T3B0aW9ucyA9IHsgW2tleSBpbiBUYXJnZXRdPzogT3B0aW9uSXRlbVtdIH07XG5leHBvcnQgdHlwZSBMaXN0T3B0aW9uc0NvbmZpZyA9IHtcbiAgICBhY3Rpb25iYXI/OiBBY3Rpb25iYXJDb21wb25lbnQ7XG4gICAgcGFyZW50PzogTm9kZTtcbiAgICBjdXN0b21PcHRpb25zPzogQ3VzdG9tT3B0aW9ucztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNvcnRDb25maWcgZXh0ZW5kcyBTb3J0IHtcbiAgICBjb2x1bW5zOiBMaXN0SXRlbVNvcnRbXTtcbiAgICBhbGxvd2VkPzogYm9vbGVhbjtcbiAgICBjdXN0b21Tb3J0aW5nSW5Qcm9ncmVzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIERyb3BUYXJnZXQgPSBOb2RlIHwgTm9kZVJvb3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcFNvdXJjZTxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIGVsZW1lbnQ6IFRbXTtcbiAgICAvLyBzb3VyY2VMaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8VD47XG4gICAgbW9kZTogRHJvcEFjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0RHJhZ0dyb3BDb25maWc8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+IHtcbiAgICBkcmFnQWxsb3dlZDogYm9vbGVhbjtcbiAgICBkcm9wQWxsb3dlZD86IChkcmFnRGF0YTogRHJhZ0RhdGE8VD4pID0+IENhbkRyb3A7XG4gICAgZHJvcHBlZD86ICh0YXJnZXQ6IE5vZGUsIHNvdXJjZTogRHJvcFNvdXJjZTxOb2RlRW50cmllc0RhdGFUeXBlPikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gQ2xpY2tTb3VyY2Uge1xuICAgIFByZXZpZXcsXG4gICAgSWNvbixcbiAgICBNZXRhZGF0YSxcbiAgICBDb21tZW50cyxcbiAgICBPdmVybGF5LFxuICAgIERyb3Bkb3duLCAvLyBrZWVwOiB1c2VkIGluIGV4dGVuc2lvbnNcbn1cblxuZXhwb3J0IHR5cGUgTm9kZUNsaWNrRXZlbnQ8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+ID0ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgc291cmNlOiBDbGlja1NvdXJjZTtcbiAgICBhdHRyaWJ1dGU/OiBMaXN0SXRlbTsgLy8gb25seSB3aGVuIHNvdXJjZSA9PT0gTWV0YWRhdGFcbn07XG5leHBvcnQgdHlwZSBGZXRjaEV2ZW50ID0ge1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBpcyBhIHJlc2V0IG9mIHRoZSBjdXJyZW50IGRhdGEgcmVxdWlyZWQ/XG4gICAgICogdGhpcyBzaG91bGQgYmUgdHJ1ZSBpZiB0aGlzIHdhcyBhIHBhZ2luYXRpb24gcmVxdWVzdFxuICAgICAqL1xuICAgIHJlc2V0PzogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBOb2RlRW50cmllc0RhdGFUeXBlID0gTm9kZSB8IEdlbmVyaWNBdXRob3JpdHk7XG5leHBvcnQgdHlwZSBHcmlkTGF5b3V0ID0gJ2dyaWQnIHwgJ3Njcm9sbCc7XG5leHBvcnQgdHlwZSBHcmlkQ29uZmlnID0ge1xuICAgIC8qKlxuICAgICAqIG1heCBhbW91bnQgb2Ygcm93cyB0aGF0IHNob3VsZCBiZSB2aXNpYmxlLCB1bnNldCBmb3Igbm8gbGltaXRcbiAgICAgKi9cbiAgICBtYXhSb3dzPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGxheW91dCwgZGVmYXVsdHMgdG8gJ2dyaWQnXG4gICAgICogJ3Njcm9sbCcgbWF5IG9ubHkgYmUgdXNlZCB3aGVuIG1heFJvd3MgaXMgbm90IHNldFxuICAgICAqL1xuICAgIGxheW91dD86IEdyaWRMYXlvdXQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RFdmVudEludGVyZmFjZTxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIHVwZGF0ZU5vZGVzKG5vZGVzOiB2b2lkIHwgVFtdKTogdm9pZDtcblxuICAgIGdldERpc3BsYXlUeXBlKCk6IE5vZGVFbnRyaWVzRGlzcGxheVR5cGU7XG5cbiAgICBzZXREaXNwbGF5VHlwZShkaXNwbGF5VHlwZTogTm9kZUVudHJpZXNEaXNwbGF5VHlwZSk6IHZvaWQ7XG5cbiAgICBzaG93UmVvcmRlckNvbHVtbnNEaWFsb2coKTogdm9pZDtcblxuICAgIGFkZFZpcnR1YWxOb2Rlcyh2aXJ0dWFsOiBUW10pOiB2b2lkO1xuXG4gICAgc2V0T3B0aW9ucyhvcHRpb25zOiBMaXN0T3B0aW9ucyk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBhY3RpdmF0ZSBvcHRpb24gKGRyb3Bkb3duKSBnZW5lcmF0aW9uXG4gICAgICovXG4gICAgaW5pdE9wdGlvbnNHZW5lcmF0b3IoY29uZmlnOiBMaXN0T3B0aW9uc0NvbmZpZyk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gICAgZ2V0U2VsZWN0aW9uKCk6IFNlbGVjdGlvbk1vZGVsPFQ+O1xuXG4gICAgLyoqXG4gICAgICogdHJpZ2dlcmVkIHdoZW4gbm9kZXMvb2JqZWN0cyBhcmUgZGVsZXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBzaG93biBpbiB0aGUgbGlzdCBhbnltb3JlXG4gICAgICovXG4gICAgZGVsZXRlTm9kZXMob2JqZWN0czogVFtdKTogdm9pZDtcbn1cbiJdfQ==