ngx-rs-ant 1.9.1 → 1.9.3

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.
@@ -11,8 +11,9 @@ export declare class PluginManager {
11
11
  [id: symbol]: any;
12
12
  };
13
13
  static createComponent(boxItem: BoxItemComponent, index: number, style: any, config: any): any;
14
- static createHoverComponent(viewContainerRef: ViewContainerRef, componentRef: ComponentRef<any>, caption: string): any;
15
- static createActiveComponent(boxItem: BoxItemComponent, index: number, componentRef: ComponentRef<any>, style: any, config: any, showClose: boolean): any;
14
+ static createWrapperDiv(parent: Element, zIndex: number): HTMLDivElement;
15
+ static createHoverComponent(viewContainerRef: ViewContainerRef, wrapperDiv: Element, caption: string): any;
16
+ static createActiveComponent(boxItem: BoxItemComponent, index: number, wrapperDiv: Element, componentRef: ComponentRef<any>, style: any, config: any, showClose: boolean): any;
16
17
  static resetItemConfig(itemConfigContainerRef: ViewContainerRef, item: any, context?: any): void;
17
18
  static resetItemStyle(itemStyleContainerRef: ViewContainerRef, item: any): void;
18
19
  }
@@ -6,8 +6,21 @@ export declare class BoxItemComponent implements OnInit {
6
6
  style: any;
7
7
  config: any;
8
8
  pDirection?: 'row' | 'column';
9
+ wrapperDivIndex: number;
9
10
  get _direction(): any;
10
- get _style(): {};
11
+ get _style(): {
12
+ flex: string;
13
+ height: string;
14
+ width?: undefined;
15
+ } | {
16
+ width: string;
17
+ flex: string;
18
+ height?: undefined;
19
+ } | {
20
+ flex?: undefined;
21
+ height?: undefined;
22
+ width?: undefined;
23
+ };
11
24
  leaveOneItem: EventEmitter<any>;
12
25
  itemHosts: QueryList<BoxItemHostDirective>;
13
26
  ngOnInit(): void;
@@ -17,17 +30,14 @@ export declare class BoxItemComponent implements OnInit {
17
30
  position: string;
18
31
  flex: string;
19
32
  height: string;
20
- pointerEvents: string;
21
33
  width?: undefined;
22
34
  } | {
23
35
  position: string;
24
36
  width: string;
25
37
  flex: string;
26
- pointerEvents: string;
27
38
  height?: undefined;
28
39
  } | {
29
40
  position: string;
30
- pointerEvents: string;
31
41
  flex?: undefined;
32
42
  height?: undefined;
33
43
  width?: undefined;
@@ -13,13 +13,9 @@ export declare class PluginActiveComponent implements OnInit {
13
13
  get _style(): {
14
14
  width?: undefined;
15
15
  height?: undefined;
16
- top?: undefined;
17
- left?: undefined;
18
16
  } | {
19
17
  width: string;
20
18
  height: string;
21
- top: string;
22
- left: string;
23
19
  };
24
20
  ngOnInit(): void;
25
21
  onItemCloseIconClick($event: any): void;
@@ -5,13 +5,9 @@ export declare class PluginHoverComponent {
5
5
  get _style(): {
6
6
  width?: undefined;
7
7
  height?: undefined;
8
- top?: undefined;
9
- left?: undefined;
10
8
  } | {
11
9
  width: string;
12
10
  height: string;
13
- top: string;
14
- left: string;
15
11
  };
16
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PluginHoverComponent, never>;
17
13
  static ɵcmp: i0.ɵɵComponentDeclaration<PluginHoverComponent, "rs-plugin-hover", never, {}, {}, never, never, false, never>;
@@ -70,53 +70,58 @@ export class PluginManager {
70
70
  boxItem.load();
71
71
  };
72
72
  componentRef.location.nativeElement.style.margin = '8px';
73
- componentRef.location.nativeElement.style.pointerEvents = 'all';
74
- for (let child of componentRef.location.nativeElement.children) {
75
- child.style.pointerEvents = 'none';
76
- }
77
- this.createHoverComponent(viewContainerRef, componentRef, plugin.caption);
78
- this.createActiveComponent(boxItem, index, componentRef, style, {
73
+ const wrapperDiv = this.createWrapperDiv(componentRef.location.nativeElement, boxItem.wrapperDivIndex + 1);
74
+ this.createHoverComponent(viewContainerRef, wrapperDiv, plugin.caption);
75
+ this.createActiveComponent(boxItem, index, wrapperDiv, componentRef, style, {
79
76
  caption: plugin.caption,
80
77
  config
81
78
  }, true);
82
79
  }
83
80
  return componentRef;
84
81
  }
85
- static createHoverComponent(viewContainerRef, componentRef, caption) {
82
+ static createWrapperDiv(parent, zIndex) {
83
+ const div = document.createElement('div');
84
+ div.style.position = 'absolute';
85
+ div.style.inset = '8px';
86
+ div.style.cursor = 'pointer';
87
+ div.style.zIndex = String(zIndex);
88
+ return parent.appendChild(div);
89
+ }
90
+ static createHoverComponent(viewContainerRef, wrapperDiv, caption) {
86
91
  const hoverComponentRef = viewContainerRef.createComponent(PluginHoverComponent);
87
92
  hoverComponentRef.instance.name = caption;
88
- hoverComponentRef.instance.targetElement = componentRef.location.nativeElement;
93
+ hoverComponentRef.instance.targetElement = wrapperDiv;
89
94
  const hoverElement = hoverComponentRef.location.nativeElement;
90
- componentRef.location.nativeElement.appendChild(hoverElement);
91
- this.hoverItems.push(componentRef.location.nativeElement);
92
- componentRef.location.nativeElement.addEventListener('mouseenter', ($event) => {
95
+ wrapperDiv.appendChild(hoverElement);
96
+ this.hoverItems.push(wrapperDiv);
97
+ wrapperDiv.addEventListener('mouseenter', ($event) => {
93
98
  for (let hoverItem of this.hoverItems) {
94
99
  hoverItem.classList.remove('plugin-hover');
95
100
  }
96
101
  $event.target.classList.add('plugin-hover');
97
102
  });
98
- componentRef.location.nativeElement.addEventListener('mouseleave', ($event) => {
103
+ wrapperDiv.addEventListener('mouseleave', ($event) => {
99
104
  $event.target.classList.remove('plugin-hover');
100
105
  $event.target.parentElement.parentElement.classList.add('plugin-hover');
101
106
  });
102
107
  return hoverComponentRef;
103
108
  }
104
- static createActiveComponent(boxItem, index, componentRef, style, config, showClose) {
109
+ static createActiveComponent(boxItem, index, wrapperDiv, componentRef, style, config, showClose) {
105
110
  const id = boxItem.boxContainer.id;
106
111
  const viewContainerRef = boxItem.itemHosts.get(index)?.viewContainerRef;
107
112
  const activeComponentRef = viewContainerRef.createComponent(PluginActiveComponent);
108
113
  activeComponentRef.instance.name = config.caption;
109
114
  activeComponentRef.instance.showClose = showClose;
110
- activeComponentRef.instance.targetElement = componentRef.location.nativeElement;
115
+ activeComponentRef.instance.targetElement = wrapperDiv;
111
116
  const activeElement = activeComponentRef.location.nativeElement;
112
- componentRef.location.nativeElement.appendChild(activeElement);
117
+ wrapperDiv.appendChild(activeElement);
113
118
  if (this.activeItems[id]) {
114
- this.activeItems[id].push(componentRef.location.nativeElement);
119
+ this.activeItems[id].push(wrapperDiv);
115
120
  }
116
121
  else {
117
- this.activeItems[id] = [componentRef.location.nativeElement];
122
+ this.activeItems[id] = [wrapperDiv];
118
123
  }
119
- componentRef.location.nativeElement.addEventListener('click', ($event) => {
124
+ wrapperDiv.addEventListener('click', ($event) => {
120
125
  $event.stopPropagation();
121
126
  for (let activeItem of this.activeItems[id]) {
122
127
  activeItem.classList.remove('plugin-active');
@@ -228,4 +233,4 @@ export class PluginManager {
228
233
  PluginManager.hoverItems = [];
229
234
  PluginManager.activeItem = new Subject();
230
235
  PluginManager.activeItems = {};
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDNUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzQyxNQUFNLE9BQU8sYUFBYTtJQUt4QixNQUFNLENBQUMsZUFBZSxDQUFDLE9BQXlCLEVBQUUsS0FBYSxFQUFFLEtBQVUsRUFBRSxNQUFXO1FBQ3RGLElBQUksTUFBTSxHQUFRLGFBQWEsQ0FBQyxHQUFHLENBQUMs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QUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztTQUM5RTthQUFNO1lBQ0wsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBdUMsRUFBRSxJQUFTO1FBQ3RFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxPQUFPO1NBQ1I7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7QUFyTk0sd0JBQVUsR0FBVSxFQUFFLENBQUM7QUFDdkIsd0JBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUN0RCx5QkFBVyxHQUEwQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnY29hc3QtcGx1Z2luLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQbHVnaW5BY3RpdmVDb21wb25lbnR9IGZyb20gJy4vcGx1Z2luLWFjdGl2ZS9wbHVnaW4tYWN0aXZlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGx1Z2luSG92ZXJDb21wb25lbnR9IGZyb20gJy4vcGx1Z2luLWhvdmVyL3BsdWdpbi1ob3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0JveEl0ZW1Db21wb25lbnR9IGZyb20gJy4vYm94LWl0ZW0vYm94LWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtQbHVnaW5Ob3RGb3VuZENvbXBvbmVudH0gZnJvbSBcIi4vcGx1Z2luLW5vdC1mb3VuZC9wbHVnaW4tbm90LWZvdW5kLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbmZpZ0JsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLWNvbmZpZy9jb25maWctYmxhbmsvY29uZmlnLWJsYW5rLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0eWxlQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlL3N0eWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0eWxlQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tc3R5bGUvc3R5bGUtYmxhbmsvc3R5bGUtYmxhbmsuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybUl0ZW1Db25maWdCYXNlfSBmcm9tIFwiLi4vdHlwZXMvY29uZmlnL2Zvcm0taXRlbS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQge1BhZ2VJdGVtQ29uZmlnQmFzZX0gZnJvbSBcIi4uL3R5cGVzL2NvbmZpZy9wYWdlLWl0ZW0tY29uZmlnLWJhc2VcIjtcclxuaW1wb3J0IHtQYWdlSXRlbUNvbXBvbmVudEJhc2V9IGZyb20gXCIuLi90eXBlcy9jb21wb25lbnQvcGFnZS1pdGVtLWNvbXBvbmVudC1iYXNlXCI7XHJcbmltcG9ydCB7Rm9ybUl0ZW1Db21wb25lbnRCYXNlfSBmcm9tIFwiLi4vdHlwZXMvY29tcG9uZW50L2Zvcm0taXRlbS1jb21wb25lbnQtYmFzZVwiO1xyXG5pbXBvcnQge01vZGFsQ29tcG9uZW50QmFzZX0gZnJvbSBcIi4uL3R5cGVzL2NvbXBvbmVudC9tb2RhbC1jb21wb25lbnQtYmFzZVwiO1xyXG5pbXBvcnQge25vdGlmeV9lcnJvcn0gZnJvbSBcIi4uL3V0aWwvdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcclxuICBzdGF0aWMgaG92ZXJJdGVtczogYW55W10gPSBbXTtcclxuICBzdGF0aWMgYWN0aXZlSXRlbSA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN5bWJvbCwgaXRlbTogYW55IH0+KCk7XHJcbiAgc3RhdGljIGFjdGl2ZUl0ZW1zOiB7IFtpZDogc3ltYm9sXTogYW55IH0gPSB7fTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ3BhZ2UnKSkge1xyXG4gICAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIFBhZ2VJdGVtQ29tcG9uZW50QmFzZSkpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdwYWdlIGl0ZW0gY29tcG9uZW50IG5lZWQgZXh0ZW5kaW5nIFBhZ2VJdGVtQ29tcG9uZW50QmFzZSwgbmFtZTogJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9vemhtemdoue7hOS7tuWksei0pe+8micgKyBjb25maWcubmFtZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLmVkaXRNb2RlID0gYm94SXRlbS5ib3hDb250YWluZXIuZWRpdE1vZGU7XHJcbiAgICAgIGluc3RhbmNlLnRhYklkID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX190YWJJZDtcclxuICAgIH1cclxuICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAnZm9ybScpKSB7XHJcbiAgICAgIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgRm9ybUl0ZW1Db21wb25lbnRCYXNlKSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Zvcm0gaXRlbSBjb21wb25lbnQgbmVlZCBleHRlbmRpbmcgRm9ybUl0ZW1Db21wb25lbnRCYXNlLCBuYW1lOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICAgIG5vdGlmeV9lcnJvcign5Yqg6L296KGo5Y2V57uE5Lu25aSx6LSl77yaJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaW5zdGFuY2UuZWRpdE1vZGUgPSBib3hJdGVtLmJveENvbnRhaW5lci5lZGl0TW9kZTtcclxuICAgICAgaW5zdGFuY2UudmFsaWRhdGlvbkdyb3VwTmFtZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fZm9ybS51bmlxdWVJZDtcclxuICAgICAgaW5zdGFuY2UudGVuYW50ID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLnRlbmFudDtcclxuICAgICAgaW5zdGFuY2UuY2xhc3NOYW1lID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLmNsYXNzTmFtZTtcclxuICAgICAgaW5zdGFuY2Uub2lkID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLm9pZDtcclxuICAgICAgaW5zdGFuY2UubW9kZWwgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX21vZGVsO1xyXG4gICAgICBpbnN0YW5jZS5vcGVuZXIgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX29wZW5lcjtcclxuICAgICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaW5zdGFuY2UucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ21vZGFsJykpIHtcclxuICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBNb2RhbENvbXBvbmVudEJhc2UpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignbW9kYWwgY29tcG9uZW50IG5lZWQgZXh0ZW5kaW5nIE1vZGFsQ29tcG9uZW50QmFzZSwgbmFtZTogJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9veaooeeql+e7hOS7tuWksei0pe+8micgKyBjb25maWcubmFtZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLm9wZW5lciA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fb3BlbmVyO1xyXG4gICAgfVxyXG4gICAgaW5zdGFuY2UucGFyYW1zID0gYm94SXRlbS5ib3hDb250YWluZXIucGFyYW1zO1xyXG4gICAgaW5zdGFuY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IGJveEl0ZW0uYm94Q29udGFpbmVyLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICBpZiAoYm94SXRlbS5ib3hDb250YWluZXIuZWRpdE1vZGUpIHtcclxuICAgICAgaW5zdGFuY2Uub25SZW1vdmUgPSAoKSA9PiB7XHJcbiAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5zcGxpY2UoaW5kZXgsIDEsIHt0eXBlOiAnYmxhbmsnLCBzdHlsZTogYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uc3R5bGV9KTtcclxuICAgICAgICBib3hJdGVtLmxvYWQoKTtcclxuICAgICAgfTtcclxuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luID0gJzhweCc7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYWxsJztcclxuICAgICAgZm9yIChsZXQgY2hpbGQgb2YgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pIHtcclxuICAgICAgICBjaGlsZC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZiwgY29tcG9uZW50UmVmLCBwbHVnaW4uY2FwdGlvbik7XHJcbiAgICAgIHRoaXMuY3JlYXRlQWN0aXZlQ29tcG9uZW50KGJveEl0ZW0sIGluZGV4LCBjb21wb25lbnRSZWYsIHN0eWxlLCB7XHJcbiAgICAgICAgY2FwdGlvbjogcGx1Z2luLmNhcHRpb24sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIH0sIHRydWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVIb3ZlckNvbXBvbmVudCh2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LCBjYXB0aW9uOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaG92ZXJDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChQbHVnaW5Ib3ZlckNvbXBvbmVudCk7XHJcbiAgICBob3ZlckNvbXBvbmVudFJlZi5pbnN0YW5jZS5uYW1lID0gY2FwdGlvbjtcclxuICAgIGhvdmVyQ29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldEVsZW1lbnQgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGhvdmVyRWxlbWVudCA9IGhvdmVyQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChob3ZlckVsZW1lbnQpO1xyXG4gICAgdGhpcy5ob3Zlckl0ZW1zLnB1c2goY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBob3Zlckl0ZW0gb2YgdGhpcy5ob3Zlckl0ZW1zKSB7XHJcbiAgICAgICAgaG92ZXJJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgICB9XHJcbiAgICAgICRldmVudC50YXJnZXQuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4taG92ZXInKTtcclxuICAgICAgJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBob3ZlckNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVBY3RpdmVDb21wb25lbnQoYm94SXRlbTogQm94SXRlbUNvbXBvbmVudCwgaW5kZXg6IG51bWJlciwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBhbnksIGNvbmZpZzogYW55LCBzaG93Q2xvc2U6IGJvb2xlYW4pOiBhbnkge1xyXG4gICAgY29uc3QgaWQgPSBib3hJdGVtLmJveENvbnRhaW5lci5pZDtcclxuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IGFueSA9IGJveEl0ZW0uaXRlbUhvc3RzLmdldChpbmRleCk/LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICBjb25zdCBhY3RpdmVDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChQbHVnaW5BY3RpdmVDb21wb25lbnQpO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWUgPSBjb25maWcuY2FwdGlvbjtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93Q2xvc2UgPSBzaG93Q2xvc2U7XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UudGFyZ2V0RWxlbWVudCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYWN0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtc1tpZF0pIHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtc1tpZF0ucHVzaChjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW1zW2lkXSA9IFtjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudF07XHJcbiAgICB9XHJcbiAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGZvciAobGV0IGFjdGl2ZUl0ZW0gb2YgdGhpcy5hY3RpdmVJdGVtc1tpZF0pIHtcclxuICAgICAgICBhY3RpdmVJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1hY3RpdmUnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVJdGVtc1tpZF0uaW5kZXhPZigkZXZlbnQudGFyZ2V0KSA8IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIGl0ZW06IHtib3hJdGVtLCBpbmRleCwgc3R5bGUsIGNvbmZpZzogY29uZmlnLmNvbmZpZywgY29tcG9uZW50UmVmfVxyXG4gICAgICB9KTtcclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4tYWN0aXZlJyk7XHJcbiAgICB9KTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zcGxpdEl0ZW0gPSAoZGlyZWN0aW9uOiAncm93JyB8ICdjb2x1bW4nKSA9PiB7XHJcbiAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xyXG4gICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4ICsgMSwgMCwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnR5cGUgPT09ICdpdGVtJyAmJiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5jb25maWcuZGlyZWN0aW9uID09PSBkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uY29uZmlnLmxpc3QucHVzaCh7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpdGVtJyxcclxuICAgICAgICAgICAgICBzdHlsZTogYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uc3R5bGUsXHJcbiAgICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICBsaXN0OiBbYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0sIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1SZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIGl0ZW06ICcnXHJcbiAgICAgIH0pO1xyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vblJlbW92ZSgpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYWN0aXZlQ29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbUNvbmZpZyhpdGVtQ29uZmlnQ29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpdGVtOiBhbnksIGNvbnRleHQ/OiBhbnkpIHtcclxuICAgIGl0ZW1Db25maWdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChDb25maWdCbGFua0NvbXBvbmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBsdWdpbiA9IFBsdWdpbkZhY3RvcnkuZ2V0KGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGNvbnN0IHBsdWdpbkNvbmZpZyA9IFBsdWdpbkZhY3RvcnkuZ2V0Q29uZmlnKGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGlmIChwbHVnaW5Db25maWcpIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luQ29uZmlnLmNvbXBvbmVudCk7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAncGFnZScpKSB7XHJcbiAgICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBQYWdlSXRlbUNvbmZpZ0Jhc2UpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdwYWdlIGl0ZW0gY29tcG9uZW50IGNvbmZpZyBuZWVkIGV4dGVuZGluZyBQYWdlSXRlbUNvbmZpZ0Jhc2UsIG5hbWU6ICcgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9vemhtemdoue7hOS7tumFjee9ruWksei0pe+8micgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAnZm9ybScpKSB7XHJcbiAgICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBGb3JtSXRlbUNvbmZpZ0Jhc2UpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdmb3JtIGl0ZW0gY29tcG9uZW50IGNvbmZpZyBuZWVkIGV4dGVuZGluZyBGb3JtSXRlbUNvbmZpZ0Jhc2UsIG5hbWU6ICcgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9veihqOWNlee7hOS7tumFjee9ruWksei0pe+8micgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGluc3RhbmNlLnRlbmFudCA9IGNvbnRleHQ/LnRlbmFudDtcclxuICAgICAgICBpbnN0YW5jZS5jbGFzc05hbWUgPSBjb250ZXh0Py5jbGFzc05hbWU7XHJcbiAgICAgICAgaW5zdGFuY2UuZmllbGRUcmVlID0gY29udGV4dD8uZmllbGRUcmVlO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLmNvbmZpZyA9IGl0ZW0uY29uZmlnLnBsdWdpbkNvbmZpZztcclxuICAgICAgaW5zdGFuY2UuY29uZmlnQ2hhbmdlLnN1YnNjcmliZSgocmVsb2FkPzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWxvYWQpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQ29tcG9uZW50KGl0ZW0uYm94SXRlbSwgaXRlbS5pbmRleCwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xyXG4gICAgICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbS5jb21wb25lbnRSZWYuaW5zdGFuY2UsIGl0ZW0uY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpbnN0YW5jZS50YWJWaWV3Q29udGFpbmVyUmVmID0gaXRlbS5ib3hJdGVtLmJveENvbnRhaW5lci50YWJWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQ29uZmlnQmxhbmtDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbVN0eWxlKGl0ZW1TdHlsZUNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFN0eWxlQmxhbmtDb21wb25lbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBpdGVtU3R5bGVDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFN0eWxlQ29tcG9uZW50KTtcclxuICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBpbnN0YW5jZS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDNUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzQyxNQUFNLE9BQU8sYUFBYTtJQUt4QixNQUFNLENBQUMsZUFBZSxDQUFDLE9BQXlCLEVBQUUsS0FBYSxFQUFFLEtBQVUsRUFBRSxNQUFXO1FBQ3RGLElBQUksTUFBTSxHQUFRLGFBQWEsQ0FBQyxHQUFHLENBQUMs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RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RHLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUM3QztxQkFBTTtvQkFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztTQUM5RTthQUFNO1lBQ0wsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBdUMsRUFBRSxJQUFTO1FBQ3RFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxPQUFPO1NBQ1I7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7QUEzTk0sd0JBQVUsR0FBVSxFQUFFLENBQUM7QUFDdkIsd0JBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUN0RCx5QkFBVyxHQUEwQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnY29hc3QtcGx1Z2luLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQbHVnaW5BY3RpdmVDb21wb25lbnR9IGZyb20gJy4vcGx1Z2luLWFjdGl2ZS9wbHVnaW4tYWN0aXZlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGx1Z2luSG92ZXJDb21wb25lbnR9IGZyb20gJy4vcGx1Z2luLWhvdmVyL3BsdWdpbi1ob3Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0JveEl0ZW1Db21wb25lbnR9IGZyb20gJy4vYm94LWl0ZW0vYm94LWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtQbHVnaW5Ob3RGb3VuZENvbXBvbmVudH0gZnJvbSBcIi4vcGx1Z2luLW5vdC1mb3VuZC9wbHVnaW4tbm90LWZvdW5kLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbmZpZ0JsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLWNvbmZpZy9jb25maWctYmxhbmsvY29uZmlnLWJsYW5rLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0eWxlQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlL3N0eWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0eWxlQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tc3R5bGUvc3R5bGUtYmxhbmsvc3R5bGUtYmxhbmsuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybUl0ZW1Db25maWdCYXNlfSBmcm9tIFwiLi4vdHlwZXMvY29uZmlnL2Zvcm0taXRlbS1jb25maWctYmFzZVwiO1xyXG5pbXBvcnQge1BhZ2VJdGVtQ29uZmlnQmFzZX0gZnJvbSBcIi4uL3R5cGVzL2NvbmZpZy9wYWdlLWl0ZW0tY29uZmlnLWJhc2VcIjtcclxuaW1wb3J0IHtQYWdlSXRlbUNvbXBvbmVudEJhc2V9IGZyb20gXCIuLi90eXBlcy9jb21wb25lbnQvcGFnZS1pdGVtLWNvbXBvbmVudC1iYXNlXCI7XHJcbmltcG9ydCB7Rm9ybUl0ZW1Db21wb25lbnRCYXNlfSBmcm9tIFwiLi4vdHlwZXMvY29tcG9uZW50L2Zvcm0taXRlbS1jb21wb25lbnQtYmFzZVwiO1xyXG5pbXBvcnQge01vZGFsQ29tcG9uZW50QmFzZX0gZnJvbSBcIi4uL3R5cGVzL2NvbXBvbmVudC9tb2RhbC1jb21wb25lbnQtYmFzZVwiO1xyXG5pbXBvcnQge25vdGlmeV9lcnJvcn0gZnJvbSBcIi4uL3V0aWwvdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcclxuICBzdGF0aWMgaG92ZXJJdGVtczogYW55W10gPSBbXTtcclxuICBzdGF0aWMgYWN0aXZlSXRlbSA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN5bWJvbCwgaXRlbTogYW55IH0+KCk7XHJcbiAgc3RhdGljIGFjdGl2ZUl0ZW1zOiB7IFtpZDogc3ltYm9sXTogYW55IH0gPSB7fTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ3BhZ2UnKSkge1xyXG4gICAgICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIFBhZ2VJdGVtQ29tcG9uZW50QmFzZSkpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdwYWdlIGl0ZW0gY29tcG9uZW50IG5lZWQgZXh0ZW5kaW5nIFBhZ2VJdGVtQ29tcG9uZW50QmFzZSwgbmFtZTogJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9vemhtemdoue7hOS7tuWksei0pe+8micgKyBjb25maWcubmFtZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLmVkaXRNb2RlID0gYm94SXRlbS5ib3hDb250YWluZXIuZWRpdE1vZGU7XHJcbiAgICAgIGluc3RhbmNlLnRhYklkID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX190YWJJZDtcclxuICAgIH1cclxuICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAnZm9ybScpKSB7XHJcbiAgICAgIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgRm9ybUl0ZW1Db21wb25lbnRCYXNlKSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Zvcm0gaXRlbSBjb21wb25lbnQgbmVlZCBleHRlbmRpbmcgRm9ybUl0ZW1Db21wb25lbnRCYXNlLCBuYW1lOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICAgIG5vdGlmeV9lcnJvcign5Yqg6L296KGo5Y2V57uE5Lu25aSx6LSl77yaJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaW5zdGFuY2UuZWRpdE1vZGUgPSBib3hJdGVtLmJveENvbnRhaW5lci5lZGl0TW9kZTtcclxuICAgICAgaW5zdGFuY2UudmFsaWRhdGlvbkdyb3VwTmFtZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fZm9ybS51bmlxdWVJZDtcclxuICAgICAgaW5zdGFuY2UudGVuYW50ID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLnRlbmFudDtcclxuICAgICAgaW5zdGFuY2UuY2xhc3NOYW1lID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLmNsYXNzTmFtZTtcclxuICAgICAgaW5zdGFuY2Uub2lkID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLm9pZDtcclxuICAgICAgaW5zdGFuY2UubW9kZWwgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX21vZGVsO1xyXG4gICAgICBpbnN0YW5jZS5vcGVuZXIgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX29wZW5lcjtcclxuICAgICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaW5zdGFuY2UucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ21vZGFsJykpIHtcclxuICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBNb2RhbENvbXBvbmVudEJhc2UpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignbW9kYWwgY29tcG9uZW50IG5lZWQgZXh0ZW5kaW5nIE1vZGFsQ29tcG9uZW50QmFzZSwgbmFtZTogJyArIGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9veaooeeql+e7hOS7tuWksei0pe+8micgKyBjb25maWcubmFtZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLm9wZW5lciA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fb3BlbmVyO1xyXG4gICAgfVxyXG4gICAgaW5zdGFuY2UucGFyYW1zID0gYm94SXRlbS5ib3hDb250YWluZXIucGFyYW1zO1xyXG4gICAgaW5zdGFuY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IGJveEl0ZW0uYm94Q29udGFpbmVyLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICBpZiAoYm94SXRlbS5ib3hDb250YWluZXIuZWRpdE1vZGUpIHtcclxuICAgICAgaW5zdGFuY2Uub25SZW1vdmUgPSAoKSA9PiB7XHJcbiAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5zcGxpY2UoaW5kZXgsIDEsIHt0eXBlOiAnYmxhbmsnLCBzdHlsZTogYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uc3R5bGV9KTtcclxuICAgICAgICBib3hJdGVtLmxvYWQoKTtcclxuICAgICAgfTtcclxuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luID0gJzhweCc7XHJcbiAgICAgIGNvbnN0IHdyYXBwZXJEaXYgPSB0aGlzLmNyZWF0ZVdyYXBwZXJEaXYoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIGJveEl0ZW0ud3JhcHBlckRpdkluZGV4ICsgMSk7XHJcbiAgICAgIHRoaXMuY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZiwgd3JhcHBlckRpdiwgcGx1Z2luLmNhcHRpb24pO1xyXG4gICAgICB0aGlzLmNyZWF0ZUFjdGl2ZUNvbXBvbmVudChib3hJdGVtLCBpbmRleCwgd3JhcHBlckRpdiwgY29tcG9uZW50UmVmLCBzdHlsZSwge1xyXG4gICAgICAgIGNhcHRpb246IHBsdWdpbi5jYXB0aW9uLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICB9LCB0cnVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlV3JhcHBlckRpdihwYXJlbnQ6IEVsZW1lbnQsIHpJbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICBkaXYuc3R5bGUuaW5zZXQgPSAnOHB4JztcclxuICAgIGRpdi5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XHJcbiAgICBkaXYuc3R5bGUuekluZGV4ID0gU3RyaW5nKHpJbmRleCk7XHJcbiAgICByZXR1cm4gcGFyZW50LmFwcGVuZENoaWxkKGRpdik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgd3JhcHBlckRpdjogRWxlbWVudCwgY2FwdGlvbjogc3RyaW5nKTogYW55IHtcclxuICAgIGNvbnN0IGhvdmVyQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoUGx1Z2luSG92ZXJDb21wb25lbnQpO1xyXG4gICAgaG92ZXJDb21wb25lbnRSZWYuaW5zdGFuY2UubmFtZSA9IGNhcHRpb247XHJcbiAgICBob3ZlckNvbXBvbmVudFJlZi5pbnN0YW5jZS50YXJnZXRFbGVtZW50ID0gd3JhcHBlckRpdjtcclxuICAgIGNvbnN0IGhvdmVyRWxlbWVudCA9IGhvdmVyQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB3cmFwcGVyRGl2LmFwcGVuZENoaWxkKGhvdmVyRWxlbWVudCk7XHJcbiAgICB0aGlzLmhvdmVySXRlbXMucHVzaCh3cmFwcGVyRGl2KTtcclxuICAgIHdyYXBwZXJEaXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBob3Zlckl0ZW0gb2YgdGhpcy5ob3Zlckl0ZW1zKSB7XHJcbiAgICAgICAgaG92ZXJJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgICB9XHJcbiAgICAgICRldmVudC50YXJnZXQuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICB9KTtcclxuICAgIHdyYXBwZXJEaXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4taG92ZXInKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGhvdmVyQ29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZUFjdGl2ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCB3cmFwcGVyRGl2OiBFbGVtZW50LCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGFueSwgY29uZmlnOiBhbnksIHNob3dDbG9zZTogYm9vbGVhbik6IGFueSB7XHJcbiAgICBjb25zdCBpZCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmlkO1xyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZjogYW55ID0gYm94SXRlbS5pdGVtSG9zdHMuZ2V0KGluZGV4KT8udmlld0NvbnRhaW5lclJlZjtcclxuICAgIGNvbnN0IGFjdGl2ZUNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFBsdWdpbkFjdGl2ZUNvbXBvbmVudCk7XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UubmFtZSA9IGNvbmZpZy5jYXB0aW9uO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNob3dDbG9zZSA9IHNob3dDbG9zZTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS50YXJnZXRFbGVtZW50ID0gd3JhcHBlckRpdjtcclxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBhY3RpdmVDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIHdyYXBwZXJEaXYuYXBwZW5kQ2hpbGQoYWN0aXZlRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtc1tpZF0pIHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtc1tpZF0ucHVzaCh3cmFwcGVyRGl2KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlSXRlbXNbaWRdID0gW3dyYXBwZXJEaXZdO1xyXG4gICAgfVxyXG4gICAgd3JhcHBlckRpdi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGZvciAobGV0IGFjdGl2ZUl0ZW0gb2YgdGhpcy5hY3RpdmVJdGVtc1tpZF0pIHtcclxuICAgICAgICBhY3RpdmVJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1hY3RpdmUnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVJdGVtc1tpZF0uaW5kZXhPZigkZXZlbnQudGFyZ2V0KSA8IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIGl0ZW06IHtib3hJdGVtLCBpbmRleCwgc3R5bGUsIGNvbmZpZzogY29uZmlnLmNvbmZpZywgY29tcG9uZW50UmVmfVxyXG4gICAgICB9KTtcclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4tYWN0aXZlJyk7XHJcbiAgICB9KTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zcGxpdEl0ZW0gPSAoZGlyZWN0aW9uOiAncm93JyB8ICdjb2x1bW4nKSA9PiB7XHJcbiAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xyXG4gICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4ICsgMSwgMCwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnR5cGUgPT09ICdpdGVtJyAmJiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5jb25maWcuZGlyZWN0aW9uID09PSBkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uY29uZmlnLmxpc3QucHVzaCh7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpdGVtJyxcclxuICAgICAgICAgICAgICBzdHlsZTogYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uc3R5bGUsXHJcbiAgICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICBsaXN0OiBbYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0sIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1SZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoe1xyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIGl0ZW06ICcnXHJcbiAgICAgIH0pO1xyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vblJlbW92ZSgpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYWN0aXZlQ29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbUNvbmZpZyhpdGVtQ29uZmlnQ29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpdGVtOiBhbnksIGNvbnRleHQ/OiBhbnkpIHtcclxuICAgIGl0ZW1Db25maWdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChDb25maWdCbGFua0NvbXBvbmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBsdWdpbiA9IFBsdWdpbkZhY3RvcnkuZ2V0KGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGNvbnN0IHBsdWdpbkNvbmZpZyA9IFBsdWdpbkZhY3RvcnkuZ2V0Q29uZmlnKGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGlmIChwbHVnaW5Db25maWcpIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luQ29uZmlnLmNvbXBvbmVudCk7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAncGFnZScpKSB7XHJcbiAgICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBQYWdlSXRlbUNvbmZpZ0Jhc2UpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdwYWdlIGl0ZW0gY29tcG9uZW50IGNvbmZpZyBuZWVkIGV4dGVuZGluZyBQYWdlSXRlbUNvbmZpZ0Jhc2UsIG5hbWU6ICcgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9vemhtemdoue7hOS7tumFjee9ruWksei0pe+8micgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAnZm9ybScpKSB7XHJcbiAgICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBGb3JtSXRlbUNvbmZpZ0Jhc2UpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdmb3JtIGl0ZW0gY29tcG9uZW50IGNvbmZpZyBuZWVkIGV4dGVuZGluZyBGb3JtSXRlbUNvbmZpZ0Jhc2UsIG5hbWU6ICcgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICBub3RpZnlfZXJyb3IoJ+WKoOi9veihqOWNlee7hOS7tumFjee9ruWksei0pe+8micgKyBwbHVnaW4ubmFtZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGluc3RhbmNlLnRlbmFudCA9IGNvbnRleHQ/LnRlbmFudDtcclxuICAgICAgICBpbnN0YW5jZS5jbGFzc05hbWUgPSBjb250ZXh0Py5jbGFzc05hbWU7XHJcbiAgICAgICAgaW5zdGFuY2UuZmllbGRUcmVlID0gY29udGV4dD8uZmllbGRUcmVlO1xyXG4gICAgICB9XHJcbiAgICAgIGluc3RhbmNlLmNvbmZpZyA9IGl0ZW0uY29uZmlnLnBsdWdpbkNvbmZpZztcclxuICAgICAgaW5zdGFuY2UuY29uZmlnQ2hhbmdlLnN1YnNjcmliZSgocmVsb2FkPzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWxvYWQpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQ29tcG9uZW50KGl0ZW0uYm94SXRlbSwgaXRlbS5pbmRleCwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xyXG4gICAgICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbS5jb21wb25lbnRSZWYuaW5zdGFuY2UsIGl0ZW0uY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpbnN0YW5jZS50YWJWaWV3Q29udGFpbmVyUmVmID0gaXRlbS5ib3hJdGVtLmJveENvbnRhaW5lci50YWJWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQ29uZmlnQmxhbmtDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbVN0eWxlKGl0ZW1TdHlsZUNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFN0eWxlQmxhbmtDb21wb25lbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBpdGVtU3R5bGVDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFN0eWxlQ29tcG9uZW50KTtcclxuICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBpbnN0YW5jZS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -10,6 +10,7 @@ export class BoxItemComponent {
10
10
  constructor() {
11
11
  this.style = {};
12
12
  this.config = {};
13
+ this.wrapperDivIndex = 1080;
13
14
  this.leaveOneItem = new EventEmitter();
14
15
  }
15
16
  get _direction() {
@@ -46,6 +47,7 @@ export class BoxItemComponent {
46
47
  instance.style = item.style;
47
48
  instance.config = item.config;
48
49
  instance.pDirection = this.config.direction;
50
+ instance.wrapperDivIndex = this.wrapperDivIndex + 1;
49
51
  if (this.boxContainer.editMode) {
50
52
  boxItemComponentRef.location.nativeElement.style.margin = '8px';
51
53
  instance.leaveOneItem.subscribe((item) => {
@@ -57,8 +59,9 @@ export class BoxItemComponent {
57
59
  }
58
60
  this.load();
59
61
  });
60
- PluginManager.createHoverComponent(itemHost.viewContainerRef, boxItemComponentRef, '格子容器');
61
- PluginManager.createActiveComponent(this, i, boxItemComponentRef, item.style, {
62
+ const wrapperDiv = PluginManager.createWrapperDiv(boxItemComponentRef.location.nativeElement, this.wrapperDivIndex + 1);
63
+ PluginManager.createHoverComponent(itemHost.viewContainerRef, wrapperDiv, '格子容器');
64
+ PluginManager.createActiveComponent(this, i, wrapperDiv, boxItemComponentRef, item.style, {
62
65
  name: 'coast-box-container',
63
66
  caption: '格子容器'
64
67
  }, false);
@@ -86,8 +89,9 @@ export class BoxItemComponent {
86
89
  this.load();
87
90
  }
88
91
  };
89
- PluginManager.createHoverComponent(viewContainerRef, containerBlankComponentRef, '占位格');
90
- const activeComponentRef = PluginManager.createActiveComponent(this, index, containerBlankComponentRef, this.config.list[index].style, {
92
+ const wrapperDiv = PluginManager.createWrapperDiv(containerBlankComponentRef.location.nativeElement, this.wrapperDivIndex + 1);
93
+ PluginManager.createHoverComponent(viewContainerRef, wrapperDiv, '占位格');
94
+ const activeComponentRef = PluginManager.createActiveComponent(this, index, wrapperDiv, containerBlankComponentRef, this.config.list[index].style, {
91
95
  name: 'coast-box-container',
92
96
  caption: '占位格'
93
97
  }, this.config.list.length > 1);
@@ -128,20 +132,16 @@ export class BoxItemComponent {
128
132
  if (direction === 'row') {
129
133
  return {
130
134
  flex: width === 'auto' ? '1' : '0 0 ' + width,
131
- height,
132
- pointerEvents: this.boxContainer.editMode ? 'none' : 'all'
135
+ height
133
136
  };
134
137
  }
135
138
  else if (direction === 'column') {
136
139
  return {
137
140
  width,
138
- flex: height === 'auto' ? 'auto' : '0 0 ' + height,
139
- pointerEvents: this.boxContainer.editMode ? 'none' : 'all'
141
+ flex: height === 'auto' ? 'auto' : '0 0 ' + height
140
142
  };
141
143
  }
142
- return {
143
- pointerEvents: this.boxContainer.editMode ? 'none' : 'all'
144
- };
144
+ return {};
145
145
  }
146
146
  onDragMove($event) {
147
147
  if ($event.fromData === $event.toData) {
@@ -184,10 +184,10 @@ export class BoxItemComponent {
184
184
  }
185
185
  }
186
186
  BoxItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BoxItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
187
- BoxItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BoxItemComponent, selector: "rs-box-item", outputs: { leaveOneItem: "leaveOneItem" }, host: { properties: { "style.flex-direction": "this._direction", "style": "this._style" } }, viewQueries: [{ propertyName: "itemHosts", predicate: BoxItemHostDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngFor=\"let item of config.list; index as index\">\n <ng-container *ngIf=\"boxContainer.editMode\">\n <ng-container *ngIf=\"item.type === 'plugin'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n handle=\".icon-drag\"\n group=\"rsBoxContainerDragGroup\"\n (onDragMove)=\"onDragMove($event)\"\n (onDragEnd)=\"onDragEnd($event)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'item'\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'blank'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n group=\"rsBoxContainerDragGroup\"\n (onDragStart)=\"$event.cancel = true\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!boxContainer.editMode\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{flex:1;display:flex;flex-flow:row nowrap;pointer-events:all}:host dx-draggable,:host div{display:flex;flex-flow:row nowrap}:host dx-draggable.active,:host div.active{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.DxDraggableComponent, selector: "dx-draggable", inputs: ["autoScroll", "boundary", "clone", "container", "cursorOffset", "data", "dragDirection", "dragTemplate", "elementAttr", "group", "handle", "height", "rtlEnabled", "scrollSensitivity", "scrollSpeed", "width"], outputs: ["onDisposing", "onDragEnd", "onDragMove", "onDragStart", "onInitialized", "onOptionChanged", "autoScrollChange", "boundaryChange", "cloneChange", "containerChange", "cursorOffsetChange", "dataChange", "dragDirectionChange", "dragTemplateChange", "elementAttrChange", "groupChange", "handleChange", "heightChange", "rtlEnabledChange", "scrollSensitivityChange", "scrollSpeedChange", "widthChange"] }, { kind: "directive", type: i3.BoxItemHostDirective, selector: "[rsBoxItemHost]", inputs: ["hostId"] }] });
187
+ BoxItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BoxItemComponent, selector: "rs-box-item", outputs: { leaveOneItem: "leaveOneItem" }, host: { properties: { "style.flex-direction": "this._direction", "style": "this._style" } }, viewQueries: [{ propertyName: "itemHosts", predicate: BoxItemHostDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngFor=\"let item of config.list; index as index\">\n <ng-container *ngIf=\"boxContainer.editMode\">\n <ng-container *ngIf=\"item.type === 'plugin'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n handle=\".icon-drag\"\n group=\"rsBoxContainerDragGroup\"\n (onDragMove)=\"onDragMove($event)\"\n (onDragEnd)=\"onDragEnd($event)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'item'\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'blank'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n group=\"rsBoxContainerDragGroup\"\n (onDragStart)=\"$event.cancel = true\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!boxContainer.editMode\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{flex:1;display:flex;flex-flow:row nowrap}:host dx-draggable,:host div{display:flex;flex-flow:row nowrap}:host dx-draggable.active,:host div.active{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.DxDraggableComponent, selector: "dx-draggable", inputs: ["autoScroll", "boundary", "clone", "container", "cursorOffset", "data", "dragDirection", "dragTemplate", "elementAttr", "group", "handle", "height", "rtlEnabled", "scrollSensitivity", "scrollSpeed", "width"], outputs: ["onDisposing", "onDragEnd", "onDragMove", "onDragStart", "onInitialized", "onOptionChanged", "autoScrollChange", "boundaryChange", "cloneChange", "containerChange", "cursorOffsetChange", "dataChange", "dragDirectionChange", "dragTemplateChange", "elementAttrChange", "groupChange", "handleChange", "heightChange", "rtlEnabledChange", "scrollSensitivityChange", "scrollSpeedChange", "widthChange"] }, { kind: "directive", type: i3.BoxItemHostDirective, selector: "[rsBoxItemHost]", inputs: ["hostId"] }] });
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BoxItemComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'rs-box-item', template: "<ng-container *ngFor=\"let item of config.list; index as index\">\n <ng-container *ngIf=\"boxContainer.editMode\">\n <ng-container *ngIf=\"item.type === 'plugin'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n handle=\".icon-drag\"\n group=\"rsBoxContainerDragGroup\"\n (onDragMove)=\"onDragMove($event)\"\n (onDragEnd)=\"onDragEnd($event)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'item'\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'blank'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n group=\"rsBoxContainerDragGroup\"\n (onDragStart)=\"$event.cancel = true\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!boxContainer.editMode\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{flex:1;display:flex;flex-flow:row nowrap;pointer-events:all}:host dx-draggable,:host div{display:flex;flex-flow:row nowrap}:host dx-draggable.active,:host div.active{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] }]
190
+ args: [{ selector: 'rs-box-item', template: "<ng-container *ngFor=\"let item of config.list; index as index\">\n <ng-container *ngIf=\"boxContainer.editMode\">\n <ng-container *ngIf=\"item.type === 'plugin'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n handle=\".icon-drag\"\n group=\"rsBoxContainerDragGroup\"\n (onDragMove)=\"onDragMove($event)\"\n (onDragEnd)=\"onDragEnd($event)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'item'\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"item.type === 'blank'\">\n <dx-draggable [ngStyle]=\"calcStyle(item)\"\n [data]=\"{boxItem: this, item, index}\"\n group=\"rsBoxContainerDragGroup\"\n (onDragStart)=\"$event.cancel = true\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </dx-draggable>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!boxContainer.editMode\">\n <div [ngStyle]=\"calcStyle(item)\">\n <ng-template rsBoxItemHost [hostId]=\"index\"></ng-template>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{flex:1;display:flex;flex-flow:row nowrap}:host dx-draggable,:host div{display:flex;flex-flow:row nowrap}:host dx-draggable.active,:host div.active{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] }]
191
191
  }], propDecorators: { _direction: [{
192
192
  type: HostBinding,
193
193
  args: ['style.flex-direction']
@@ -200,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
200
200
  type: ViewChildren,
201
201
  args: [BoxItemHostDirective]
202
202
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFPckUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU9FLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQWlCakIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBcUtuQztJQW5MQyxJQUF5QyxVQUFVO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQTBCLE1BQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxF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QUFLO2dCQUMzQyxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQzVCLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxZQUFZLElBQUksRUFBRTtpQkFDbkQ7YUFDRixDQUFDO1NBQ0g7UUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7OzhHQXhMVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5TkFxQmIsb0JBQW9CLGdEQy9CcEMscTVDQWdDQTs0RkR0QmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7OEJBVWtCLFVBQVU7c0JBQWxELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUlULE1BQU07c0JBQS9CLFdBQVc7dUJBQUMsT0FBTztnQkFVcEIsWUFBWTtzQkFEWCxNQUFNO2dCQUU2QixTQUFTO3NCQUE1QyxZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb3hJdGVtSG9zdERpcmVjdGl2ZX0gZnJvbSAnLi9ib3gtaXRlbS1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZXJ9IGZyb20gJy4uL1BsdWdpbk1hbmFnZXInO1xuaW1wb3J0IHtJdGVtQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2l0ZW0tYmxhbmsvaXRlbS1ibGFuay5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtYm94LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYm94LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ib3gtaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJveEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBib3hDb250YWluZXI6IGFueTtcbiAgc3R5bGU6IGFueSA9IHt9O1xuICBjb25maWc6IGFueSA9IHt9O1xuICBwRGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJykgZ2V0IF9kaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRpcmVjdGlvbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgX3N0eWxlKCkge1xuICAgIGlmICh0aGlzLnBEaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnN0eWxlPy53aWR0aCA/IHRoaXMuc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zdHlsZT8uaGVpZ2h0ID8gdGhpcy5zdHlsZS5oZWlnaHQgOiAnYXV0byc7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGNTdHlsZSh0aGlzLnBEaXJlY3Rpb24sIHdpZHRoLCBoZWlnaHQpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGxlYXZlT25lSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZHJlbihCb3hJdGVtSG9zdERpcmVjdGl2ZSkgaXRlbUhvc3RzITogUXVlcnlMaXN0PEJveEl0ZW1Ib3N0RGlyZWN0aXZlPjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGxvYWQoYWN0aXZlSW5kZXg/OiBudW1iZXIpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtSG9zdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbUhvc3Q6IGFueSA9IHRoaXMuaXRlbUhvc3RzLmdldChpKTtcbiAgICAgICAgaXRlbUhvc3Qudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb25maWcubGlzdFtpXTtcbiAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdwbHVnaW4nOlxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVDb21wb25lbnQodGhpcywgaSwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgIGNvbnN0IGJveEl0ZW1Db21wb25lbnRSZWYgPSBpdGVtSG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChCb3hJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gYm94SXRlbUNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgIGluc3RhbmNlLmJveENvbnRhaW5lciA9IHRoaXMuYm94Q29udGFpbmVyO1xuICAgICAgICAgICAgaW5zdGFuY2Uuc3R5bGUgPSBpdGVtLnN0eWxlO1xuICAgICAgICAgICAgaW5zdGFuY2UuY29uZmlnID0gaXRlbS5jb25maWc7XG4gICAgICAgICAgICBpbnN0YW5jZS5wRGlyZWN0aW9uID0gdGhpcy5jb25maWcuZGlyZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgIGJveEl0ZW1Db21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcbiAgICAgICAgICAgICAgaW5zdGFuY2UubGVhdmVPbmVJdGVtLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2l0ZW0nICYmIGl0ZW0uZGlyZWN0aW9uID09PSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIC4uLml0ZW0ubGlzdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIFBsdWdpbk1hbmFnZXIuY3JlYXRlSG92ZXJDb21wb25lbnQoaXRlbUhvc3Qudmlld0NvbnRhaW5lclJlZiwgYm94SXRlbUNvbXBvbmVudFJlZiwgJ+agvOWtkOWuueWZqCcpO1xuICAgICAgICAgICAgICBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUFjdGl2ZUNvbXBvbmVudCh0aGlzLCBpLCBib3hJdGVtQ29tcG9uZW50UmVmLCBpdGVtLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NvYXN0LWJveC1jb250YWluZXInLFxuICAgICAgICAgICAgICAgIGNhcHRpb246ICfmoLzlrZDlrrnlmagnXG4gICAgICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2JsYW5rJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlQmxhbmtDb21wb25lbnQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCbGFua0NvbXBvbmVudChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZjogYW55ID0gdGhpcy5pdGVtSG9zdHMuZ2V0KGluZGV4KT8udmlld0NvbnRhaW5lclJlZjtcbiAgICBjb25zdCBjb250YWluZXJCbGFua0NvbXBvbmVudFJlZjogYW55ID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoSXRlbUJsYW5rQ29tcG9uZW50KTtcbiAgICBjb250YWluZXJCbGFua0NvbXBvbmVudFJlZi5pbnN0YW5jZS5vblJlbW92ZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB0aGlzLmxlYXZlT25lSXRlbS5lbWl0KHRoaXMuY29uZmlnLmxpc3RbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWYsIGNvbnRhaW5lckJsYW5rQ29tcG9uZW50UmVmLCAn5Y2g5L2N5qC8Jyk7XG4gICAgY29uc3QgYWN0aXZlQ29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVBY3RpdmVDb21wb25lbnQodGhpcywgaW5kZXgsIGNvbnRhaW5lckJsYW5rQ29tcG9uZW50UmVmLFxuICAgICAgdGhpcy5jb25maWcubGlzdFtpbmRleF0uc3R5bGUsIHtcbiAgICAgICAgbmFtZTogJ2NvYXN0LWJveC1jb250YWluZXInLFxuICAgICAgICBjYXB0aW9uOiAn5Y2g5L2N5qC8J1xuICAgICAgfSwgdGhpcy5jb25maWcubGlzdC5sZW5ndGggPiAxKTtcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2hvd0RpdmlkZXIgPSB0cnVlO1xuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zcGxpdEl0ZW0gPSAoZGlyZWN0aW9uOiAncm93JyB8ICdjb2x1bW4nKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb25maWcuZGlyZWN0aW9uID09PSBkaXJlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5jb25maWcubGlzdC5zcGxpY2UoaW5kZXggKyAxLCAwLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5jb25maWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3QucHVzaCh7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb25maWcubGlzdC5zcGxpY2UoaW5kZXgsIDEsIHtcbiAgICAgICAgICAgIHR5cGU6ICdpdGVtJyxcbiAgICAgICAgICAgIHN0eWxlOiB7fSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgIGxpc3Q6IFt0aGlzLmNvbmZpZy5saXN0W2luZGV4XSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX1dXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNhbGNTdHlsZShpdGVtOiBhbnkpIHtcbiAgICBjb25zdCB3aWR0aCA9IGl0ZW0uc3R5bGU/LndpZHRoID8gaXRlbS5zdHlsZS53aWR0aCA6ICdhdXRvJztcbiAgICBjb25zdCBoZWlnaHQgPSBpdGVtLnN0eWxlPy5oZWlnaHQgPyBpdGVtLnN0eWxlLmhlaWdodCA6ICdhdXRvJztcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5fY2FsY1N0eWxlKHRoaXMuY29uZmlnLmRpcmVjdGlvbiwgd2lkdGgsIGhlaWdodCksXG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJ1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIF9jYWxjU3R5bGUoZGlyZWN0aW9uOiBhbnksIHdpZHRoOiBzdHJpbmcsIGhlaWdodDogc3RyaW5nKSB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3JvdycpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZsZXg6IHdpZHRoID09PSAnYXV0bycgPyAnMScgOiAnMCAwICcgKyB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBwb2ludGVyRXZlbnRzOiB0aGlzLmJveENvbnRhaW5lci5lZGl0TW9kZSA/ICdub25lJyA6ICdhbGwnXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdjb2x1bW4nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgZmxleDogaGVpZ2h0ID09PSAnYXV0bycgPyAnYXV0bycgOiAnMCAwICcgKyBoZWlnaHQsXG4gICAgICAgIHBvaW50ZXJFdmVudHM6IHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlID8gJ25vbmUnIDogJ2FsbCdcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvaW50ZXJFdmVudHM6IHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlID8gJ25vbmUnIDogJ2FsbCdcbiAgICB9O1xuICB9XG5cbiAgZHJhZ092ZXJDb21wb25lbnQ6IGFueTtcblxuICBvbkRyYWdNb3ZlKCRldmVudDogYW55KSB7XG4gICAgaWYgKCRldmVudC5mcm9tRGF0YSA9PT0gJGV2ZW50LnRvRGF0YSkge1xuICAgICAgdGhpcy5kcmFnT3ZlckNvbXBvbmVudD8uaW5zdGFuY2UoKT8uZWxlbWVudCgpPy5jbGFzc0xpc3Q/LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgICBkZWxldGUgdGhpcy5kcmFnT3ZlckNvbXBvbmVudDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCRldmVudC50b0NvbXBvbmVudCAhPT0gdGhpcy5kcmFnT3ZlckNvbXBvbmVudCkge1xuICAgICAgdGhpcy5kcmFnT3ZlckNvbXBvbmVudD8uaW5zdGFuY2UoKT8uZWxlbWVudCgpPy5jbGFzc0xpc3Q/LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50ID0gJGV2ZW50LnRvQ29tcG9uZW50O1xuICAgICAgdGhpcy5kcmFnT3ZlckNvbXBvbmVudC5pbnN0YW5jZSgpLmVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICB9XG4gIH1cblxuICBvbkRyYWdFbmQoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Py5pbnN0YW5jZSgpPy5lbGVtZW50KCk/LmNsYXNzTGlzdD8ucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICBkZWxldGUgdGhpcy5kcmFnT3ZlckNvbXBvbmVudDtcbiAgICBjb25zdCB0b0JveEl0ZW0gPSAkZXZlbnQudG9EYXRhLmJveEl0ZW07XG4gICAgY29uc3QgdG9JbmRleCA9ICRldmVudC50b0RhdGEuaW5kZXg7XG4gICAgY29uc3QgZnJvbUluZGV4ID0gJGV2ZW50LmZyb21EYXRhLmluZGV4O1xuICAgIGNvbnN0IGZyb21Cb3hJdGVtQ29uZmlnID0gdGhpcy5jb25maWcubGlzdFtmcm9tSW5kZXhdLmNvbmZpZztcbiAgICBpZiAoJGV2ZW50LnRvRGF0YS5pdGVtLnR5cGUgPT09ICdwbHVnaW4nKSB7XG4gICAgICB0aGlzLmNvbmZpZy5saXN0W2Zyb21JbmRleF0uY29uZmlnID0gdG9Cb3hJdGVtLmNvbmZpZy5saXN0W3RvSW5kZXhdLmNvbmZpZztcbiAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgdG9Cb3hJdGVtLmNvbmZpZy5saXN0W3RvSW5kZXhdLmNvbmZpZyA9IGZyb21Cb3hJdGVtQ29uZmlnO1xuICAgIH0gZWxzZSBpZiAoJGV2ZW50LnRvRGF0YS5pdGVtLnR5cGUgPT09ICdibGFuaycpIHtcbiAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGZyb21JbmRleCwgMSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB0aGlzLmNvbmZpZy5saXN0W2Zyb21JbmRleF0uc3R5bGV9KTtcbiAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgdG9Cb3hJdGVtLmNvbmZpZy5saXN0W3RvSW5kZXhdID0ge1xuICAgICAgICB0eXBlOiAncGx1Z2luJyxcbiAgICAgICAgc3R5bGU6IHRvQm94SXRlbS5jb25maWcubGlzdFt0b0luZGV4XS5zdHlsZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogZnJvbUJveEl0ZW1Db25maWcubmFtZSxcbiAgICAgICAgICBwbHVnaW5Db25maWc6IGZyb21Cb3hJdGVtQ29uZmlnLnBsdWdpbkNvbmZpZyB8fCB7fVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICB0b0JveEl0ZW0ubG9hZCh0b0luZGV4KTtcbiAgICAkZXZlbnQuY2FuY2VsID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWcubGlzdDsgaW5kZXggYXMgaW5kZXhcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJveENvbnRhaW5lci5lZGl0TW9kZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdwbHVnaW4nXCI+XG4gICAgICA8ZHgtZHJhZ2dhYmxlIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIntib3hJdGVtOiB0aGlzLCBpdGVtLCBpbmRleH1cIlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9XCIuaWNvbi1kcmFnXCJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXA9XCJyc0JveENvbnRhaW5lckRyYWdHcm91cFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkRyYWdNb3ZlKT1cIm9uRHJhZ01vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkRyYWdFbmQpPVwib25EcmFnRW5kKCRldmVudClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHJzQm94SXRlbUhvc3QgW2hvc3RJZF09XCJpbmRleFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2R4LWRyYWdnYWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnaXRlbSdcIj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSByc0JveEl0ZW1Ib3N0IFtob3N0SWRdPVwiaW5kZXhcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2JsYW5rJ1wiPlxuICAgICAgPGR4LWRyYWdnYWJsZSBbbmdTdHlsZV09XCJjYWxjU3R5bGUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ7Ym94SXRlbTogdGhpcywgaXRlbSwgaW5kZXh9XCJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXA9XCJyc0JveENvbnRhaW5lckRyYWdHcm91cFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkRyYWdTdGFydCk9XCIkZXZlbnQuY2FuY2VsID0gdHJ1ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZHgtZHJhZ2dhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFib3hDb250YWluZXIuZWRpdE1vZGVcIj5cbiAgICA8ZGl2IFtuZ1N0eWxlXT1cImNhbGNTdHlsZShpdGVtKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIHJzQm94SXRlbUhvc3QgW2hvc3RJZF09XCJpbmRleFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFPckUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU9FLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQWdCL0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBb0tuQztJQWxMQyxJQUF5QyxVQUFVO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQTBCLE1BQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RCxNQUFN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QUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztnQkFDM0MsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxJQUFJLEVBQUU7aUJBQ25EO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDOzs4R0F4TFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IseU5Bc0JiLG9CQUFvQixnRENoQ3BDLHE1Q0FnQ0E7NEZEdEJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzhCQVdrQixVQUFVO3NCQUFsRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFJVCxNQUFNO3NCQUEvQixXQUFXO3VCQUFDLE9BQU87Z0JBVXBCLFlBQVk7c0JBRFgsTUFBTTtnQkFFNkIsU0FBUztzQkFBNUMsWUFBWTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Qm94SXRlbUhvc3REaXJlY3RpdmV9IGZyb20gJy4vYm94LWl0ZW0taG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtQbHVnaW5NYW5hZ2VyfSBmcm9tICcuLi9QbHVnaW5NYW5hZ2VyJztcbmltcG9ydCB7SXRlbUJsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9pdGVtLWJsYW5rL2l0ZW0tYmxhbmsuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWJveC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JveC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYm94LWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb3hJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYm94Q29udGFpbmVyOiBhbnk7XG4gIHN0eWxlOiBhbnkgPSB7fTtcbiAgY29uZmlnOiBhbnkgPSB7fTtcbiAgcERpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbic7XG4gIHdyYXBwZXJEaXZJbmRleDogbnVtYmVyID0gMTA4MDtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJykgZ2V0IF9kaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRpcmVjdGlvbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgX3N0eWxlKCkge1xuICAgIGlmICh0aGlzLnBEaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnN0eWxlPy53aWR0aCA/IHRoaXMuc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5zdHlsZT8uaGVpZ2h0ID8gdGhpcy5zdHlsZS5oZWlnaHQgOiAnYXV0byc7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGNTdHlsZSh0aGlzLnBEaXJlY3Rpb24sIHdpZHRoLCBoZWlnaHQpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGxlYXZlT25lSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZHJlbihCb3hJdGVtSG9zdERpcmVjdGl2ZSkgaXRlbUhvc3RzITogUXVlcnlMaXN0PEJveEl0ZW1Ib3N0RGlyZWN0aXZlPjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGxvYWQoYWN0aXZlSW5kZXg/OiBudW1iZXIpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtSG9zdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbUhvc3Q6IGFueSA9IHRoaXMuaXRlbUhvc3RzLmdldChpKTtcbiAgICAgICAgaXRlbUhvc3Qudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb25maWcubGlzdFtpXTtcbiAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdwbHVnaW4nOlxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVDb21wb25lbnQodGhpcywgaSwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgIGNvbnN0IGJveEl0ZW1Db21wb25lbnRSZWYgPSBpdGVtSG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChCb3hJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gYm94SXRlbUNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgIGluc3RhbmNlLmJveENvbnRhaW5lciA9IHRoaXMuYm94Q29udGFpbmVyO1xuICAgICAgICAgICAgaW5zdGFuY2Uuc3R5bGUgPSBpdGVtLnN0eWxlO1xuICAgICAgICAgICAgaW5zdGFuY2UuY29uZmlnID0gaXRlbS5jb25maWc7XG4gICAgICAgICAgICBpbnN0YW5jZS5wRGlyZWN0aW9uID0gdGhpcy5jb25maWcuZGlyZWN0aW9uO1xuICAgICAgICAgICAgaW5zdGFuY2Uud3JhcHBlckRpdkluZGV4ID0gdGhpcy53cmFwcGVyRGl2SW5kZXggKyAxO1xuICAgICAgICAgICAgaWYgKHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgIGJveEl0ZW1Db21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcbiAgICAgICAgICAgICAgaW5zdGFuY2UubGVhdmVPbmVJdGVtLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2l0ZW0nICYmIGl0ZW0uZGlyZWN0aW9uID09PSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIC4uLml0ZW0ubGlzdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJEaXYgPSBQbHVnaW5NYW5hZ2VyLmNyZWF0ZVdyYXBwZXJEaXYoYm94SXRlbUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCB0aGlzLndyYXBwZXJEaXZJbmRleCArIDEpO1xuICAgICAgICAgICAgICBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUhvdmVyQ29tcG9uZW50KGl0ZW1Ib3N0LnZpZXdDb250YWluZXJSZWYsIHdyYXBwZXJEaXYsICfmoLzlrZDlrrnlmagnKTtcbiAgICAgICAgICAgICAgUGx1Z2luTWFuYWdlci5jcmVhdGVBY3RpdmVDb21wb25lbnQodGhpcywgaSwgd3JhcHBlckRpdiwgYm94SXRlbUNvbXBvbmVudFJlZiwgaXRlbS5zdHlsZSwge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjb2FzdC1ib3gtY29udGFpbmVyJyxcbiAgICAgICAgICAgICAgICBjYXB0aW9uOiAn5qC85a2Q5a655ZmoJ1xuICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdibGFuayc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmICh0aGlzLmJveENvbnRhaW5lci5lZGl0TW9kZSkge1xuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUJsYW5rQ29tcG9uZW50KGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxhbmtDb21wb25lbnQoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IGFueSA9IHRoaXMuaXRlbUhvc3RzLmdldChpbmRleCk/LnZpZXdDb250YWluZXJSZWY7XG4gICAgY29uc3QgY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWY6IGFueSA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEl0ZW1CbGFua0NvbXBvbmVudCk7XG4gICAgY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWYuaW5zdGFuY2Uub25SZW1vdmUgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICBpZiAodGhpcy5jb25maWcubGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGhpcy5sZWF2ZU9uZUl0ZW0uZW1pdCh0aGlzLmNvbmZpZy5saXN0WzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgd3JhcHBlckRpdiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlV3JhcHBlckRpdihjb250YWluZXJCbGFua0NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCB0aGlzLndyYXBwZXJEaXZJbmRleCArIDEpO1xuICAgIFBsdWdpbk1hbmFnZXIuY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZiwgd3JhcHBlckRpdiwgJ+WNoOS9jeagvCcpO1xuICAgIGNvbnN0IGFjdGl2ZUNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQWN0aXZlQ29tcG9uZW50KHRoaXMsIGluZGV4LCB3cmFwcGVyRGl2LCBjb250YWluZXJCbGFua0NvbXBvbmVudFJlZixcbiAgICAgIHRoaXMuY29uZmlnLmxpc3RbaW5kZXhdLnN0eWxlLCB7XG4gICAgICAgIG5hbWU6ICdjb2FzdC1ib3gtY29udGFpbmVyJyxcbiAgICAgICAgY2FwdGlvbjogJ+WNoOS9jeagvCdcbiAgICAgIH0sIHRoaXMuY29uZmlnLmxpc3QubGVuZ3RoID4gMSk7XG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNob3dEaXZpZGVyID0gdHJ1ZTtcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc3BsaXRJdGVtID0gKGRpcmVjdGlvbjogJ3JvdycgfCAnY29sdW1uJykgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4ICsgMSwgMCwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnB1c2goe3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7XG4gICAgICAgICAgICB0eXBlOiAnaXRlbScsXG4gICAgICAgICAgICBzdHlsZToge30sXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgICBsaXN0OiBbdGhpcy5jb25maWcubGlzdFtpbmRleF0sIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBjYWxjU3R5bGUoaXRlbTogYW55KSB7XG4gICAgY29uc3Qgd2lkdGggPSBpdGVtLnN0eWxlPy53aWR0aCA/IGl0ZW0uc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgY29uc3QgaGVpZ2h0ID0gaXRlbS5zdHlsZT8uaGVpZ2h0ID8gaXRlbS5zdHlsZS5oZWlnaHQgOiAnYXV0byc7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuX2NhbGNTdHlsZSh0aGlzLmNvbmZpZy5kaXJlY3Rpb24sIHdpZHRoLCBoZWlnaHQpLFxuICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY1N0eWxlKGRpcmVjdGlvbjogYW55LCB3aWR0aDogc3RyaW5nLCBoZWlnaHQ6IHN0cmluZykge1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdyb3cnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4OiB3aWR0aCA9PT0gJ2F1dG8nID8gJzEnIDogJzAgMCAnICsgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAnY29sdW1uJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGZsZXg6IGhlaWdodCA9PT0gJ2F1dG8nID8gJ2F1dG8nIDogJzAgMCAnICsgaGVpZ2h0XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGRyYWdPdmVyQ29tcG9uZW50OiBhbnk7XG5cbiAgb25EcmFnTW92ZSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICgkZXZlbnQuZnJvbURhdGEgPT09ICRldmVudC50b0RhdGEpIHtcbiAgICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ/Lmluc3RhbmNlKCk/LmVsZW1lbnQoKT8uY2xhc3NMaXN0Py5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgICAgZGVsZXRlIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgkZXZlbnQudG9Db21wb25lbnQgIT09IHRoaXMuZHJhZ092ZXJDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ/Lmluc3RhbmNlKCk/LmVsZW1lbnQoKT8uY2xhc3NMaXN0Py5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgICAgdGhpcy5kcmFnT3ZlckNvbXBvbmVudCA9ICRldmVudC50b0NvbXBvbmVudDtcbiAgICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQuaW5zdGFuY2UoKS5lbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgb25EcmFnRW5kKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5kcmFnT3ZlckNvbXBvbmVudD8uaW5zdGFuY2UoKT8uZWxlbWVudCgpPy5jbGFzc0xpc3Q/LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgZGVsZXRlIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ7XG4gICAgY29uc3QgdG9Cb3hJdGVtID0gJGV2ZW50LnRvRGF0YS5ib3hJdGVtO1xuICAgIGNvbnN0IHRvSW5kZXggPSAkZXZlbnQudG9EYXRhLmluZGV4O1xuICAgIGNvbnN0IGZyb21JbmRleCA9ICRldmVudC5mcm9tRGF0YS5pbmRleDtcbiAgICBjb25zdCBmcm9tQm94SXRlbUNvbmZpZyA9IHRoaXMuY29uZmlnLmxpc3RbZnJvbUluZGV4XS5jb25maWc7XG4gICAgaWYgKCRldmVudC50b0RhdGEuaXRlbS50eXBlID09PSAncGx1Z2luJykge1xuICAgICAgdGhpcy5jb25maWcubGlzdFtmcm9tSW5kZXhdLmNvbmZpZyA9IHRvQm94SXRlbS5jb25maWcubGlzdFt0b0luZGV4XS5jb25maWc7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIHRvQm94SXRlbS5jb25maWcubGlzdFt0b0luZGV4XS5jb25maWcgPSBmcm9tQm94SXRlbUNvbmZpZztcbiAgICB9IGVsc2UgaWYgKCRldmVudC50b0RhdGEuaXRlbS50eXBlID09PSAnYmxhbmsnKSB7XG4gICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShmcm9tSW5kZXgsIDEsIHt0eXBlOiAnYmxhbmsnLCBzdHlsZTogdGhpcy5jb25maWcubGlzdFtmcm9tSW5kZXhdLnN0eWxlfSk7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIHRvQm94SXRlbS5jb25maWcubGlzdFt0b0luZGV4XSA9IHtcbiAgICAgICAgdHlwZTogJ3BsdWdpbicsXG4gICAgICAgIHN0eWxlOiB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0uc3R5bGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIG5hbWU6IGZyb21Cb3hJdGVtQ29uZmlnLm5hbWUsXG4gICAgICAgICAgcGx1Z2luQ29uZmlnOiBmcm9tQm94SXRlbUNvbmZpZy5wbHVnaW5Db25maWcgfHwge31cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgdG9Cb3hJdGVtLmxvYWQodG9JbmRleCk7XG4gICAgJGV2ZW50LmNhbmNlbCA9IHRydWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLmxpc3Q7IGluZGV4IGFzIGluZGV4XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJib3hDb250YWluZXIuZWRpdE1vZGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAncGx1Z2luJ1wiPlxuICAgICAgPGR4LWRyYWdnYWJsZSBbbmdTdHlsZV09XCJjYWxjU3R5bGUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ7Ym94SXRlbTogdGhpcywgaXRlbSwgaW5kZXh9XCJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPVwiLmljb24tZHJhZ1wiXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwPVwicnNCb3hDb250YWluZXJEcmFnR3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAob25EcmFnTW92ZSk9XCJvbkRyYWdNb3ZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAob25EcmFnRW5kKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSByc0JveEl0ZW1Ib3N0IFtob3N0SWRdPVwiaW5kZXhcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9keC1kcmFnZ2FibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2l0ZW0nXCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cImNhbGNTdHlsZShpdGVtKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdibGFuaydcIj5cbiAgICAgIDxkeC1kcmFnZ2FibGUgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwie2JveEl0ZW06IHRoaXMsIGl0ZW0sIGluZGV4fVwiXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwPVwicnNCb3hDb250YWluZXJEcmFnR3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAob25EcmFnU3RhcnQpPVwiJGV2ZW50LmNhbmNlbCA9IHRydWVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHJzQm94SXRlbUhvc3QgW2hvc3RJZF09XCJpbmRleFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2R4LWRyYWdnYWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYm94Q29udGFpbmVyLmVkaXRNb2RlXCI+XG4gICAgPGRpdiBbbmdTdHlsZV09XCJjYWxjU3R5bGUoaXRlbSlcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSByc0JveEl0ZW1Ib3N0IFtob3N0SWRdPVwiaW5kZXhcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export class ItemBlankComponent {
4
4
  }
5
5
  ItemBlankComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ItemBlankComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- ItemBlankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ItemBlankComponent, selector: "rs-item-blank", ngImport: i0, template: "<div>\n <span>\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904</span>\n</div>\n", styles: [":host{flex:1;margin:8px;border:1px solid var(--coast-border-color, rgb(221, 221, 221));background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRF8fHxAAAAMCd7XAAAAAJ0Uk5T/wDltzBKAAABJUlEQVR4nFVSy23EIBCdAiKxBaxCC1tBaGk7YG/OjZYSOQptLKKB8Y0D8ssbjBPl9gQz7wfigQbgQxygEXjIAjwDcJEV+PbYb1KAlNDusgE+Q1Va3EPFptJDjwVVZfcNiqwCV9BiIlhW9DdPkEn5GggKRV4igVL2AYJGpc8TFAMa5lXhzHuc69dwEO6DkBI9OhNVii60ERu3VxrjRUVRet7DsMoUbpgny+LRb5b0K2C/CAWejCxCSYVl9wcQSaMEzuRRArcqebzxcMCnUcKQsBKiiVoJoR1+4DfWSodILCGa5zXTvKWo5L5ars0C/iuh003F7GecbG62YVujunzypDqZTcsK76HF2UYP41HM4WoO7eEWNLUUyaHf/3L9JvXnBwjzS/wAoXR0PDbjCSUAAAAASUVORK5CYII=) repeat var(--coast-global-bg-color, rgb(245, 245, 245));display:flex;flex-flow:row nowrap;justify-content:center;pointer-events:all}:host div{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}:host.plugin-hover>div{pointer-events:none}.active>:host div{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] });
6
+ ItemBlankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ItemBlankComponent, selector: "rs-item-blank", ngImport: i0, template: "<div>\n <span>\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904</span>\n</div>\n", styles: [":host{flex:1;margin:8px;border:1px solid var(--coast-border-color, rgb(221, 221, 221));background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRF8fHxAAAAMCd7XAAAAAJ0Uk5T/wDltzBKAAABJUlEQVR4nFVSy23EIBCdAiKxBaxCC1tBaGk7YG/OjZYSOQptLKKB8Y0D8ssbjBPl9gQz7wfigQbgQxygEXjIAjwDcJEV+PbYb1KAlNDusgE+Q1Va3EPFptJDjwVVZfcNiqwCV9BiIlhW9DdPkEn5GggKRV4igVL2AYJGpc8TFAMa5lXhzHuc69dwEO6DkBI9OhNVii60ERu3VxrjRUVRet7DsMoUbpgny+LRb5b0K2C/CAWejCxCSYVl9wcQSaMEzuRRArcqebzxcMCnUcKQsBKiiVoJoR1+4DfWSodILCGa5zXTvKWo5L5ars0C/iuh003F7GecbG62YVujunzypDqZTcsK76HF2UYP41HM4WoO7eEWNLUUyaHf/3L9JvXnBwjzS/wAoXR0PDbjCSUAAAAASUVORK5CYII=) repeat var(--coast-global-bg-color, rgb(245, 245, 245));display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}.active>:host div{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] });
7
7
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ItemBlankComponent, decorators: [{
8
8
  type: Component,
9
- args: [{ selector: 'rs-item-blank', template: "<div>\n <span>\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904</span>\n</div>\n", styles: [":host{flex:1;margin:8px;border:1px solid var(--coast-border-color, rgb(221, 221, 221));background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRF8fHxAAAAMCd7XAAAAAJ0Uk5T/wDltzBKAAABJUlEQVR4nFVSy23EIBCdAiKxBaxCC1tBaGk7YG/OjZYSOQptLKKB8Y0D8ssbjBPl9gQz7wfigQbgQxygEXjIAjwDcJEV+PbYb1KAlNDusgE+Q1Va3EPFptJDjwVVZfcNiqwCV9BiIlhW9DdPkEn5GggKRV4igVL2AYJGpc8TFAMa5lXhzHuc69dwEO6DkBI9OhNVii60ERu3VxrjRUVRet7DsMoUbpgny+LRb5b0K2C/CAWejCxCSYVl9wcQSaMEzuRRArcqebzxcMCnUcKQsBKiiVoJoR1+4DfWSodILCGa5zXTvKWo5L5ars0C/iuh003F7GecbG62YVujunzypDqZTcsK76HF2UYP41HM4WoO7eEWNLUUyaHf/3L9JvXnBwjzS/wAoXR0PDbjCSUAAAAASUVORK5CYII=) repeat var(--coast-global-bg-color, rgb(245, 245, 245));display:flex;flex-flow:row nowrap;justify-content:center;pointer-events:all}:host div{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}:host.plugin-hover>div{pointer-events:none}.active>:host div{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] }]
9
+ args: [{ selector: 'rs-item-blank', template: "<div>\n <span>\u62D6\u62FD\u7EC4\u4EF6\u5230\u6B64\u5904</span>\n</div>\n", styles: [":host{flex:1;margin:8px;border:1px solid var(--coast-border-color, rgb(221, 221, 221));background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AQMAAAAAMksxAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRF8fHxAAAAMCd7XAAAAAJ0Uk5T/wDltzBKAAABJUlEQVR4nFVSy23EIBCdAiKxBaxCC1tBaGk7YG/OjZYSOQptLKKB8Y0D8ssbjBPl9gQz7wfigQbgQxygEXjIAjwDcJEV+PbYb1KAlNDusgE+Q1Va3EPFptJDjwVVZfcNiqwCV9BiIlhW9DdPkEn5GggKRV4igVL2AYJGpc8TFAMa5lXhzHuc69dwEO6DkBI9OhNVii60ERu3VxrjRUVRet7DsMoUbpgny+LRb5b0K2C/CAWejCxCSYVl9wcQSaMEzuRRArcqebzxcMCnUcKQsBKiiVoJoR1+4DfWSodILCGa5zXTvKWo5L5ars0C/iuh003F7GecbG62YVujunzypDqZTcsK76HF2UYP41HM4WoO7eEWNLUUyaHf/3L9JvXnBwjzS/wAoXR0PDbjCSUAAAAASUVORK5CYII=) repeat var(--coast-global-bg-color, rgb(245, 245, 245));display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}.active>:host div{background-color:var(--coast-empty-color, rgb(229, 229, 229))}\n"] }]
10
10
  }] });
11
11
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1ibGFuay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2l0ZW0tYmxhbmsvaXRlbS1ibGFuay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2l0ZW0tYmxhbmsvaXRlbS1ibGFuay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU94QyxNQUFNLE9BQU8sa0JBQWtCOztnSEFBbEIsa0JBQWtCO29HQUFsQixrQkFBa0IscURDUC9CLDRFQUdBOzRGRElhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1pdGVtLWJsYW5rJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW0tYmxhbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pdGVtLWJsYW5rLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSXRlbUJsYW5rQ29tcG9uZW50IHtcbn1cbiIsIjxkaXY+XG4gIDxzcGFuPuaLluaLvee7hOS7tuWIsOatpOWkhDwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -40,7 +40,7 @@ export class StyleComponent {
40
40
  }
41
41
  }
42
42
  StyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
43
+ StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isDirty", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]