ontimize-web-ngx 15.0.2 → 15.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +3 -3
  2. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +3 -3
  3. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +2 -2
  4. package/esm2020/lib/components/form/o-form.component.mjs +2 -2
  5. package/esm2020/lib/components/grid/o-grid.component.mjs +2 -11
  6. package/esm2020/lib/components/input/date-range/o-daterange-picker.component.mjs +6 -5
  7. package/esm2020/lib/components/list/o-list.component.mjs +2 -11
  8. package/esm2020/lib/components/o-service-base-component.class.mjs +2 -2
  9. package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +18 -10
  10. package/esm2020/lib/components/table/o-table.component.mjs +2 -1
  11. package/esm2020/lib/components/tree/o-tree.component.mjs +21 -14
  12. package/esm2020/lib/interfaces/app-menu.interface.mjs +1 -1
  13. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +32 -16
  14. package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +34 -2
  15. package/fesm2015/ontimize-web-ngx.mjs +340 -297
  16. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  17. package/fesm2020/ontimize-web-ngx.mjs +340 -297
  18. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  19. package/lib/components/grid/o-grid.component.d.ts +1 -4
  20. package/lib/components/input/date-range/o-daterange-picker.component.d.ts +1 -0
  21. package/lib/components/list/o-list.component.d.ts +1 -4
  22. package/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.d.ts +3 -3
  23. package/lib/components/tree/o-tree.component.d.ts +4 -1
  24. package/lib/interfaces/app-menu.interface.d.ts +1 -0
  25. package/lib/layouts/card-menu-layout/o-card-menu-layout.component.d.ts +10 -2
  26. package/lib/services/ontimize-export-data-base-provider.service.d.ts +1 -0
  27. package/ontimize.scss +35 -34
  28. package/package.json +1 -1
  29. package/theme.scss +103 -71
  30. package/theming/ontimize-style.scss +18 -7
@@ -1,4 +1,5 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, ViewEncapsulation } from '@angular/core';
2
+ import { PermissionsService } from '../../services';
2
3
  import { AppMenuService } from '../../services/app-menu.service';
3
4
  import { OTranslateService } from '../../services/translate/o-translate.service';
4
5
  import * as i0 from "@angular/core";
@@ -7,7 +8,8 @@ import * as i2 from "../../components/card-menu-item/o-card-menu-item.component"
7
8
  import * as i3 from "@angular/flex-layout/flex";
8
9
  import * as i4 from "@angular/flex-layout/extended";
9
10
  export const DEFAULT_INPUTS_O_MENU_LAYOUT = [
10
- 'parentMenuId : parent-menu-id'
11
+ 'parentMenuId : parent-menu-id',
12
+ 'excludeMenusId : exclude-menus-id'
11
13
  ];
12
14
  export const DEFAULT_OUTPUTS_O_MENU_LAYOUT = [];
