coer-elements 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/components/lib/coer-button/coer-button.component.d.ts +2 -2
  2. package/components/lib/coer-filebox/coer-filebox.component.d.ts +1 -1
  3. package/components/lib/coer-grid/coer-grid.component.d.ts +1 -1
  4. package/components/lib/coer-grid/coer-grid.extension.d.ts +1 -1
  5. package/components/lib/coer-grid/coer-grid.templates.d.ts +1 -1
  6. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +1 -1
  7. package/components/lib/coer-page-title/coer-page-title.component.d.ts +1 -1
  8. package/components/lib/coer-switch/coer-switch.component.d.ts +1 -1
  9. package/components/lib/coer-textarea/coer-textarea.component.d.ts +1 -1
  10. package/components/lib/coer-textbox/coer-textbox.component.d.ts +1 -1
  11. package/directives/lib/life-cycle.directive.d.ts +5 -3
  12. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +1 -1
  13. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +1 -1
  14. package/esm2022/components/lib/coer-grid/coer-grid.extension.mjs +1 -1
  15. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +1 -1
  16. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +1 -1
  17. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +1 -1
  18. package/esm2022/directives/lib/life-cycle.directive.mjs +6 -2
  19. package/esm2022/interfaces/index.mjs +36 -2
  20. package/esm2022/interfaces/lib/coer-menu/menu-selected.interface.mjs +2 -0
  21. package/esm2022/interfaces/lib/service/http-request.interface.mjs +2 -0
  22. package/esm2022/interfaces/lib/service/http-response.interface.mjs +2 -0
  23. package/esm2022/interfaces/lib/service/patch.interface.mjs +2 -0
  24. package/esm2022/signals/index.mjs +3 -1
  25. package/esm2022/signals/lib/is-menu-open.signal.mjs +3 -0
  26. package/esm2022/signals/lib/menu.signal.mjs +3 -0
  27. package/esm2022/tools/lib/breadcrumbs.class.mjs +1 -1
  28. package/esm2022/tools/lib/menu.class.mjs +1 -1
  29. package/esm2022/tools/lib/page.class.mjs +1 -1
  30. package/esm2022/tools/lib/screen.class.mjs +1 -1
  31. package/esm2022/tools/lib/source.class.mjs +1 -1
  32. package/fesm2022/coer-elements.mjs +11 -3
  33. package/fesm2022/coer-elements.mjs.map +1 -1
  34. package/interfaces/index.d.ts +30 -1
  35. package/interfaces/lib/coer-menu/menu-selected.interface.d.ts +10 -0
  36. package/interfaces/lib/service/http-request.interface.d.ts +10 -0
  37. package/interfaces/lib/service/http-response.interface.d.ts +6 -0
  38. package/package.json +1 -1
  39. package/signals/index.d.ts +2 -0
  40. package/signals/lib/is-menu-open.signal.d.ts +1 -0
  41. package/signals/lib/menu.signal.d.ts +2 -0
  42. package/src/interfaces/index.ts +48 -3
  43. package/src/interfaces/lib/service/http-request.interface.ts +11 -0
  44. package/src/interfaces/lib/service/http-response.interface.ts +6 -0
  45. package/tools/lib/breadcrumbs.class.d.ts +1 -1
  46. package/tools/lib/menu.class.d.ts +1 -1
  47. package/tools/lib/page.class.d.ts +1 -2
  48. package/tools/lib/screen.class.d.ts +1 -1
  49. package/tools/lib/source.class.d.ts +1 -1
  50. package/esm2022/interfaces/coer-filebox/index.mjs +0 -3
  51. package/esm2022/interfaces/coer-grid/index.mjs +0 -21
  52. package/esm2022/interfaces/lib/patch.interface.mjs +0 -2
  53. package/esm2022/interfaces/page-title/index.mjs +0 -3
  54. package/interfaces/coer-filebox/index.d.ts +0 -2
  55. package/interfaces/coer-grid/index.d.ts +0 -20
  56. package/interfaces/page-title/index.d.ts +0 -2
  57. package/src/interfaces/coer-filebox/index.ts +0 -2
  58. package/src/interfaces/coer-grid/index.ts +0 -20
  59. package/src/interfaces/coer-menu/index.ts +0 -3
  60. package/src/interfaces/page-title/index.ts +0 -2
  61. /package/interfaces/lib/{patch.interface.d.ts → service/patch.interface.d.ts} +0 -0
  62. /package/src/interfaces/lib/{patch.interface.ts → service/patch.interface.ts} +0 -0
