@tetacom/ng-components 1.0.35 → 1.0.38

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 (101) hide show
  1. package/assets/icons.svg +503 -657
  2. package/component/expand-card/expand-card/expand-card.component.d.ts +13 -0
  3. package/component/expand-card/expand-card.module.d.ts +12 -0
  4. package/component/expand-card/public-api.d.ts +2 -0
  5. package/component/file-upload/file-upload.module.d.ts +2 -1
  6. package/component/modal/modal-container/modal-container.component.d.ts +1 -1
  7. package/component/modal/modal.service.d.ts +1 -1
  8. package/component/modal/model/i-modal-result.d.ts +2 -1
  9. package/component/modal/model/modal-instance.d.ts +2 -2
  10. package/component/public-api.d.ts +2 -0
  11. package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -0
  12. package/component/table/enum/select-type.enum.d.ts +2 -2
  13. package/directive/context-menu/context-menu.directive.d.ts +4 -1
  14. package/directive/drag-drop/drag-container.directive.d.ts +32 -0
  15. package/directive/drag-drop/drag-drop.module.d.ts +11 -0
  16. package/directive/drag-drop/drag-drop.service.d.ts +40 -0
  17. package/directive/drag-drop/drag-placeholder.directive.d.ts +6 -0
  18. package/directive/drag-drop/drag-preview.directive.d.ts +8 -0
  19. package/directive/drag-drop/drag.directive.d.ts +31 -0
  20. package/directive/drag-drop/model/drag-container-instance.d.ts +11 -0
  21. package/directive/drag-drop/model/drag-instance.d.ts +9 -0
  22. package/directive/drag-drop/model/drag-process.d.ts +4 -0
  23. package/directive/drag-drop/model/drag-selection.d.ts +6 -0
  24. package/directive/drag-drop/model/drop-event.d.ts +8 -0
  25. package/directive/drag-drop/model/drop-target.d.ts +3 -0
  26. package/directive/drag-drop/model/point.d.ts +4 -0
  27. package/directive/drag-drop/model/public-api.d.ts +7 -0
  28. package/directive/drag-drop/public-api.d.ts +7 -0
  29. package/directive/let/let.directive.d.ts +18 -0
  30. package/directive/let/let.module.d.ts +8 -0
  31. package/directive/let/public-api.d.ts +2 -0
  32. package/directive/public-api.d.ts +2 -1
  33. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  34. package/esm2020/component/dropdown/dropdown-base.mjs +3 -4
  35. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +36 -0
  36. package/esm2020/component/expand-card/expand-card.module.mjs +42 -0
  37. package/esm2020/component/expand-card/public-api.mjs +3 -0
  38. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  39. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +4 -3
  40. package/esm2020/component/file-upload/file-upload.module.mjs +5 -4
  41. package/esm2020/component/modal/modal-container/modal-container.component.mjs +7 -7
  42. package/esm2020/component/modal/modal.service.mjs +1 -1
  43. package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
  44. package/esm2020/component/modal/model/modal-instance.mjs +4 -2
  45. package/esm2020/component/public-api.mjs +5 -1
  46. package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +6 -3
  47. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +2 -2
  48. package/esm2020/component/table/enum/select-type.enum.mjs +3 -3
  49. package/esm2020/component/table/service/table.service.mjs +5 -20
  50. package/esm2020/component/table/table/table.component.mjs +7 -4
  51. package/esm2020/component/table/table-body/table-body.component.mjs +4 -4
  52. package/esm2020/component/table/table-head/table-head.component.mjs +4 -4
  53. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
  54. package/esm2020/directive/context-menu/context-menu.directive.mjs +36 -11
  55. package/esm2020/directive/drag-drop/drag-container.directive.mjs +92 -0
  56. package/esm2020/directive/drag-drop/drag-drop.module.mjs +41 -0
  57. package/esm2020/directive/drag-drop/drag-drop.service.mjs +140 -0
  58. package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +14 -0
  59. package/esm2020/directive/drag-drop/drag-preview.directive.mjs +16 -0
  60. package/esm2020/directive/drag-drop/drag.directive.mjs +128 -0
  61. package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +8 -0
  62. package/esm2020/directive/drag-drop/model/drag-instance.mjs +7 -0
  63. package/esm2020/directive/drag-drop/model/drag-process.mjs +2 -0
  64. package/esm2020/directive/drag-drop/model/drag-selection.mjs +2 -0
  65. package/esm2020/directive/drag-drop/model/drop-event.mjs +2 -0
  66. package/esm2020/directive/drag-drop/model/drop-target.mjs +2 -0
  67. package/esm2020/directive/drag-drop/model/point.mjs +2 -0
  68. package/esm2020/directive/drag-drop/model/public-api.mjs +8 -0
  69. package/esm2020/directive/drag-drop/public-api.mjs +8 -0
  70. package/esm2020/directive/let/let.directive.mjs +38 -0
  71. package/esm2020/directive/let/let.module.mjs +25 -0
  72. package/esm2020/directive/let/public-api.mjs +3 -0
  73. package/esm2020/directive/public-api.mjs +3 -2
  74. package/esm2020/observable/public-api.mjs +2 -0
  75. package/esm2020/observable/zoneObservable.mjs +15 -0
  76. package/esm2020/public-api.mjs +3 -1
  77. package/esm2020/util/date-util.mjs +41 -1
  78. package/esm2020/util/forms-util.mjs +7 -1
  79. package/fesm2015/tetacom-ng-components.mjs +968 -340
  80. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  81. package/fesm2020/tetacom-ng-components.mjs +953 -337
  82. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  83. package/observable/public-api.d.ts +1 -0
  84. package/observable/zoneObservable.d.ts +5 -0
  85. package/package.json +6 -2
  86. package/public-api.d.ts +1 -0
  87. package/style/button.scss +1 -1
  88. package/style/input.scss +1 -1
  89. package/style/layout.scss +30 -2
  90. package/style/list.scss +9 -4
  91. package/style/modal.scss +2 -0
  92. package/style/presets/color-presets.scss +77 -79
  93. package/style/presets/font-presets.scss +21 -21
  94. package/style/presets/shadow-presets.scss +6 -6
  95. package/style/radio.scss +2 -2
  96. package/style/switch.scss +3 -3
  97. package/style/table.scss +1 -2
  98. package/style/toolbar.scss +1 -1
  99. package/style/util/button-util.scss +2 -2
  100. package/util/date-util.d.ts +1 -0
  101. package/util/forms-util.d.ts +1 -0
