@ng-nest/ui 16.0.14 → 16.0.15

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.
@@ -1,7 +1,7 @@
1
1
  import { OnInit, Renderer2, ElementRef, ChangeDetectorRef, SimpleChanges, OnChanges } from '@angular/core';
2
2
  import { XCarouselProperty } from './carousel.property';
3
3
  import { XNumber, XConfigService } from '@ng-nest/ui/core';
4
- import { BehaviorSubject } from 'rxjs';
4
+ import { BehaviorSubject, Subscription } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class XCarouselComponent extends XCarouselProperty implements OnInit, OnChanges {
7
7
  renderer: Renderer2;
@@ -12,8 +12,8 @@ export declare class XCarouselComponent extends XCarouselProperty implements OnI
12
12
  content: ElementRef<HTMLElement>;
13
13
  start: number;
14
14
  before: number;
15
- timer: any;
16
- precentTimer: any;
15
+ timer?: Subscription;
16
+ precentTimer?: Subscription;
17
17
  panelChanges: BehaviorSubject<any>[];
18
18
  platformId: Object;
19
19
  isBrowser: boolean;
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, PLATFORM_ID, inject } from '@angular/core';
2
2
  import { XCarouselPrefix, XCarouselProperty } from './carousel.property';
3
3
  import { XIsUndefined, XIsChange, XIsEmpty, XResize } from '@ng-nest/ui/core';
4
- import { Subject } from 'rxjs';
4
+ import { Subject, interval } from 'rxjs';
5
5
  import { takeUntil, debounceTime } from 'rxjs/operators';
6
6
  import { isPlatformBrowser } from '@angular/common';
7
7
  import * as i0 from "@angular/core";
@@ -46,7 +46,8 @@ class XCarouselComponent extends XCarouselProperty {
46
46
  XIsChange(active) && this.setActiveItem(Number(this.active));
47
47
  }