@@ -8,7 +8,7 @@ export declare class CoerButton implements OnInit, OnDestroy {
8
8
  id: string;
9
9
  color: import("@angular/core").InputSignal<"warning" | "danger" | "success" | "default" | "primary" | "secondary" | "navigation">;
10
10
  type: import("@angular/core").InputSignal<"icon" | "filled" | "outline" | "icon-outline" | "icon-no-border">;
11
- icon: import("@angular/core").InputSignal<"" | "delete" | "new" | "save" | "cancel" | "import" | "excel" | "menu" | "edit" | "go" | "back">;
11
+ icon: import("@angular/core").InputSignal<"" | "cancel" | "menu" | "delete" | "new" | "save" | "import" | "excel" | "edit" | "go" | "back">;
12
12
  iconPosition: import("@angular/core").InputSignal<"left" | "right">;
13
13
  animation: import("@angular/core").InputSignal<boolean>;
14
14
  isLoading: import("@angular/core").InputSignal<boolean>;
@@ -23,7 +23,7 @@ export declare class CoerButton implements OnInit, OnDestroy {
23
23
  marginBottom: import("@angular/core").InputSignal<string>;
24
24
  marginLeft: import("@angular/core").InputSignal<string>;
25
25
  path: import("@angular/core").InputSignal<string | (string | number)[]>;
26
- tooltipPosition: import("@angular/core").InputSignal<"left" | "right" | "top" | "bottom">;
26
+ tooltipPosition: import("@angular/core").InputSignal<"top" | "bottom" | "left" | "right">;
27
27
  set tooltip(value: string);
28
28
  onClick: EventEmitter<MouseEvent>;
29
29
  protected _isEnable: import("@angular/core").Signal<boolean>;
@@ -1,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { IFile, IFileImage } from '../../../interfaces/coer-filebox';
2
+ import { IFile, IFileImage } from '../../../interfaces';
3
3
  import { CoerAlert } from '../../lib/coer-alert/coer-alert.component';
4
4
  import { CoerModal } from '../../lib/coer-modal/coer-modal.component';
5
5
  import * as i0 from "@angular/core";
@@ -1,5 +1,5 @@
1
1
  import { CoerGridExtension } from './coer-grid.extension';
2
- import { IGridLength } from '../../../interfaces/coer-grid';
2
+ import { IGridLength } from '../../../interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class CoerGrid<T> extends CoerGridExtension<T> {
5
5
  dataSource: import("@angular/core").Signal<T[]>;
@@ -1,4 +1,4 @@
1
- import { IGridButtonByRow, IGridColumn, IGridDataSource, IGridImport, IGridHeaderButton, IGridHeaderExportButton, IGridKeyupEnter, IGridSearch, IGridInputSwitchChange, IGridInputTextbox, IGridSort, IGridCheckbox, IGridInputCheckbox, IGridHeader } from "../../../interfaces/coer-grid";
1
+ import { IGridButtonByRow, IGridColumn, IGridDataSource, IGridImport, IGridHeaderButton, IGridHeaderExportButton, IGridKeyupEnter, IGridSearch, IGridInputSwitchChange, IGridInputTextbox, IGridSort, IGridCheckbox, IGridInputCheckbox, IGridHeader } from "../../../interfaces";
2
2
  import { AfterViewInit, ElementRef } from "@angular/core";
3
3
  import { CoerAlert } from "../../lib/coer-alert/coer-alert.component";
4
4
  import { CoerCheckbox } from "../../lib/coer-checkbox/coer-checkbox.component";
@@ -1,4 +1,4 @@
1
- import { IGridCoerSwitch, IGridCoerTextBox, IGridItem } from "../../../interfaces/coer-grid";
1
+ import { IGridCoerSwitch, IGridCoerTextBox, IGridItem } from "../../../interfaces";
2
2
  export declare const GridTemplates: {
3
3
  /** Template for boolean property */
4
4
  isActiveTemplate: (item: IGridItem<any>) => string;
@@ -31,7 +31,7 @@ export declare class CoerNumberBox extends ControlValue implements OnInit {
31
31
  isReadonly: import("@angular/core").InputSignal<boolean>;
32
32
  isLoading: import("@angular/core").InputSignal<boolean>;
33
33
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
34
- textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
34
+ textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
35
35
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
36
36
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
37
37
  ngOnInit(): void;
@@ -1,4 +1,4 @@
1
- import { IBreadcrumb, IGoBack } from '../../../interfaces/page-title';
1
+ import { IBreadcrumb, IGoBack } from '../../../interfaces';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class CoerPageTitle {
4
4
  title: string | null;
@@ -15,7 +15,7 @@ export declare class CoerSwitch extends ControlValue implements OnInit, OnDestro
15
15
  isDisabled: import("@angular/core").InputSignal<boolean>;
16
16
  isLoading: import("@angular/core").InputSignal<boolean>;
17
17
  isInvisible: import("@angular/core").InputSignal<boolean>;
18
- tooltipPosition: import("@angular/core").InputSignal<"left" | "right" | "top" | "bottom">;
18
+ tooltipPosition: import("@angular/core").InputSignal<"top" | "bottom" | "left" | "right">;
19
19
  set tooltip(value: string);
20
20
  onChange: import("@angular/core").OutputEmitterRef<boolean>;
21
21
  ngOnInit(): void;
@@ -28,7 +28,7 @@ export declare class CoerTextarea extends ControlValue implements OnInit {
28
28
  isLoading: import("@angular/core").InputSignal<boolean>;
29
29
  showFooter: import("@angular/core").InputSignal<boolean>;
30
30
  resize: import("@angular/core").InputSignal<boolean>;
31
- textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
31
+ textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
32
32
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
33
33
  ngOnInit(): void;
34
34
  get value(): string | number | null | undefined;
@@ -29,7 +29,7 @@ export declare class CoerTextBox extends ControlValue implements OnInit {
29
29
  isReadonly: import("@angular/core").InputSignal<boolean>;
30
30
  isLoading: import("@angular/core").InputSignal<boolean>;
31
31
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
32
- textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
32
+ textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
33
33
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
34
34
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
35
35
  onClickClear: import("@angular/core").OutputEmitterRef<void>;
@@ -1,14 +1,16 @@
1
- import { OnDestroy, OnInit, ElementRef, AfterViewInit } from '@angular/core';
1
+ import { OnDestroy, OnInit, ElementRef, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class LifeCycleDirective implements OnInit, AfterViewInit, OnDestroy {
3
+ export declare class LifeCycleDirective implements OnChanges, OnInit, AfterViewInit, OnDestroy {
4
4
  private element;
5
+ OnChanges: import("@angular/core").OutputEmitterRef<SimpleChanges>;
5
6
  onInit: import("@angular/core").OutputEmitterRef<HTMLElement>;
6
7
  afterViewInit: import("@angular/core").OutputEmitterRef<HTMLElement>;
7
8
  onDestroy: import("@angular/core").OutputEmitterRef<HTMLElement>;
8
9
  constructor(element: ElementRef);
10
+ ngOnChanges(changes: SimpleChanges): void;
9
11
  ngOnInit(): void;
10
12
  ngAfterViewInit(): void;
11
13
  ngOnDestroy(): void;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<LifeCycleDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<LifeCycleDirective, "[lifecycle]", never, {}, { "onInit": "onInit"; "afterViewInit": "afterViewInit"; "onDestroy": "onDestroy"; }, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LifeCycleDirective, "[lifecycle]", never, {}, { "OnChanges": "OnChanges"; "onInit": "onInit"; "afterViewInit": "afterViewInit"; "onDestroy": "onDestroy"; }, never, never, false, never>;
14
16
  }
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
101
101
  }], propDecorators: { image: [{
102
102
  type: Input
103
103
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1maWxlYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZmlsZWJveC9jb2VyLWZpbGVib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1maWxlYm94L2NvZXItZmlsZWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQU9qRCxNQUFNLE9BQU8sV0FBVztJQUx4QjtRQU9JLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBRXRDLFVBQVU7UUFDQSxtQkFBYyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBWSxPQUFPLENBQUMsQ0FBQztRQUV6RCxXQUFXO1FBQ0QsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixXQUFNLEdBQXNCLElBQUksQ0FBQztRQUMxQixvQkFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhFLFFBQVE7UUFDRCxTQUFJLEdBQUcsS0FBSyxDQUFVLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBZ0IxQyxTQUFTO1FBQ0YsZUFBVSxHQUFHLE1BQU0sRUFBVyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFdEMsVUFBVTtRQUNBLGNBQVMsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUE4QkgsTUFBTTtRQUNFLHFCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBaUIsRUFBRTtZQUMzRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQWEsQ0FBQztnQkFDN0MsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNwQixJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFHLENBQUM7b0JBQzlCLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzdCLFNBQVMsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3BDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO3dCQUFFLE9BQU8sU0FBUyxDQUFDO2dCQUMvQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtLQWtCSjtJQW5GRyxJQUFhLEtBQUssQ0FBQyxLQUFvQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVsRSxJQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLEtBQUssRUFBRSxLQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDdEQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDOztnQkFFSSxJQUFJLENBQUMsTUFBTSxHQUFJLEtBQUssRUFBRSxLQUFnQixDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBWUQsTUFBTTtJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBVTtRQUNuQyxNQUFNLGFBQWEsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0QsTUFBTSxLQUFLLEdBQVksRUFBRSxDQUFDO1FBQzFCLElBQUksU0FBUyxHQUFrQixJQUFJLENBQUM7UUFDcEMsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUUvQixTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFbkQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNQLElBQUksRUFBRSxJQUFJO29CQUNWLFNBQVMsRUFBRSxTQUFTO29CQUNwQixNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBVztpQkFDdEQsQ0FBQyxDQUFDO1lBQ1AsQ0FBQzs7Z0JBRUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxTQUFTLDRCQUE0QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFvQkQsTUFBTTtJQUNJLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0ksV0FBVyxDQUFDLEtBQVU7UUFDNUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXhHUSxXQUFXO21HQUFYLFdBQVcsbytCQ1p4Qix5dUVBcURNOzs0RkR6Q08sV0FBVztrQkFMdkIsU0FBUzsrQkFDSSxjQUFjOzhCQTBCWCxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElGaWxlLCBJRmlsZUltYWdlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jb2VyLWZpbGVib3gnO1xyXG5pbXBvcnQgeyBDb2VyQWxlcnQgfSBmcm9tICcuLi8uLi9saWIvY29lci1hbGVydC9jb2VyLWFsZXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJNb2RhbCB9IGZyb20gJy4uLy4uL2xpYi9jb2VyLW1vZGFsL2NvZXItbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZXMgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvZmlsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi90b29scyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci1maWxlYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLWZpbGVib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItZmlsZWJveC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJGaWxlYm94IHtcclxuXHJcbiAgICAvL0luamVjdGlvbnNcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydCA9IGluamVjdChDb2VyQWxlcnQpO1xyXG4gICAgcHJvdGVjdGVkIElzTnVsbCA9IFRvb2xzLklzTnVsbDtcclxuICAgIHByb3RlY3RlZCBJc05vdE51bGwgPSBUb29scy5Jc05vdE51bGw7XHJcblxyXG4gICAgLy9FbGVtZW50c1xyXG4gICAgcHJvdGVjdGVkIGlucHV0RmlsZUltYWdlID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdpbnB1dEZpbGVJbWFnZScpO1xyXG4gICAgcHJvdGVjdGVkIG1vZGFsID0gdmlld0NoaWxkLnJlcXVpcmVkPENvZXJNb2RhbD4oJ21vZGFsJyk7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBiYXNlNjQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcHJvdGVjdGVkIF9pbWFnZTogSUZpbGVJbWFnZSB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbWFnZUV4dGVuc2lvbnMgPSBbJ3BuZycsICdqcGVnJywgJ2pwZycsICdnaWYnLCAnc3ZnJ107XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIHB1YmxpYyB0eXBlID0gaW5wdXQ8J2ltYWdlJz4oJ2ltYWdlJyk7XHJcbiAgICBwdWJsaWMgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgQElucHV0KCkgc2V0IGltYWdlKHZhbHVlOiBJRmlsZUltYWdlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX2ltYWdlID0gVG9vbHMuSXNOb3ROdWxsKHZhbHVlKSA/IHZhbHVlIGFzIElGaWxlSW1hZ2UgOiBudWxsO1xyXG5cclxuICAgICAgICBpZihUb29scy5Jc05vdE51bGwodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGlmKCh2YWx1ZT8udmFsdWUgYXMgRmlsZSk/Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIEZpbGVzLkNvbnZlcnRUb0Jhc2U2NCh2YWx1ZT8udmFsdWUgYXMgRmlsZSkudGhlbihiYXNlNjQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2U2NCA9IGJhc2U2NDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIHRoaXMuYmFzZTY0ID0gKHZhbHVlPy52YWx1ZSBhcyBzdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL091dHB1dHNcclxuICAgIHB1YmxpYyBvblNlbGVjdGVkID0gb3V0cHV0PElGaWxlW10+KCk7XHJcbiAgICBwdWJsaWMgb25EZWxldGVJbWFnZSA9IG91dHB1dDx2b2lkPigpO1xyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNFbmFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzTG9hZGluZygpICYmICF0aGlzLmlzRGlzYWJsZWQoKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBhc3luYyBVcGxvYWRJbWFnZXMoZXZlbnQ6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmlsZXM6IEZpbGVbXSA9IEFycmF5LmZyb20oZXZlbnQudGFyZ2V0LmZpbGVzKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsZXM6IElGaWxlW10gPSBbXTtcclxuICAgICAgICBsZXQgZXh0ZW5zaW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2Ygc2VsZWN0ZWRGaWxlcykge1xyXG5cclxuICAgICAgICAgICAgZXh0ZW5zaW9uID0gdGhpcy5HZXRFeHRlbnNpb25GaWxlKGZpbGUubmFtZSkgfHwgJyc7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pbWFnZUV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKSkge1xyXG4gICAgICAgICAgICAgICAgZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICBleHRlbnNpb246IGV4dGVuc2lvbixcclxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IGF3YWl0IEZpbGVzLkNvbnZlcnRUb0Jhc2U2NChmaWxlKSBhcyBzdHJpbmdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIHRoaXMuYWxlcnQuV2FybmluZyhgPGI+LiR7ZXh0ZW5zaW9ufTwvYj4gZXh0ZW5zaW9uIG5vdCBhbGxvd2VkYCwgJ0ZpbGVzJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1Jlc3BvbnNlXHJcbiAgICAgICAgdGhpcy5pbnB1dEZpbGVJbWFnZSgpLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3RlZC5lbWl0KFsuLi5maWxlc10pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgR2V0RXh0ZW5zaW9uRmlsZSA9IChmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcuJykpIHtcclxuICAgICAgICAgICAgbGV0IHdvcmxkcyA9IGZpbGVOYW1lLnNwbGl0KCcuJykgYXMgc3RyaW5nW107XHJcbiAgICAgICAgICAgIGlmICh3b3JsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbiA9IHdvcmxkcy5wb3AoKSE7XHJcbiAgICAgICAgICAgICAgICBleHRlbnNpb24gPSBleHRlbnNpb24udHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9uLmxlbmd0aCA+IDApIHJldHVybiBleHRlbnNpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWxlcnQuV2FybmluZygnVGhlIGZpbGUgZXh0ZW5zaW9uIGNvdWxkIG5vdCBiZSByZWNvZ25pemVkJywgJ0ZpbGVzJyk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIERlbGV0ZUltYWdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uRGVsZXRlSW1hZ2UuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgRXhwYW5kSW1hZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMubW9kYWwoKS5PcGVuKCk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29lci1maWxlYm94XCI+XHJcbiAgICBAaWYodHlwZSgpID09ICdpbWFnZScpIHtcclxuICAgICAgICA8ZmlndXJlIChjbGljayk9XCJfaXNFbmFibGUoKSA/IGlucHV0RmlsZUltYWdlLmNsaWNrKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGFzaGVkJzogSXNOdWxsKF9pbWFnZT8udmFsdWUpIH1cIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCc6IF9pbWFnZT8ubWFyZ2luVG9wIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgJ21hcmdpbi1yaWdodCc6IF9pbWFnZT8ubWFyZ2luUmlnaHQgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6IF9pbWFnZT8ubWFyZ2luQm90dG9tIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgJ21hcmdpbi1sZWZ0JzogX2ltYWdlPy5tYXJnaW5MZWZ0IHx8ICcnXHJcbiAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgIEBpZihpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyLWdsb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJiYXNlNjQgfCBub0ltYWdlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiBfaW1hZ2U/LndpZHRoIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnOiBfaW1hZ2U/Lm1heFdpZHRoIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiBfaW1hZ2U/LmhlaWdodCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCc6IF9pbWFnZT8ubWF4SGVpZ2h0IHx8ICcyMTBweCdcclxuICAgICAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRGaWxlSW1hZ2VcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZywgaW1hZ2UvZ2lmLCBpbWFnZS9zdmcreG1sXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiVXBsb2FkSW1hZ2VzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIj5cclxuXHJcbiAgICAgICAgICAgIEBpZihfaXNFbmFibGUoKSAmJiBJc05vdE51bGwoX2ltYWdlKSAmJiBJc05vdE51bGwoX2ltYWdlIS52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihJc051bGwoX2ltYWdlPy5hbGxvd0RlbGV0ZSkgfHwgX2ltYWdlIS5hbGxvd0RlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRyYXNoLWNhblwiIChjbGljayk9XCJEZWxldGVJbWFnZSgkZXZlbnQpXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKElzTnVsbChfaW1hZ2U/LmFsbG93RXhwYW5kKSB8fCBfaW1hZ2UhLmFsbG93RXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZXhwYW5kXCIgKGNsaWNrKT1cIkV4cGFuZEltYWdlKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZpZ3VyZT5cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIE1vZGFsIC0tPlxyXG4gICAgPGNvZXItbW9kYWwgI21vZGFsIFt0aXRsZV09XCJfaW1hZ2U/Lm5hbWUgfHwgJydcIiBoZWlnaHQ9XCI5MHZoXCIgd2lkdGg9XCJmdWxsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWltYWdlXCIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGJhc2U2NCArICcpJyB9XCI+PC9kaXY+XHJcbiAgICA8L2NvZXItbW9kYWw+XHJcbjwvZGl2PiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1maWxlYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZmlsZWJveC9jb2VyLWZpbGVib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1maWxlYm94L2NvZXItZmlsZWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQU9qRCxNQUFNLE9BQU8sV0FBVztJQUx4QjtRQU9JLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBRXRDLFVBQVU7UUFDQSxtQkFBYyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBWSxPQUFPLENBQUMsQ0FBQztRQUV6RCxXQUFXO1FBQ0QsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixXQUFNLEdBQXNCLElBQUksQ0FBQztRQUMxQixvQkFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0s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LFNBQVMsRUFBRSxTQUFTO29CQUNwQixNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBVztpQkFDdEQsQ0FBQyxDQUFDO1lBQ1AsQ0FBQzs7Z0JBRUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxTQUFTLDRCQUE0QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFvQkQsTUFBTTtJQUNJLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0ksV0FBVyxDQUFDLEtBQVU7UUFDNUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXhHUSxXQUFXO21HQUFYLFdBQVcsbytCQ1p4Qix5dUVBcURNOzs0RkR6Q08sV0FBVztrQkFMdkIsU0FBUzsrQkFDSSxjQUFjOzhCQTBCWCxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElGaWxlLCBJRmlsZUltYWdlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvZXJBbGVydCB9IGZyb20gJy4uLy4uL2xpYi9jb2VyLWFsZXJ0L2NvZXItYWxlcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lck1vZGFsIH0gZnJvbSAnLi4vLi4vbGliL2NvZXItbW9kYWwvY29lci1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi9maWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLWZpbGVib3gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItZmlsZWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1maWxlYm94LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lckZpbGVib3gge1xyXG5cclxuICAgIC8vSW5qZWN0aW9uc1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsZXJ0ID0gaW5qZWN0KENvZXJBbGVydCk7XHJcbiAgICBwcm90ZWN0ZWQgSXNOdWxsID0gVG9vbHMuSXNOdWxsO1xyXG4gICAgcHJvdGVjdGVkIElzTm90TnVsbCA9IFRvb2xzLklzTm90TnVsbDtcclxuXHJcbiAgICAvL0VsZW1lbnRzXHJcbiAgICBwcm90ZWN0ZWQgaW5wdXRGaWxlSW1hZ2UgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2lucHV0RmlsZUltYWdlJyk7XHJcbiAgICBwcm90ZWN0ZWQgbW9kYWwgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8Q29lck1vZGFsPignbW9kYWwnKTtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIGJhc2U2NDogc3RyaW5nID0gJyc7XHJcbiAgICBwcm90ZWN0ZWQgX2ltYWdlOiBJRmlsZUltYWdlIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGltYWdlRXh0ZW5zaW9ucyA9IFsncG5nJywgJ2pwZWcnLCAnanBnJywgJ2dpZicsICdzdmcnXTtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgcHVibGljIHR5cGUgPSBpbnB1dDwnaW1hZ2UnPignaW1hZ2UnKTtcclxuICAgIHB1YmxpYyBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgICBASW5wdXQoKSBzZXQgaW1hZ2UodmFsdWU6IElGaWxlSW1hZ2UgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5faW1hZ2UgPSBUb29scy5Jc05vdE51bGwodmFsdWUpID8gdmFsdWUgYXMgSUZpbGVJbWFnZSA6IG51bGw7XHJcblxyXG4gICAgICAgIGlmKFRvb2xzLklzTm90TnVsbCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgaWYoKHZhbHVlPy52YWx1ZSBhcyBGaWxlKT8ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgRmlsZXMuQ29udmVydFRvQmFzZTY0KHZhbHVlPy52YWx1ZSBhcyBGaWxlKS50aGVuKGJhc2U2NCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZTY0ID0gYmFzZTY0O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5iYXNlNjQgPSAodmFsdWU/LnZhbHVlIGFzIHN0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgcHVibGljIG9uU2VsZWN0ZWQgPSBvdXRwdXQ8SUZpbGVbXT4oKTtcclxuICAgIHB1YmxpYyBvbkRlbGV0ZUltYWdlID0gb3V0cHV0PHZvaWQ+KCk7XHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaXNEaXNhYmxlZCgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIGFzeW5jIFVwbG9hZEltYWdlcyhldmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWxlczogRmlsZVtdID0gQXJyYXkuZnJvbShldmVudC50YXJnZXQuZmlsZXMpO1xyXG5cclxuICAgICAgICBjb25zdCBmaWxlczogSUZpbGVbXSA9IFtdO1xyXG4gICAgICAgIGxldCBleHRlbnNpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBzZWxlY3RlZEZpbGVzKSB7XHJcblxyXG4gICAgICAgICAgICBleHRlbnNpb24gPSB0aGlzLkdldEV4dGVuc2lvbkZpbGUoZmlsZS5uYW1lKSB8fCAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhleHRlbnNpb24pKSB7XHJcbiAgICAgICAgICAgICAgICBmaWxlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogZXh0ZW5zaW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U2NDogYXdhaXQgRmlsZXMuQ29udmVydFRvQmFzZTY0KGZpbGUpIGFzIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5hbGVydC5XYXJuaW5nKGA8Yj4uJHtleHRlbnNpb259PC9iPiBleHRlbnNpb24gbm90IGFsbG93ZWRgLCAnRmlsZXMnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vUmVzcG9uc2VcclxuICAgICAgICB0aGlzLmlucHV0RmlsZUltYWdlKCkubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkLmVtaXQoWy4uLmZpbGVzXSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRFeHRlbnNpb25GaWxlID0gKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcclxuICAgICAgICBpZiAoZmlsZU5hbWUuaW5jbHVkZXMoJy4nKSkge1xyXG4gICAgICAgICAgICBsZXQgd29ybGRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKSBhcyBzdHJpbmdbXTtcclxuICAgICAgICAgICAgaWYgKHdvcmxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZXh0ZW5zaW9uID0gd29ybGRzLnBvcCgpITtcclxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9IGV4dGVuc2lvbi50cmltKCk7XHJcbiAgICAgICAgICAgICAgICBleHRlbnNpb24gPSBleHRlbnNpb24udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgIGlmIChleHRlbnNpb24ubGVuZ3RoID4gMCkgcmV0dXJuIGV4dGVuc2lvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hbGVydC5XYXJuaW5nKCdUaGUgZmlsZSBleHRlbnNpb24gY291bGQgbm90IGJlIHJlY29nbml6ZWQnLCAnRmlsZXMnKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgRGVsZXRlSW1hZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9pc0VuYWJsZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25EZWxldGVJbWFnZS5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBFeHBhbmRJbWFnZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5tb2RhbCgpLk9wZW4oKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb2VyLWZpbGVib3hcIj5cclxuICAgIEBpZih0eXBlKCkgPT0gJ2ltYWdlJykge1xyXG4gICAgICAgIDxmaWd1cmUgKGNsaWNrKT1cIl9pc0VuYWJsZSgpID8gaW5wdXRGaWxlSW1hZ2UuY2xpY2soKSA6IG51bGxcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkYXNoZWQnOiBJc051bGwoX2ltYWdlPy52YWx1ZSkgfVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wJzogX2ltYWdlPy5tYXJnaW5Ub3AgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLXJpZ2h0JzogX2ltYWdlPy5tYXJnaW5SaWdodCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogX2ltYWdlPy5tYXJnaW5Cb3R0b20gfHwgJycsXHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiBfaW1hZ2U/Lm1hcmdpbkxlZnQgfHwgJydcclxuICAgICAgICAgICAgfVwiPlxyXG5cclxuICAgICAgICAgICAgQGlmKGlzTG9hZGluZygpKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItZ2xvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImJhc2U2NCB8IG5vSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICd3aWR0aCc6IF9pbWFnZT8ud2lkdGggfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ21heC13aWR0aCc6IF9pbWFnZT8ubWF4V2lkdGggfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6IF9pbWFnZT8uaGVpZ2h0IHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogX2ltYWdlPy5tYXhIZWlnaHQgfHwgJzIxMHB4J1xyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG5cclxuICAgICAgICAgICAgPGlucHV0ICNpbnB1dEZpbGVJbWFnZVxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvcG5nLCBpbWFnZS9qcGVnLCBpbWFnZS9naWYsIGltYWdlL3N2Zyt4bWxcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJVcGxvYWRJbWFnZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiPlxyXG5cclxuICAgICAgICAgICAgQGlmKF9pc0VuYWJsZSgpICYmIElzTm90TnVsbChfaW1hZ2UpICYmIElzTm90TnVsbChfaW1hZ2UhLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKElzTnVsbChfaW1hZ2U/LmFsbG93RGVsZXRlKSB8fCBfaW1hZ2UhLmFsbG93RGVsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2gtY2FuXCIgKGNsaWNrKT1cIkRlbGV0ZUltYWdlKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYoSXNOdWxsKF9pbWFnZT8uYWxsb3dFeHBhbmQpIHx8IF9pbWFnZSEuYWxsb3dFeHBhbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1leHBhbmRcIiAoY2xpY2spPVwiRXhwYW5kSW1hZ2UoJGV2ZW50KVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmlndXJlPlxyXG4gICAgfVxyXG5cclxuICAgIDwhLS0gTW9kYWwgLS0+XHJcbiAgICA8Y29lci1tb2RhbCAjbW9kYWwgW3RpdGxlXT1cIl9pbWFnZT8ubmFtZSB8fCAnJ1wiIGhlaWdodD1cIjkwdmhcIiB3aWR0aD1cImZ1bGxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaW1hZ2VcIiBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgYmFzZTY0ICsgJyknIH1cIj48L2Rpdj5cclxuICAgIDwvY29lci1tb2RhbD5cclxuPC9kaXY+Il19