13
15
  export class OCardMenuLayoutComponent {
@@ -17,6 +19,7 @@ export class OCardMenuLayoutComponent {
17
19
  this.translateService = this.injector.get(OTranslateService);
18
20
  this.appMenuService = this.injector.get(AppMenuService);
19
21
  this.menuRoots = this.appMenuService.getMenuRoots();
22
+ this.permissionsService = this.injector.get(PermissionsService);
20
23
  this.translateServiceSubscription = this.translateService.onLanguageChanged.subscribe(() => {
21
24
  this.cd.detectChanges();
22
25
  });
@@ -35,7 +38,9 @@ export class OCardMenuLayoutComponent {
35
38
  cardItemsAux = this.menuRoots.filter(item => !this.appMenuService.isMenuGroup(item));
36
39
  }
37
40
  else {
38
- cardItemsAux = this.getItemsFilteredByParentId(this.menuRoots);
41
+ this.parentMenuIds = (this.parentMenuId || '').split(';').map(id => id.trim());
42
+ this.excludeIds = (this.excludeMenusId || '').split(';').map(id => id.trim());
43
+ cardItemsAux = this.getItemsFilteredByParentId(this.menuRoots, this.parentMenuIds);
39
44
  }
40
45
  this.cardItems = cardItemsAux;
41
46
  }
@@ -46,28 +51,39 @@ export class OCardMenuLayoutComponent {
46
51
  this.cardItemsArray = val;
47
52
  this.cd.detectChanges();
48
53
  }
49
- getItemsFilteredByParentId(array) {
50
- let result;
54
+ getItemsFilteredByParentId(array, parentMenuIds) {
55
+ let result = [];
51
56
  const groups = array.filter(item => this.appMenuService.isMenuGroup(item));
52
- for (let i = 0, len = groups.length; i < len; i++) {
53
- const menuGroup = groups[i];
54
- if (menuGroup.id === this.parentMenuId) {
55
- result = menuGroup.items;
56
- break;
57
+ parentMenuIds.forEach(parentMenuId => {
58
+ for (let i = 0, len = groups.length; i < len; i++) {
59
+ const menuGroup = groups[i];
60
+ if (menuGroup.id === parentMenuId) {
61
+ let permissions = this.permissionsService.getMenuPermissions(parentMenuId);
62
+ menuGroup.items.forEach(item => {
63
+ let hidden = permissions?.visible === false || this.excludeIds.includes(item.id);
64
+ item['show-in-card-menu'] = !hidden;
65
+ });
66
+ result = result.concat(menuGroup.items);
67
+ break;
68
+ }
69
+ else {
70
+ const childResult = this.getItemsFilteredByParentId(menuGroup.items, [parentMenuId]);
71
+ if (childResult.length) {
72
+ result = result.concat(childResult);
73
+ break;
74
+ }
75
+ }
57
76
  }
58
- else {
59
- result = this.getItemsFilteredByParentId(menuGroup.items);
60
- }
61
- }
77
+ });
62
78
  return result;
63
79
  }
64
80
  }
65
81
  OCardMenuLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OCardMenuLayoutComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
66
- OCardMenuLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OCardMenuLayoutComponent, selector: "o-card-menu-layout", inputs: { parentMenuId: ["parent-menu-id", "parentMenuId"] }, host: { properties: { "class.o-menu-layout": "true" } }, ngImport: i0, template: "<div fxLayout=\"row wrap\" class=\"scrolling\" fxLayout.lt-md=\"column\" fxLayoutAlign=\"space-around center\" fxLayoutGap=\"8px\">\n <ng-container *ngFor=\"let item of cardItems\">\n <o-card-menu-item *ngIf=\"item['show-in-card-menu'] !== false\" button-text=\"CARD_MENU_LAYOUT.BUTTON_TEXT\" [route]=\"item.route\" [title]=\"item.name\"\n [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [image]=\"item.image\" [detail-component]=\"item.component\"\n [detail-component-inputs]=\"item['component-inputs']\" [ngClass]=\"item.class\">\n </o-card-menu-item>\n </ng-container>\n <ng-content select=\"o-card-menu-item\"></ng-content>\n</div>\n", styles: [".o-menu-layout{position:relative;width:100%}.o-menu-layout .scrolling{width:100%;min-width:100%;min-height:100%;overflow-y:auto}.o-menu-layout .o-card-menu-item{height:45%;margin-bottom:12px;max-width:300px;min-width:300px}.o-menu-layout .o-card-menu-item.compact{height:30%;max-height:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OCardMenuItemComponent, selector: "o-card-menu-item", inputs: ["title", "image", "icon", "tooltip", "button-text", "disabled-button", "main-container-layout", "secondary-container-layout", "route", "detail-component", "detail-component-inputs", "action"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
82
+ OCardMenuLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OCardMenuLayoutComponent, selector: "o-card-menu-layout", inputs: { parentMenuId: ["parent-menu-id", "parentMenuId"], excludeMenusId: ["exclude-menus-id", "excludeMenusId"] }, host: { properties: { "class.o-menu-layout": "true" } }, ngImport: i0, template: "<div fxLayout=\"row wrap\" class=\"scrolling\" fxLayout.lt-md=\"column\" fxLayoutAlign=\"space-around center\" fxLayoutGap=\"8px\">\n <ng-container *ngFor=\"let item of cardItems\">\n <o-card-menu-item *ngIf=\"item['show-in-card-menu'] !== false\" button-text=\"CARD_MENU_LAYOUT.BUTTON_TEXT\" [route]=\"item.route\" [title]=\"item.name\"\n [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [image]=\"item.image\" [detail-component]=\"item.component\"\n [detail-component-inputs]=\"item['component-inputs']\" [ngClass]=\"item.class\">\n </o-card-menu-item>\n </ng-container>\n <ng-content select=\"o-card-menu-item\"></ng-content>\n</div>\n", styles: [".o-menu-layout{position:relative;width:100%}.o-menu-layout .scrolling{width:100%;min-width:100%;min-height:100%;overflow-y:auto}.o-menu-layout .o-card-menu-item{height:45%;margin-bottom:12px;max-width:300px;min-width:300px}.o-menu-layout .o-card-menu-item.compact{height:30%;max-height:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OCardMenuItemComponent, selector: "o-card-menu-item", inputs: ["title", "image", "icon", "tooltip", "button-text", "disabled-button", "main-container-layout", "secondary-container-layout", "route", "detail-component", "detail-component-inputs", "action"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
67
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OCardMenuLayoutComponent, decorators: [{
68
84
  type: Component,
69
85
  args: [{ selector: 'o-card-menu-layout', inputs: DEFAULT_INPUTS_O_MENU_LAYOUT, outputs: DEFAULT_OUTPUTS_O_MENU_LAYOUT, encapsulation: ViewEncapsulation.None, host: {
70
86
  '[class.o-menu-layout]': 'true'
71
87
  }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fxLayout=\"row wrap\" class=\"scrolling\" fxLayout.lt-md=\"column\" fxLayoutAlign=\"space-around center\" fxLayoutGap=\"8px\">\n <ng-container *ngFor=\"let item of cardItems\">\n <o-card-menu-item *ngIf=\"item['show-in-card-menu'] !== false\" button-text=\"CARD_MENU_LAYOUT.BUTTON_TEXT\" [route]=\"item.route\" [title]=\"item.name\"\n [tooltip]=\"item.tooltip\" [icon]=\"item.icon\" [image]=\"item.image\" [detail-component]=\"item.component\"\n [detail-component-inputs]=\"item['component-inputs']\" [ngClass]=\"item.class\">\n </o-card-menu-item>\n </ng-container>\n <ng-content select=\"o-card-menu-item\"></ng-content>\n</div>\n", styles: [".o-menu-layout{position:relative;width:100%}.o-menu-layout .scrolling{width:100%;min-width:100%;min-height:100%;overflow-y:auto}.o-menu-layout .o-card-menu-item{height:45%;margin-bottom:12px;max-width:300px;min-width:300px}.o-menu-layout .o-card-menu-item.compact{height:30%;max-height:250px}\n"] }]
72
88
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2NhcmQtbWVudS1sYXlvdXQvby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2NhcmQtbWVudS1sYXlvdXQvby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBRVIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7O0FBR2pGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLCtCQUErQjtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsRUFDNUMsQ0FBQztBQWNGLE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDVSxRQUFrQixFQUNsQixFQUFxQjtRQURyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBRTdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO2FBQU07WUFDTCxZQUFZLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQW1CO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLDBCQUEwQixDQUFDLEtBQXFCO1FBQ3hELElBQUksTUFBc0IsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUUzRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pELE1BQU0sU0FBUyxHQUFJLE1BQU0sQ0FBQyxDQUFDLENBQWUsQ0FBQztZQUMzQyxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLE1BQU07YUFDUDtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzRDtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7c0hBbEVVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGlMQ25DckMsa3BCQVNBOzRGRDBCYSx3QkFBd0I7a0JBWnBDLFNBQVM7K0JBQ0Usb0JBQW9CLFVBR3RCLDRCQUE0QixXQUMzQiw2QkFBNkIsaUJBQ3ZCLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osdUJBQXVCLEVBQUUsTUFBTTtxQkFDaEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE1lbnVHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBwLW1lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1lbnVSb290SXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUtcm9vdC1pdGVtLnR5cGUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19NRU5VX0xBWU9VVCA9IFtcbiAgJ3BhcmVudE1lbnVJZCA6IHBhcmVudC1tZW51LWlkJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX01FTlVfTEFZT1VUID0gW1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1jYXJkLW1lbnUtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tY2FyZC1tZW51LWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tY2FyZC1tZW51LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fTUVOVV9MQVlPVVQsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX01FTlVfTEFZT1VULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLW1lbnUtbGF5b3V0XSc6ICd0cnVlJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBPQ2FyZE1lbnVMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIGFwcE1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZTtcbiAgcHJvdGVjdGVkIG1lbnVSb290czogTWVudVJvb3RJdGVtW107XG4gIHByb3RlY3RlZCBjYXJkSXRlbXNBcnJheTogTWVudVJvb3RJdGVtW107XG4gIHByb3RlY3RlZCBwYXJlbnRNZW51SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5hcHBNZW51U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcE1lbnVTZXJ2aWNlKTtcbiAgICB0aGlzLm1lbnVSb290cyA9IHRoaXMuYXBwTWVudVNlcnZpY2UuZ2V0TWVudVJvb3RzKCk7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5ndWFnZUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENhcmRNZW51SXRlbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Q2FyZE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICBsZXQgY2FyZEl0ZW1zQXV4ID0gW107XG4gICAgaWYgKCF0aGlzLnBhcmVudE1lbnVJZCkge1xuICAgICAgY2FyZEl0ZW1zQXV4ID0gdGhpcy5tZW51Um9vdHMuZmlsdGVyKGl0ZW0gPT4gIXRoaXMuYXBwTWVudVNlcnZpY2UuaXNNZW51R3JvdXAoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJkSXRlbXNBdXggPSB0aGlzLmdldEl0ZW1zRmlsdGVyZWRCeVBhcmVudElkKHRoaXMubWVudVJvb3RzKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhcmRJdGVtcyA9IGNhcmRJdGVtc0F1eDtcbiAgfVxuXG4gIGdldCBjYXJkSXRlbXMoKTogTWVudVJvb3RJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNhcmRJdGVtc0FycmF5O1xuICB9XG5cbiAgc2V0IGNhcmRJdGVtcyh2YWw6IE1lbnVSb290SXRlbVtdKSB7XG4gICAgdGhpcy5jYXJkSXRlbXNBcnJheSA9IHZhbDtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtc0ZpbHRlcmVkQnlQYXJlbnRJZChhcnJheTogTWVudVJvb3RJdGVtW10pOiBNZW51Um9vdEl0ZW1bXSB7XG4gICAgbGV0IHJlc3VsdDogTWVudVJvb3RJdGVtW107XG4gICAgY29uc3QgZ3JvdXBzID0gYXJyYXkuZmlsdGVyKGl0ZW0gPT4gdGhpcy5hcHBNZW51U2VydmljZS5pc01lbnVHcm91cChpdGVtKSk7XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBtZW51R3JvdXAgPSAoZ3JvdXBzW2ldIGFzIE1lbnVHcm91cCk7XG4gICAgICBpZiAobWVudUdyb3VwLmlkID09PSB0aGlzLnBhcmVudE1lbnVJZCkge1xuICAgICAgICByZXN1bHQgPSBtZW51R3JvdXAuaXRlbXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRJdGVtc0ZpbHRlcmVkQnlQYXJlbnRJZChtZW51R3JvdXAuaXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGNsYXNzPVwic2Nyb2xsaW5nXCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiOHB4XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FyZEl0ZW1zXCI+XG4gICAgPG8tY2FyZC1tZW51LWl0ZW0gKm5nSWY9XCJpdGVtWydzaG93LWluLWNhcmQtbWVudSddICE9PSBmYWxzZVwiIGJ1dHRvbi10ZXh0PVwiQ0FSRF9NRU5VX0xBWU9VVC5CVVRUT05fVEVYVFwiIFtyb3V0ZV09XCJpdGVtLnJvdXRlXCIgW3RpdGxlXT1cIml0ZW0ubmFtZVwiXG4gICAgICBbdG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBbaWNvbl09XCJpdGVtLmljb25cIiBbaW1hZ2VdPVwiaXRlbS5pbWFnZVwiIFtkZXRhaWwtY29tcG9uZW50XT1cIml0ZW0uY29tcG9uZW50XCJcbiAgICAgIFtkZXRhaWwtY29tcG9uZW50LWlucHV0c109XCJpdGVtWydjb21wb25lbnQtaW5wdXRzJ11cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCI+XG4gICAgPC9vLWNhcmQtbWVudS1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiby1jYXJkLW1lbnUtaXRlbVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2NhcmQtbWVudS1sYXlvdXQvby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9sYXlvdXRzL2NhcmQtbWVudS1sYXlvdXQvby1jYXJkLW1lbnUtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1IsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7O0FBSWpGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLCtCQUErQjtJQUMvQixtQ0FBbUM7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEVBQzVDLENBQUM7QUFjRixNQUFNLE9BQU8sd0JBQXdCO0lBZ0JuQyxZQUNVLFFBQWtCLEVBQ2xCLEVBQXFCO1FBRHJCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxj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QUFDLEVBQUU7d0JBQzdCLElBQUksTUFBTSxHQUFHLFdBQVcsRUFBRSxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFFakYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDeEMsTUFBTTtpQkFDUDtxQkFBTTtvQkFDTCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ3JGLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTt3QkFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3BDLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7c0hBM0ZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHlPQ3ZDckMsa3BCQVNBOzRGRDhCYSx3QkFBd0I7a0JBWnBDLFNBQVM7K0JBQ0Usb0JBQW9CLFVBR3RCLDRCQUE0QixXQUMzQiw2QkFBNkIsaUJBQ3ZCLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osdUJBQXVCLEVBQUUsTUFBTTtxQkFDaEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgVHlwZSxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWVudUdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcHAtbWVudS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQXBwTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1Blcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgTWVudVJvb3RJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvbWVudS1yb290LWl0ZW0udHlwZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX01FTlVfTEFZT1VUID0gW1xuICAncGFyZW50TWVudUlkIDogcGFyZW50LW1lbnUtaWQnLFxuICAnZXhjbHVkZU1lbnVzSWQgOiBleGNsdWRlLW1lbnVzLWlkJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX01FTlVfTEFZT1VUID0gW1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1jYXJkLW1lbnUtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tY2FyZC1tZW51LWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tY2FyZC1tZW51LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fTUVOVV9MQVlPVVQsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX01FTlVfTEFZT1VULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLW1lbnUtbGF5b3V0XSc6ICd0cnVlJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBPQ2FyZE1lbnVMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIGFwcE1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZTtcbiAgcHJvdGVjdGVkIG1lbnVSb290czogTWVudVJvb3RJdGVtW107XG4gIHByb3RlY3RlZCBjYXJkSXRlbXNBcnJheTogTWVudVJvb3RJdGVtW107XG4gIHByb3RlY3RlZCBwYXJlbnRNZW51SWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGV4Y2x1ZGVNZW51c0lkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uczogT1Blcm1pc3Npb25zO1xuICBwcm90ZWN0ZWQgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9uc1NlcnZpY2U7XG4gIHByb3RlY3RlZCBwYXJlbnRNZW51SWRzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGV4Y2x1ZGVJZHM6IHN0cmluZ1tdO1xuXG4gIGhpZGRlbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5hcHBNZW51U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcE1lbnVTZXJ2aWNlKTtcbiAgICB0aGlzLm1lbnVSb290cyA9IHRoaXMuYXBwTWVudVNlcnZpY2UuZ2V0TWVudVJvb3RzKCk7XG4gICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxQZXJtaXNzaW9uc1NlcnZpY2U+KFBlcm1pc3Npb25zU2VydmljZSBhcyBUeXBlPFBlcm1pc3Npb25zU2VydmljZT4pO1xuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ3VhZ2VDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDYXJkTWVudUl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldENhcmRNZW51SXRlbXMoKTogdm9pZCB7XG4gICAgbGV0IGNhcmRJdGVtc0F1eCA9IFtdO1xuICAgIGlmICghdGhpcy5wYXJlbnRNZW51SWQpIHtcbiAgICAgIGNhcmRJdGVtc0F1eCA9IHRoaXMubWVudVJvb3RzLmZpbHRlcihpdGVtID0+ICF0aGlzLmFwcE1lbnVTZXJ2aWNlLmlzTWVudUdyb3VwKGl0ZW0pKTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICB0aGlzLnBhcmVudE1lbnVJZHMgPSAodGhpcy5wYXJlbnRNZW51SWQgfHwgJycpLnNwbGl0KCc7JykubWFwKGlkID0+IGlkLnRyaW0oKSk7XG4gICAgICB0aGlzLmV4Y2x1ZGVJZHMgPSAodGhpcy5leGNsdWRlTWVudXNJZCB8fCAnJykuc3BsaXQoJzsnKS5tYXAoaWQgPT4gaWQudHJpbSgpKTtcblxuICAgICAgY2FyZEl0ZW1zQXV4ID0gdGhpcy5nZXRJdGVtc0ZpbHRlcmVkQnlQYXJlbnRJZCh0aGlzLm1lbnVSb290cywgdGhpcy5wYXJlbnRNZW51SWRzKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhcmRJdGVtcyA9IGNhcmRJdGVtc0F1eDtcbiAgfVxuXG4gIGdldCBjYXJkSXRlbXMoKTogTWVudVJvb3RJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNhcmRJdGVtc0FycmF5O1xuICB9XG5cbiAgc2V0IGNhcmRJdGVtcyh2YWw6IE1lbnVSb290SXRlbVtdKSB7XG4gICAgdGhpcy5jYXJkSXRlbXNBcnJheSA9IHZhbDtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtc0ZpbHRlcmVkQnlQYXJlbnRJZChhcnJheTogTWVudVJvb3RJdGVtW10sIHBhcmVudE1lbnVJZHM6IHN0cmluZ1tdKTogTWVudVJvb3RJdGVtW10ge1xuICAgIGxldCByZXN1bHQ6IE1lbnVSb290SXRlbVtdID0gW107XG4gICAgY29uc3QgZ3JvdXBzID0gYXJyYXkuZmlsdGVyKGl0ZW0gPT4gdGhpcy5hcHBNZW51U2VydmljZS5pc01lbnVHcm91cChpdGVtKSk7XG5cbiAgICBwYXJlbnRNZW51SWRzLmZvckVhY2gocGFyZW50TWVudUlkID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBncm91cHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgbWVudUdyb3VwID0gZ3JvdXBzW2ldIGFzIE1lbnVHcm91cDtcbiAgICAgICAgaWYgKG1lbnVHcm91cC5pZCA9PT0gcGFyZW50TWVudUlkKSB7XG4gICAgICAgICAgbGV0IHBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuZ2V0TWVudVBlcm1pc3Npb25zKHBhcmVudE1lbnVJZCk7XG4gICAgICAgICAgbWVudUdyb3VwLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBsZXQgaGlkZGVuID0gcGVybWlzc2lvbnM/LnZpc2libGUgPT09IGZhbHNlIHx8IHRoaXMuZXhjbHVkZUlkcy5pbmNsdWRlcyhpdGVtLmlkKTtcblxuICAgICAgICAgICAgaXRlbVsnc2hvdy1pbi1jYXJkLW1lbnUnXSA9ICFoaWRkZW47XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChtZW51R3JvdXAuaXRlbXMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNoaWxkUmVzdWx0ID0gdGhpcy5nZXRJdGVtc0ZpbHRlcmVkQnlQYXJlbnRJZChtZW51R3JvdXAuaXRlbXMsIFtwYXJlbnRNZW51SWRdKTtcbiAgICAgICAgICBpZiAoY2hpbGRSZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGNoaWxkUmVzdWx0KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG5cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGNsYXNzPVwic2Nyb2xsaW5nXCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiOHB4XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FyZEl0ZW1zXCI+XG4gICAgPG8tY2FyZC1tZW51LWl0ZW0gKm5nSWY9XCJpdGVtWydzaG93LWluLWNhcmQtbWVudSddICE9PSBmYWxzZVwiIGJ1dHRvbi10ZXh0PVwiQ0FSRF9NRU5VX0xBWU9VVC5CVVRUT05fVEVYVFwiIFtyb3V0ZV09XCJpdGVtLnJvdXRlXCIgW3RpdGxlXT1cIml0ZW0ubmFtZVwiXG4gICAgICBbdG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBbaWNvbl09XCJpdGVtLmljb25cIiBbaW1hZ2VdPVwiaXRlbS5pbWFnZVwiIFtkZXRhaWwtY29tcG9uZW50XT1cIml0ZW0uY29tcG9uZW50XCJcbiAgICAgIFtkZXRhaWwtY29tcG9uZW50LWlucHV0c109XCJpdGVtWydjb21wb25lbnQtaW5wdXRzJ11cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCI+XG4gICAgPC9vLWNhcmQtbWVudS1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiby1jYXJkLW1lbnUtaXRlbVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -1,4 +1,6 @@
1
1
  import { Injectable, Injector } from "@angular/core";
2
+ import { FilterExpressionUtils } from "../util/filter-expression.utils";
3
+ import { Util } from "../util/util";
2
4
  import * as i0 from "@angular/core";
3
5
  export class OntimizeExportDataBaseProviderService {
4
6
  constructor(injector) {
@@ -14,7 +16,37 @@ export class OntimizeExportDataBaseProviderService {
14
16
  this.sqlTypes = this.table.getSqlTypes();
15
17
  this.entity = this.table.entity;
16
18
  this.service = this.table.service;
17
- this.filter = this.table.getComponentFilter();
19
+ this.filter = this.getFilterWithBasicExpression();
20
+ }
21
+ getFilterWithBasicExpression() {
22
+ let filter = this.table.getComponentFilter();
23
+ if (Object.keys(filter).length > 0) {
24
+ const parentItemExpr = FilterExpressionUtils.buildExpressionFromObject(filter);
25
+ filter = {};
26
+ filter[FilterExpressionUtils.FILTER_EXPRESSION_KEY] = parentItemExpr;
27
+ }
28
+ const beColFilter = this.table.getColumnFiltersExpression();
29
+ if (beColFilter && !Util.isDefined(filter[FilterExpressionUtils.FILTER_EXPRESSION_KEY])) {
30
+ filter[FilterExpressionUtils.FILTER_EXPRESSION_KEY] = beColFilter;
31
+ }
32
+ else if (beColFilter) {
33
+ filter[FilterExpressionUtils.FILTER_EXPRESSION_KEY] =
34
+ FilterExpressionUtils.buildComplexExpression(filter[FilterExpressionUtils.FILTER_EXPRESSION_KEY], beColFilter, FilterExpressionUtils.OP_AND);
35
+ }
36
+ const quickFilterExpr = Util.isDefined(this.table.oTableQuickFilterComponent) ? this.table.oTableQuickFilterComponent.filterExpression : undefined;
37
+ const filterBuilderExpr = Util.isDefined(this.table.filterBuilder) ? this.table.filterBuilder.getExpression() : undefined;
38
+ let complexExpr = quickFilterExpr || filterBuilderExpr;
39
+ if (quickFilterExpr && filterBuilderExpr) {
40
+ complexExpr = FilterExpressionUtils.buildComplexExpression(quickFilterExpr, filterBuilderExpr, FilterExpressionUtils.OP_AND);
41
+ }
42
+ if (complexExpr && !Util.isDefined(filter[FilterExpressionUtils.BASIC_EXPRESSION_KEY])) {
43
+ filter[FilterExpressionUtils.BASIC_EXPRESSION_KEY] = complexExpr;
44
+ }
45
+ else if (complexExpr) {
46
+ filter[FilterExpressionUtils.BASIC_EXPRESSION_KEY] =
47
+ FilterExpressionUtils.buildComplexExpression(filter[FilterExpressionUtils.BASIC_EXPRESSION_KEY], complexExpr, FilterExpressionUtils.OP_AND);
48
+ }
49
+ return filter;
18
50
  }
19
51
  }
20
52
  OntimizeExportDataBaseProviderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeExportDataBaseProviderService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -22,4 +54,4 @@ OntimizeExportDataBaseProviderService.ɵprov = i0.ɵɵngDeclareInjectable({ minV
22
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeExportDataBaseProviderService, decorators: [{
23
55
  type: Injectable
24
56
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtZXhwb3J0LWRhdGEtYmFzZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL29udGltaXplLWV4cG9ydC1kYXRhLWJhc2UtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJckQsTUFBTSxPQUFPLHFDQUFxQztJQVdoRCxZQUFzQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUksQ0FBQztJQUc3QyxrQkFBa0IsQ0FBQyxLQUFpQjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUcvRixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFHL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBR3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFHaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUdsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNoRCxDQUFDOzttSUFwQ1UscUNBQXFDO3VJQUFyQyxxQ0FBcUM7NEZBQXJDLHFDQUFxQztrQkFEakQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLWJhc2UuY2xhc3NcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9udGltaXplRXhwb3J0RGF0YUJhc2VQcm92aWRlclNlcnZpY2Uge1xuXG4gIHRhYmxlOiBPVGFibGVCYXNlO1xuICBjb2x1bW5zOiBhbnk7XG4gIGNvbHNOb3RJbmNsdWRlZDogc3RyaW5nW11cbiAgY29sdW1uTmFtZXM6IGFueTtcbiAgc3FsVHlwZXM6IGFueTtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgZmlsdGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcikgeyB9XG5cblxuICBpbml0aWFsaXplUHJvdmlkZXIodGFibGU6IE9UYWJsZUJhc2UpIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgLy8gVGFibGUgY29sdW1uc1xuICAgIGNvbnN0IHRhYmxlT3B0aW9ucyA9IHRoaXMudGFibGUub1RhYmxlT3B0aW9ucztcbiAgICB0aGlzLmNvbHNOb3RJbmNsdWRlZCA9IHRoaXMudGFibGUuZ2V0Q29sdW1uc05vdEluY2x1ZGVkKClcbiAgICB0aGlzLmNvbHVtbnMgPSB0YWJsZU9wdGlvbnMudmlzaWJsZUNvbHVtbnMuZmlsdGVyKGMgPT4gdGhpcy5jb2xzTm90SW5jbHVkZWQuaW5kZXhPZihjKSA9PT0gLTEpO1xuXG4gICAgLy8gVGFibGUgY29sdW1uIG5hbWVzXG4gICAgY29uc3QgdGFibGVDb2x1bW5OYW1lcyA9IHRhYmxlT3B0aW9ucy52aXNpYmxlQ29sdW1ucy5maWx0ZXIoYyA9PiB0aGlzLmNvbHNOb3RJbmNsdWRlZC5pbmRleE9mKGMpID09PSAtMSk7XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IHRoaXMudGFibGUuZ2V0Q29sdW1uTmFtZXModGFibGVDb2x1bW5OYW1lcyk7XG5cbiAgICAvLyBUYWJsZSBjb2x1bW4gc3FsVHlwZXNcbiAgICB0aGlzLnNxbFR5cGVzID0gdGhpcy50YWJsZS5nZXRTcWxUeXBlcygpO1xuXG4gICAgLy8gVGFibGUgZW50aXR5XG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLnRhYmxlLmVudGl0eTtcblxuICAgIC8vIFRhYmxlIHNlcnZpY2VcbiAgICB0aGlzLnNlcnZpY2UgPSB0aGlzLnRhYmxlLnNlcnZpY2U7XG5cbiAgICAvLyBUYWJsZSBmaWx0ZXJcbiAgICB0aGlzLmZpbHRlciA9IHRoaXMudGFibGUuZ2V0Q29tcG9uZW50RmlsdGVyKCk7XG4gIH1cblxuXG59Il19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib250aW1pemUtZXhwb3J0LWRhdGEtYmFzZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL29udGltaXplLWV4cG9ydC1kYXRhLWJhc2UtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUlwQyxNQUFNLE9BQU8scUNBQXFDO0lBV2hELFlBQXNCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDO0lBRzdDLGtCQUFrQixDQUFDLEtBQWlCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRy9GLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLElBQUks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Q0FBcUM7dUlBQXJDLHFDQUFxQzs0RkFBckMscUNBQXFDO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT1RhYmxlQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL3RhYmxlL28tdGFibGUtYmFzZS5jbGFzc1wiO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSBcIi4uL3V0aWwvZmlsdGVyLWV4cHJlc3Npb24udXRpbHNcIjtcbmltcG9ydCB7IFV0aWwgfSBmcm9tIFwiLi4vdXRpbC91dGlsXCI7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9udGltaXplRXhwb3J0RGF0YUJhc2VQcm92aWRlclNlcnZpY2Uge1xuXG4gIHRhYmxlOiBPVGFibGVCYXNlO1xuICBjb2x1bW5zOiBhbnk7XG4gIGNvbHNOb3RJbmNsdWRlZDogc3RyaW5nW11cbiAgY29sdW1uTmFtZXM6IGFueTtcbiAgc3FsVHlwZXM6IGFueTtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgZmlsdGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcikgeyB9XG5cblxuICBpbml0aWFsaXplUHJvdmlkZXIodGFibGU6IE9UYWJsZUJhc2UpIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgLy8gVGFibGUgY29sdW1uc1xuICAgIGNvbnN0IHRhYmxlT3B0aW9ucyA9IHRoaXMudGFibGUub1RhYmxlT3B0aW9ucztcbiAgICB0aGlzLmNvbHNOb3RJbmNsdWRlZCA9IHRoaXMudGFibGUuZ2V0Q29sdW1uc05vdEluY2x1ZGVkKClcbiAgICB0aGlzLmNvbHVtbnMgPSB0YWJsZU9wdGlvbnMudmlzaWJsZUNvbHVtbnMuZmlsdGVyKGMgPT4gdGhpcy5jb2xzTm90SW5jbHVkZWQuaW5kZXhPZihjKSA9PT0gLTEpO1xuXG4gICAgLy8gVGFibGUgY29sdW1uIG5hbWVzXG4gICAgY29uc3QgdGFibGVDb2x1bW5OYW1lcyA9IHRhYmxlT3B0aW9ucy52aXNpYmxlQ29sdW1ucy5maWx0ZXIoYyA9PiB0aGlzLmNvbHNOb3RJbmNsdWRlZC5pbmRleE9mKGMpID09PSAtMSk7XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IHRoaXMudGFibGUuZ2V0Q29sdW1uTmFtZXModGFibGVDb2x1bW5OYW1lcyk7XG5cbiAgICAvLyBUYWJsZSBjb2x1bW4gc3FsVHlwZXNcbiAgICB0aGlzLnNxbFR5cGVzID0gdGhpcy50YWJsZS5nZXRTcWxUeXBlcygpO1xuXG4gICAgLy8gVGFibGUgZW50aXR5XG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLnRhYmxlLmVudGl0eTtcblxuICAgIC8vIFRhYmxlIHNlcnZpY2VcbiAgICB0aGlzLnNlcnZpY2UgPSB0aGlzLnRhYmxlLnNlcnZpY2U7XG5cbiAgICAvLyBUYWJsZSBmaWx0ZXJcbiAgICB0aGlzLmZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyV2l0aEJhc2ljRXhwcmVzc2lvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpbHRlcldpdGhCYXNpY0V4cHJlc3Npb24oKTogYW55IHtcbiAgICBsZXQgZmlsdGVyID0gdGhpcy50YWJsZS5nZXRDb21wb25lbnRGaWx0ZXIoKTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhmaWx0ZXIpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHBhcmVudEl0ZW1FeHByID0gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkRXhwcmVzc2lvbkZyb21PYmplY3QoZmlsdGVyKTtcbiAgICAgIGZpbHRlciA9IHt9O1xuICAgICAgZmlsdGVyW0ZpbHRlckV4cHJlc3Npb25VdGlscy5GSUxURVJfRVhQUkVTU0lPTl9LRVldID0gcGFyZW50SXRlbUV4cHI7XG4gICAgfVxuICAgIGNvbnN0IGJlQ29sRmlsdGVyID0gdGhpcy50YWJsZS5nZXRDb2x1bW5GaWx0ZXJzRXhwcmVzc2lvbigpO1xuICAgIC8vIEFkZCBjb2x1bW4gZmlsdGVycyBiYXNpYyBleHByZXNzaW9uIHRvIGN1cnJlbnQgZmlsdGVyXG4gICAgaWYgKGJlQ29sRmlsdGVyICYmICFVdGlsLmlzRGVmaW5lZChmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkZJTFRFUl9FWFBSRVNTSU9OX0tFWV0pKSB7XG4gICAgICBmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkZJTFRFUl9FWFBSRVNTSU9OX0tFWV0gPSBiZUNvbEZpbHRlcjtcbiAgICB9IGVsc2UgaWYgKGJlQ29sRmlsdGVyKSB7XG4gICAgICBmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkZJTFRFUl9FWFBSRVNTSU9OX0tFWV0gPVxuICAgICAgICBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRDb21wbGV4RXhwcmVzc2lvbihmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkZJTFRFUl9FWFBSRVNTSU9OX0tFWV0sIGJlQ29sRmlsdGVyLCBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuT1BfQU5EKTtcblxuICAgIH1cbiAgICBjb25zdCBxdWlja0ZpbHRlckV4cHIgPSBVdGlsLmlzRGVmaW5lZCh0aGlzLnRhYmxlLm9UYWJsZVF1aWNrRmlsdGVyQ29tcG9uZW50KSA/IHRoaXMudGFibGUub1RhYmxlUXVpY2tGaWx0ZXJDb21wb25lbnQuZmlsdGVyRXhwcmVzc2lvbiA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZpbHRlckJ1aWxkZXJFeHByID0gVXRpbC5pc0RlZmluZWQodGhpcy50YWJsZS5maWx0ZXJCdWlsZGVyKSA/IHRoaXMudGFibGUuZmlsdGVyQnVpbGRlci5nZXRFeHByZXNzaW9uKCkgOiB1bmRlZmluZWQ7XG4gICAgbGV0IGNvbXBsZXhFeHByID0gcXVpY2tGaWx0ZXJFeHByIHx8IGZpbHRlckJ1aWxkZXJFeHByO1xuICAgIGlmIChxdWlja0ZpbHRlckV4cHIgJiYgZmlsdGVyQnVpbGRlckV4cHIpIHtcbiAgICAgIGNvbXBsZXhFeHByID0gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24ocXVpY2tGaWx0ZXJFeHByLCBmaWx0ZXJCdWlsZGVyRXhwciwgRmlsdGVyRXhwcmVzc2lvblV0aWxzLk9QX0FORCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBsZXhFeHByICYmICFVdGlsLmlzRGVmaW5lZChmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkJBU0lDX0VYUFJFU1NJT05fS0VZXSkpIHtcbiAgICAgIGZpbHRlcltGaWx0ZXJFeHByZXNzaW9uVXRpbHMuQkFTSUNfRVhQUkVTU0lPTl9LRVldID0gY29tcGxleEV4cHI7XG4gICAgfSBlbHNlIGlmIChjb21wbGV4RXhwcikge1xuICAgICAgZmlsdGVyW0ZpbHRlckV4cHJlc3Npb25VdGlscy5CQVNJQ19FWFBSRVNTSU9OX0tFWV0gPVxuICAgICAgICBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRDb21wbGV4RXhwcmVzc2lvbihmaWx0ZXJbRmlsdGVyRXhwcmVzc2lvblV0aWxzLkJBU0lDX0VYUFJFU1NJT05fS0VZXSwgY29tcGxleEV4cHIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9BTkQpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cbn0iXX0=