@smartbit4all/ng-client 3.2.21 → 3.2.22

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 (85) hide show
  1. package/esm2020/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
  2. package/esm2020/lib/smart-filter-editor/api/configuration.mjs +1 -1
  3. package/esm2020/lib/smart-filter-editor/api/encoder.mjs +1 -1
  4. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
  5. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
  6. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
  7. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
  8. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
  9. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
  10. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
  11. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
  12. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  13. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
  14. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
  15. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
  16. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
  17. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  18. package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
  19. package/esm2020/lib/smart-filter-editor/api/param.mjs +1 -1
  20. package/esm2020/lib/smart-filter-editor/api/variables.mjs +1 -1
  21. package/esm2020/lib/smart-form/api/model/models.mjs +1 -1
  22. package/esm2020/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  23. package/esm2020/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
  24. package/esm2020/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
  25. package/esm2020/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
  26. package/esm2020/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
  27. package/esm2020/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
  28. package/esm2020/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
  29. package/esm2020/lib/smart-grid/api/grid-api/index.mjs +1 -1
  30. package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
  31. package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  32. package/esm2020/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  33. package/esm2020/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  34. package/esm2020/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  35. package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
  36. package/esm2020/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
  37. package/esm2020/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  38. package/esm2020/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  39. package/esm2020/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  40. package/esm2020/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
  41. package/esm2020/lib/smart-grid/api/grid-api/param.mjs +1 -1
  42. package/esm2020/lib/smart-grid/api/grid-api/variables.mjs +1 -1
  43. package/esm2020/lib/smart-icon/smart-icon/smart-icon.component.mjs +16 -26
  44. package/esm2020/lib/smart-icon/smart-icon.service.mjs +34 -5
  45. package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  46. package/esm2020/lib/smart-tree/tree-api/configuration.mjs +1 -1
  47. package/esm2020/lib/smart-tree/tree-api/encoder.mjs +1 -1
  48. package/esm2020/lib/smart-tree/tree-api/param.mjs +1 -1
  49. package/esm2020/lib/smart-tree/tree-api/variables.mjs +1 -1
  50. package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
  51. package/esm2020/lib/view-context/api/model/uploadedFile.mjs +1 -1
  52. package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
  53. package/esm2020/lib/view-context/api/model/viewEventHandler.mjs +1 -1
  54. package/esm2020/lib/view-context/value-api/api/api.mjs +1 -1
  55. package/esm2020/lib/view-context/value-api/api/value.service.mjs +1 -1
  56. package/esm2020/lib/view-context/value-api/api.module.mjs +1 -1
  57. package/esm2020/lib/view-context/value-api/configuration.mjs +1 -1
  58. package/esm2020/lib/view-context/value-api/encoder.mjs +1 -1
  59. package/esm2020/lib/view-context/value-api/index.mjs +1 -1
  60. package/esm2020/lib/view-context/value-api/model/genericValue.mjs +1 -1
  61. package/esm2020/lib/view-context/value-api/model/models.mjs +1 -1
  62. package/esm2020/lib/view-context/value-api/model/value.mjs +1 -1
  63. package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  64. package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  65. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  66. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  67. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
  68. package/esm2020/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  69. package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  70. package/esm2020/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
  71. package/esm2020/lib/view-context/value-api/param.mjs +1 -1
  72. package/esm2020/lib/view-context/value-api/variables.mjs +1 -1
  73. package/fesm2015/smartbit4all-ng-client.mjs +83 -62
  74. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
  75. package/fesm2020/smartbit4all-ng-client.mjs +81 -62
  76. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
  77. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +3 -5
  78. package/lib/smart-icon/smart-icon.service.d.ts +9 -2
  79. package/package.json +1 -1
  80. package/smartbit4all-ng-client-3.2.22.tgz +0 -0
  81. package/src/lib/smart-filter-editor/api/README.md +226 -226
  82. package/src/lib/smart-grid/api/grid-api/README.md +226 -226
  83. package/src/lib/smart-tree/tree-api/README.md +226 -226
  84. package/src/lib/view-context/value-api/README.md +226 -226
  85. package/smartbit4all-ng-client-3.2.21.tgz +0 -0