@@ -0,0 +1,13 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ExpandCardComponent implements OnInit {
4
+ open: boolean;
5
+ openChange: EventEmitter<boolean>;
6
+ showCross: boolean;
7
+ crossClick: EventEmitter<MouseEvent>;
8
+ constructor();
9
+ ngOnInit(): void;
10
+ setOpen(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExpandCardComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExpandCardComponent, "teta-expand-card", ["expand-card"], { "open": "open"; "showCross": "showCross"; }, { "openChange": "openChange"; "crossClick": "crossClick"; }, never, ["head", "*"]>;
13
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./expand-card/expand-card.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../toolbar/toolbar.module";
5
+ import * as i4 from "../button/button.module";
6
+ import * as i5 from "../icon/icon.module";
7
+ import * as i6 from "../delimiter/delimiter.module";
8
+ export declare class ExpandCardModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExpandCardModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ExpandCardModule, [typeof i1.ExpandCardComponent], [typeof i2.CommonModule, typeof i3.ToolbarModule, typeof i4.ButtonModule, typeof i5.IconModule, typeof i6.DelimiterModule], [typeof i1.ExpandCardComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<ExpandCardModule>;
12
+ }
@@ -0,0 +1,2 @@
1
+ export * from './expand-card.module';
2
+ export * from './expand-card/expand-card.component';
@@ -4,8 +4,9 @@ import * as i2 from "./file-item/file-item.component";
4
4
  import * as i3 from "@angular/common";
5
5
  import * as i4 from "../button/button.module";
6
6
  import * as i5 from "../icon/icon.module";
7
+ import * as i6 from "@ngneat/transloco";
7
8
  export declare class FileUploadModule {
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<FileUploadModule, [typeof i1.FileUploadAreaComponent, typeof i2.FileItemComponent], [typeof i3.CommonModule, typeof i4.ButtonModule, typeof i5.IconModule], [typeof i1.FileUploadAreaComponent, typeof i2.FileItemComponent]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FileUploadModule, [typeof i1.FileUploadAreaComponent, typeof i2.FileItemComponent], [typeof i3.CommonModule, typeof i4.ButtonModule, typeof i5.IconModule, typeof i6.TranslocoModule], [typeof i1.FileUploadAreaComponent, typeof i2.FileItemComponent]>;
10
11
  static ɵinj: i0.ɵɵInjectorDeclaration<FileUploadModule>;
11
12
  }
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class ModalContainerComponent {
6
6
  private elRef$;
7
7
  config: IModalConfig;
8
- closeEvent: EventEmitter<IModalResult>;
8
+ closeEvent: EventEmitter<IModalResult<any>>;
9
9
  tabindex: number;
10
10
  dialog: boolean;
11
11
  get classList(): string;
@@ -12,7 +12,7 @@ export declare class ModalService {
12
12
  private readonly _container;
13
13
  constructor(_document: any, _injector: Injector, _factory: DynamicComponentService);
14
14
  closeAll(): void;
15
- create(content: string | TemplateRef<any> | Type<any>, data?: any, config?: IModalConfig, injector?: Injector): ModalInstance;
15
+ create<T = any>(content: string | TemplateRef<any> | Type<any>, data?: any, config?: IModalConfig, injector?: Injector): ModalInstance<T>;
16
16
  private getContext;
17
17
  private getInjector;
18
18
  private register;
@@ -1,9 +1,10 @@
1
1
  import { ModalCloseReason } from './modal-close-reason.enum';
2
- export interface IModalResult {
2
+ export interface IModalResult<T = any> {
3
3
  /**
4
4
  * Любые другие данные которые пользователь желает вернуть при закрытии окна
5
5
  */
6
6
  [key: string]: any;
7
+ data?: T;
7
8
  /**
8
9
  * Причина закрытия окна
9
10
  */
@@ -3,10 +3,10 @@ import { IModalResult } from './i-modal-result';
3
3
  import { ComponentRef } from '@angular/core';
4
4
  import { TetaContentRef } from '../../../common/contract/teta-content-ref';
5
5
  import { ModalContainerComponent } from '../modal-container/modal-container.component';
6
- export declare class ModalInstance {
6
+ export declare class ModalInstance<T = any> {
7
7
  private _window;
8
8
  private _content;
9
- onClose: Observable<IModalResult>;
9
+ onClose: Observable<IModalResult<T>>;
10
10
  private _onClose;
11
11
  constructor(_window: ComponentRef<ModalContainerComponent>, _content: TetaContentRef);
12
12
  get window(): ComponentRef<ModalContainerComponent>;
@@ -5,6 +5,7 @@ export * from './date-picker/public-api';
5
5
  export * from './delimiter/public-api';
6
6
  export * from './dropdown/public-api';
7
7
  export * from './dynamic-component/public-api';
8
+ export * from './expand-card/public-api';
8
9
  export * from './expand-panel/public-api';
9
10
  export * from './file-upload/public-api';
10
11
  export * from './filter/public-api';
@@ -27,3 +28,4 @@ export * from './toggle/public-api';
27
28
  export * from './toolbar/public-api';
28
29
  export * from './tree/public-api';
29
30
  export * from './chart-3d/public-api';
31
+ export * from './resize-panel/public-api';
@@ -6,6 +6,7 @@ export declare class ResizePanelComponent implements OnInit, OnDestroy {
6
6
  private _document;
7
7
  set direction(val: 'vertical' | 'horizontal');
8
8
  get direction(): 'vertical' | 'horizontal';
9
+ get icon(): "moreHorizontal" | "moreVertical";
9
10
  set grabPosition(val: 'top' | 'left' | 'bottom' | 'right');
10
11
  get grabPosition(): 'top' | 'left' | 'bottom' | 'right';
11
12
  name: string;
@@ -1,5 +1,5 @@
1
1
  export declare enum SelectType {
2
2
  none = 0,
3
- multiple = 1,
4
- single = 2
3
+ checkBox = 1,
4
+ mouse = 2
5
5
  }
@@ -2,6 +2,7 @@ import { ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, OnInit, Tem
2
2
  import { DynamicComponentService } from '../../common/service/dynamic-component.service';
3
3
  import { DynamicContentBaseDirective } from '../dynamic-content-base.directive';
4
4
  import { ClickService } from '../../common/service/click.service';
5
+ import { AutoCloseIgnoreCase } from '../../common/contract/auto-close-ignore-case';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class ContextMenuDirective extends DynamicContentBaseDirective implements OnDestroy, OnInit {
7
8
  protected _document: any;
@@ -15,15 +16,17 @@ export declare class ContextMenuDirective extends DynamicContentBaseDirective im
15
16
  * Строка, шаблон или компонент для создания контекстного меню
16
17
  */
17
18
  tetaContextMenu: string | TemplateRef<any> | Type<any>;
19
+ autoCloseIgnore: AutoCloseIgnoreCase[];
18
20
  get _dynamicContent(): string | Type<any> | TemplateRef<any>;
19
21
  private _eventPoint;
20
22
  constructor(_document: any, _elementRef: ElementRef, _service: DynamicComponentService, _injector: Injector, _zone: NgZone, _cdr: ChangeDetectorRef, _click: ClickService);
21
23
  showContent(event: MouseEvent): void;
22
24
  click(event: MouseEvent): void;
25
+ documentClick(event: MouseEvent): void;
23
26
  ngOnInit(): void;
24
27
  ngOnDestroy(): void;
25
28
  protected setPosition(): void;
26
29
  private createMenu;
27
30
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuDirective, never>;
28
- static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuDirective, "[tetaContextMenu]", never, { "tetaContextMenu": "tetaContextMenu"; }, {}, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuDirective, "[tetaContextMenu]", never, { "tetaContextMenu": "tetaContextMenu"; "autoCloseIgnore": "autoCloseIgnore"; }, {}, never>;
29
32
  }
@@ -0,0 +1,32 @@
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { DragContainerInstance } from './model/drag-container-instance';
3
+ import { DragDropService } from './drag-drop.service';
4
+ import { DropTarget } from './model/drop-target';
5
+ import { DropEvent } from './model/drop-event';
6
+ import { DragInstance } from './model/drag-instance';
7
+ import * as i0 from "@angular/core";
8
+ export declare class DragContainerDirective<T> implements OnInit, OnDestroy {
9
+ private _dragService;
10
+ private _elementRef;
11
+ private _viewContainerRef;
12
+ private _zone;
13
+ private _cdr;
14
+ data: T[];
15
+ multiple: boolean;
16
+ allowDrop: boolean;
17
+ tetaDrop: EventEmitter<DropEvent<T>>;
18
+ tetaDragEnter: EventEmitter<DragInstance<T>>;
19
+ private _previewTemplate;
20
+ instance: DragContainerInstance<T>;
21
+ dropTarget: DropTarget<T>;
22
+ private _alive;
23
+ get isDropTarget(): boolean;
24
+ mouseleave(event: any): void;
25
+ mouseover(event: any): void;
26
+ escape(event: any): void;
27
+ constructor(_dragService: DragDropService<T>, _elementRef: ElementRef, _viewContainerRef: ViewContainerRef, _zone: NgZone, _cdr: ChangeDetectorRef);
28
+ ngOnInit(): void;
29
+ ngOnDestroy(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragContainerDirective<any>, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragContainerDirective<any>, "[tetaDragContainer]", ["dragContainer"], { "data": "tetaDragContainer"; "multiple": "multiple"; "allowDrop": "allowDrop"; }, { "tetaDrop": "tetaDrop"; "tetaDragEnter": "tetaDragEnter"; }, ["_previewTemplate"]>;
32
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./drag-container.directive";
3
+ import * as i2 from "./drag.directive";
4
+ import * as i3 from "./drag-preview.directive";
5
+ import * as i4 from "./drag-placeholder.directive";
6
+ import * as i5 from "@angular/common";
7
+ export declare class DragDropModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragDropModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DragDropModule, [typeof i1.DragContainerDirective, typeof i2.DragDirective, typeof i3.DragPreviewDirective, typeof i4.DragPlaceholderDirective], [typeof i5.CommonModule], [typeof i1.DragContainerDirective, typeof i2.DragDirective, typeof i3.DragPreviewDirective, typeof i4.DragPlaceholderDirective]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<DragDropModule>;
11
+ }
@@ -0,0 +1,40 @@
1
+ import { RendererFactory2 } from '@angular/core';
2
+ import { DragInstance } from './model/drag-instance';
3
+ import { DragSelection } from './model/drag-selection';
4
+ import { DragContainerInstance } from './model/drag-container-instance';
5
+ import { Point } from './model/point';
6
+ import { Observable } from 'rxjs';
7
+ import { DragProcess } from './model/drag-process';
8
+ import { DropTarget } from './model/drop-target';
9
+ import { DropEvent } from './model/drop-event';
10
+ import * as i0 from "@angular/core";
11
+ export declare class DragDropService<T> {
12
+ private _document;
13
+ private _rendererFactory;
14
+ selection: DragSelection<T>;
15
+ startPosition: Point;
16
+ dragProcess: DragProcess<T>;
17
+ dropTarget: Observable<DropTarget<T>>;
18
+ dropped: Observable<DropEvent<T>>;
19
+ private dropTarget$;
20
+ private _delta;
21
+ private _renderer;
22
+ private _preview;
23
+ private _previewRef;
24
+ private dropped$;
25
+ constructor(_document: any, _rendererFactory: RendererFactory2);
26
+ setDropTarget(target: DropTarget<T>): void;
27
+ setStartPosition(point: Point): void;
28
+ setSelection(instance: DragInstance<T>, container: DragContainerInstance<T>): void;
29
+ addSelection(instance: DragInstance<T>, container: DragContainerInstance<T>): void;
30
+ clearSelection(): void;
31
+ cancelDrag(): void;
32
+ startProcess(): void;
33
+ stopProcess(): void;
34
+ private getDelta;
35
+ private createPreview;
36
+ private movePreview;
37
+ private destroyPreview;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragDropService<any>, never>;
39
+ static ɵprov: i0.ɵɵInjectableDeclaration<DragDropService<any>>;
40
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DragPlaceholderDirective {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragPlaceholderDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragPlaceholderDirective, "[tetaDragPlaceholder]", never, {}, {}, never>;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DragPreviewDirective {
4
+ templateRef: TemplateRef<any>;
5
+ constructor(templateRef: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragPreviewDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragPreviewDirective, "[tetaDragPreview]", never, {}, {}, never>;
8
+ }
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
2
+ import { DragInstance } from './model/drag-instance';
3
+ import { DragContainerDirective } from './drag-container.directive';
4
+ import { DragDropService } from './drag-drop.service';
5
+ import { DropTarget } from './model/drop-target';
6
+ import { DropEvent } from './model/drop-event';
7
+ import * as i0 from "@angular/core";
8
+ export declare class DragDirective<T> implements OnInit, OnDestroy {
9
+ private _container;
10
+ private _dragService;
11
+ private _zone;
12
+ private _cdr;
13
+ data: T;
14
+ allowDrag: boolean;
15
+ allowDrop: boolean;
16
+ tetaDragEnter: EventEmitter<DragInstance<T>>;
17
+ tetaDrop: EventEmitter<DropEvent<T>>;
18
+ dropTarget: DropTarget<T>;
19
+ instance: DragInstance<T>;
20
+ get selection(): boolean;
21
+ get isDropTarget(): boolean;
22
+ private _alive;
23
+ mousedown(event: any): void;
24
+ mouseenter(event: MouseEvent): void;
25
+ mouseleave(event: any): void;
26
+ constructor(_container: DragContainerDirective<T>, _dragService: DragDropService<T>, _zone: NgZone, _cdr: ChangeDetectorRef);
27
+ ngOnInit(): void;
28
+ ngOnDestroy(): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragDirective<any>, [{ optional: true; skipSelf: true; }, null, null, null]>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragDirective<any>, "[tetaDrag]", ["drag"], { "data": "tetaDrag"; "allowDrag": "allowDrag"; "allowDrop": "allowDrop"; }, { "tetaDragEnter": "tetaDragEnter"; "tetaDrop": "tetaDrop"; }, never>;
31
+ }
@@ -0,0 +1,11 @@
1
+ import { TemplateRef, ViewContainerRef } from '@angular/core';
2
+ export declare class DragContainerInstance<T> {
3
+ data: T[];
4
+ previewTemplate: TemplateRef<any>;
5
+ viewContainer: ViewContainerRef;
6
+ constructor(options: {
7
+ data: T[];
8
+ previewTemplate: TemplateRef<any>;
9
+ viewContainer: ViewContainerRef;
10
+ });
11
+ }
@@ -0,0 +1,9 @@
1
+ import { DragContainerInstance } from './drag-container-instance';
2
+ export declare class DragInstance<T> {
3
+ container: DragContainerInstance<T>;
4
+ data: T;
5
+ constructor(options?: {
6
+ container: DragContainerInstance<T>;
7
+ data: T;
8
+ });
9
+ }
@@ -0,0 +1,4 @@
1
+ import { DragSelection } from './drag-selection';
2
+ export interface DragProcess<T> {
3
+ selection: DragSelection<T>;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { DragContainerInstance } from './drag-container-instance';
2
+ import { DragInstance } from './drag-instance';
3
+ export interface DragSelection<T> {
4
+ container: DragContainerInstance<T>;
5
+ items: DragInstance<T>[];
6
+ }
@@ -0,0 +1,8 @@
1
+ import { DropTarget } from './drop-target';
2
+ import { DragInstance } from './drag-instance';
3
+ import { DragContainerInstance } from './drag-container-instance';
4
+ export interface DropEvent<T> {
5
+ container: DragContainerInstance<T>;
6
+ target: DropTarget<T>;
7
+ data: DragInstance<T>[];
8
+ }
@@ -0,0 +1,3 @@
1
+ import { DragInstance } from './drag-instance';
2
+ import { DragContainerInstance } from './drag-container-instance';
3
+ export declare type DropTarget<T> = DragInstance<T> | DragContainerInstance<T>;
@@ -0,0 +1,4 @@
1
+ export interface Point {
2
+ x: number;
3
+ y: number;
4
+ }
@@ -0,0 +1,7 @@
1
+ export * from './drag-container-instance';
2
+ export * from './drag-instance';
3
+ export * from './drag-process';
4
+ export * from './drag-selection';
5
+ export * from './drop-event';
6
+ export * from './drop-target';
7
+ export * from './point';
@@ -0,0 +1,7 @@
1
+ export * from './drag.directive';
2
+ export * from './drag-container.directive';
3
+ export * from './drag-drop.module';
4
+ export * from './drag-placeholder.directive';
5
+ export * from './drag-preview.directive';
6
+ export * from './drag-drop.service';
7
+ export * from './model/public-api';
@@ -0,0 +1,18 @@
1
+ import { TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LetDirective<T> {
4
+ tetaLet: T;
5
+ constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<LetContext<T>>);
6
+ static ngTemplateContextGuard<T>(_dir: LetDirective<T>, _ctx: any): _ctx is LetDirective<Exclude<T, null | undefined>>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<LetDirective<any>, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LetDirective<any>, "[tetaLet]", never, { "tetaLet": "tetaLet"; }, {}, never>;
9
+ }
10
+ export declare class LetContext<T> implements ContextWithImplicit<T> {
11
+ private readonly internalDirectiveInstance;
12
+ constructor(internalDirectiveInstance: LetDirective<T>);
13
+ get $implicit(): T;
14
+ get tetaLet(): T;
15
+ }
16
+ export interface ContextWithImplicit<T> {
17
+ $implicit: T;
18
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./let.directive";
3
+ import * as i2 from "@angular/common";
4
+ export declare class LetModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<LetModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LetModule, [typeof i1.LetDirective], [typeof i2.CommonModule], [typeof i1.LetDirective]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<LetModule>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './let.module';
2
+ export * from './let.directive';
@@ -1,14 +1,15 @@
1
1
  export * from './click-outside/public-api';
2
2
  export * from './context-menu/public-api';
3
3
  export * from './disable-control/public-api';
4
+ export * from './drag-drop/public-api';
4
5
  export * from './drag-sort/public-api';
5
6
  export * from './dynamic-content-base.directive';
6
7
  export * from './highlight/public-api';
7
8
  export * from './hint/public-api';
8
9
  export * from './loader/public-api';
9
10
  export * from './only-number/public-api';
10
- export * from '../component/resize-panel/public-api';
11
11
  export * from './teta-template/public-api';
12
12
  export * from './tooltip/public-api';
13
13
  export * from './no-autofill/public-api';
14
14
  export * from './resize-drag/public-api';
15
+ export * from './let/public-api';
@@ -100,10 +100,10 @@ export class CheckboxComponent {
100
100
  }
101
101
  }
102
102
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
103
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: i1.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: i1.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
106
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
107
107
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
108
108
  type: HostBinding,
109
109
  args: ['attr.tabindex']
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
131
131
  type: HostListener,
132
132
  args: ['click']
133
133
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQXNCN0I7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO0lBYWtCLENBQUM7SUEvQzlDLElBQ1ksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFH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LGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTFIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1V0FIakIsQ0FBQywrQkFBK0IsQ0FBQywwQkN0QjlDLDhRQU1BOzJGRG1CYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0dBR2pCLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUdNLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTztnQkFTWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUNyQyxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkF1Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIGNsYXNzO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBnZXRDbGFzcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbdGhpcy5jbGFzcywgJ2NoZWNrYm94J107XG4gICAgaWYgKHRoaXMucGFsZXR0ZSkge1xuICAgICAgcmVzdWx0LnB1c2goYGNoZWNrYm94LSR7dGhpcy5wYWxldHRlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIG5vTGFiZWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINC60L7QvNC/0L7QvdC10L3RgiDQvdC10LDQutGC0LjQstC10L1cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hlY2tib3hfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUvZmFsc2Ug0LjQu9C4IGxpc3RcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBiaW5hcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiIFtjbGFzcy5jaGVja2JveF9fdGlja19hY3RpdmVdPVwiY2hlY2tlZCAhPSBmYWxzZVwiPlxuICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ21pbnVzJ1wiPjwvdGV0YS1pY29uPlxuPC9kaXY+XG48c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zXCIgKm5nSWY9XCIhbm9MYWJlbFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQXNCN0I7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO0lBYWtCLENBQUM7SUEvQzlDLElBQ1ksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFH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LGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTFIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1V0FIakIsQ0FBQywrQkFBK0IsQ0FBQywwQkN0QjlDLDZRQU1BOzJGRG1CYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0dBR2pCLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUdNLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTztnQkFTWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUNyQyxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkF1Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIGNsYXNzO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBnZXRDbGFzcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbdGhpcy5jbGFzcywgJ2NoZWNrYm94J107XG4gICAgaWYgKHRoaXMucGFsZXR0ZSkge1xuICAgICAgcmVzdWx0LnB1c2goYGNoZWNrYm94LSR7dGhpcy5wYWxldHRlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIG5vTGFiZWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINC60L7QvNC/0L7QvdC10L3RgiDQvdC10LDQutGC0LjQstC10L1cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hlY2tib3hfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUvZmFsc2Ug0LjQu9C4IGxpc3RcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBiaW5hcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiIFtjbGFzcy5jaGVja2JveF9fdGlja19hY3RpdmVdPVwiY2hlY2tlZCAhPSBmYWxzZVwiPlxuICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ2Rhc2gnXCI+PC90ZXRhLWljb24+XG48L2Rpdj5cbjxzcGFuIGNsYXNzPVwiZm9udC1ib2R5LTNcIiAqbmdJZj1cIiFub0xhYmVsXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
@@ -57,7 +57,7 @@ export class DropdownBase {
57
57
  }
58
58
  click(event) {
59
59
  if (this.open) {
60
- if (!DomUtil.clickedInside(this._body, event)) {
60
+ if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {
61
61
  this.closeDropdown();
62
62
  }
63
63
  }
@@ -71,8 +71,7 @@ export class DropdownBase {
71
71
  if (!this.open ||
72
72
  !this.autoClose ||
73
73
  event.detail === 0 ||
74
- DomUtil.clickedInside(this._head.nativeElement, event) ||
75
- DomUtil.clickedInside(this._body, event)) {
74
+ DomUtil.clickedInside(this._head.nativeElement, event)) {
76
75
  return;
77
76
  }
78
77
  if (DomUtil.clickedInside(this._body, event)) {
@@ -209,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
209
208
  type: HostListener,
210
209
  args: ['window:keyup', ['$event']]
211
210
  }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZHJvcGRvd24vZHJvcGRvd24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUd2RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFlBQVk7SUFnRHZCLFlBQ1ksSUFBdUIsRUFDdkIsU0FBYyxFQUNkLFdBQW9DLEVBQ3BDLEtBQWEsRUFDYixTQUFvQjtRQUpwQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBcER2QixVQUFLLEdBQVUsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBR3BELGFBQVEsR0FBRyxLQUFLLENBQUM7UUF3QmhCLGVBQVUs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QUFLO3NCQUpkLFlBQVk7dUJBQUMscUJBQXFCLEVBQUU7d0JBQ25DLE1BQU0sRUFBRSxLQUFLO3dCQUNiLElBQUksRUFBRSxVQUFVO3FCQUNqQjtnQkFJUyxRQUFRO3NCQURqQixZQUFZO3VCQUFDLHdCQUF3QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkErQnBCLEtBQUs7c0JBQXZDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVlXLGFBQWE7c0JBQXhELFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUJBLEtBQUs7c0JBQTlDLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb21VdGlsfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9kb20tdXRpbCc7XG5pbXBvcnQge1Bvc2l0aW9uVXRpbH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvcG9zaXRpb24tdXRpbCc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQge0Ryb3Bkb3duSGVhZERpcmVjdGl2ZX0gZnJvbSAnLi9kcm9wZG93bi1oZWFkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0Ryb3Bkb3duQ29udGVudERpcmVjdGl2ZX0gZnJvbSAnLi9kcm9wZG93bi1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0F1dG9DbG9zZUlnbm9yZUNhc2V9IGZyb20gJy4uLy4uL2NvbW1vbi9jb250cmFjdC9hdXRvLWNsb3NlLWlnbm9yZS1jYXNlJztcbmltcG9ydCB7SVJlY3R9IGZyb20gJy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLXJlY3QnO1xuaW1wb3J0IHt0YWtlV2hpbGUsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQmFzZSB7XG4gIEBJbnB1dCgpIGFsaWduOiBBbGlnbiA9IEFsaWduLmxlZnQ7XG4gIEBJbnB1dCgpIHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmJvdHRvbTtcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgYmFja2Ryb3AgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBzZXQgb3Blbih2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsICE9IG51bGwgJiYgdmFsICE9PSB0aGlzLl9vcGVuICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIGdldCBjb250YWluZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kVG9Cb2R5XG4gICAgICA/IHRoaXMuX2RvY3VtZW50LmJvZHlcbiAgICAgIDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQElucHV0KCkgYXV0b0Nsb3NlID0gdHJ1ZTtcbiAgQElucHV0KCkgYXV0b0Nsb3NlSWdub3JlOiBBcnJheTxBdXRvQ2xvc2VJZ25vcmVDYXNlPiA9IFsnaW5zaWRlJ107XG5cblxuICBAQ29udGVudENoaWxkKERyb3Bkb3duSGVhZERpcmVjdGl2ZSwge1xuICAgIHN0YXRpYzogZmFsc2UsXG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJvdGVjdGVkIF9oZWFkOiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25Db250ZW50RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG4gIHByb3RlY3RlZCBfY29udGVudDogRHJvcGRvd25Db250ZW50RGlyZWN0aXZlO1xuXG4gIHByb3RlY3RlZCBfYm9keTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIF9iYWNrZHJvcDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIF9vcGVuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgX2RvY3VtZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgX3pvbmU6IE5nWm9uZSxcbiAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5fem9uZS5vblN0YWJsZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoMTAsIHVuZGVmaW5lZCwge3RyYWlsaW5nOiB0cnVlfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2hlYWQ/Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fYm9keSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2hlYWQ/Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fYm9keSkge1xuICAgICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRoaXMuX2hlYWQubmF0aXZlRWxlbWVudCwgdGhpcy5fYm9keSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBjbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIGlmICghRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2JvZHksIGV2ZW50KSkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKERvbVV0aWwuY2xpY2tlZEluc2lkZSh0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIGV2ZW50KSkge1xuICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSkgZG9jdW1lbnRDbGljayhcbiAgICBldmVudDogTW91c2VFdmVudFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5vcGVuIHx8XG4gICAgICAhdGhpcy5hdXRvQ2xvc2UgfHxcbiAgICAgIGV2ZW50LmRldGFpbCA9PT0gMCB8fFxuICAgICAgRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2hlYWQubmF0aXZlRWxlbWVudCwgZXZlbnQpIHx8XG4gICAgICBEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5fYm9keSwgZXZlbnQpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5fYm9keSwgZXZlbnQpKSB7XG4gICAgICBpZiAodGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignaW5zaWRlJykgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignb3V0c2lkZScpIDwgMCkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAnLCBbJyRldmVudCddKSBrZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLm9wZW4gfHxcbiAgICAgICF0aGlzLmF1dG9DbG9zZSB8fFxuICAgICAgWydlc2MnLCAnZW50ZXInXS5ldmVyeShcbiAgICAgICAgKF86ICdlc2MnIHwgJ2VudGVyJykgPT4gdGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZihfKSA+PSAwXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChldmVudC5jb2RlID09PSAnRXNjYXBlJyAmJiB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdlc2MnKSA8IDApIHx8XG4gICAgICAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJyAmJiB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdlbnRlcicpIDwgMClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5fYm9keSAmJiB0aGlzLmNvbnRhaW5lci5jb250YWlucyh0aGlzLl9ib2R5KSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIsIHRoaXMuX2JvZHkpO1xuICAgICAgdGhpcy5fb3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5fYm9keSA9IG51bGw7XG4gICAgICBpZiAodGhpcy5fYmFja2Ryb3ApIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgdGhpcy5fYmFja2Ryb3ApO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3BlbiB8fCAhdGhpcy5fY29udGVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX29wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3Blbik7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLl9yZW5kZXJlcjtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9ib2R5ID0gdGhpcy5fYm9keSB8fCByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCAnZHJvcGRvd24nKTtcbiAgICBpZiAodGhpcy5iYWNrZHJvcCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3AgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2JhY2tkcm9wLCAnZHJvcGRvd24tYmFja2Ryb3AnKTtcbiAgICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIHRoaXMuX2JhY2tkcm9wKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmNsYXNzTmFtZSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMuY2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jbGFzc05hbWUuZm9yRWFjaCgoXykgPT4ge1xuICAgICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lciwgXyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsYXNzTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCB0aGlzLmNsYXNzTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRhaW5lciwgY29udGVudCk7XG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIsIGNvbnRhaW5lcik7XG4gICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2JvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihjb250YWluZXI6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyUG9zaXRpb24gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogY29udGFpbmVyUG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiBjb250YWluZXJQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiBjb250YWluZXJQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRSZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogdGFyZ2V0UG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiB0YXJnZXRQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiB0YXJnZXRQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IHRhcmdldFBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRUcmFuc2Zvcm1lZFBhcmVudCA9IERvbVV0aWwuZmluZFRyYW5zZm9ybWVkUGFyZW50KHRhcmdldCk7XG4gICAgbGV0IHBhcmVudFBvc2l0aW9uID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfTtcbiAgICBpZiAodGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQpIHtcbiAgICAgIHBhcmVudFBvc2l0aW9uID0gdGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBQb3NpdGlvblV0aWwuZ2V0UG9zaXRpb24oXG4gICAgICByZWN0LFxuICAgICAgdGFyZ2V0UmVjdCxcbiAgICAgIHRoaXMuYWxpZ24sXG4gICAgICB0aGlzLnZlcnRpY2FsQWxpZ24sXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIHBhcmVudFBvc2l0aW9uXG4gICAgKTtcblxuICAgIFBvc2l0aW9uVXRpbC5zZXRFbGVtZW50UG9zaXRpb24odGFyZ2V0LCBwb3NpdGlvbik7XG4gIH1cbn1cbiJdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZHJvcGRvd24vZHJvcGRvd24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUd2RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFlBQVk7SUFnRHZCLFlBQ1ksSUFBdUIsRUFDdkIsU0FBYyxFQUNkLFdBQW9DLEVBQ3BDLEtBQWEsRUFDYixTQUFvQjtRQUpwQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBcER2QixVQUFLLEdBQVUsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBR3BELGFBQVEsR0FBRyxLQUFLLENBQUM7UUF3QmhCLGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNqRSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLG9CQUFlLEdBQStCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFZeEQsVUFBSyxHQUF1QixJQUFJLENBQUM7UUFDakMsY0FBUyxHQUF1QixJQUFJLENBQUM7UUFDckMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFTdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO2FBQ2hCLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FDOUM7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN4RDtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBN0RELElBQ0ksSUFBSSxDQUFDLEdBQVk7UUFDbkIsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN2RCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUE0Q2tDLEtBQUssQ0FBQyxLQUFpQjtRQUN4RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1NBQ0Y7YUFBTTtZQUNMLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBRTJDLGFBQWEsQ0FDdkQsS0FBaUI7UUFFakIsSUFDRSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1YsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNmLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNsQixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUN0RDtZQUNBLE9BQU87U0FDUjtRQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUV5QyxLQUFLLENBQUMsS0FBb0I7UUFDbEUsSUFDRSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1YsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNmLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FDcEIsQ0FBQyxDQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQzdELEVBQ0Q7WUFDQSxPQUFPO1NBQ1I7UUFDRCxJQUNFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JFO1lBQ0EsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQzVDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RSxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLFlBQVksS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDM0IsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM5QztTQUNGO1FBQ0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxXQUFXLENBQUMsU0FBc0IsRUFBRSxNQUFtQjtRQUM3RCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXRELE1BQU0sSUFBSSxHQUFVO1lBQ2xCLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHO1lBQzFCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1lBQzVCLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1NBQy9CLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBVTtZQUN4QixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07WUFDN0IsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHO1lBQ3ZCLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSTtZQUN6QixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7U0FDNUIsQ0FBQztRQUVGLE1BQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksY0FBYyxHQUFHO1lBQ25CLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixHQUFHLEVBQUUsQ0FBQztZQUNOLE1BQU0sRUFBRSxDQUFDO1NBQ1YsQ0FBQztRQUNGLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsY0FBYyxHQUFHLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDbEU7UUFFRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUN2QyxJQUFJLEVBQ0osVUFBVSxFQUNWLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGFBQWEsRUFDbEIsQ0FBQyxFQUNELENBQUMsRUFDRCxjQUFjLENBQ2YsQ0FBQztRQUVGLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7eUdBN01VLFlBQVk7NkZBQVosWUFBWSwyY0FrQ1QscUJBQXFCLDJCQUUzQixVQUFVLHdEQUlKLHdCQUF3QjsyRkF4QzNCLFlBQVk7a0JBRnhCLFNBQVM7bU1BR0MsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBcUJJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9JLEtBQUs7c0JBSmQsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRTt3QkFDbkMsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQUlTLFFBQVE7c0JBRGpCLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQStCcEIsS0FBSztzQkFBdkMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWVcsYUFBYTtzQkFBeEQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFzQkEsS0FBSztzQkFBOUMsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVV0aWx9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2RvbS11dGlsJztcbmltcG9ydCB7UG9zaXRpb25VdGlsfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9wb3NpdGlvbi11dGlsJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7RHJvcGRvd25IZWFkRGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLWhlYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7RHJvcGRvd25Db250ZW50RGlyZWN0aXZlfSBmcm9tICcuL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7QXV0b0Nsb3NlSWdub3JlQ2FzZX0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnRyYWN0L2F1dG8tY2xvc2UtaWdub3JlLWNhc2UnO1xuaW1wb3J0IHtJUmVjdH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktcmVjdCc7XG5pbXBvcnQge3Rha2VXaGlsZSwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRHJvcGRvd25CYXNlIHtcbiAgQElucHV0KCkgYWxpZ246IEFsaWduID0gQWxpZ24ubGVmdDtcbiAgQElucHV0KCkgdmVydGljYWxBbGlnbjogVmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uYm90dG9tO1xuICBASW5wdXQoKSBhcHBlbmRUb0JvZHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBiYWNrZHJvcCA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBvcGVuKHZhbDogYm9vbGVhbikge1xuICAgIGlmICh2YWwgIT0gbnVsbCAmJiB2YWwgIT09IHRoaXMuX29wZW4gJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRUb0JvZHlcbiAgICAgID8gdGhpcy5fZG9jdW1lbnQuYm9keVxuICAgICAgOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBASW5wdXQoKSBhdXRvQ2xvc2UgPSB0cnVlO1xuICBASW5wdXQoKSBhdXRvQ2xvc2VJZ25vcmU6IEFycmF5PEF1dG9DbG9zZUlnbm9yZUNhc2U+ID0gWydpbnNpZGUnXTtcblxuXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25IZWFkRGlyZWN0aXZlLCB7XG4gICAgc3RhdGljOiBmYWxzZSxcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwcm90ZWN0ZWQgX2hlYWQ6IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcbiAgcHJvdGVjdGVkIF9jb250ZW50OiBEcm9wZG93bkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgcHJvdGVjdGVkIF9ib2R5OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgX2JhY2tkcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgX29wZW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCBfem9uZTogTmdab25lLFxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLl96b25lLm9uU3RhYmxlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIHRocm90dGxlVGltZSgxMCwgdW5kZWZpbmVkLCB7dHJhaWxpbmc6IHRydWV9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICBpZiAodGhpcy5faGVhZD8ubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9ib2R5KSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5faGVhZD8ubmF0aXZlRWxlbWVudCAmJiB0aGlzLl9ib2R5KSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5faGVhZC5uYXRpdmVFbGVtZW50LCB0aGlzLl9ib2R5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgaWYgKCFEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5fYm9keSwgZXZlbnQpIHx8IHRoaXMuYXV0b0Nsb3NlSWdub3JlLmluZGV4T2YoJ2luc2lkZScpIDwgMCkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKERvbVV0aWwuY2xpY2tlZEluc2lkZSh0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIGV2ZW50KSkge1xuICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSkgZG9jdW1lbnRDbGljayhcbiAgICBldmVudDogTW91c2VFdmVudFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5vcGVuIHx8XG4gICAgICAhdGhpcy5hdXRvQ2xvc2UgfHxcbiAgICAgIGV2ZW50LmRldGFpbCA9PT0gMCB8fFxuICAgICAgRG9tVXRpbC5jbGlja2VkSW5zaWRlKHRoaXMuX2hlYWQubmF0aXZlRWxlbWVudCwgZXZlbnQpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChEb21VdGlsLmNsaWNrZWRJbnNpZGUodGhpcy5fYm9keSwgZXZlbnQpKSB7XG4gICAgICBpZiAodGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignaW5zaWRlJykgPCAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZignb3V0c2lkZScpIDwgMCkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAnLCBbJyRldmVudCddKSBrZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLm9wZW4gfHxcbiAgICAgICF0aGlzLmF1dG9DbG9zZSB8fFxuICAgICAgWydlc2MnLCAnZW50ZXInXS5ldmVyeShcbiAgICAgICAgKF86ICdlc2MnIHwgJ2VudGVyJykgPT4gdGhpcy5hdXRvQ2xvc2VJZ25vcmUuaW5kZXhPZihfKSA+PSAwXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChldmVudC5jb2RlID09PSAnRXNjYXBlJyAmJiB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdlc2MnKSA8IDApIHx8XG4gICAgICAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJyAmJiB0aGlzLmF1dG9DbG9zZUlnbm9yZS5pbmRleE9mKCdlbnRlcicpIDwgMClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5fYm9keSAmJiB0aGlzLmNvbnRhaW5lci5jb250YWlucyh0aGlzLl9ib2R5KSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIsIHRoaXMuX2JvZHkpO1xuICAgICAgdGhpcy5fb3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5fYm9keSA9IG51bGw7XG4gICAgICBpZiAodGhpcy5fYmFja2Ryb3ApIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgdGhpcy5fYmFja2Ryb3ApO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vcGVuKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3BlbiB8fCAhdGhpcy5fY29udGVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX29wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3Blbik7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLl9yZW5kZXJlcjtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLl9ib2R5ID0gdGhpcy5fYm9keSB8fCByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCAnZHJvcGRvd24nKTtcbiAgICBpZiAodGhpcy5iYWNrZHJvcCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3AgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2JhY2tkcm9wLCAnZHJvcGRvd24tYmFja2Ryb3AnKTtcbiAgICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIHRoaXMuX2JhY2tkcm9wKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmNsYXNzTmFtZSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMuY2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jbGFzc05hbWUuZm9yRWFjaCgoXykgPT4ge1xuICAgICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGNvbnRhaW5lciwgXyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsYXNzTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCB0aGlzLmNsYXNzTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRhaW5lciwgY29udGVudCk7XG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIsIGNvbnRhaW5lcik7XG4gICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLl9oZWFkLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2JvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihjb250YWluZXI6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyUG9zaXRpb24gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogY29udGFpbmVyUG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiBjb250YWluZXJQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiBjb250YWluZXJQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRSZWN0OiBJUmVjdCA9IHtcbiAgICAgIGJvdHRvbTogdGFyZ2V0UG9zaXRpb24uYm90dG9tLFxuICAgICAgdG9wOiB0YXJnZXRQb3NpdGlvbi50b3AsXG4gICAgICBsZWZ0OiB0YXJnZXRQb3NpdGlvbi5sZWZ0LFxuICAgICAgcmlnaHQ6IHRhcmdldFBvc2l0aW9uLnJpZ2h0LFxuICAgIH07XG5cbiAgICBjb25zdCB0YXJnZXRUcmFuc2Zvcm1lZFBhcmVudCA9IERvbVV0aWwuZmluZFRyYW5zZm9ybWVkUGFyZW50KHRhcmdldCk7XG4gICAgbGV0IHBhcmVudFBvc2l0aW9uID0ge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgdG9wOiAwLFxuICAgICAgYm90dG9tOiAwXG4gICAgfTtcbiAgICBpZiAodGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQpIHtcbiAgICAgIHBhcmVudFBvc2l0aW9uID0gdGFyZ2V0VHJhbnNmb3JtZWRQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBQb3NpdGlvblV0aWwuZ2V0UG9zaXRpb24oXG4gICAgICByZWN0LFxuICAgICAgdGFyZ2V0UmVjdCxcbiAgICAgIHRoaXMuYWxpZ24sXG4gICAgICB0aGlzLnZlcnRpY2FsQWxpZ24sXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIHBhcmVudFBvc2l0aW9uXG4gICAgKTtcblxuICAgIFBvc2l0aW9uVXRpbC5zZXRFbGVtZW50UG9zaXRpb24odGFyZ2V0LCBwb3NpdGlvbik7XG4gIH1cbn1cbiJdfQ==