48
48
  ngOnDestroy() {
49
- this.timer && clearInterval(this.timer);
49
+ this.timer?.unsubscribe();
50
+ this.precentTimer?.unsubscribe();
50
51
  this.panelChanges.forEach((x) => x.complete());
51
52
  this._unSubject.complete();
52
53
  this._unSubject.unsubscribe();
@@ -61,18 +62,20 @@ class XCarouselComponent extends XCarouselProperty {
61
62
  resetInterval() {
62
63
  if (!this.isBrowser)
63
64
  return;
64
- this.timer && clearInterval(this.timer);
65
- this.precentTimer && clearInterval(this.precentTimer);
66
- this.percent = 0;
67
- const js = Number(this.interval) / 100;
68
- this.precentTimer = setInterval(() => {
69
- this.percent += 1;
70
- this.cdr.detectChanges();
71
- }, js);
72
- this.timer = setInterval(() => {
65
+ this.timer?.unsubscribe();
66
+ if (this.progress) {
67
+ this.precentTimer?.unsubscribe();
68
+ this.percent = 0;
69
+ const js = Number(this.interval) / 100;
70
+ this.precentTimer = interval(js).subscribe(() => {
71
+ this.percent += 1;
72
+ this.cdr.markForCheck();
73
+ });
74
+ }
75
+ this.timer = interval(Number(this.interval)).subscribe(() => {
73
76
  this.percent = 0;
74
77
  this.setActiveItem(Number(this.active) + 1);
75
- }, Number(this.interval));
78
+ });
76
79
  }
77
80
  setActiveItem(index) {
78
81
  if (this.start === -1)
@@ -82,7 +85,7 @@ class XCarouselComponent extends XCarouselProperty {
82
85
  this.active = nextValue;
83
86
  this.panelChanges.forEach((sub) => sub.next(true));
84
87
  this.activeChange.emit(this.active);
85
- this.cdr.detectChanges();
88
+ this.cdr.markForCheck();
86
89
  }
87
90
  setClassMap() {
88
91
  this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);
@@ -107,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
107
110
  type: ViewChild,
108
111
  args: ['content']
109
112
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVcsT0FBTyxFQUFtQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hILE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUVwRCxNQU9hLGtCQUFtQixTQUFRLGlCQUFpQjtJQWV2RCxJQUFJLElBQUk7UUFDTixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUNTLFFBQW1CLEVBQ25CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFwQnRDLFVBQUssR0FB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QUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxLQUFVO1FBQ3BDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztrSUFuR1Usa0JBQWtCO3NIQUFsQixrQkFBa0IseVJDM0IvQixrL0NBa0NBOztTRFBhLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0xBR3hCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDQyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ2Fyb3VzZWxQcmVmaXgsIFhDYXJvdXNlbFByb3BlcnR5IH0gZnJvbSAnLi9jYXJvdXNlbC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc1VuZGVmaW5lZCwgWElzQ2hhbmdlLCBYSXNFbXB0eSwgWE51bWJlciwgWFJlc2l6ZSwgWENvbmZpZ1NlcnZpY2UsIFhSZXNpemVPYnNlcnZlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQ2Fyb3VzZWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENhcm91c2VsQ29tcG9uZW50IGV4dGVuZHMgWENhcm91c2VsUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnKSBjYXJvdXNlbCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgc3RhcnQ6IG51bWJlciA9IC0xO1xyXG4gIGJlZm9yZSE6IG51bWJlcjtcclxuICB0aW1lcjogYW55O1xyXG4gIHByZWNlbnRUaW1lcjogYW55O1xyXG4gIHBhbmVsQ2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PGFueT5bXSA9IFtdO1xyXG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG4gIGlzQnJvd3NlciA9IHRydWU7XHJcbiAgcGVyY2VudCA9IDA7XHJcbiAgY291bnQgPSAwO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBYUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIGdldCBwYWdlKCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmFjdGl2ZSkgKyAxO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmF1dG9wbGF5ICYmIHRoaXMucmVzZXRJbnRlcnZhbCgpO1xyXG4gICAgWFJlc2l6ZSh0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudClcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLnBhbmVsQ2hhbmdlcy5mb3JFYWNoKChzdWIpID0+IHN1Yi5uZXh0KHRydWUpKTtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGFjdGl2ZSkgJiYgdGhpcy5zZXRBY3RpdmVJdGVtKE51bWJlcih0aGlzLmFjdGl2ZSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVyICYmIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XHJcbiAgICB0aGlzLnBhbmVsQ2hhbmdlcy5mb3JFYWNoKCh4KSA9PiB4LmNvbXBsZXRlKCkpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBhY3Rpb24oaW5kZXg6IFhOdW1iZXIsIGluY3JlYXNlOiBudW1iZXIsIGV2ZW50Pzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIVhJc1VuZGVmaW5lZChldmVudCkgJiYgdGhpcy50cmlnZ2VyICE9PSBldmVudCkgcmV0dXJuO1xyXG4gICAgdGhpcy5hdXRvcGxheSAmJiB0aGlzLnJlc2V0SW50ZXJ2YWwoKTtcclxuICAgIHRoaXMuc2V0QWN0aXZlSXRlbShOdW1iZXIoaW5kZXgpICsgaW5jcmVhc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRJbnRlcnZhbCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcclxuICAgIHRoaXMudGltZXIgJiYgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgIHRoaXMucHJlY2VudFRpbWVyICYmIGNsZWFySW50ZXJ2YWwodGhpcy5wcmVjZW50VGltZXIpO1xyXG4gICAgdGhpcy5wZXJjZW50ID0gMDtcclxuICAgIGNvbnN0IGpzID0gTnVtYmVyKHRoaXMuaW50ZXJ2YWwpIC8gMTAwO1xyXG4gICAgdGhpcy5wcmVjZW50VGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMucGVyY2VudCArPSAxO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCBqcyk7XHJcbiAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnBlcmNlbnQgPSAwO1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oTnVtYmVyKHRoaXMuYWN0aXZlKSArIDEpO1xyXG4gICAgfSwgTnVtYmVyKHRoaXMuaW50ZXJ2YWwpKTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3RhcnQgPT09IC0xKSByZXR1cm47XHJcbiAgICB0aGlzLmJlZm9yZSA9IE51bWJlcih0aGlzLmFjdGl2ZSk7XHJcbiAgICBjb25zdCBuZXh0VmFsdWUgPSBpbmRleCA+IHRoaXMuc3RhcnQgPyAwIDogaW5kZXggPCAwID8gdGhpcy5zdGFydCA6IGluZGV4O1xyXG4gICAgdGhpcy5hY3RpdmUgPSBuZXh0VmFsdWU7XHJcbiAgICB0aGlzLnBhbmVsQ2hhbmdlcy5mb3JFYWNoKChzdWIpID0+IHN1Yi5uZXh0KHRydWUpKTtcclxuICAgIHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2Ake1hDYXJvdXNlbFByZWZpeH0tJHt0aGlzLmRpcmVjdGlvbn1gXSA9ICFYSXNFbXB0eSh0aGlzLmRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmFjdGl2ZSkgPT09IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeVBhbmVsKGluZGV4OiBudW1iZXIsIF9pdGVtOiBhbnkpIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNjYXJvdXNlbFxyXG4gIGNsYXNzPVwieC1jYXJvdXNlbFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWFycm93LWFsd2F5c109XCJhcnJvdyA9PT0gJ2Fsd2F5cydcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWhhcy1jdXJyZW50XT1cImN1cnJlbnRcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWluZGljYXRvci1vdXRzaWRlXT1cIm91dHNpZGUgfHwgY2FyZFwiXHJcbj5cclxuICA8ZGl2ICNjb250ZW50IGNsYXNzPVwieC1jYXJvdXNlbC1jb250ZW50XCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnJvdyAhPT0gJ25ldmVyJyAmJiBkaXJlY3Rpb24gIT09ICd2ZXJ0aWNhbCdcIj5cclxuICAgICAgPHgtYnV0dG9uIGNsYXNzPVwiYXJyb3ctbGVmdFwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgKGNsaWNrKT1cImFjdGlvbihhY3RpdmUsIC0xKVwiPjwveC1idXR0b24+XHJcbiAgICAgIDx4LWJ1dHRvbiBjbGFzcz1cImFycm93LXJpZ2h0XCIgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgKGNsaWNrKT1cImFjdGlvbihhY3RpdmUsIDEpXCI+PC94LWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY2Fyb3VzZWwtdGV4dFwiICpuZ0lmPVwidGV4dFwiPnt7IHRleHQgfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNhcm91c2VsLWN1cnJlbnRcIiAqbmdJZj1cImN1cnJlbnRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ4LWNhcm91c2VsLWFjdGl2ZVwiPnt7IHBhZ2UgfX08L3NwYW4+IC9cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ4LWNhcm91c2VsLWNvdW50XCI+e3sgY291bnQgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNhcm91c2VsLXByb2dyZXNzXCIgKm5nSWY9XCJwcm9ncmVzc1wiPlxyXG4gICAgICA8eC1wcm9ncmVzcyBbcGVyY2VudF09XCJwZXJjZW50XCIgW2NvbG9yXT1cInByb2dyZXNzQ29sb3JcIiBbaW5mb109XCJmYWxzZVwiIGhlaWdodD1cIjAuMzI1cmVtXCI+PC94LXByb2dyZXNzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHVsIGNsYXNzPVwieC1jYXJvdXNlbC1pbmRpY2F0b3JcIj5cclxuICAgIDxsaVxyXG4gICAgICAqbmdGb3I9XCJsZXQgcGFuZWwgb2YgcGFuZWxDaGFuZ2VzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5UGFuZWxcIlxyXG4gICAgICBbY2xhc3MueC1hY3RpdmF0ZWRdPVwiZ2V0QWN0aXZhdGVkKGkpXCJcclxuICAgICAgKGNsaWNrKT1cImFjdGlvbihpLCAwLCAnY2xpY2snKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cImFjdGlvbihpLCAwLCAnaG92ZXInKVwiXHJcbiAgICA+XHJcbiAgICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiPjwveC1idXR0b24+XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvZGl2PlxyXG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxRQUFRLEVBRVIsT0FBTyxFQUdSLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFtQixPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFcEQsTUFPYSxrQkFBbUIsU0FBUSxpQkFBaUI7SUFldkQsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFDUyxRQUFtQixFQUNuQixVQUFtQyxFQUNuQyxHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBcEJ0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LENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsS0FBVTtRQUNwQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7a0lBdEdVLGtCQUFrQjtzSEFBbEIsa0JBQWtCLHlSQ25DL0Isay9DQWtDQTs7U0RDYSxrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxHQUFHLGVBQWUsRUFBRSxpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3NMQUd4QixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0MsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBQTEFURk9STV9JRCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENhcm91c2VsUHJlZml4LCBYQ2Fyb3VzZWxQcm9wZXJ0eSB9IGZyb20gJy4vY2Fyb3VzZWwucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc1VuZGVmaW5lZCxcclxuICBYSXNDaGFuZ2UsXHJcbiAgWElzRW1wdHksXHJcbiAgWE51bWJlcixcclxuICBYUmVzaXplLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhSZXNpemVPYnNlcnZlclxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQ2Fyb3VzZWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENhcm91c2VsQ29tcG9uZW50IGV4dGVuZHMgWENhcm91c2VsUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnKSBjYXJvdXNlbCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgc3RhcnQ6IG51bWJlciA9IC0xO1xyXG4gIGJlZm9yZSE6IG51bWJlcjtcclxuICB0aW1lcj86IFN1YnNjcmlwdGlvbjtcclxuICBwcmVjZW50VGltZXI/OiBTdWJzY3JpcHRpb247XHJcbiAgcGFuZWxDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8YW55PltdID0gW107XHJcbiAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XHJcbiAgaXNCcm93c2VyID0gdHJ1ZTtcclxuICBwZXJjZW50ID0gMDtcclxuICBjb3VudCA9IDA7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgZ2V0IHBhZ2UoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuYWN0aXZlKSArIDE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuYXV0b3BsYXkgJiYgdGhpcy5yZXNldEludGVydmFsKCk7XHJcbiAgICBYUmVzaXplKHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMucGFuZWxDaGFuZ2VzLmZvckVhY2goKHN1YikgPT4gc3ViLm5leHQodHJ1ZSkpO1xyXG4gICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBhY3RpdmUgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZlKSAmJiB0aGlzLnNldEFjdGl2ZUl0ZW0oTnVtYmVyKHRoaXMuYWN0aXZlKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGltZXI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnByZWNlbnRUaW1lcj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMucGFuZWxDaGFuZ2VzLmZvckVhY2goKHgpID0+IHguY29tcGxldGUoKSk7XHJcbiAgICB0aGlzLl91blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIGFjdGlvbihpbmRleDogWE51bWJlciwgaW5jcmVhc2U6IG51bWJlciwgZXZlbnQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghWElzVW5kZWZpbmVkKGV2ZW50KSAmJiB0aGlzLnRyaWdnZXIgIT09IGV2ZW50KSByZXR1cm47XHJcbiAgICB0aGlzLmF1dG9wbGF5ICYmIHRoaXMucmVzZXRJbnRlcnZhbCgpO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVJdGVtKE51bWJlcihpbmRleCkgKyBpbmNyZWFzZSk7XHJcbiAgfVxyXG5cclxuICByZXNldEludGVydmFsKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xyXG4gICAgdGhpcy50aW1lcj8udW5zdWJzY3JpYmUoKTtcclxuICAgIGlmICh0aGlzLnByb2dyZXNzKSB7XHJcbiAgICAgIHRoaXMucHJlY2VudFRpbWVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnBlcmNlbnQgPSAwO1xyXG4gICAgICBjb25zdCBqcyA9IE51bWJlcih0aGlzLmludGVydmFsKSAvIDEwMDtcclxuICAgICAgdGhpcy5wcmVjZW50VGltZXIgPSBpbnRlcnZhbChqcykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnBlcmNlbnQgKz0gMTtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpbWVyID0gaW50ZXJ2YWwoTnVtYmVyKHRoaXMuaW50ZXJ2YWwpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnBlcmNlbnQgPSAwO1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oTnVtYmVyKHRoaXMuYWN0aXZlKSArIDEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0YXJ0ID09PSAtMSkgcmV0dXJuO1xyXG4gICAgdGhpcy5iZWZvcmUgPSBOdW1iZXIodGhpcy5hY3RpdmUpO1xyXG4gICAgY29uc3QgbmV4dFZhbHVlID0gaW5kZXggPiB0aGlzLnN0YXJ0ID8gMCA6IGluZGV4IDwgMCA/IHRoaXMuc3RhcnQgOiBpbmRleDtcclxuICAgIHRoaXMuYWN0aXZlID0gbmV4dFZhbHVlO1xyXG4gICAgdGhpcy5wYW5lbENoYW5nZXMuZm9yRWFjaCgoc3ViKSA9PiBzdWIubmV4dCh0cnVlKSk7XHJcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlKTtcclxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2Ake1hDYXJvdXNlbFByZWZpeH0tJHt0aGlzLmRpcmVjdGlvbn1gXSA9ICFYSXNFbXB0eSh0aGlzLmRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmFjdGl2ZSkgPT09IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeVBhbmVsKGluZGV4OiBudW1iZXIsIF9pdGVtOiBhbnkpIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNjYXJvdXNlbFxyXG4gIGNsYXNzPVwieC1jYXJvdXNlbFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWFycm93LWFsd2F5c109XCJhcnJvdyA9PT0gJ2Fsd2F5cydcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWhhcy1jdXJyZW50XT1cImN1cnJlbnRcIlxyXG4gIFtjbGFzcy54LWNhcm91c2VsLWluZGljYXRvci1vdXRzaWRlXT1cIm91dHNpZGUgfHwgY2FyZFwiXHJcbj5cclxuICA8ZGl2ICNjb250ZW50IGNsYXNzPVwieC1jYXJvdXNlbC1jb250ZW50XCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnJvdyAhPT0gJ25ldmVyJyAmJiBkaXJlY3Rpb24gIT09ICd2ZXJ0aWNhbCdcIj5cclxuICAgICAgPHgtYnV0dG9uIGNsYXNzPVwiYXJyb3ctbGVmdFwiIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgKGNsaWNrKT1cImFjdGlvbihhY3RpdmUsIC0xKVwiPjwveC1idXR0b24+XHJcbiAgICAgIDx4LWJ1dHRvbiBjbGFzcz1cImFycm93LXJpZ2h0XCIgaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgKGNsaWNrKT1cImFjdGlvbihhY3RpdmUsIDEpXCI+PC94LWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY2Fyb3VzZWwtdGV4dFwiICpuZ0lmPVwidGV4dFwiPnt7IHRleHQgfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNhcm91c2VsLWN1cnJlbnRcIiAqbmdJZj1cImN1cnJlbnRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ4LWNhcm91c2VsLWFjdGl2ZVwiPnt7IHBhZ2UgfX08L3NwYW4+IC9cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ4LWNhcm91c2VsLWNvdW50XCI+e3sgY291bnQgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWNhcm91c2VsLXByb2dyZXNzXCIgKm5nSWY9XCJwcm9ncmVzc1wiPlxyXG4gICAgICA8eC1wcm9ncmVzcyBbcGVyY2VudF09XCJwZXJjZW50XCIgW2NvbG9yXT1cInByb2dyZXNzQ29sb3JcIiBbaW5mb109XCJmYWxzZVwiIGhlaWdodD1cIjAuMzI1cmVtXCI+PC94LXByb2dyZXNzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHVsIGNsYXNzPVwieC1jYXJvdXNlbC1pbmRpY2F0b3JcIj5cclxuICAgIDxsaVxyXG4gICAgICAqbmdGb3I9XCJsZXQgcGFuZWwgb2YgcGFuZWxDaGFuZ2VzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5UGFuZWxcIlxyXG4gICAgICBbY2xhc3MueC1hY3RpdmF0ZWRdPVwiZ2V0QWN0aXZhdGVkKGkpXCJcclxuICAgICAgKGNsaWNrKT1cImFjdGlvbihpLCAwLCAnY2xpY2snKVwiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cImFjdGlvbihpLCAwLCAnaG92ZXInKVwiXHJcbiAgICA+XHJcbiAgICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiPjwveC1idXR0b24+XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -27,9 +27,13 @@ class XTableHeadComponent extends XTableHeadProperty {
27
27
  this.sortStr = '';
28
28
  this.theadStyle = {};
29
29
  this.thClassMap = {};
30
+ this.initColumns = [];
30
31
  }
31
32
  ngOnChanges(simples) {
32
33
  const { columns, scrollYWidth, scrollXWidth, cellConfig } = simples;
34
+ if (XIsChange(columns)) {
35
+ this.initColumns = [...this.columns];
36
+ }
33
37
  XIsChange(columns, scrollYWidth, scrollXWidth, cellConfig) && this.cdr.detectChanges();
34
38
  }
35
39
  ngOnInit() {
@@ -137,9 +141,16 @@ class XTableHeadComponent extends XTableHeadProperty {
137
141
  this.table.columnDragWidthEnded.emit({ position, column });
138
142
  }
139
143
  }
140
- dropListDropped(_event) {
141
- this.dragChange();
142
- this.table.columnDropListDropped.emit(this.columns);
144
+ dropListDropped(event) {
145
+ const previous = this.initColumns[event.previousIndex];
146
+ const current = this.initColumns[event.currentIndex];
147
+ const middle = { left: previous.left, right: previous.right };
148
+ previous.left = current.left;
149
+ previous.right = current.right;
150
+ current.left = middle.left;
151
+ current.right = middle.right;
152
+ moveItemInArray(this.initColumns, event.previousIndex, event.currentIndex);
153
+ this.table.columnDropListDropped.emit(this.initColumns);
143
154
  }
144
155
  dropListSorted(event) {
145
156
  const previous = this.columns[event.previousIndex];
@@ -171,16 +182,16 @@ class XTableHeadComponent extends XTableHeadProperty {
171
182
  return item.id;
172
183
  }
173
184
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableHeadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
174
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\r\n #thead\r\n [ngStyle]=\"theadStyle\"\r\n [class.x-table-head-top]=\"position === 'top'\"\r\n [class.x-table-head-bottom]=\"position === 'bottom'\"\r\n>\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr\r\n [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n >\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"\r\n ></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n single\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a\r\n [class.x-table-sort]=\"column.sort\"\r\n (click)=\"onSort(column)\"\r\n [style.text-align]=\"column.textAlign\"\r\n >\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.XDragDirective, selector: "[x-drag]" }], encapsulation: i0.ViewEncapsulation.None }); }
185
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XTableHeadComponent, selector: "x-table-head", inputs: { table: "table" }, viewQueries: [{ propertyName: "thead", first: true, predicate: ["thead"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\r\n #thead\r\n [ngStyle]=\"theadStyle\"\r\n [class.x-table-head-top]=\"position === 'top'\"\r\n [class.x-table-head-bottom]=\"position === 'bottom'\"\r\n>\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr\r\n [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n >\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of initColumns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"\r\n ></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n single\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a\r\n [class.x-table-sort]=\"column.sort\"\r\n (click)=\"onSort(column)\"\r\n [style.text-align]=\"column.textAlign\"\r\n >\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.XDragDirective, selector: "[x-drag]" }], encapsulation: i0.ViewEncapsulation.None }); }
175
186
  }
176
187
  export { XTableHeadComponent };
177
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XTableHeadComponent, decorators: [{
178
189
  type: Component,
179
- args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead\r\n #thead\r\n [ngStyle]=\"theadStyle\"\r\n [class.x-table-head-top]=\"position === 'top'\"\r\n [class.x-table-head-bottom]=\"position === 'bottom'\"\r\n>\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr\r\n [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n >\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of columns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"\r\n ></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n single\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a\r\n [class.x-table-sort]=\"column.sort\"\r\n (click)=\"onSort(column)\"\r\n [style.text-align]=\"column.textAlign\"\r\n >\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
190
+ args: [{ selector: `${XTableHeadPrefix}`, encapsulation: ViewEncapsulation.None, template: "<thead\r\n #thead\r\n [ngStyle]=\"theadStyle\"\r\n [class.x-table-head-top]=\"position === 'top'\"\r\n [class.x-table-head-bottom]=\"position === 'bottom'\"\r\n>\r\n <ng-container *ngIf=\"cellConfig; else columnsTpl\">\r\n <tr\r\n [style.gridTemplateColumns]=\"cellConfig.gridTemplateColumns\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n >\r\n <th\r\n *ngFor=\"let column of cellConfig.cells\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"table.headSearchTpl\">\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.padding-right.px]=\"scrollYWidth\"\r\n [style.width.px]=\"scrollXWidth\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n <th\r\n *ngFor=\"let column of initColumns; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n <ng-container [ngSwitch]=\"case\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"table.headSearchTpl; context: { $column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"\r\n ></ng-container>\r\n <div\r\n *ngIf=\"column.dragWidth\"\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n </ng-container>\r\n </ng-container>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <x-checkbox\r\n *ngIf=\"column.headChecked\"\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n single\r\n [indeterminate]=\"table.checkedValues[column.id + table.indeterminate]\"\r\n ></x-checkbox>\r\n <ng-container *ngIf=\"!column.headChecked\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'index'\">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container\r\n *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a\r\n [class.x-table-sort]=\"column.sort\"\r\n (click)=\"onSort(column)\"\r\n [style.text-align]=\"column.textAlign\"\r\n >\r\n <ng-container *xOutlet=\"columnTpl[column.id]; context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf=\"column.sort\"\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr === column.id + ' asc'\"\r\n ></x-icon>\r\n </a>\r\n</ng-template>\r\n" }]
180
191
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { thead: [{
181
192
  type: ViewChild,
182
193
  args: ['thead']
183
194
  }], table: [{
184
195
  type: Input
185
196
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQTRCLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFTLFNBQVMsRUFBc0MsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUgsT0FBTyxFQUErQyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQUV0RyxNQUthLG1CQUFvQixTQUFRLGtCQUFrQjtJQU96RCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUNEO0lBQ0UscURBQXFEO0lBQzlDLFFBQW1CLEVBQ25CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFkdEMsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZUFBVSxHQUFnQyxF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QUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlSGVhZFByZWZpeCwgWFRhYmxlSGVhZFByb3BlcnR5LCBYVGFibGVDb2x1bW4sIFhUYWJsZUNlbGwsIFhUYWJsZVByZWZpeCB9IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyByZW1vdmVOZ1RhZywgWElzRW1wdHksIFhTb3J0LCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlLCBYTnVtYmVyLCBYQ2xhc3NNYXAsIFhJc0Z1bmN0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBDZGtEcmFnU29ydEV2ZW50LCBDZGtEcmFnU3RhcnQsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZUhlYWRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlSGVhZENvbXBvbmVudCBleHRlbmRzIFhUYWJsZUhlYWRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc29ydDogWFNvcnRbXSA9IFtdO1xyXG4gIHNvcnRTdHIgPSAnJztcclxuICB0aGVhZFN0eWxlOiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICB0aENsYXNzTWFwOiBYQ2xhc3NNYXAgPSB7fTtcclxuICBAVmlld0NoaWxkKCd0aGVhZCcpIHRoZWFkITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQElucHV0KCkgdGFibGU6IGFueTtcclxuICBnZXQgZ2V0Um93SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIHRhYmxlOiBYVGFibGVDb21wb25lbnQsXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBzY3JvbGxZV2lkdGgsIHNjcm9sbFhXaWR0aCwgY2VsbENvbmZpZyB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShjb2x1bW5zLCBzY3JvbGxZV2lkdGgsIHNjcm9sbFhXaWR0aCwgY2VsbENvbmZpZykgJiYgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICByZW1vdmVOZ1RhZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnNldFN0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkcy5wdXNoKHRoaXMudGhlYWQpO1xyXG4gICAgdGhpcy50YWJsZS50aGVhZHNDaGFuZ2UucHVzaCgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gICAgdGhpcy5zZXRUaENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBzZXRUaENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy50aENsYXNzTWFwID0ge1xyXG4gICAgICBbYCR7WFRhYmxlUHJlZml4fS10aC0ke3RoaXMudGFibGUucm93U2l6ZX1gXTogIVhJc0VtcHR5KHRoaXMudGFibGUucm93U2l6ZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRGbGV4KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSByZXR1cm4gJ25vbmUnO1xyXG4gICAgaWYgKCFjb2x1bW4uZmxleCkgcmV0dXJuIDE7XHJcbiAgICByZXR1cm4gY29sdW1uLmZsZXg7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5SaWdodChyaWdodD86IG51bWJlcikge1xyXG4gICAgaWYgKE51bWJlcihyaWdodCkgPj0gMCkge1xyXG4gICAgICBpZiAoTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKSA+PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcihyaWdodCkgKyBOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBOdW1iZXIocmlnaHQpO1xyXG4gICAgfVxyXG4gICAgLy8gcmV0dXJuIHJpZ2h0O1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1uV2lkdGgoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIC8vIGlmIChOdW1iZXIoY29sdW1uLnJpZ2h0KSA9PT0gMCkge1xyXG4gICAgLy8gICBpZiAoTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKSA+PSAwKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIE51bWJlcihjb2x1bW4ud2lkdGgpICsgTnVtYmVyKHRoaXMuc2Nyb2xsWVdpZHRoKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICByZXR1cm4gY29sdW1uLndpZHRoO1xyXG4gICAgLy8gfVxyXG4gICAgcmV0dXJuIGNvbHVtbi53aWR0aDtcclxuICB9XHJcblxyXG4gIHNldFN0eWxlKCkge1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gICAgaWYgKHRoaXMuY2VsbENvbmZpZyAmJiB0aGlzLmNlbGxDb25maWcuY2VsbHMpIHtcclxuICAgICAgY29uc3Qgc3B0ID0gdGhpcy5jZWxsQ29uZmlnLmNlbGxzLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdyaWRBcmVhU3B0ID0geC5ncmlkQXJlYT8uc3BsaXQoJy8nKTtcclxuICAgICAgICByZXR1cm4gZ3JpZEFyZWFTcHQgJiYgZ3JpZEFyZWFTcHQubGVuZ3RoID4gMyA/IE51bWJlcihncmlkQXJlYVNwdFsyXSkgOiAyO1xyXG4gICAgICB9KTtcclxuICAgICAgaGVpZ2h0ID0gKChNYXRoLm1heCguLi5zcHQpIC0gMSkgKiAoaGVpZ2h0IGFzIG51bWJlcikpIGFzIFhOdW1iZXI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRoZWFkU3R5bGUgPSB7XHJcbiAgICAgIC8vIGhlaWdodDogYCR7aGVpZ2h0fXB4YCxcclxuICAgICAgWydtaW4taGVpZ2h0J106IGAke3RoaXMuZ2V0Um93SGVpZ2h0fXB4YFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uU29ydChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgaWYgKCFjb2x1bW4uc29ydCkgcmV0dXJuO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuc29ydCkpIHRoaXMuc29ydCA9IFtdO1xyXG4gICAgbGV0IHNvcnQgPSB0aGlzLnNvcnQ/LmZpbmQoKHkpID0+IHkuZmllbGQgPT09IGNvbHVtbi5pZCk7XHJcbiAgICBpZiAoc29ydCkge1xyXG4gICAgICBpZiAoc29ydC52YWx1ZSA9PT0gJ2FzYycpIHtcclxuICAgICAgICB0aGlzLnNvcnQgPSBbXTtcclxuICAgICAgICB0aGlzLnNvcnRTdHIgPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0LnZhbHVlID0gJ2FzYyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnQgPSB7IGZpZWxkOiBjb2x1bW4uaWQsIHZhbHVlOiAnZGVzYycgfTtcclxuICAgICAgdGhpcy5zb3J0ID0gW3NvcnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnNvcnQpKSB0aGlzLnNvcnRTdHIgPSBgJHtzb3J0LmZpZWxkfSAke3NvcnQudmFsdWV9YDtcclxuICAgIHRoaXMudGFibGUuY2hlY2tTb3J0KHRoaXMuc29ydCk7XHJcbiAgICB0aGlzLnRhYmxlLnNvcnRDaGFuZ2UuZW1pdCh0aGlzLnNvcnQpO1xyXG4gICAgdGhpcy50YWJsZS5yZXNldFNjcm9sbChmYWxzZSwgdHJ1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkcmFnV2lkdGhNb3ZlZChwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgb2Zmc2V0WDogbnVtYmVyOyBvZmZzZXRZOiBudW1iZXIgfSwgY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoKSB7XHJcbiAgICAgIChjb2x1bW4ud2lkdGggYXMgbnVtYmVyKSArPSBwb3NpdGlvbi5vZmZzZXRYO1xyXG4gICAgICBpZiAoY29sdW1uLndpZHRoIDwgNjApIGNvbHVtbi53aWR0aCA9IDYwO1xyXG4gICAgICBYSXNGdW5jdGlvbihjb2x1bW4uZHJhZ1dpZHRoTW92ZWQpICYmIGNvbHVtbi5kcmFnV2lkdGhNb3ZlZCh7IHBvc2l0aW9uLCBjb2x1bW4gfSk7XHJcbiAgICAgIHRoaXMudGFibGUuY29sdW1uRHJhZ1dpZHRoTW92ZWQuZW1pdCh7IHBvc2l0aW9uLCBjb2x1bW4gfSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy50YWJsZS5ib2R5Q2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcmFnV2lkdGhTdGFydGVkKHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sIGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgY29sdW1uLmRyYWdnaW5nV2lkdGggPSB0cnVlO1xyXG4gICAgaWYgKGNvbHVtbi53aWR0aCAmJiBYSXNGdW5jdGlvbihjb2x1bW4uZHJhZ1dpZHRoU3RhcnRlZCkpIHtcclxuICAgICAgY29sdW1uLmRyYWdXaWR0aFN0YXJ0ZWQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgICB0aGlzLnRhYmxlLmNvbHVtbkRyYWdXaWR0aFN0YXJ0ZWQuZW1pdCh7IHBvc2l0aW9uLCBjb2x1bW4gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcmFnV2lkdGhFbmRlZChwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LCBjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIGNvbHVtbi5kcmFnZ2luZ1dpZHRoID0gZmFsc2U7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoICYmIFhJc0Z1bmN0aW9uKGNvbHVtbi5kcmFnV2lkdGhFbmRlZCkpIHtcclxuICAgICAgY29sdW1uLmRyYWdXaWR0aEVuZGVkKHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnV2lkdGhFbmRlZC5lbWl0KHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyb3BMaXN0RHJvcHBlZChfZXZlbnQ6IENka0RyYWdEcm9wPFhUYWJsZUNvbHVtbltdPikge1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbkRyb3BMaXN0RHJvcHBlZC5lbWl0KHRoaXMuY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBkcm9wTGlzdFNvcnRlZChldmVudDogQ2RrRHJhZ1NvcnRFdmVudDxYVGFibGVDb2x1bW5bXT4pIHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5jb2x1bW5zW2V2ZW50LnByZXZpb3VzSW5kZXhdO1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY29sdW1uc1tldmVudC5jdXJyZW50SW5kZXhdO1xyXG4gICAgY29uc3QgbWlkZGxlID0geyBsZWZ0OiBwcmV2aW91cy5sZWZ0LCByaWdodDogcHJldmlvdXMucmlnaHQgfTtcclxuICAgIHByZXZpb3VzLmxlZnQgPSBjdXJyZW50LmxlZnQ7XHJcbiAgICBwcmV2aW91cy5yaWdodCA9IGN1cnJlbnQucmlnaHQ7XHJcbiAgICBjdXJyZW50LmxlZnQgPSBtaWRkbGUubGVmdDtcclxuICAgIGN1cnJlbnQucmlnaHQgPSBtaWRkbGUucmlnaHQ7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBkcmFnU3RhcnRlZChfZXZlbnQ6IENka0RyYWdTdGFydCwgY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbHVtbi5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICB0aGlzLmRyYWdDaGFuZ2UoKTtcclxuICAgIHRoaXMudGFibGUudGhlYWRzQ2hhbmdlcygpO1xyXG4gICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnU3RhcnRlZC5lbWl0KGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBkcmFnRW5kZWQoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbHVtbi5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kcmFnQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkc0NoYW5nZXMoKTtcclxuICAgIHRoaXMudGFibGUuY29sdW1uRHJhZ0VuZGVkLmVtaXQoY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGRyYWdDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8dGhlYWRcclxuICAjdGhlYWRcclxuICBbbmdTdHlsZV09XCJ0aGVhZFN0eWxlXCJcclxuICBbY2xhc3MueC10YWJsZS1oZWFkLXRvcF09XCJwb3NpdGlvbiA9PT0gJ3RvcCdcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhlYWQtYm90dG9tXT1cInBvc2l0aW9uID09PSAnYm90dG9tJ1wiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbENvbmZpZzsgZWxzZSBjb2x1bW5zVHBsXCI+XHJcbiAgICA8dHJcclxuICAgICAgW3N0eWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnNdPVwiY2VsbENvbmZpZy5ncmlkVGVtcGxhdGVDb2x1bW5zXCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgID5cclxuICAgICAgPHRoXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjZWxsQ29uZmlnLmNlbGxzXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ldPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0KGNvbHVtbilcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0LWxhc3RdPVwidGFibGUuZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtd2lkdGgtZHJhZ109XCJjb2x1bW4uZHJhZ1dpZHRoXCJcclxuICAgICAgICBbc3R5bGUuZ3JpZC1hcmVhXT1cImNvbHVtbi5ncmlkQXJlYVwiXHJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICAgIFtzdHlsZS5yaWdodC5weF09XCJjb2x1bW4ucmlnaHRcIlxyXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImNvbHVtbj8ubGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbkJhc2VUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmRyYWdXaWR0aFwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiXHJcbiAgICAgICAgICB4LWRyYWdcclxuICAgICAgICAgIChkcmFnTW92ZWQpPVwiZHJhZ1dpZHRoTW92ZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJkcmFnV2lkdGhTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAoZHJhZ0VuZGVkKT1cImRyYWdXaWR0aEVuZGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGUuaGVhZFNlYXJjaFRwbFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbnNUcGw7IGNvbnRleHQ6IHsgY2FzZTogJ3NlYXJjaCcgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3RoZWFkPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVHBsIGxldC1jYXNlPVwiY2FzZVwiPlxyXG4gIDx0clxyXG4gICAgY2RrRHJvcExpc3RcclxuICAgIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcclxuICAgIChjZGtEcm9wTGlzdFNvcnRlZCk9XCJkcm9wTGlzdFNvcnRlZCgkZXZlbnQpXCJcclxuICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcExpc3REcm9wcGVkKCRldmVudClcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWFdpZHRoXCJcclxuICAgIFtjbGFzcy54LXRhYmxlLXNlYXJjaF09XCJjYXNlID09PSAnc2VhcmNoJ1wiXHJcbiAgPlxyXG4gICAgPHRoXHJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBjZGtEcmFnXHJcbiAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiY29sdW1uLmRyYWdnaW5nV2lkdGggfHwgIWNvbHVtbi5kcmFnQ29sdW1uXCJcclxuICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ0VuZGVkKGNvbHVtbilcIlxyXG4gICAgICBbbmdDbGFzc109XCJ0aENsYXNzTWFwXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtdGhdPVwidHJ1ZVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3koY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJnZXRDb2x1bW5XaWR0aChjb2x1bW4pXCJcclxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICBbc3R5bGUucmlnaHQucHhdPVwiZ2V0Q29sdW1uUmlnaHQoY29sdW1uLnJpZ2h0KVwiXHJcbiAgICAgIFtzdHlsZS5mbGV4XT1cImdldEZsZXgoY29sdW1uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNhc2VcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlLmhlYWRTZWFyY2hUcGw7IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5CYXNlVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiXHJcbiAgICAgICAgICAgIHgtZHJhZ1xyXG4gICAgICAgICAgICAoZHJhZ01vdmVkKT1cImRyYWdXaWR0aE1vdmVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJkcmFnV2lkdGhTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZHJhZ1dpZHRoRW5kZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RoPlxyXG4gIDwvdHI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbkJhc2VUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uaGVhZENoZWNrZWRcIlxyXG4gICAgICAgIFtkYXRhXT1cIlt7IGlkOiB0cnVlLCBsYWJlbDogY29sdW1uLmxhYmVsIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRhYmxlLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuaGVhZENoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICBzaW5nbGVcclxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZCArIHRhYmxlLmluZGV0ZXJtaW5hdGVdXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaGVhZENoZWNrZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8YT57eyBjb2x1bW4ubGFiZWwgfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Nsb3VtbkRlZmF1bHRUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxhXHJcbiAgICBbY2xhc3MueC10YWJsZS1zb3J0XT1cImNvbHVtbi5zb3J0XCJcclxuICAgIChjbGljayk9XCJvblNvcnQoY29sdW1uKVwiXHJcbiAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4udGV4dEFsaWduXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY29sdW1uVHBsW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIj5cclxuICAgICAge3sgY29sdW1uLmxhYmVsIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDx4LWljb25cclxuICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydFwiXHJcbiAgICAgIHR5cGU9XCJmdG8tYmFyLWNoYXJ0XCJcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXNvcnQtaWNvblwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tdXBdPVwic29ydFN0ciA9PT0gY29sdW1uLmlkICsgJyBkZXNjJ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tZG93bl09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGFzYydcIlxyXG4gICAgPjwveC1pY29uPlxyXG4gIDwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS1oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RhYmxlL3RhYmxlLWhlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFLakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUdsQixZQUFZLEVBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsV0FBVyxFQUNYLFFBQVEsRUFFUixTQUFTLEVBSVQsV0FBVyxFQUNaLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUlMLGVBQWUsRUFDaEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQUVoQyxNQUthLG1CQUFvQixTQUFRLGtCQUFrQjtJQVN6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUNEO0lBQ0UscURBQXFEO0lBQzlDLFFBQW1CLEVBQ25CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFoQnRDLFNBQUksR0FBWSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGVBQVUsR0FBZ0Ms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RSxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBb0I7UUFDNUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztrSUF6TFUsbUJBQW1CO3NIQUFuQixtQkFBbUIsNE5DeENoQyx5c0xBK0lBOztTRHZHYSxtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxHQUFHLGdCQUFnQixFQUFFLGlCQUVoQixpQkFBaUIsQ0FBQyxJQUFJO3NMQU9qQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ1QsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWFRhYmxlSGVhZFByZWZpeCxcclxuICBYVGFibGVIZWFkUHJvcGVydHksXHJcbiAgWFRhYmxlQ29sdW1uLFxyXG4gIFhUYWJsZUNlbGwsXHJcbiAgWFRhYmxlUHJlZml4XHJcbn0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgcmVtb3ZlTmdUYWcsXHJcbiAgWElzRW1wdHksXHJcbiAgWFNvcnQsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhOdW1iZXIsXHJcbiAgWENsYXNzTWFwLFxyXG4gIFhJc0Z1bmN0aW9uXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2RrRHJhZ0Ryb3AsXHJcbiAgQ2RrRHJhZ1NvcnRFdmVudCxcclxuICBDZGtEcmFnU3RhcnQsXHJcbiAgbW92ZUl0ZW1JbkFycmF5XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlSGVhZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVIZWFkQ29tcG9uZW50IGV4dGVuZHMgWFRhYmxlSGVhZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzb3J0OiBYU29ydFtdID0gW107XHJcbiAgc29ydFN0ciA9ICcnO1xyXG4gIHRoZWFkU3R5bGU6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIHRoQ2xhc3NNYXA6IFhDbGFzc01hcCA9IHt9O1xyXG4gIEBWaWV3Q2hpbGQoJ3RoZWFkJykgdGhlYWQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBASW5wdXQoKSB0YWJsZTogYW55O1xyXG4gIGluaXRDb2x1bW5zOiBYVGFibGVDb2x1bW5bXSA9IFtdO1xyXG5cclxuICBnZXQgZ2V0Um93SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucm93SGVpZ2h0ID09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0O1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIHRhYmxlOiBYVGFibGVDb21wb25lbnQsXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBzY3JvbGxZV2lkdGgsIHNjcm9sbFhXaWR0aCwgY2VsbENvbmZpZyB9ID0gc2ltcGxlcztcclxuICAgIGlmIChYSXNDaGFuZ2UoY29sdW1ucykpIHtcclxuICAgICAgdGhpcy5pbml0Q29sdW1ucyA9IFsuLi50aGlzLmNvbHVtbnNdO1xyXG4gICAgfVxyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIHNjcm9sbFlXaWR0aCwgc2Nyb2xsWFdpZHRoLCBjZWxsQ29uZmlnKSAmJiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHJlbW92ZU5nVGFnKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc2V0U3R5bGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudGFibGUudGhlYWRzLnB1c2godGhpcy50aGVhZCk7XHJcbiAgICB0aGlzLnRhYmxlLnRoZWFkc0NoYW5nZS5wdXNoKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSk7XHJcbiAgICB0aGlzLnNldFRoQ2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIHNldFRoQ2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLnRoQ2xhc3NNYXAgPSB7XHJcbiAgICAgIFtgJHtYVGFibGVQcmVmaXh9LXRoLSR7dGhpcy50YWJsZS5yb3dTaXplfWBdOiAhWElzRW1wdHkodGhpcy50YWJsZS5yb3dTaXplKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEZsZXgoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGlmIChjb2x1bW4ud2lkdGgpIHJldHVybiAnbm9uZSc7XHJcbiAgICBpZiAoIWNvbHVtbi5mbGV4KSByZXR1cm4gMTtcclxuICAgIHJldHVybiBjb2x1bW4uZmxleDtcclxuICB9XHJcblxyXG4gIGdldENvbHVtblJpZ2h0KHJpZ2h0PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoTnVtYmVyKHJpZ2h0KSA+PSAwKSB7XHJcbiAgICAgIGlmIChOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpID49IDApIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHJpZ2h0KSArIE51bWJlcih0aGlzLnNjcm9sbFlXaWR0aCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIE51bWJlcihyaWdodCk7XHJcbiAgICB9XHJcbiAgICAvLyByZXR1cm4gcmlnaHQ7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgLy8gaWYgKE51bWJlcihjb2x1bW4ucmlnaHQpID09PSAwKSB7XHJcbiAgICAvLyAgIGlmIChOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpID49IDApIHtcclxuICAgIC8vICAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi53aWR0aCkgKyBOdW1iZXIodGhpcy5zY3JvbGxZV2lkdGgpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHJldHVybiBjb2x1bW4ud2lkdGg7XHJcbiAgICAvLyB9XHJcbiAgICByZXR1cm4gY29sdW1uLndpZHRoO1xyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgICBpZiAodGhpcy5jZWxsQ29uZmlnICYmIHRoaXMuY2VsbENvbmZpZy5jZWxscykge1xyXG4gICAgICBjb25zdCBzcHQgPSB0aGlzLmNlbGxDb25maWcuY2VsbHMubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEFyZWFTcHQgPSB4LmdyaWRBcmVhPy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHJldHVybiBncmlkQXJlYVNwdCAmJiBncmlkQXJlYVNwdC5sZW5ndGggPiAzID8gTnVtYmVyKGdyaWRBcmVhU3B0WzJdKSA6IDI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoZWlnaHQgPSAoKE1hdGgubWF4KC4uLnNwdCkgLSAxKSAqIChoZWlnaHQgYXMgbnVtYmVyKSkgYXMgWE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMudGhlYWRTdHlsZSA9IHtcclxuICAgICAgLy8gaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLFxyXG4gICAgICBbJ21pbi1oZWlnaHQnXTogYCR7dGhpcy5nZXRSb3dIZWlnaHR9cHhgXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBpZiAoIWNvbHVtbi5zb3J0KSByZXR1cm47XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5zb3J0KSkgdGhpcy5zb3J0ID0gW107XHJcbiAgICBsZXQgc29ydCA9IHRoaXMuc29ydD8uZmluZCgoeSkgPT4geS5maWVsZCA9PT0gY29sdW1uLmlkKTtcclxuICAgIGlmIChzb3J0KSB7XHJcbiAgICAgIGlmIChzb3J0LnZhbHVlID09PSAnYXNjJykge1xyXG4gICAgICAgIHRoaXMuc29ydCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc29ydFN0ciA9ICcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnQudmFsdWUgPSAnYXNjJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydCA9IHsgZmllbGQ6IGNvbHVtbi5pZCwgdmFsdWU6ICdkZXNjJyB9O1xyXG4gICAgICB0aGlzLnNvcnQgPSBbc29ydF07XHJcbiAgICB9XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMuc29ydCkpIHRoaXMuc29ydFN0ciA9IGAke3NvcnQuZmllbGR9ICR7c29ydC52YWx1ZX1gO1xyXG4gICAgdGhpcy50YWJsZS5jaGVja1NvcnQodGhpcy5zb3J0KTtcclxuICAgIHRoaXMudGFibGUuc29ydENoYW5nZS5lbWl0KHRoaXMuc29ydCk7XHJcbiAgICB0aGlzLnRhYmxlLnJlc2V0U2Nyb2xsKGZhbHNlLCB0cnVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRyYWdXaWR0aE1vdmVkKFxyXG4gICAgcG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IG9mZnNldFg6IG51bWJlcjsgb2Zmc2V0WTogbnVtYmVyIH0sXHJcbiAgICBjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGxcclxuICApIHtcclxuICAgIGlmIChjb2x1bW4ud2lkdGgpIHtcclxuICAgICAgKGNvbHVtbi53aWR0aCBhcyBudW1iZXIpICs9IHBvc2l0aW9uLm9mZnNldFg7XHJcbiAgICAgIGlmIChjb2x1bW4ud2lkdGggPCA2MCkgY29sdW1uLndpZHRoID0gNjA7XHJcbiAgICAgIFhJc0Z1bmN0aW9uKGNvbHVtbi5kcmFnV2lkdGhNb3ZlZCkgJiYgY29sdW1uLmRyYWdXaWR0aE1vdmVkKHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnV2lkdGhNb3ZlZC5lbWl0KHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnRhYmxlLmJvZHlDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYWdXaWR0aFN0YXJ0ZWQocG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBjb2x1bW4uZHJhZ2dpbmdXaWR0aCA9IHRydWU7XHJcbiAgICBpZiAoY29sdW1uLndpZHRoICYmIFhJc0Z1bmN0aW9uKGNvbHVtbi5kcmFnV2lkdGhTdGFydGVkKSkge1xyXG4gICAgICBjb2x1bW4uZHJhZ1dpZHRoU3RhcnRlZCh7IHBvc2l0aW9uLCBjb2x1bW4gfSk7XHJcbiAgICAgIHRoaXMudGFibGUuY29sdW1uRHJhZ1dpZHRoU3RhcnRlZC5lbWl0KHsgcG9zaXRpb24sIGNvbHVtbiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYWdXaWR0aEVuZGVkKHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sIGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgY29sdW1uLmRyYWdnaW5nV2lkdGggPSBmYWxzZTtcclxuICAgIGlmIChjb2x1bW4ud2lkdGggJiYgWElzRnVuY3Rpb24oY29sdW1uLmRyYWdXaWR0aEVuZGVkKSkge1xyXG4gICAgICBjb2x1bW4uZHJhZ1dpZHRoRW5kZWQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgICB0aGlzLnRhYmxlLmNvbHVtbkRyYWdXaWR0aEVuZGVkLmVtaXQoeyBwb3NpdGlvbiwgY29sdW1uIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJvcExpc3REcm9wcGVkKGV2ZW50OiBDZGtEcmFnRHJvcDxYVGFibGVDb2x1bW5bXT4pIHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5pbml0Q29sdW1uc1tldmVudC5wcmV2aW91c0luZGV4XTtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmluaXRDb2x1bW5zW2V2ZW50LmN1cnJlbnRJbmRleF07XHJcbiAgICBjb25zdCBtaWRkbGUgPSB7IGxlZnQ6IHByZXZpb3VzLmxlZnQsIHJpZ2h0OiBwcmV2aW91cy5yaWdodCB9O1xyXG4gICAgcHJldmlvdXMubGVmdCA9IGN1cnJlbnQubGVmdDtcclxuICAgIHByZXZpb3VzLnJpZ2h0ID0gY3VycmVudC5yaWdodDtcclxuICAgIGN1cnJlbnQubGVmdCA9IG1pZGRsZS5sZWZ0O1xyXG4gICAgY3VycmVudC5yaWdodCA9IG1pZGRsZS5yaWdodDtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmluaXRDb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy50YWJsZS5jb2x1bW5Ecm9wTGlzdERyb3BwZWQuZW1pdCh0aGlzLmluaXRDb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIGRyb3BMaXN0U29ydGVkKGV2ZW50OiBDZGtEcmFnU29ydEV2ZW50PFhUYWJsZUNvbHVtbltdPikge1xyXG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLmNvbHVtbnNbZXZlbnQucHJldmlvdXNJbmRleF07XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jb2x1bW5zW2V2ZW50LmN1cnJlbnRJbmRleF07XHJcbiAgICBjb25zdCBtaWRkbGUgPSB7IGxlZnQ6IHByZXZpb3VzLmxlZnQsIHJpZ2h0OiBwcmV2aW91cy5yaWdodCB9O1xyXG4gICAgcHJldmlvdXMubGVmdCA9IGN1cnJlbnQubGVmdDtcclxuICAgIHByZXZpb3VzLnJpZ2h0ID0gY3VycmVudC5yaWdodDtcclxuICAgIGN1cnJlbnQubGVmdCA9IG1pZGRsZS5sZWZ0O1xyXG4gICAgY3VycmVudC5yaWdodCA9IG1pZGRsZS5yaWdodDtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmRyYWdDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGRyYWdTdGFydGVkKF9ldmVudDogQ2RrRHJhZ1N0YXJ0LCBjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgY29sdW1uLmRyYWdnaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZHJhZ0NoYW5nZSgpO1xyXG4gICAgdGhpcy50YWJsZS50aGVhZHNDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbkRyYWdTdGFydGVkLmVtaXQoY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGRyYWdFbmRlZChjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgY29sdW1uLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmRyYWdDaGFuZ2UoKTtcclxuICAgIHRoaXMudGFibGUudGhlYWRzQ2hhbmdlcygpO1xyXG4gICAgdGhpcy50YWJsZS5jb2x1bW5EcmFnRW5kZWQuZW1pdChjb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZHJhZ0NoYW5nZSgpIHtcclxuICAgIHRoaXMudGFibGUuYm9keUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IFhUYWJsZUNvbHVtbikge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjx0aGVhZFxyXG4gICN0aGVhZFxyXG4gIFtuZ1N0eWxlXT1cInRoZWFkU3R5bGVcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhlYWQtdG9wXT1cInBvc2l0aW9uID09PSAndG9wJ1wiXHJcbiAgW2NsYXNzLngtdGFibGUtaGVhZC1ib3R0b21dPVwicG9zaXRpb24gPT09ICdib3R0b20nXCJcclxuPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsQ29uZmlnOyBlbHNlIGNvbHVtbnNUcGxcIj5cclxuICAgIDx0clxyXG4gICAgICBbc3R5bGUuZ3JpZFRlbXBsYXRlQ29sdW1uc109XCJjZWxsQ29uZmlnLmdyaWRUZW1wbGF0ZUNvbHVtbnNcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgPlxyXG4gICAgICA8dGhcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNlbGxDb25maWcuY2VsbHNcIlxyXG4gICAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnRdPVwidGFibGUuZ2V0U3RpY2t5TGVmdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHRdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKVwiXHJcbiAgICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS1zdGlja3ktcmlnaHQtZmlyc3RdPVwidGFibGUuZ2V0U3RpY2t5UmlnaHRGaXJzdChjb2x1bW4pXCJcclxuICAgICAgICBbY2xhc3MueC10YWJsZS13aWR0aC1kcmFnXT1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgIFtzdHlsZS5ncmlkLWFyZWFdPVwiY29sdW1uLmdyaWRBcmVhXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXHJcbiAgICAgICAgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbHVtbi5yaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgICBbdGl0bGVdPVwiY29sdW1uPy5sYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uQmFzZVRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZHJhZ1dpZHRoXCJcclxuICAgICAgICAgIGNsYXNzPVwieC10YWJsZS1kcmFnLXdpZHRoXCJcclxuICAgICAgICAgIHgtZHJhZ1xyXG4gICAgICAgICAgKGRyYWdNb3ZlZCk9XCJkcmFnV2lkdGhNb3ZlZCgkZXZlbnQsIGNvbHVtbilcIlxyXG4gICAgICAgICAgKGRyYWdTdGFydGVkKT1cImRyYWdXaWR0aFN0YXJ0ZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgIChkcmFnRW5kZWQpPVwiZHJhZ1dpZHRoRW5kZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIDwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZS5oZWFkU2VhcmNoVHBsXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uc1RwbDsgY29udGV4dDogeyBjYXNlOiAnc2VhcmNoJyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdGhlYWQ+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbnNUcGwgbGV0LWNhc2U9XCJjYXNlXCI+XHJcbiAgPHRyXHJcbiAgICBjZGtEcm9wTGlzdFxyXG4gICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxyXG4gICAgKGNka0Ryb3BMaXN0U29ydGVkKT1cImRyb3BMaXN0U29ydGVkKCRldmVudClcIlxyXG4gICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wTGlzdERyb3BwZWQoJGV2ZW50KVwiXHJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLnBhZGRpbmctcmlnaHQucHhdPVwic2Nyb2xsWVdpZHRoXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gICAgW2NsYXNzLngtdGFibGUtc2VhcmNoXT1cImNhc2UgPT09ICdzZWFyY2gnXCJcclxuICA+XHJcbiAgICA8dGhcclxuICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBpbml0Q29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICBjZGtEcmFnXHJcbiAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiY29sdW1uLmRyYWdnaW5nV2lkdGggfHwgIWNvbHVtbi5kcmFnQ29sdW1uXCJcclxuICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ0VuZGVkKGNvbHVtbilcIlxyXG4gICAgICBbbmdDbGFzc109XCJ0aENsYXNzTWFwXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtdGhdPVwidHJ1ZVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreV09XCJ0YWJsZS5nZXRTdGlja3koY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1sZWZ0XT1cInRhYmxlLmdldFN0aWNreUxlZnQoY29sdW1uKVwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLXN0aWNreS1yaWdodF09XCJ0YWJsZS5nZXRTdGlja3lSaWdodChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LWxlZnQtbGFzdF09XCJ0YWJsZS5nZXRTdGlja3lMZWZ0TGFzdChjb2x1bW4pXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtc3RpY2t5LXJpZ2h0LWZpcnN0XT1cInRhYmxlLmdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uKVwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJnZXRDb2x1bW5XaWR0aChjb2x1bW4pXCJcclxuICAgICAgW3N0eWxlLmxlZnQucHhdPVwiY29sdW1uLmxlZnRcIlxyXG4gICAgICBbc3R5bGUucmlnaHQucHhdPVwiZ2V0Q29sdW1uUmlnaHQoY29sdW1uLnJpZ2h0KVwiXHJcbiAgICAgIFtzdHlsZS5mbGV4XT1cImdldEZsZXgoY29sdW1uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNhc2VcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlLmhlYWRTZWFyY2hUcGw7IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5CYXNlVHBsOyBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uIH1cIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5kcmFnV2lkdGhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIngtdGFibGUtZHJhZy13aWR0aFwiXHJcbiAgICAgICAgICAgIHgtZHJhZ1xyXG4gICAgICAgICAgICAoZHJhZ01vdmVkKT1cImRyYWdXaWR0aE1vdmVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAgIChkcmFnU3RhcnRlZCk9XCJkcmFnV2lkdGhTdGFydGVkKCRldmVudCwgY29sdW1uKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZHJhZ1dpZHRoRW5kZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RoPlxyXG4gIDwvdHI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbHVtbkJhc2VUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbi50eXBlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDx4LWNoZWNrYm94XHJcbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uaGVhZENoZWNrZWRcIlxyXG4gICAgICAgIFtkYXRhXT1cIlt7IGlkOiB0cnVlLCBsYWJlbDogY29sdW1uLmxhYmVsIH1dXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRhYmxlLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkXVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGFibGUuaGVhZENoZWNrZWQoJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICBzaW5nbGVcclxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ0YWJsZS5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZCArIHRhYmxlLmluZGV0ZXJtaW5hdGVdXCJcclxuICAgICAgPjwveC1jaGVja2JveD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uaGVhZENoZWNrZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3VtbkRlZmF1bHRUcGw7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4gfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZGV4J1wiPlxyXG4gICAgICA8YT57eyBjb2x1bW4ubGFiZWwgfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvdW1uRGVmYXVsdFRwbDsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Nsb3VtbkRlZmF1bHRUcGwgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gIDxhXHJcbiAgICBbY2xhc3MueC10YWJsZS1zb3J0XT1cImNvbHVtbi5zb3J0XCJcclxuICAgIChjbGljayk9XCJvblNvcnQoY29sdW1uKVwiXHJcbiAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4udGV4dEFsaWduXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY29sdW1uVHBsW2NvbHVtbi5pZF07IGNvbnRleHQ6IHsgJGNvbHVtbjogY29sdW1uIH1cIj5cclxuICAgICAge3sgY29sdW1uLmxhYmVsIH19XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDx4LWljb25cclxuICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydFwiXHJcbiAgICAgIHR5cGU9XCJmdG8tYmFyLWNoYXJ0XCJcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXNvcnQtaWNvblwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tdXBdPVwic29ydFN0ciA9PT0gY29sdW1uLmlkICsgJyBkZXNjJ1wiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWljb24tZG93bl09XCJzb3J0U3RyID09PSBjb2x1bW4uaWQgKyAnIGFzYydcIlxyXG4gICAgPjwveC1pY29uPlxyXG4gIDwvYT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -3,7 +3,7 @@ import { EventEmitter, Component, Input, Output, inject, PLATFORM_ID, ViewEncaps
3
3
  import { __decorate } from 'tslib';
4
4
  import * as i1 from '@ng-nest/ui/core';
5
5
  import { XProperty, XInputNumber, XWithConfig, XInputBoolean, XResize, XIsChange, XIsUndefined, XIsEmpty, XDropAnimation } from '@ng-nest/ui/core';
6
- import { Subject, BehaviorSubject, takeUntil as takeUntil$1 } from 'rxjs';
6
+ import { Subject, interval, BehaviorSubject, takeUntil as takeUntil$1 } from 'rxjs';
7
7
  import { debounceTime, takeUntil } from 'rxjs/operators';
8
8
  import * as i2 from '@angular/common';
9
9
  import { isPlatformBrowser, CommonModule } from '@angular/common';
@@ -172,7 +172,8 @@ class XCarouselComponent extends XCarouselProperty {
172
172
  XIsChange(active) && this.setActiveItem(Number(this.active));
173
173
  }
174
174
  ngOnDestroy() {
175
- this.timer && clearInterval(this.timer);
175
+ this.timer?.unsubscribe();
176
+ this.precentTimer?.unsubscribe();
176
177
  this.panelChanges.forEach((x) => x.complete());
177
178
  this._unSubject.complete();
178
179
  this._unSubject.unsubscribe();
@@ -187,18 +188,20 @@ class XCarouselComponent extends XCarouselProperty {
187
188
  resetInterval() {
188
189
  if (!this.isBrowser)
189
190
  return;
190
- this.timer && clearInterval(this.timer);
191
- this.precentTimer && clearInterval(this.precentTimer);
192
- this.percent = 0;
193
- const js = Number(this.interval) / 100;
194
- this.precentTimer = setInterval(() => {
195
- this.percent += 1;
196
- this.cdr.detectChanges();
197
- }, js);
198
- this.timer = setInterval(() => {
191
+ this.timer?.unsubscribe();
192
+ if (this.progress) {
193
+ this.precentTimer?.unsubscribe();
194
+ this.percent = 0;
195
+ const js = Number(this.interval) / 100;
196
+ this.precentTimer = interval(js).subscribe(() => {
197
+ this.percent += 1;
198
+ this.cdr.markForCheck();
199
+ });
200
+ }
201
+ this.timer = interval(Number(this.interval)).subscribe(() => {
199
202
  this.percent = 0;
200
203
  this.setActiveItem(Number(this.active) + 1);
201
- }, Number(this.interval));
204
+ });
202
205
  }
203
206
  setActiveItem(index) {
204
207
  if (this.start === -1)
@@ -208,7 +211,7 @@ class XCarouselComponent extends XCarouselProperty {
208
211
  this.active = nextValue;
209
212
  this.panelChanges.forEach((sub) => sub.next(true));
210
213
  this.activeChange.emit(this.active);
211
- this.cdr.detectChanges();
214
+ this.cdr.markForCheck();
212
215
  }
213
216
  setClassMap() {
214
217
  this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);