@@ -1,11 +1,10 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/icon";
4
- import * as i2 from "../smart-icon.service";
3
+ import * as i1 from "../smart-icon.service";
4
+ import * as i2 from "@angular/material/icon";
5
5
  import * as i3 from "@angular/common";
6
6
  export class SmartIconComponent {
7
- constructor(matIconRegistry, service) {
8
- this.matIconRegistry = matIconRegistry;
7
+ constructor(service) {
9
8
  this.service = service;
10
9
  this.isCustom = false;
11
10
  }
@@ -14,35 +13,26 @@ export class SmartIconComponent {
14
13
  this.checkIcon();
15
14
  }
16
15
  async checkIcon() {
17
- await Promise.all(this.service.smartIconSets.map(async (iconSet) => {
18
- let namespace = iconSet.iconSetName;
19
- let svgIcon = await this.matIconRegistry
20
- .getNamedSvgIcon(this.iconWithoutNamespace, namespace)
21
- .toPromise()
22
- .catch((err) => { });
23
- if (!svgIcon) {
24
- return;
25
- }
26
- if (this.isCustom) {
27
- return;
28
- }
29
- this.icon = `${namespace}:${this.iconWithoutNamespace}`;
16
+ let fullyQualifiedIcon = await this.service.getFullyQualifiedIcon(this.iconWithoutNamespace);
17
+ if (fullyQualifiedIcon) {
30
18
  this.isCustom = true;
31
- }));
32
- if (!this.isCustom) {
19
+ this.icon = fullyQualifiedIcon;
20
+ }
21
+ else {
22
+ this.isCustom = false;
33
23
  this.icon = this.iconWithoutNamespace;
34
24
  }
35
25
  }
36
26
  }
37
- SmartIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconComponent, deps: [{ token: i1.MatIconRegistry }, { token: i2.SmartIconService }], target: i0.ɵɵFactoryTarget.Component });
38
- SmartIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartIconComponent, selector: "smart-icon", inputs: { iconWithoutNamespace: ["icon", "iconWithoutNamespace"], color: "color" }, usesOnChanges: true, ngImport: i0, template: "<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"isCustom\" svgIcon=\"{{ icon }}\"></mat-icon>\r\n<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"!isCustom\"> {{ icon }} </mat-icon>\r\n", styles: [""], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27
+ SmartIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconComponent, deps: [{ token: i1.SmartIconService }], target: i0.ɵɵFactoryTarget.Component });
28
+ SmartIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartIconComponent, selector: "smart-icon", inputs: { iconWithoutNamespace: ["icon", "iconWithoutNamespace"], color: "color" }, usesOnChanges: true, ngImport: i0, template: "<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"isCustom\" svgIcon=\"{{ icon }}\"></mat-icon>\r\n<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"!isCustom\"> {{ icon }} </mat-icon>\r\n", styles: [""], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
39
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconComponent, decorators: [{
40
30
  type: Component,
41
- args: [{ selector: "smart-icon", template: "<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"isCustom\" svgIcon=\"{{ icon }}\"></mat-icon>\r\n<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"!isCustom\"> {{ icon }} </mat-icon>\r\n", styles: [""] }]
42
- }], ctorParameters: function () { return [{ type: i1.MatIconRegistry }, { type: i2.SmartIconService }]; }, propDecorators: { iconWithoutNamespace: [{
31
+ args: [{ selector: 'smart-icon', template: "<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"isCustom\" svgIcon=\"{{ icon }}\"></mat-icon>\r\n<mat-icon [color]=\"color ?? 'primary'\" *ngIf=\"!isCustom\"> {{ icon }} </mat-icon>\r\n", styles: [""] }]
32
+ }], ctorParameters: function () { return [{ type: i1.SmartIconService }]; }, propDecorators: { iconWithoutNamespace: [{
43
33
  type: Input,
44
- args: ["icon"]
34
+ args: ['icon']
45
35
  }], color: [{
46
36
  type: Input
47
37
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1pY29uL3NtYXJ0LWljb24vc21hcnQtaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1pY29uL3NtYXJ0LWljb24vc21hcnQtaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUzNFLE1BQU0sT0FBTyxrQkFBa0I7SUFNM0IsWUFBb0IsZUFBZ0MsRUFBVSxPQUF5QjtRQUFuRSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUZ2RixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRWdFLENBQUM7SUFFM0YsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDWCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFxQixFQUFFLEVBQUU7WUFDNUQsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUNwQyxJQUFJLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlO2lCQUNuQyxlQUFlLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQztpQkFDckQsU0FBUyxFQUFFO2lCQUNYLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDVixPQUFPO2FBQ1Y7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLFNBQVMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUV4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDekM7SUFDTCxDQUFDOzsrR0FuQ1Esa0JBQWtCO21HQUFsQixrQkFBa0IsMkpDVC9CLDRMQUVBOzJGRE9hLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxZQUFZO3FJQUtQLG9CQUFvQjtzQkFBbEMsS0FBSzt1QkFBQyxNQUFNO2dCQUVKLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IFNtYXJ0SWNvblNlcnZpY2UsIFNtYXJ0SWNvblNldCB9IGZyb20gXCIuLi9zbWFydC1pY29uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic21hcnQtaWNvblwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zbWFydC1pY29uLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vc21hcnQtaWNvbi5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRJY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dChcImljb25cIikgaWNvbldpdGhvdXROYW1lc3BhY2UhOiBzdHJpbmc7XHJcbiAgICBpY29uITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY29sb3I/OiBzdHJpbmc7XHJcbiAgICBpc0N1c3RvbTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0SWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksIHByaXZhdGUgc2VydmljZTogU21hcnRJY29uU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0N1c3RvbSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tJY29uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hlY2tJY29uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc21hcnRJY29uU2V0cyEubWFwKGFzeW5jIChpY29uU2V0OiBTbWFydEljb25TZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBuYW1lc3BhY2UgPSBpY29uU2V0Lmljb25TZXROYW1lO1xyXG4gICAgICAgICAgICAgICAgbGV0IHN2Z0ljb24gPSBhd2FpdCB0aGlzLm1hdEljb25SZWdpc3RyeVxyXG4gICAgICAgICAgICAgICAgICAgIC5nZXROYW1lZFN2Z0ljb24odGhpcy5pY29uV2l0aG91dE5hbWVzcGFjZSwgbmFtZXNwYWNlKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7fSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXN2Z0ljb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0N1c3RvbSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaWNvbiA9IGAke25hbWVzcGFjZX06JHt0aGlzLmljb25XaXRob3V0TmFtZXNwYWNlfWA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1c3RvbSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDdXN0b20pIHtcclxuICAgICAgICAgICAgdGhpcy5pY29uID0gdGhpcy5pY29uV2l0aG91dE5hbWVzcGFjZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPG1hdC1pY29uIFtjb2xvcl09XCJjb2xvciA/PyAncHJpbWFyeSdcIiAqbmdJZj1cImlzQ3VzdG9tXCIgc3ZnSWNvbj1cInt7IGljb24gfX1cIj48L21hdC1pY29uPlxyXG48bWF0LWljb24gW2NvbG9yXT1cImNvbG9yID8/ICdwcmltYXJ5J1wiICpuZ0lmPVwiIWlzQ3VzdG9tXCI+IHt7IGljb24gfX0gPC9tYXQtaWNvbj5cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1pY29uL3NtYXJ0LWljb24vc21hcnQtaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1pY29uL3NtYXJ0LWljb24vc21hcnQtaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUTNFLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBb0IsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFGN0MsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUVzQixDQUFDO0lBRWpELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0YsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1NBQ2hDO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUN2QztJQUNILENBQUM7OytHQXRCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwySkNSL0IsNExBRUE7MkZETWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFlBQVk7dUdBS1Asb0JBQW9CO3NCQUFsQyxLQUFLO3VCQUFDLE1BQU07Z0JBRUosS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0SWNvblNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1pY29uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzbWFydC1pY29uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtaWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtaWNvbi5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgnaWNvbicpIGljb25XaXRob3V0TmFtZXNwYWNlITogc3RyaW5nO1xyXG4gIGljb24hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29sb3I/OiBzdHJpbmc7XHJcbiAgaXNDdXN0b206IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydEljb25TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQ3VzdG9tID0gZmFsc2U7XHJcbiAgICB0aGlzLmNoZWNrSWNvbigpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2hlY2tJY29uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGZ1bGx5UXVhbGlmaWVkSWNvbiA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRGdWxseVF1YWxpZmllZEljb24odGhpcy5pY29uV2l0aG91dE5hbWVzcGFjZSk7XHJcbiAgICBpZiAoZnVsbHlRdWFsaWZpZWRJY29uKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b20gPSB0cnVlO1xyXG4gICAgICB0aGlzLmljb24gPSBmdWxseVF1YWxpZmllZEljb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzQ3VzdG9tID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaWNvbiA9IHRoaXMuaWNvbldpdGhvdXROYW1lc3BhY2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAgIGFzeW5jIGNoZWNrSWNvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgLy8gICAgICAgdGhpcy5zZXJ2aWNlLnNtYXJ0SWNvblNldHMhLm1hcChhc3luYyAoaWNvblNldDogU21hcnRJY29uU2V0KSA9PiB7XHJcbiAgLy8gICAgICAgICBsZXQgbmFtZXNwYWNlID0gaWNvblNldC5pY29uU2V0TmFtZTtcclxuICAvLyAgICAgICAgIGxldCBzdmdJY29uID0gYXdhaXQgdGhpcy5tYXRJY29uUmVnaXN0cnlcclxuICAvLyAgICAgICAgICAgLmdldE5hbWVkU3ZnSWNvbih0aGlzLmljb25XaXRob3V0TmFtZXNwYWNlLCBuYW1lc3BhY2UpXHJcbiAgLy8gICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gIC8vICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge30pO1xyXG4gIC8vICAgICAgICAgaWYgKCFzdmdJY29uKSB7XHJcbiAgLy8gICAgICAgICAgIHJldHVybjtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICAgIGlmICh0aGlzLmlzQ3VzdG9tKSB7XHJcbiAgLy8gICAgICAgICAgIHJldHVybjtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICAgIHRoaXMuaWNvbiA9IGAke25hbWVzcGFjZX06JHt0aGlzLmljb25XaXRob3V0TmFtZXNwYWNlfWA7XHJcblxyXG4gIC8vICAgICAgICAgdGhpcy5pc0N1c3RvbSA9IHRydWU7XHJcbiAgLy8gICAgICAgfSlcclxuICAvLyAgICAgKTtcclxuICAvLyAgICAgaWYgKCF0aGlzLmlzQ3VzdG9tKSB7XHJcbiAgLy8gICAgICAgdGhpcy5pY29uID0gdGhpcy5pY29uV2l0aG91dE5hbWVzcGFjZTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG59XHJcbiIsIjxtYXQtaWNvbiBbY29sb3JdPVwiY29sb3IgPz8gJ3ByaW1hcnknXCIgKm5nSWY9XCJpc0N1c3RvbVwiIHN2Z0ljb249XCJ7eyBpY29uIH19XCI+PC9tYXQtaWNvbj5cclxuPG1hdC1pY29uIFtjb2xvcl09XCJjb2xvciA/PyAncHJpbWFyeSdcIiAqbmdJZj1cIiFpc0N1c3RvbVwiPiB7eyBpY29uIH19IDwvbWF0LWljb24+XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Injectable } from "@angular/core";
1
+ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/material/icon";
4
4
  import * as i2 from "@angular/platform-browser";
@@ -6,7 +6,8 @@ export class SmartIconService {
6
6
  constructor(matIconRegistry, sanitizer) {
7
7
  this.matIconRegistry = matIconRegistry;
8
8
  this.sanitizer = sanitizer;
9
- this.assets = "assets";
9
+ this.assets = 'assets';
10
+ this.fullyQualifiedIconByIcon = new Map();
10
11
  }
11
12
  setSourceFolder(path) {
12
13
  this.assets = path;
@@ -33,13 +34,41 @@ export class SmartIconService {
33
34
  this.matIconRegistry.addSvgIconInNamespace(iconSet.iconSetName, icon, this.sanitizer.bypassSecurityTrustResourceUrl(`${this.assets}/${iconSet.iconSetName}/${iconSet.iconSetEnum[icon]}.svg`));
34
35
  });
35
36
  }
37
+ /**
38
+ * Returns fully qualified icon name with namespace if found in iconSets, otherwise returns undefined.
39
+ * @param iconWithoutNamespace
40
+ * @returns
41
+ */
42
+ async getFullyQualifiedIcon(iconWithoutNamespace) {
43
+ if (this.fullyQualifiedIconByIcon.has(iconWithoutNamespace)) {
44
+ return this.fullyQualifiedIconByIcon.get(iconWithoutNamespace);
45
+ }
46
+ let icon = undefined;
47
+ if (this.smartIconSets) {
48
+ for (let iconSet of this.smartIconSets) {
49
+ if (!icon) {
50
+ let namespace = iconSet.iconSetName;
51
+ let svgIcon = await this.matIconRegistry
52
+ .getNamedSvgIcon(iconWithoutNamespace, namespace)
53
+ .toPromise()
54
+ .catch((err) => { });
55
+ if (svgIcon) {
56
+ icon = `${namespace}:${iconWithoutNamespace}`;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ // if icon is undefined (not found in iconset), we indicate it in map, so we don't search every time.
62
+ this.fullyQualifiedIconByIcon.set(iconWithoutNamespace, icon);
63
+ return icon;
64
+ }
36
65
  }
37
66
  SmartIconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconService, deps: [{ token: i1.MatIconRegistry }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
38
- SmartIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconService, providedIn: "root" });
67
+ SmartIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconService, providedIn: 'root' });
39
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartIconService, decorators: [{
40
69
  type: Injectable,
41
70
  args: [{
42
- providedIn: "root",
71
+ providedIn: 'root',
43
72
  }]
44
73
  }], ctorParameters: function () { return [{ type: i1.MatIconRegistry }, { type: i2.DomSanitizer }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtaWNvbi9zbWFydC1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVkzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBS3pCLFlBQW9CLGVBQWdDLEVBQVUsU0FBdUI7UUFBakUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUo3RSxXQUFNLEdBQUcsUUFBUSxDQUFDO0lBSThELENBQUM7SUFFbEYsZUFBZSxDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFhO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsT0FBTztnQkFDSCxXQUFXO2dCQUNYLFdBQVc7YUFDZCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLElBQUksQ0FBQyxPQUFxQjtRQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUN0QyxPQUFPLENBQUMsV0FBVyxFQUNuQixJQUFJLEVBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FDekMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUMzRSxDQUNKLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQXpDUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEljb25TZXQge1xyXG4gICAgaWNvblNldE5hbWU6IHN0cmluZztcclxuICAgIGljb25TZXRFbnVtOiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRJY29uU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGFzc2V0cyA9IFwiYXNzZXRzXCI7XHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50SWNvblNldHM/OiBhbnk7XHJcbiAgICBwdWJsaWMgc21hcnRJY29uU2V0cz86IFNtYXJ0SWNvblNldFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0SWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XHJcblxyXG4gICAgcHVibGljIHNldFNvdXJjZUZvbGRlcihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFzc2V0cyA9IHBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGljb25TZXRzKGljb25TZXRzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50SWNvblNldHMgPSBpY29uU2V0cztcclxuICAgICAgICB0aGlzLnNldFVwSWNvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFVwSWNvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zbWFydEljb25TZXRzID0gdGhpcy5lbnZpcm9ubWVudEljb25TZXRzLm1hcCgoaWNvblNldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpY29uU2V0TmFtZSA9IE9iamVjdC5rZXlzKGljb25TZXQpWzBdO1xyXG4gICAgICAgICAgICBsZXQgaWNvblNldEVudW0gPSBpY29uU2V0W2ljb25TZXROYW1lXTtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGljb25TZXRFbnVtLFxyXG4gICAgICAgICAgICAgICAgaWNvblNldE5hbWUsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc21hcnRJY29uU2V0cyEuZm9yRWFjaCgoaWNvblNldDogU21hcnRJY29uU2V0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZChpY29uU2V0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWQoaWNvblNldDogU21hcnRJY29uU2V0KTogdm9pZCB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoaWNvblNldC5pY29uU2V0RW51bSkuZm9yRWFjaCgoaWNvbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25Jbk5hbWVzcGFjZShcclxuICAgICAgICAgICAgICAgIGljb25TZXQuaWNvblNldE5hbWUsXHJcbiAgICAgICAgICAgICAgICBpY29uLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuYXNzZXRzfS8ke2ljb25TZXQuaWNvblNldE5hbWV9LyR7aWNvblNldC5pY29uU2V0RW51bVtpY29uXX0uc3ZnYFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtaWNvbi9zbWFydC1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWEzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCLFlBQW9CLGVBQWdDLEVBQVUsU0FBdUI7UUFBakUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUo3RSxXQUFNLEdBQUcsUUFBUSxDQUFDO1FBMENsQiw2QkFBd0IsR0FBb0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXRDVSxDQUFDO0lBRWxGLGVBQWUsQ0FBQyxJQUFZO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsUUFBYTtRQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUNqRSxJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxPQUFPO2dCQUNMLFdBQVc7Z0JBQ1gsV0FBVzthQUNaLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sSUFBSSxDQUFDLE9BQXFCO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQ3hDLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLElBQUksRUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUMzQyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3pFLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsb0JBQTRCO1FBQ3RELElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixLQUFLLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1QsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztvQkFDcEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZTt5QkFDckMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQzt5QkFDaEQsU0FBUyxFQUFFO3lCQUNYLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLElBQUksT0FBTyxFQUFFO3dCQUNYLElBQUksR0FBRyxHQUFHLFNBQVMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO3FCQUMvQztpQkFDRjthQUNGO1NBQ0Y7UUFDRCxxR0FBcUc7UUFDckcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzZHQXhFVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SWNvblNldCB7XHJcbiAgaWNvblNldE5hbWU6IHN0cmluZztcclxuICBpY29uU2V0RW51bTogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRJY29uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBhc3NldHMgPSAnYXNzZXRzJztcclxuICBwcml2YXRlIGVudmlyb25tZW50SWNvblNldHM/OiBhbnk7XHJcbiAgcHVibGljIHNtYXJ0SWNvblNldHM/OiBTbWFydEljb25TZXRbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRJY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgcHVibGljIHNldFNvdXJjZUZvbGRlcihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYXNzZXRzID0gcGF0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpY29uU2V0cyhpY29uU2V0czogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50SWNvblNldHMgPSBpY29uU2V0cztcclxuICAgIHRoaXMuc2V0VXBJY29ucygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcEljb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydEljb25TZXRzID0gdGhpcy5lbnZpcm9ubWVudEljb25TZXRzLm1hcCgoaWNvblNldDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBpY29uU2V0TmFtZSA9IE9iamVjdC5rZXlzKGljb25TZXQpWzBdO1xyXG4gICAgICBsZXQgaWNvblNldEVudW0gPSBpY29uU2V0W2ljb25TZXROYW1lXTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpY29uU2V0RW51bSxcclxuICAgICAgICBpY29uU2V0TmFtZSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc21hcnRJY29uU2V0cyEuZm9yRWFjaCgoaWNvblNldDogU21hcnRJY29uU2V0KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZChpY29uU2V0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkKGljb25TZXQ6IFNtYXJ0SWNvblNldCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXMoaWNvblNldC5pY29uU2V0RW51bSkuZm9yRWFjaCgoaWNvbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25Jbk5hbWVzcGFjZShcclxuICAgICAgICBpY29uU2V0Lmljb25TZXROYW1lLFxyXG4gICAgICAgIGljb24sXHJcbiAgICAgICAgdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxyXG4gICAgICAgICAgYCR7dGhpcy5hc3NldHN9LyR7aWNvblNldC5pY29uU2V0TmFtZX0vJHtpY29uU2V0Lmljb25TZXRFbnVtW2ljb25dfS5zdmdgXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZ1bGx5UXVhbGlmaWVkSWNvbkJ5SWNvbjogTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBmdWxseSBxdWFsaWZpZWQgaWNvbiBuYW1lIHdpdGggbmFtZXNwYWNlIGlmIGZvdW5kIGluIGljb25TZXRzLCBvdGhlcndpc2UgcmV0dXJucyB1bmRlZmluZWQuXHJcbiAgICogQHBhcmFtIGljb25XaXRob3V0TmFtZXNwYWNlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBhc3luYyBnZXRGdWxseVF1YWxpZmllZEljb24oaWNvbldpdGhvdXROYW1lc3BhY2U6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBpZiAodGhpcy5mdWxseVF1YWxpZmllZEljb25CeUljb24uaGFzKGljb25XaXRob3V0TmFtZXNwYWNlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mdWxseVF1YWxpZmllZEljb25CeUljb24uZ2V0KGljb25XaXRob3V0TmFtZXNwYWNlKTtcclxuICAgIH1cclxuICAgIGxldCBpY29uID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuc21hcnRJY29uU2V0cykge1xyXG4gICAgICBmb3IgKGxldCBpY29uU2V0IG9mIHRoaXMuc21hcnRJY29uU2V0cykge1xyXG4gICAgICAgIGlmICghaWNvbikge1xyXG4gICAgICAgICAgbGV0IG5hbWVzcGFjZSA9IGljb25TZXQuaWNvblNldE5hbWU7XHJcbiAgICAgICAgICBsZXQgc3ZnSWNvbiA9IGF3YWl0IHRoaXMubWF0SWNvblJlZ2lzdHJ5XHJcbiAgICAgICAgICAgIC5nZXROYW1lZFN2Z0ljb24oaWNvbldpdGhvdXROYW1lc3BhY2UsIG5hbWVzcGFjZSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7fSk7XHJcbiAgICAgICAgICBpZiAoc3ZnSWNvbikge1xyXG4gICAgICAgICAgICBpY29uID0gYCR7bmFtZXNwYWNlfToke2ljb25XaXRob3V0TmFtZXNwYWNlfWA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZiBpY29uIGlzIHVuZGVmaW5lZCAobm90IGZvdW5kIGluIGljb25zZXQpLCB3ZSBpbmRpY2F0ZSBpdCBpbiBtYXAsIHNvIHdlIGRvbid0IHNlYXJjaCBldmVyeSB0aW1lLlxyXG4gICAgdGhpcy5mdWxseVF1YWxpZmllZEljb25CeUljb24uc2V0KGljb25XaXRob3V0TmFtZXNwYWNlLCBpY29uKTtcclxuICAgIHJldHVybiBpY29uO1xyXG4gIH1cclxufVxyXG4iXX0=