@ng-nest/ui 15.0.3 → 15.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/core/config/config.d.ts +2 -0
  2. package/dropdown/dropdown-portal.component.d.ts +4 -0
  3. package/esm2020/core/config/config.mjs +1 -1
  4. package/esm2020/dropdown/dropdown-portal.component.mjs +16 -4
  5. package/esm2020/input/input.component.mjs +2 -2
  6. package/esm2020/pagination/pagination.component.mjs +33 -4
  7. package/esm2020/pagination/pagination.property.mjs +15 -3
  8. package/esm2020/select/select.component.mjs +15 -3
  9. package/esm2020/select/select.property.mjs +4 -2
  10. package/esm2020/table/table-body.component.mjs +6 -6
  11. package/esm2020/table/table-head.component.mjs +46 -7
  12. package/esm2020/table/table.component.mjs +16 -5
  13. package/esm2020/table/table.module.mjs +5 -1
  14. package/esm2020/table/table.property.mjs +23 -2
  15. package/esm2020/transfer/transfer.component.mjs +130 -20
  16. package/esm2020/transfer/transfer.module.mjs +12 -4
  17. package/esm2020/transfer/transfer.property.mjs +11 -2
  18. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  19. package/fesm2015/ng-nest-ui-date-picker.mjs +1 -0
  20. package/fesm2015/ng-nest-ui-dropdown.mjs +15 -3
  21. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  22. package/fesm2015/ng-nest-ui-input.mjs +2 -2
  23. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  24. package/fesm2015/ng-nest-ui-pagination.mjs +46 -5
  25. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  26. package/fesm2015/ng-nest-ui-select.mjs +17 -3
  27. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  28. package/fesm2015/ng-nest-ui-table.mjs +89 -16
  29. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  30. package/fesm2015/ng-nest-ui-transfer.mjs +154 -26
  31. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  32. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  33. package/fesm2020/ng-nest-ui-date-picker.mjs +1 -0
  34. package/fesm2020/ng-nest-ui-dropdown.mjs +15 -3
  35. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  36. package/fesm2020/ng-nest-ui-input.mjs +2 -2
  37. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  38. package/fesm2020/ng-nest-ui-pagination.mjs +46 -5
  39. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  40. package/fesm2020/ng-nest-ui-select.mjs +17 -3
  41. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  42. package/fesm2020/ng-nest-ui-table.mjs +89 -16
  43. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  44. package/fesm2020/ng-nest-ui-transfer.mjs +151 -24
  45. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  46. package/package.json +1 -1
  47. package/pagination/pagination.component.d.ts +3 -1
  48. package/pagination/pagination.property.d.ts +13 -3
  49. package/select/select.component.d.ts +4 -1
  50. package/select/select.property.d.ts +9 -4
  51. package/table/table-head.component.d.ts +9 -1
  52. package/table/table.component.d.ts +4 -2
  53. package/table/table.module.d.ts +4 -3
  54. package/table/table.property.d.ts +26 -1
  55. package/transfer/transfer.component.d.ts +12 -2
  56. package/transfer/transfer.module.d.ts +3 -1
  57. package/transfer/transfer.property.d.ts +29 -4
@@ -42,6 +42,7 @@ export class XPaginationComponent extends XPaginationProperty {
42
42
  }
43
43
  ngOnInit() {
44
44
  this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());
45
+ this.inputSize = Number(this.size);
45
46
  }
46
47
  ngOnChanges(changes) {
47
48
  const { total, size, index } = changes;
@@ -54,6 +55,10 @@ export class XPaginationComponent extends XPaginationProperty {
54
55
  sizeChanged() {
55
56
  this.setIndexes();
56
57
  this.sizeChange.emit(this.size);
58
+ if (this.index !== 1) {
59
+ this.index = 1;
60
+ this.indexChange.emit(this.index);
61
+ }
57
62
  }
58
63
  setIndexes() {
59
64
  this.lastIndex = Math.ceil(Number(this.total) / Number(this.size)) || 1;
@@ -78,7 +83,7 @@ export class XPaginationComponent extends XPaginationProperty {
78
83
  this.indexChange.emit(this.index);
79
84
  }
80
85
  }
81
- onKeydown(event) {
86
+ onJumpKeydown(event) {
82
87
  if (this.jumpPage !== null && event.keyCode === ENTER) {
83
88
  if (this.jumpPage <= this.indexFirst) {
84
89
  this.jump(this.indexFirst);
@@ -95,6 +100,12 @@ export class XPaginationComponent extends XPaginationProperty {
95
100
  }
96
101
  onSimpleKeydown(event) {
97
102
  if (this.index !== null && event.keyCode === ENTER) {
103
+ if (Number(this.index) % 1 !== 0) {
104
+ this.index = Math.round(Number(this.index));
105
+ }
106
+ if (isNaN(Number(this.index)) || this.index === 0) {
107
+ this.index = 1;
108
+ }
98
109
  if (this.index <= this.indexFirst) {
99
110
  this.index = this.indexFirst;
100
111
  }
@@ -102,9 +113,27 @@ export class XPaginationComponent extends XPaginationProperty {
102
113
  this.index = this.lastIndex;
103
114
  }
104
115
  this.jump(this.index);
116
+ this.indexChange.emit(this.index);
105
117
  this.cdr.detectChanges();
106
118
  }
107
119
  }
120
+ onInputSizeKeydown(event) {
121
+ if (this.inputSize !== null && event.keyCode === ENTER) {
122
+ if (this.inputSize % 1 !== 0) {
123
+ this.inputSize = Math.round(this.inputSize);
124
+ }
125
+ if (isNaN(this.inputSize)) {
126
+ this.inputSize = Number(this.size);
127
+ }
128
+ if (this.inputSize <= 0) {
129
+ this.inputSize = Number(this.size);
130
+ }
131
+ else if (this.inputSize !== Number(this.size)) {
132
+ this.size = this.inputSize;
133
+ this.sizeChanged();
134
+ }
135
+ }
136
+ }
108
137
  validateIndex(value) {
109
138
  if (value > this.lastIndex) {
110
139
  return this.lastIndex;
@@ -124,9 +153,9 @@ export class XPaginationComponent extends XPaginationProperty {
124
153
  }
125
154
  }
126
155
  /** @nocollapse */ XPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPaginationComponent, deps: [{ token: i1.XConfigService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
127
- /** @nocollapse */ XPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPaginationComponent, selector: "x-pagination", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<x-buttons *ngIf=\"!simple; else simpleTpl\" [space]=\"space\" [hiddenBorder]=\"hiddenBorder\">\r\n <x-button\r\n *ngIf=\"showEllipsis\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled || firstActivated\"\r\n (click)=\"jump(1)\"\r\n ></x-button>\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n <x-button\r\n *ngFor=\"let item of indexes; trackBy: trackByItem\"\r\n [disabled]=\"disabled\"\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n <x-button\r\n *ngIf=\"showEllipsis && !simple\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled || lastActivated\"\r\n (click)=\"jump(lastIndex)\"\r\n ></x-button>\r\n</x-buttons>\r\n<ng-template #simpleTpl>\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"!hiddenBorder\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width.px]=\"simpleIndexWidth\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex }}</span>\r\n </div>\r\n</ng-template>\r\n<x-select\r\n *ngIf=\"showSize\"\r\n [style.width.px]=\"sizeWidth\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeData\"\r\n clearable=\"false\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n></x-select>\r\n<div *ngIf=\"showJump && !simple\" class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input [bordered]=\"!hiddenBorder\" [style.width.px]=\"jumpWidth\" [(ngModel)]=\"jumpPage\" (xKeydown)=\"onKeydown($event)\"></x-input>\r\n</div>\r\n<x-button *ngIf=\"showTotal\" [disabled]=\"disabled\" class=\"x-pagination-total\" [type]=\"hiddenBorder === true ? 'text' : 'initial'\"\r\n ><ng-container *xOutlet=\"totalTpl; context: { $total: total }\"\r\n >{{ 'pagination.total' | xI18n }} {{ total }} {{ 'pagination.item' | xI18n }}</ng-container\r\n ></x-button\r\n>\r\n\r\n<ng-template #previousTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled || leftDisabled\"\r\n (click)=\"jump(-1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled || rightDisabled\"\r\n (click)=\"jump(1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <ng-container *ngIf=\"node\"> {{ node?.label }} {{ 'pagination.sizePage' | xI18n }} </ng-container>\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0;display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin:0 .5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: i5.XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: i6.XSelectComponent, selector: "x-select" }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }, { kind: "directive", type: i8.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "pipe", type: i2.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
+ /** @nocollapse */ XPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPaginationComponent, selector: "x-pagination", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<x-buttons *ngIf=\"!simple; else simpleTpl\" [space]=\"space\" [hiddenBorder]=\"hiddenBorder\">\r\n <x-button\r\n *ngIf=\"showEllipsis\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled || firstActivated\"\r\n (click)=\"jump(1)\"\r\n ></x-button>\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n <x-button\r\n *ngFor=\"let item of indexes; trackBy: trackByItem\"\r\n [disabled]=\"disabled\"\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n <x-button\r\n *ngIf=\"showEllipsis && !simple\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled || lastActivated\"\r\n (click)=\"jump(lastIndex)\"\r\n ></x-button>\r\n</x-buttons>\r\n<ng-template #simpleTpl>\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"!hiddenBorder\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width.px]=\"simpleIndexWidth\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex }}</span>\r\n </div>\r\n</ng-template>\r\n<x-select\r\n *ngIf=\"showSize && !showInputSize\"\r\n [style.width.px]=\"sizeWidth\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeData\"\r\n clearable=\"false\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n></x-select>\r\n<div *ngIf=\"showInputSize\" class=\"x-pagination-input-size\">\r\n <x-input\r\n [style.width.px]=\"inputSizeWidth\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [(ngModel)]=\"inputSize\"\r\n (xKeydown)=\"onInputSizeKeydown($event)\"\r\n ></x-input>\r\n <span> {{ 'pagination.sizePage' | xI18n }} </span>\r\n</div>\r\n\r\n<div *ngIf=\"showJump && !simple\" class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input [bordered]=\"!hiddenBorder\" [style.width.px]=\"jumpWidth\" [(ngModel)]=\"jumpPage\" (xKeydown)=\"onJumpKeydown($event)\"></x-input>\r\n</div>\r\n<x-button *ngIf=\"showTotal\" [disabled]=\"disabled\" class=\"x-pagination-total\" [type]=\"hiddenBorder === true ? 'text' : 'initial'\"\r\n ><ng-container *xOutlet=\"totalTpl; context: { $total: total }\"\r\n >{{ 'pagination.total' | xI18n }} {{ total }} {{ 'pagination.item' | xI18n }}</ng-container\r\n ></x-button\r\n>\r\n\r\n<ng-template #previousTpl>\r\n <x-button\r\n [type]=\"hiddenBorder ? 'text' : 'initial'\"\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled || leftDisabled\"\r\n (click)=\"jump(-1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [type]=\"hiddenBorder ? 'text' : 'initial'\"\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled || rightDisabled\"\r\n (click)=\"jump(1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <ng-container *ngIf=\"node\"> {{ node?.label }} {{ 'pagination.sizePage' | xI18n }} </ng-container>\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0;display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-input-size{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-input-size x-input{margin-right:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin-right:.5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: i5.XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: i6.XSelectComponent, selector: "x-select" }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }, { kind: "directive", type: i8.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "pipe", type: i2.XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
128
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPaginationComponent, decorators: [{
129
158
  type: Component,
130
- args: [{ selector: `${XPaginationPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<x-buttons *ngIf=\"!simple; else simpleTpl\" [space]=\"space\" [hiddenBorder]=\"hiddenBorder\">\r\n <x-button\r\n *ngIf=\"showEllipsis\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled || firstActivated\"\r\n (click)=\"jump(1)\"\r\n ></x-button>\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n <x-button\r\n *ngFor=\"let item of indexes; trackBy: trackByItem\"\r\n [disabled]=\"disabled\"\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n <x-button\r\n *ngIf=\"showEllipsis && !simple\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled || lastActivated\"\r\n (click)=\"jump(lastIndex)\"\r\n ></x-button>\r\n</x-buttons>\r\n<ng-template #simpleTpl>\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"!hiddenBorder\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width.px]=\"simpleIndexWidth\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex }}</span>\r\n </div>\r\n</ng-template>\r\n<x-select\r\n *ngIf=\"showSize\"\r\n [style.width.px]=\"sizeWidth\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeData\"\r\n clearable=\"false\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n></x-select>\r\n<div *ngIf=\"showJump && !simple\" class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input [bordered]=\"!hiddenBorder\" [style.width.px]=\"jumpWidth\" [(ngModel)]=\"jumpPage\" (xKeydown)=\"onKeydown($event)\"></x-input>\r\n</div>\r\n<x-button *ngIf=\"showTotal\" [disabled]=\"disabled\" class=\"x-pagination-total\" [type]=\"hiddenBorder === true ? 'text' : 'initial'\"\r\n ><ng-container *xOutlet=\"totalTpl; context: { $total: total }\"\r\n >{{ 'pagination.total' | xI18n }} {{ total }} {{ 'pagination.item' | xI18n }}</ng-container\r\n ></x-button\r\n>\r\n\r\n<ng-template #previousTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled || leftDisabled\"\r\n (click)=\"jump(-1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled || rightDisabled\"\r\n (click)=\"jump(1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <ng-container *ngIf=\"node\"> {{ node?.label }} {{ 'pagination.sizePage' | xI18n }} </ng-container>\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0;display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin:0 .5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"] }]
159
+ args: [{ selector: `${XPaginationPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<x-buttons *ngIf=\"!simple; else simpleTpl\" [space]=\"space\" [hiddenBorder]=\"hiddenBorder\">\r\n <x-button\r\n *ngIf=\"showEllipsis\"\r\n [icon]=\"'fto-chevrons-left'\"\r\n [title]=\"'pagination.first' | xI18n\"\r\n [disabled]=\"disabled || firstActivated\"\r\n (click)=\"jump(1)\"\r\n ></x-button>\r\n <ng-container *xOutlet=\"previousTpl\"></ng-container>\r\n <x-button\r\n *ngFor=\"let item of indexes; trackBy: trackByItem\"\r\n [disabled]=\"disabled\"\r\n [activated]=\"getActivated(item)\"\r\n (click)=\"jump(item)\"\r\n >{{ item }}</x-button\r\n >\r\n <ng-container *xOutlet=\"nextTpl\"></ng-container>\r\n <x-button\r\n *ngIf=\"showEllipsis && !simple\"\r\n [icon]=\"'fto-chevrons-right'\"\r\n [title]=\"'pagination.last' | xI18n\"\r\n [disabled]=\"disabled || lastActivated\"\r\n (click)=\"jump(lastIndex)\"\r\n ></x-button>\r\n</x-buttons>\r\n<ng-template #simpleTpl>\r\n <div class=\"x-pagination-simple\">\r\n <x-input\r\n [bordered]=\"!hiddenBorder\"\r\n [before]=\"previousTpl\"\r\n [after]=\"nextTpl\"\r\n [style.width.px]=\"simpleIndexWidth\"\r\n [(ngModel)]=\"index\"\r\n (xKeydown)=\"onSimpleKeydown($event)\"\r\n ></x-input>\r\n <span>/</span>\r\n <span>{{ lastIndex }}</span>\r\n </div>\r\n</ng-template>\r\n<x-select\r\n *ngIf=\"showSize && !showInputSize\"\r\n [style.width.px]=\"sizeWidth\"\r\n class=\"x-pagination-size\"\r\n [data]=\"sizeData\"\r\n clearable=\"false\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"size\"\r\n (ngModelChange)=\"sizeChanged()\"\r\n></x-select>\r\n<div *ngIf=\"showInputSize\" class=\"x-pagination-input-size\">\r\n <x-input\r\n [style.width.px]=\"inputSizeWidth\"\r\n [disabled]=\"disabled\"\r\n [bordered]=\"!hiddenBorder\"\r\n [(ngModel)]=\"inputSize\"\r\n (xKeydown)=\"onInputSizeKeydown($event)\"\r\n ></x-input>\r\n <span> {{ 'pagination.sizePage' | xI18n }} </span>\r\n</div>\r\n\r\n<div *ngIf=\"showJump && !simple\" class=\"x-pagination-jump\">\r\n <span>{{ 'pagination.jump' | xI18n }}</span>\r\n <x-input [bordered]=\"!hiddenBorder\" [style.width.px]=\"jumpWidth\" [(ngModel)]=\"jumpPage\" (xKeydown)=\"onJumpKeydown($event)\"></x-input>\r\n</div>\r\n<x-button *ngIf=\"showTotal\" [disabled]=\"disabled\" class=\"x-pagination-total\" [type]=\"hiddenBorder === true ? 'text' : 'initial'\"\r\n ><ng-container *xOutlet=\"totalTpl; context: { $total: total }\"\r\n >{{ 'pagination.total' | xI18n }} {{ total }} {{ 'pagination.item' | xI18n }}</ng-container\r\n ></x-button\r\n>\r\n\r\n<ng-template #previousTpl>\r\n <x-button\r\n [type]=\"hiddenBorder ? 'text' : 'initial'\"\r\n [icon]=\"'fto-chevron-left'\"\r\n [title]=\"'pagination.previous' | xI18n\"\r\n [disabled]=\"disabled || leftDisabled\"\r\n (click)=\"jump(-1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nextTpl>\r\n <x-button\r\n [type]=\"hiddenBorder ? 'text' : 'initial'\"\r\n [icon]=\"'fto-chevron-right'\"\r\n [title]=\"'pagination.next' | xI18n\"\r\n [disabled]=\"disabled || rightDisabled\"\r\n (click)=\"jump(1, true)\"\r\n ></x-button>\r\n</ng-template>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <ng-container *ngIf=\"node\"> {{ node?.label }} {{ 'pagination.sizePage' | xI18n }} </ng-container>\r\n</ng-template>\r\n", styles: [".x-pagination{margin:0;padding:0;display:inline-flex}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button{min-width:1.75rem}.x-pagination>.x-buttons.x-buttons-hiddenBorder>x-button>.x-button-activated{background-color:#0000000d}.x-pagination-size,.x-pagination-total{margin-left:.5rem}.x-pagination-input-size{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-input-size x-input{margin-right:.5rem}.x-pagination-jump{margin-left:.5rem;display:inline-flex;align-items:center}.x-pagination-jump x-input{margin-left:.5rem}.x-pagination-simple{margin-right:.5rem;display:inline-flex;align-items:center}.x-pagination-simple>x-input input{text-align:center}.x-pagination-simple>span{margin-left:.5rem}\n"] }]
131
160
  }], ctorParameters: function () { return [{ type: i1.XConfigService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i2.XI18nService }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU14QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQVM5QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBeUIzRCxZQUNTLGFBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLElBQWtCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTkQsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFjO1FBNUIzQixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUV2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SUFBSSxDQUFDO0lBQ2QsQ0FBQzs7b0lBNUhVLG9CQUFvQjt3SEFBcEIsb0JBQW9CLGdHQ3hCakMsKzJGQWtGQTsyRkQxRGEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLEdBQUcsaUJBQWlCLEVBQUUsaUJBR2pCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBFbGVtZW50UmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvblByZWZpeCwgWFBhZ2luYXRpb25Qcm9wZXJ0eSB9IGZyb20gJy4vcGFnaW5hdGlvbi5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFBhZ2luYXRpb25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhQYWdpbmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgWFBhZ2luYXRpb25Qcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgbGFzdEluZGV4ITogbnVtYmVyO1xyXG4gIGluZGV4ZXM6IG51bWJlcltdID0gW107XHJcbiAgaW5kZXhGaXJzdDogbnVtYmVyID0gMTtcclxuICBpbmRleExhc3Q6IG51bWJlciA9IDE7XHJcbiAganVtcFBhZ2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgbGVmdERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmluZGV4KSA9PT0gMSB8fCBOdW1iZXIodGhpcy50b3RhbCkgPT09IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgcmlnaHREaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy5pbmRleCkgPT09IHRoaXMubGFzdEluZGV4IHx8IE51bWJlcih0aGlzLnRvdGFsKSA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdEFjdGl2YXRlZCgpIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy5pbmRleCkgPT09IDE7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdEFjdGl2YXRlZCgpIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy5pbmRleCkgPT09IHRoaXMubGFzdEluZGV4O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWFBhZ2luYXRpb25QcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHRvdGFsLCBzaXplLCBpbmRleCB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZSh0b3RhbCwgc2l6ZSwgaW5kZXgpICYmIHRoaXMuc2V0SW5kZXhlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzaXplQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMuc2V0SW5kZXhlcygpO1xyXG4gICAgdGhpcy5zaXplQ2hhbmdlLmVtaXQodGhpcy5zaXplIGFzIG51bWJlcik7XHJcbiAgfVxyXG5cclxuICBzZXRJbmRleGVzKCkge1xyXG4gICAgdGhpcy5sYXN0SW5kZXggPSBNYXRoLmNlaWwoTnVtYmVyKHRoaXMudG90YWwpIC8gTnVtYmVyKHRoaXMuc2l6ZSkpIHx8IDE7XHJcbiAgICBjb25zdCBpbmRleGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgY29uc3QgY3VycmVudCA9IE51bWJlcih0aGlzLmluZGV4KSAtIDE7XHJcbiAgICBjb25zdCBtYXhTaXplID0gTnVtYmVyKHRoaXMucGFnZUxpbmtTaXplKTtcclxuICAgIGNvbnN0IHBhZ2VzID0gTWF0aC5taW4obWF4U2l6ZSwgdGhpcy5sYXN0SW5kZXgpO1xyXG4gICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgTWF0aC5jZWlsKGN1cnJlbnQgLSBwYWdlcyAvIDIpKSxcclxuICAgICAgZW5kID0gTWF0aC5taW4odGhpcy5sYXN0SW5kZXggLSAxLCBzdGFydCArIHBhZ2VzIC0gMSk7XHJcbiAgICB2YXIgZGVsdGEgPSBtYXhTaXplIC0gKGVuZCAtIHN0YXJ0ICsgMSk7XHJcbiAgICBzdGFydCA9IE1hdGgubWF4KDAsIHN0YXJ0IC0gZGVsdGEpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xyXG4gICAgICBpbmRleGVzLnB1c2goaSArIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmRleGVzID0gaW5kZXhlcztcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGp1bXAoaW5kZXg6IG51bWJlciwgaXNEaWZmID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGl4ID0gdGhpcy52YWxpZGF0ZUluZGV4KGlzRGlmZiA/IE51bWJlcih0aGlzLmluZGV4KSArIGluZGV4IDogaW5kZXgpO1xyXG4gICAgaWYgKGl4ICE9PSB0aGlzLmluZGV4KSB7XHJcbiAgICAgIHRoaXMuaW5kZXggPSBpeDtcclxuICAgICAgdGhpcy5zZXRJbmRleGVzKCk7XHJcbiAgICAgIHRoaXMuaW5kZXhDaGFuZ2UuZW1pdCh0aGlzLmluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuanVtcFBhZ2UgIT09IG51bGwgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgaWYgKHRoaXMuanVtcFBhZ2UgPD0gdGhpcy5pbmRleEZpcnN0KSB7XHJcbiAgICAgICAgdGhpcy5qdW1wKHRoaXMuaW5kZXhGaXJzdCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5qdW1wUGFnZSA+PSB0aGlzLmxhc3RJbmRleCkge1xyXG4gICAgICAgIHRoaXMuanVtcCh0aGlzLmxhc3RJbmRleCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5qdW1wKHRoaXMuanVtcFBhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuanVtcFBhZ2UgPSBudWxsO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNpbXBsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluZGV4ICE9PSBudWxsICYmIGV2ZW50LmtleUNvZGUgPT09IEVOVEVSKSB7XHJcbiAgICAgIGlmICh0aGlzLmluZGV4IDw9IHRoaXMuaW5kZXhGaXJzdCkge1xyXG4gICAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmluZGV4Rmlyc3Q7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmRleCA+PSB0aGlzLmxhc3RJbmRleCkge1xyXG4gICAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmxhc3RJbmRleDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmp1bXAodGhpcy5pbmRleCBhcyBudW1iZXIpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUluZGV4KHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKHZhbHVlID4gdGhpcy5sYXN0SW5kZXgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFzdEluZGV4O1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmluZGV4KSA9PT0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPHgtYnV0dG9ucyAqbmdJZj1cIiFzaW1wbGU7IGVsc2Ugc2ltcGxlVHBsXCIgW3NwYWNlXT1cInNwYWNlXCIgW2hpZGRlbkJvcmRlcl09XCJoaWRkZW5Cb3JkZXJcIj5cclxuICA8eC1idXR0b25cclxuICAgICpuZ0lmPVwic2hvd0VsbGlwc2lzXCJcclxuICAgIFtpY29uXT1cIidmdG8tY2hldnJvbnMtbGVmdCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLmZpcnN0JyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBmaXJzdEFjdGl2YXRlZFwiXHJcbiAgICAoY2xpY2spPVwianVtcCgxKVwiXHJcbiAgPjwveC1idXR0b24+XHJcbiAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInByZXZpb3VzVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbmRleGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2FjdGl2YXRlZF09XCJnZXRBY3RpdmF0ZWQoaXRlbSlcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoaXRlbSlcIlxyXG4gICAgPnt7IGl0ZW0gfX08L3gtYnV0dG9uXHJcbiAgPlxyXG4gIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJuZXh0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICAqbmdJZj1cInNob3dFbGxpcHNpcyAmJiAhc2ltcGxlXCJcclxuICAgIFtpY29uXT1cIidmdG8tY2hldnJvbnMtcmlnaHQnXCJcclxuICAgIFt0aXRsZV09XCIncGFnaW5hdGlvbi5sYXN0JyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsYXN0QWN0aXZhdGVkXCJcclxuICAgIChjbGljayk9XCJqdW1wKGxhc3RJbmRleClcIlxyXG4gID48L3gtYnV0dG9uPlxyXG48L3gtYnV0dG9ucz5cclxuPG5nLXRlbXBsYXRlICNzaW1wbGVUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtcGFnaW5hdGlvbi1zaW1wbGVcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgIFtib3JkZXJlZF09XCIhaGlkZGVuQm9yZGVyXCJcclxuICAgICAgW2JlZm9yZV09XCJwcmV2aW91c1RwbFwiXHJcbiAgICAgIFthZnRlcl09XCJuZXh0VHBsXCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNpbXBsZUluZGV4V2lkdGhcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImluZGV4XCJcclxuICAgICAgKHhLZXlkb3duKT1cIm9uU2ltcGxlS2V5ZG93bigkZXZlbnQpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgICA8c3Bhbj4vPC9zcGFuPlxyXG4gICAgPHNwYW4+e3sgbGFzdEluZGV4IH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48eC1zZWxlY3RcclxuICAqbmdJZj1cInNob3dTaXplXCJcclxuICBbc3R5bGUud2lkdGgucHhdPVwic2l6ZVdpZHRoXCJcclxuICBjbGFzcz1cIngtcGFnaW5hdGlvbi1zaXplXCJcclxuICBbZGF0YV09XCJzaXplRGF0YVwiXHJcbiAgY2xlYXJhYmxlPVwiZmFsc2VcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2JvcmRlcmVkXT1cIiFoaWRkZW5Cb3JkZXJcIlxyXG4gIFtub2RlVHBsXT1cIm5vZGVUcGxcIlxyXG4gIFsobmdNb2RlbCldPVwic2l6ZVwiXHJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwic2l6ZUNoYW5nZWQoKVwiXHJcbj48L3gtc2VsZWN0PlxyXG48ZGl2ICpuZ0lmPVwic2hvd0p1bXAgJiYgIXNpbXBsZVwiIGNsYXNzPVwieC1wYWdpbmF0aW9uLWp1bXBcIj5cclxuICA8c3Bhbj57eyAncGFnaW5hdGlvbi5qdW1wJyB8IHhJMThuIH19PC9zcGFuPlxyXG4gIDx4LWlucHV0IFtib3JkZXJlZF09XCIhaGlkZGVuQm9yZGVyXCIgW3N0eWxlLndpZHRoLnB4XT1cImp1bXBXaWR0aFwiIFsobmdNb2RlbCldPVwianVtcFBhZ2VcIiAoeEtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj48L3gtaW5wdXQ+XHJcbjwvZGl2PlxyXG48eC1idXR0b24gKm5nSWY9XCJzaG93VG90YWxcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjbGFzcz1cIngtcGFnaW5hdGlvbi10b3RhbFwiIFt0eXBlXT1cImhpZGRlbkJvcmRlciA9PT0gdHJ1ZSA/ICd0ZXh0JyA6ICdpbml0aWFsJ1wiXHJcbiAgPjxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b3RhbFRwbDsgY29udGV4dDogeyAkdG90YWw6IHRvdGFsIH1cIlxyXG4gICAgPnt7ICdwYWdpbmF0aW9uLnRvdGFsJyB8IHhJMThuIH19IHt7IHRvdGFsIH19IHt7ICdwYWdpbmF0aW9uLml0ZW0nIHwgeEkxOG4gfX08L25nLWNvbnRhaW5lclxyXG4gID48L3gtYnV0dG9uXHJcbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcHJldmlvdXNUcGw+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb24tbGVmdCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLnByZXZpb3VzJyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsZWZ0RGlzYWJsZWRcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoLTEsIHRydWUpXCJcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmV4dFRwbD5cclxuICA8eC1idXR0b25cclxuICAgIFtpY29uXT1cIidmdG8tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLm5leHQnIHwgeEkxOG5cIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJpZ2h0RGlzYWJsZWRcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoMSwgdHJ1ZSlcIlxyXG4gID48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNub2RlVHBsIGxldC1ub2RlPVwiJG5vZGVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZVwiPiB7eyBub2RlPy5sYWJlbCB9fSB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fSA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU14QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQVM5QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBMEIzRCxZQUNTLGFBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLElBQWtCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBTkQsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFjO1FBN0IzQixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUd2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QUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN2QjthQUFNLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNwQixPQUFPLENBQUMsQ0FBQztTQUNWO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O29JQTFKVSxvQkFBb0I7d0hBQXBCLG9CQUFvQixnR0N4QmpDLHExR0ErRkE7MkZEdkVhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxHQUFHLGlCQUFpQixFQUFFLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFBhZ2luYXRpb25QcmVmaXgsIFhQYWdpbmF0aW9uUHJvcGVydHkgfSBmcm9tICcuL3BhZ2luYXRpb24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hQYWdpbmF0aW9uUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIFhQYWdpbmF0aW9uUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIGxhc3RJbmRleCE6IG51bWJlcjtcclxuICBpbmRleGVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIGluZGV4Rmlyc3Q6IG51bWJlciA9IDE7XHJcbiAgaW5kZXhMYXN0OiBudW1iZXIgPSAxO1xyXG4gIGp1bXBQYWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBpbnB1dFNpemUhOiBudW1iZXI7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCBsZWZ0RGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuaW5kZXgpID09PSAxIHx8IE51bWJlcih0aGlzLnRvdGFsKSA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCByaWdodERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmluZGV4KSA9PT0gdGhpcy5sYXN0SW5kZXggfHwgTnVtYmVyKHRoaXMudG90YWwpID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0QWN0aXZhdGVkKCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmluZGV4KSA9PT0gMTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0QWN0aXZhdGVkKCkge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmluZGV4KSA9PT0gdGhpcy5sYXN0SW5kZXg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBYUGFnaW5hdGlvblByZWZpeCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcclxuICAgIHRoaXMuaW5wdXRTaXplID0gTnVtYmVyKHRoaXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHRvdGFsLCBzaXplLCBpbmRleCB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZSh0b3RhbCwgc2l6ZSwgaW5kZXgpICYmIHRoaXMuc2V0SW5kZXhlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzaXplQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMuc2V0SW5kZXhlcygpO1xyXG4gICAgdGhpcy5zaXplQ2hhbmdlLmVtaXQodGhpcy5zaXplIGFzIG51bWJlcik7XHJcbiAgICBpZiAodGhpcy5pbmRleCAhPT0gMSkge1xyXG4gICAgICB0aGlzLmluZGV4ID0gMTtcclxuICAgICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KHRoaXMuaW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SW5kZXhlcygpIHtcclxuICAgIHRoaXMubGFzdEluZGV4ID0gTWF0aC5jZWlsKE51bWJlcih0aGlzLnRvdGFsKSAvIE51bWJlcih0aGlzLnNpemUpKSB8fCAxO1xyXG4gICAgY29uc3QgaW5kZXhlczogbnVtYmVyW10gPSBbXTtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSBOdW1iZXIodGhpcy5pbmRleCkgLSAxO1xyXG4gICAgY29uc3QgbWF4U2l6ZSA9IE51bWJlcih0aGlzLnBhZ2VMaW5rU2l6ZSk7XHJcbiAgICBjb25zdCBwYWdlcyA9IE1hdGgubWluKG1heFNpemUsIHRoaXMubGFzdEluZGV4KTtcclxuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDAsIE1hdGguY2VpbChjdXJyZW50IC0gcGFnZXMgLyAyKSksXHJcbiAgICAgIGVuZCA9IE1hdGgubWluKHRoaXMubGFzdEluZGV4IC0gMSwgc3RhcnQgKyBwYWdlcyAtIDEpO1xyXG4gICAgdmFyIGRlbHRhID0gbWF4U2l6ZSAtIChlbmQgLSBzdGFydCArIDEpO1xyXG4gICAgc3RhcnQgPSBNYXRoLm1heCgwLCBzdGFydCAtIGRlbHRhKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcclxuICAgICAgaW5kZXhlcy5wdXNoKGkgKyAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5kZXhlcyA9IGluZGV4ZXM7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBqdW1wKGluZGV4OiBudW1iZXIsIGlzRGlmZiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBpeCA9IHRoaXMudmFsaWRhdGVJbmRleChpc0RpZmYgPyBOdW1iZXIodGhpcy5pbmRleCkgKyBpbmRleCA6IGluZGV4KTtcclxuICAgIGlmIChpeCAhPT0gdGhpcy5pbmRleCkge1xyXG4gICAgICB0aGlzLmluZGV4ID0gaXg7XHJcbiAgICAgIHRoaXMuc2V0SW5kZXhlcygpO1xyXG4gICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQodGhpcy5pbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkp1bXBLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5qdW1wUGFnZSAhPT0gbnVsbCAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xyXG4gICAgICBpZiAodGhpcy5qdW1wUGFnZSA8PSB0aGlzLmluZGV4Rmlyc3QpIHtcclxuICAgICAgICB0aGlzLmp1bXAodGhpcy5pbmRleEZpcnN0KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmp1bXBQYWdlID49IHRoaXMubGFzdEluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5qdW1wKHRoaXMubGFzdEluZGV4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmp1bXAodGhpcy5qdW1wUGFnZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5qdW1wUGFnZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2ltcGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggIT09IG51bGwgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgaWYgKE51bWJlcih0aGlzLmluZGV4KSAlIDEgIT09IDApIHtcclxuICAgICAgICB0aGlzLmluZGV4ID0gTWF0aC5yb3VuZChOdW1iZXIodGhpcy5pbmRleCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc05hTihOdW1iZXIodGhpcy5pbmRleCkpIHx8IHRoaXMuaW5kZXggPT09IDApIHtcclxuICAgICAgICB0aGlzLmluZGV4ID0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbmRleCA8PSB0aGlzLmluZGV4Rmlyc3QpIHtcclxuICAgICAgICB0aGlzLmluZGV4ID0gdGhpcy5pbmRleEZpcnN0O1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaW5kZXggPj0gdGhpcy5sYXN0SW5kZXgpIHtcclxuICAgICAgICB0aGlzLmluZGV4ID0gdGhpcy5sYXN0SW5kZXg7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5qdW1wKHRoaXMuaW5kZXggYXMgbnVtYmVyKTtcclxuICAgICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KHRoaXMuaW5kZXggYXMgbnVtYmVyKTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dFNpemVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dFNpemUgIT09IG51bGwgJiYgZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcclxuICAgICAgaWYgKHRoaXMuaW5wdXRTaXplICUgMSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRTaXplID0gTWF0aC5yb3VuZCh0aGlzLmlucHV0U2l6ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzTmFOKHRoaXMuaW5wdXRTaXplKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRTaXplID0gTnVtYmVyKHRoaXMuc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wdXRTaXplIDw9IDApIHtcclxuICAgICAgICB0aGlzLmlucHV0U2l6ZSA9IE51bWJlcih0aGlzLnNpemUpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRTaXplICE9PSBOdW1iZXIodGhpcy5zaXplKSkge1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuaW5wdXRTaXplO1xyXG4gICAgICAgIHRoaXMuc2l6ZUNoYW5nZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVJbmRleCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGlmICh2YWx1ZSA+IHRoaXMubGFzdEluZGV4KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxhc3RJbmRleDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAxKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZhdGVkKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy5pbmRleCkgPT09IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG59XHJcbiIsIjx4LWJ1dHRvbnMgKm5nSWY9XCIhc2ltcGxlOyBlbHNlIHNpbXBsZVRwbFwiIFtzcGFjZV09XCJzcGFjZVwiIFtoaWRkZW5Cb3JkZXJdPVwiaGlkZGVuQm9yZGVyXCI+XHJcbiAgPHgtYnV0dG9uXHJcbiAgICAqbmdJZj1cInNob3dFbGxpcHNpc1wiXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb25zLWxlZnQnXCJcclxuICAgIFt0aXRsZV09XCIncGFnaW5hdGlvbi5maXJzdCcgfCB4STE4blwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZmlyc3RBY3RpdmF0ZWRcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoMSlcIlxyXG4gID48L3gtYnV0dG9uPlxyXG4gIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJwcmV2aW91c1RwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDx4LWJ1dHRvblxyXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5kZXhlczsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFthY3RpdmF0ZWRdPVwiZ2V0QWN0aXZhdGVkKGl0ZW0pXCJcclxuICAgIChjbGljayk9XCJqdW1wKGl0ZW0pXCJcclxuICAgID57eyBpdGVtIH19PC94LWJ1dHRvblxyXG4gID5cclxuICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwibmV4dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDx4LWJ1dHRvblxyXG4gICAgKm5nSWY9XCJzaG93RWxsaXBzaXMgJiYgIXNpbXBsZVwiXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb25zLXJpZ2h0J1wiXHJcbiAgICBbdGl0bGVdPVwiJ3BhZ2luYXRpb24ubGFzdCcgfCB4STE4blwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbGFzdEFjdGl2YXRlZFwiXHJcbiAgICAoY2xpY2spPVwianVtcChsYXN0SW5kZXgpXCJcclxuICA+PC94LWJ1dHRvbj5cclxuPC94LWJ1dHRvbnM+XHJcbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXBhZ2luYXRpb24tc2ltcGxlXCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICBbYm9yZGVyZWRdPVwiIWhpZGRlbkJvcmRlclwiXHJcbiAgICAgIFtiZWZvcmVdPVwicHJldmlvdXNUcGxcIlxyXG4gICAgICBbYWZ0ZXJdPVwibmV4dFRwbFwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzaW1wbGVJbmRleFdpZHRoXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbmRleFwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvblNpbXBsZUtleWRvd24oJGV2ZW50KVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gICAgPHNwYW4+Lzwvc3Bhbj5cclxuICAgIDxzcGFuPnt7IGxhc3RJbmRleCB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPHgtc2VsZWN0XHJcbiAgKm5nSWY9XCJzaG93U2l6ZSAmJiAhc2hvd0lucHV0U2l6ZVwiXHJcbiAgW3N0eWxlLndpZHRoLnB4XT1cInNpemVXaWR0aFwiXHJcbiAgY2xhc3M9XCJ4LXBhZ2luYXRpb24tc2l6ZVwiXHJcbiAgW2RhdGFdPVwic2l6ZURhdGFcIlxyXG4gIGNsZWFyYWJsZT1cImZhbHNlXCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtib3JkZXJlZF09XCIhaGlkZGVuQm9yZGVyXCJcclxuICBbbm9kZVRwbF09XCJub2RlVHBsXCJcclxuICBbKG5nTW9kZWwpXT1cInNpemVcIlxyXG4gIChuZ01vZGVsQ2hhbmdlKT1cInNpemVDaGFuZ2VkKClcIlxyXG4+PC94LXNlbGVjdD5cclxuPGRpdiAqbmdJZj1cInNob3dJbnB1dFNpemVcIiBjbGFzcz1cIngtcGFnaW5hdGlvbi1pbnB1dC1zaXplXCI+XHJcbiAgPHgtaW5wdXRcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJpbnB1dFNpemVXaWR0aFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2JvcmRlcmVkXT1cIiFoaWRkZW5Cb3JkZXJcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJpbnB1dFNpemVcIlxyXG4gICAgKHhLZXlkb3duKT1cIm9uSW5wdXRTaXplS2V5ZG93bigkZXZlbnQpXCJcclxuICA+PC94LWlucHV0PlxyXG4gIDxzcGFuPiB7eyAncGFnaW5hdGlvbi5zaXplUGFnZScgfCB4STE4biB9fSA8L3NwYW4+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInNob3dKdW1wICYmICFzaW1wbGVcIiBjbGFzcz1cIngtcGFnaW5hdGlvbi1qdW1wXCI+XHJcbiAgPHNwYW4+e3sgJ3BhZ2luYXRpb24uanVtcCcgfCB4STE4biB9fTwvc3Bhbj5cclxuICA8eC1pbnB1dCBbYm9yZGVyZWRdPVwiIWhpZGRlbkJvcmRlclwiIFtzdHlsZS53aWR0aC5weF09XCJqdW1wV2lkdGhcIiBbKG5nTW9kZWwpXT1cImp1bXBQYWdlXCIgKHhLZXlkb3duKT1cIm9uSnVtcEtleWRvd24oJGV2ZW50KVwiPjwveC1pbnB1dD5cclxuPC9kaXY+XHJcbjx4LWJ1dHRvbiAqbmdJZj1cInNob3dUb3RhbFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNsYXNzPVwieC1wYWdpbmF0aW9uLXRvdGFsXCIgW3R5cGVdPVwiaGlkZGVuQm9yZGVyID09PSB0cnVlID8gJ3RleHQnIDogJ2luaXRpYWwnXCJcclxuICA+PG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRvdGFsVHBsOyBjb250ZXh0OiB7ICR0b3RhbDogdG90YWwgfVwiXHJcbiAgICA+e3sgJ3BhZ2luYXRpb24udG90YWwnIHwgeEkxOG4gfX0ge3sgdG90YWwgfX0ge3sgJ3BhZ2luYXRpb24uaXRlbScgfCB4STE4biB9fTwvbmctY29udGFpbmVyXHJcbiAgPjwveC1idXR0b25cclxuPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcmV2aW91c1RwbD5cclxuICA8eC1idXR0b25cclxuICAgIFt0eXBlXT1cImhpZGRlbkJvcmRlciA/ICd0ZXh0JyA6ICdpbml0aWFsJ1wiXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb24tbGVmdCdcIlxyXG4gICAgW3RpdGxlXT1cIidwYWdpbmF0aW9uLnByZXZpb3VzJyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsZWZ0RGlzYWJsZWRcIlxyXG4gICAgKGNsaWNrKT1cImp1bXAoLTEsIHRydWUpXCJcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmV4dFRwbD5cclxuICA8eC1idXR0b25cclxuICAgIFt0eXBlXT1cImhpZGRlbkJvcmRlciA/ICd0ZXh0JyA6ICdpbml0aWFsJ1wiXHJcbiAgICBbaWNvbl09XCInZnRvLWNoZXZyb24tcmlnaHQnXCJcclxuICAgIFt0aXRsZV09XCIncGFnaW5hdGlvbi5uZXh0JyB8IHhJMThuXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByaWdodERpc2FibGVkXCJcclxuICAgIChjbGljayk9XCJqdW1wKDEsIHRydWUpXCJcclxuICA+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9kZVRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGVcIj4ge3sgbm9kZT8ubGFiZWwgfX0ge3sgJ3BhZ2luYXRpb24uc2l6ZVBhZ2UnIHwgeEkxOG4gfX0gPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -48,7 +48,7 @@ export class XPaginationProperty extends XProperty {
48
48
  }
49
49
  }
50
50
  /** @nocollapse */ XPaginationProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPaginationProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
51
- /** @nocollapse */ XPaginationProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPaginationProperty, selector: "ng-component", inputs: { index: "index", size: "size", total: "total", query: "query", pageLinkSize: "pageLinkSize", showEllipsis: "showEllipsis", showTotal: "showTotal", space: "space", hiddenBorder: "hiddenBorder", showSize: "showSize", sizeWidth: "sizeWidth", sizeData: "sizeData", disabled: "disabled", showJump: "showJump", jumpWidth: "jumpWidth", totalTpl: "totalTpl", simple: "simple", simpleIndexWidth: "simpleIndexWidth" }, outputs: { queryChange: "queryChange", indexChange: "indexChange", sizeChange: "sizeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
51
+ /** @nocollapse */ XPaginationProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPaginationProperty, selector: "ng-component", inputs: { index: "index", size: "size", total: "total", query: "query", pageLinkSize: "pageLinkSize", showEllipsis: "showEllipsis", showTotal: "showTotal", space: "space", hiddenBorder: "hiddenBorder", showSize: "showSize", sizeWidth: "sizeWidth", showInputSize: "showInputSize", inputSizeWidth: "inputSizeWidth", sizeData: "sizeData", disabled: "disabled", showJump: "showJump", jumpWidth: "jumpWidth", totalTpl: "totalTpl", simple: "simple", simpleIndexWidth: "simpleIndexWidth" }, outputs: { queryChange: "queryChange", indexChange: "indexChange", sizeChange: "sizeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
52
52
  __decorate([
53
53
  XWithConfig(X_CONFIG_NAME, 1),
54
54
  XInputNumber()
@@ -85,9 +85,17 @@ __decorate([
85
85
  XInputBoolean()
86
86
  ], XPaginationProperty.prototype, "showSize", void 0);
87
87
  __decorate([
88
- XWithConfig(X_CONFIG_NAME, 100),
88
+ XWithConfig(X_CONFIG_NAME, 110),
89
89
  XInputNumber()
90
90
  ], XPaginationProperty.prototype, "sizeWidth", void 0);
91
+ __decorate([
92
+ XWithConfig(X_CONFIG_NAME, false),
93
+ XInputBoolean()
94
+ ], XPaginationProperty.prototype, "showInputSize", void 0);
95
+ __decorate([
96
+ XWithConfig(X_CONFIG_NAME, 50),
97
+ XInputNumber()
98
+ ], XPaginationProperty.prototype, "inputSizeWidth", void 0);
91
99
  __decorate([
92
100
  XWithConfig(X_CONFIG_NAME, XPaginationSizeData)
93
101
  ], XPaginationProperty.prototype, "sizeData", void 0);
@@ -135,6 +143,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
135
143
  type: Input
136
144
  }], sizeWidth: [{
137
145
  type: Input
146
+ }], showInputSize: [{
147
+ type: Input
148
+ }], inputSizeWidth: [{
149
+ type: Input
138
150
  }], sizeData: [{
139
151
  type: Input
140
152
  }], disabled: [{
@@ -156,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
156
168
  }], sizeChange: [{
157
169
  type: Output
158
170
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQW1CLFdBQVcsRUFBWSxhQUFhLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDcEksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUNoRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVyRDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBRGxEOztRQVlFOzs7V0FHRztRQUNzQixVQUFLLEdBQVksQ0FBQyxDQUFDO1FBQzVDOzs7V0FHRztRQUNNLFVBQUssR0FBVyxFQUFFLENBQUM7UUF1RTVCOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDbkQ7O21JQTFHWSxtQkFBbUI7dUhBQW5CLG1CQUFtQiw0a0JBRFQsRUFBRTtBQU0wQztJQUF2RCxXQUFXLENBQVUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUFFLFlBQVksRUFBRTtrREFBaUI7QUFLZjtJQUF4RCxXQUFXLENBQVUsYUFBYSxFQUFFLEVBQUUsQ0FBQztJQUFFLFlBQVksRUFBRTtpREFBZ0I7QUFLeEQ7SUFBZixZQUFZLEVBQUU7a0RBQW9CO0FBVXFCO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFO3lEQUF3QjtBQUtsQjtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTt5REFBeUI7QUFLeEI7SUFBNUQsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7c0RBQXNCO0FBSzFCO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFO2tEQUFpQjtBQUtWO0lBQTdELFdBQVcsQ0FBVyxhQUFhLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO3lEQUF5QjtBQUt4QjtJQUE3RCxXQUFXLENBQVcsYUFBYSxFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtxREFBcUI7QUFLeEI7SUFBekQsV0FBVyxDQUFVLGFBQWEsRUFBRSxHQUFHLENBQUM7SUFBRSxZQUFZLEVBQUU7c0RBQXFCO0FBS1Q7SUFBcEUsV0FBVyxDQUFxQixhQUFhLEVBQUUsbUJBQW1CLENBQUM7cURBQStCO0FBS2xGO0lBQWhCLGFBQWEsRUFBRTtxREFBcUI7QUFLeUI7SUFBN0QsV0FBVyxDQUFXLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFBRSxhQUFhLEVBQUU7cURBQXFCO0FBS3pCO0lBQXhELFdBQVcsQ0FBVSxhQUFhLEVBQUUsRUFBRSxDQUFDO0lBQUUsWUFBWSxFQUFFO3NEQUFxQjtBQVVmO0lBQTdELFdBQVcsQ0FBVyxhQUFhLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO21EQUFtQjtBQUt0QjtJQUF6RCxXQUFXLENBQVUsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUFFLFlBQVksRUFBRTs2REFBNEI7MkZBMUZuRixtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU13QyxLQUFLO3NCQUFyRSxLQUFLO2dCQUs0RCxJQUFJO3NCQUFyRSxLQUFLO2dCQUttQixLQUFLO3NCQUE3QixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLMkQsWUFBWTtzQkFBNUUsS0FBSztnQkFLZ0UsWUFBWTtzQkFBakYsS0FBSztnQkFLZ0UsU0FBUztzQkFBOUUsS0FBSztnQkFLMkQsS0FBSztzQkFBckUsS0FBSztnQkFLaUUsWUFBWTtzQkFBbEYsS0FBSztnQkFLaUUsUUFBUTtzQkFBOUUsS0FBSztnQkFLNkQsU0FBUztzQkFBM0UsS0FBSztnQkFLd0UsUUFBUTtzQkFBckYsS0FBSztnQkFLb0IsUUFBUTtzQkFBakMsS0FBSztnQkFLaUUsUUFBUTtzQkFBOUUsS0FBSztnQkFLNEQsU0FBUztzQkFBMUUsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtpRSxNQUFNO3NCQUE1RSxLQUFLO2dCQUs2RCxnQkFBZ0I7c0JBQWxGLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYUHJvcGVydHksIFhJbnB1dE51bWJlciwgWE51bWJlciwgWFF1ZXJ5LCBYV2l0aENvbmZpZywgWEJvb2xlYW4sIFhJbnB1dEJvb2xlYW4sIFhEYXRhLCBYVGVtcGxhdGUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFNlbGVjdE5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9zZWxlY3QnO1xyXG5cclxuLyoqXHJcbiAqIFBhZ2luYXRpb25cclxuICogQHNlbGVjdG9yIHgtcGFnaW5hdGlvblxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQYWdpbmF0aW9uUHJlZml4ID0gJ3gtcGFnaW5hdGlvbic7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAncGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIhumhtemAieaLqeadoeaVsFxyXG4gKiBAZW5fVVMgU3ViLXNlbGVjdGlvblxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQYWdpbmF0aW9uU2l6ZURhdGEgPSBbMTAsIDIwLCA1MCwgMTAwXTtcclxuXHJcbi8qKlxyXG4gKiBQYWdpbmF0aW9uIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGFnaW5hdGlvblByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6aG156CBXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgMSkgQFhJbnB1dE51bWJlcigpIGluZGV4ITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q+P6aG15pi+56S65p2h5pWwXHJcbiAgICogQGVuX1VTIE51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgMTApIEBYSW5wdXROdW1iZXIoKSBzaXplITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oC75pWwXHJcbiAgICogQGVuX1VTIFRvdGFsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHRvdGFsOiBYTnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5p+l6K+i5p2h5Lu2XHJcbiAgICogQGVuX1VTIFF1ZXJ5IGNvbmRpdGlvbnNcclxuICAgKi9cclxuICBASW5wdXQoKSBxdWVyeTogWFF1ZXJ5ID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWkmuaYvuekuueahOWIhumhteaVsOmHj1xyXG4gICAqIEBlbl9VUyBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgcGFnZXMgZGlzcGxheVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCA1KSBAWElucHV0TnVtYmVyKCkgcGFnZUxpbmtTaXplITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66aaW5bC+6aG16Lez6L2sXHJcbiAgICogQGVuX1VTIERpc3BsYXkgdGhlIGZpcnN0IGFuZCBsYXN0IHBhZ2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0VsbGlwc2lzITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaAu+adoeaVsFxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHRoZSB0b3RhbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93VG90YWwhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu6Ze06Led77yM5Y2V5L2NIHJlbSDvvIjmjIkgMXJlbSA9IDE2cHgg5q+U5L6L5p2l6K6h566X77yJXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBzcGFjaW5nLCB1bml0IHJlbSAoY2FsY3VsYXRlZCBhY2NvcmRpbmcgdG8gdGhlIHJhdGlvIG9mIDFyZW0gPSAxNnB4KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAwKSBAWElucHV0TnVtYmVyKCkgc3BhY2UhOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol4/ovrnmoYZcclxuICAgKiBAZW5fVVMgSGlkZSBib3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGhpZGRlbkJvcmRlciE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIbpobXmnaHmlbBcclxuICAgKiBAZW5fVVMgU2hvdyBzaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93U2l6ZSE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXmnaHmlbDnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDEwMCkgQFhJbnB1dE51bWJlcigpIHNpemVXaWR0aCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteadoeaVsOeahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WERhdGE8WFNlbGVjdE5vZGU+PihYX0NPTkZJR19OQU1FLCBYUGFnaW5hdGlvblNpemVEYXRhKSBzaXplRGF0YSE6IFhEYXRhPFhTZWxlY3ROb2RlPjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55So5pW05Liq5YiG6aG1XHJcbiAgICogQGVuX1VTIGRpc2FibGVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrot7PovazovpPlhaXmoYZcclxuICAgKiBAZW5fVVMgU2hvdyBzaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SnVtcCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDot7PovazpobXnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDUwKSBAWElucHV0TnVtYmVyKCkganVtcFdpZHRoITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oC75pWw6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIFRvdGFsIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdG90YWxUcGw/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeugOWNleWIhumhtVxyXG4gICAqIEBlbl9VUyBTaW1wbGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHNpbXBsZSE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnroDljZXliIbpobXovpPlhaXmoYblrr3luqZcclxuICAgKiBAZW5fVVMgU2ltcGxlIGluZGV4IHdpdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgMTMwKSBAWElucHV0TnVtYmVyKCkgc2ltcGxlSW5kZXhXaWR0aCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmhteeggeWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBQYWdlIG51bWJlciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhRdWVyeT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aG156CB5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhZ2UgbnVtYmVyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbDlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2hvdyB0aGUgbnVtYmVyIG9mIGV2ZW50cyBvbiBlYWNoIHBhZ2VcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcblxyXG4vKipcclxuICogUGFnaW5hdGlvbk9wdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYUGFnaW5hdGlvbk9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemhteeggVxyXG4gICAqIEBlbl9VUyBDdXJyZW50IHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgaW5kZXg/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHNpemU/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgLvmlbBcclxuICAgKiBAZW5fVVMgdG90YWxcclxuICAgKi9cclxuICB0b3RhbD86IFhOdW1iZXI7XHJcbn1cclxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQW1CLFdBQVcsRUFBWSxhQUFhLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDcEksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUNoRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVyRDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBRGxEOztRQVlFOzs7V0FHRztRQUNzQixVQUFLLEdBQVksQ0FBQyxDQUFDO1FBQzVDOzs7V0FHRztRQUNNLFVBQUssR0FBVyxFQUFFLENBQUM7UUFpRjVCOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDbkQ7O21JQXBIWSxtQkFBbUI7dUhBQW5CLG1CQUFtQiw4b0JBRFQsRUFBRTtBQU0wQztJQUF2RCxXQUFXLENBQVUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUFFLFlBQVksRUFBRTtrREFBaUI7QUFLZjtJQUF4RCxXQUFXLENBQVUsYUFBYSxFQUFFLEVBQUUsQ0FBQztJQUFFLFlBQVksRUFBRTtpREFBZ0I7QUFLeEQ7SUFBZixZQUFZLEVBQUU7a0RBQW9CO0FBVXFCO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFO3lEQUF3QjtBQUtsQjtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTt5REFBeUI7QUFLeEI7SUFBNUQsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7c0RBQXNCO0FBSzFCO0lBQXZELFdBQVcsQ0FBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQUUsWUFBWSxFQUFFO2tEQUFpQjtBQUtWO0lBQTdELFdBQVcsQ0FBVyxhQUFhLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO3lEQUF5QjtBQUt4QjtJQUE3RCxXQUFXLENBQVcsYUFBYSxFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtxREFBcUI7QUFLeEI7SUFBekQsV0FBVyxDQUFVLGFBQWEsRUFBRSxHQUFHLENBQUM7SUFBRSxZQUFZLEVBQUU7c0RBQXFCO0FBS2hCO0lBQTdELFdBQVcsQ0FBVyxhQUFhLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFOzBEQUEwQjtBQUs5QjtJQUF4RCxXQUFXLENBQVUsYUFBYSxFQUFFLEVBQUUsQ0FBQztJQUFFLFlBQVksRUFBRTsyREFBMEI7QUFLYjtJQUFwRSxXQUFXLENBQXFCLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztxREFBK0I7QUFLbEY7SUFBaEIsYUFBYSxFQUFFO3FEQUFxQjtBQUt5QjtJQUE3RCxXQUFXLENBQVcsYUFBYSxFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtxREFBcUI7QUFLekI7SUFBeEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxFQUFFLENBQUM7SUFBRSxZQUFZLEVBQUU7c0RBQXFCO0FBVWY7SUFBN0QsV0FBVyxDQUFXLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFBRSxhQUFhLEVBQUU7bURBQW1CO0FBS3RCO0lBQXpELFdBQVcsQ0FBVSxhQUFhLEVBQUUsR0FBRyxDQUFDO0lBQUUsWUFBWSxFQUFFOzZEQUE0QjsyRkFwR25GLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTXdDLEtBQUs7c0JBQXJFLEtBQUs7Z0JBSzRELElBQUk7c0JBQXJFLEtBQUs7Z0JBS21CLEtBQUs7c0JBQTdCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUsyRCxZQUFZO3NCQUE1RSxLQUFLO2dCQUtnRSxZQUFZO3NCQUFqRixLQUFLO2dCQUtnRSxTQUFTO3NCQUE5RSxLQUFLO2dCQUsyRCxLQUFLO3NCQUFyRSxLQUFLO2dCQUtpRSxZQUFZO3NCQUFsRixLQUFLO2dCQUtpRSxRQUFRO3NCQUE5RSxLQUFLO2dCQUs2RCxTQUFTO3NCQUEzRSxLQUFLO2dCQUtpRSxhQUFhO3NCQUFuRixLQUFLO2dCQUs0RCxjQUFjO3NCQUEvRSxLQUFLO2dCQUt3RSxRQUFRO3NCQUFyRixLQUFLO2dCQUtvQixRQUFRO3NCQUFqQyxLQUFLO2dCQUtpRSxRQUFRO3NCQUE5RSxLQUFLO2dCQUs0RCxTQUFTO3NCQUExRSxLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS2lFLE1BQU07c0JBQTVFLEtBQUs7Z0JBSzZELGdCQUFnQjtzQkFBbEYsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhQcm9wZXJ0eSwgWElucHV0TnVtYmVyLCBYTnVtYmVyLCBYUXVlcnksIFhXaXRoQ29uZmlnLCBYQm9vbGVhbiwgWElucHV0Qm9vbGVhbiwgWERhdGEsIFhUZW1wbGF0ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2VsZWN0Tm9kZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcblxyXG4vKipcclxuICogUGFnaW5hdGlvblxyXG4gKiBAc2VsZWN0b3IgeC1wYWdpbmF0aW9uXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBhZ2luYXRpb25QcmVmaXggPSAneC1wYWdpbmF0aW9uJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdwYWdpbmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5YiG6aG16YCJ5oup5p2h5pWwXHJcbiAqIEBlbl9VUyBTdWItc2VsZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBhZ2luYXRpb25TaXplRGF0YSA9IFsxMCwgMjAsIDUwLCAxMDBdO1xyXG5cclxuLyoqXHJcbiAqIFBhZ2luYXRpb24gUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQYWdpbmF0aW9uUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pobXnoIFcclxuICAgKiBAZW5fVVMgQ3VycmVudCBwYWdlIG51bWJlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAxKSBAWElucHV0TnVtYmVyKCkgaW5kZXghOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAxMCkgQFhJbnB1dE51bWJlcigpIHNpemUhOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgLvmlbBcclxuICAgKiBAZW5fVVMgVG90YWxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgdG90YWw6IFhOdW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmn6Xor6LmnaHku7ZcclxuICAgKiBAZW5fVVMgUXVlcnkgY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHF1ZXJ5OiBYUXVlcnkgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyA5aSa5pi+56S655qE5YiG6aG15pWw6YePXHJcbiAgICogQGVuX1VTIFRoZSBsYXJnZXN0IG51bWJlciBvZiBwYWdlcyBkaXNwbGF5XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDUpIEBYSW5wdXROdW1iZXIoKSBwYWdlTGlua1NpemUhOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrpppblsL7pobXot7PovaxcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgZmlyc3QgYW5kIGxhc3QgcGFnZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93RWxsaXBzaXMhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65oC75p2h5pWwXHJcbiAgICogQGVuX1VTIERpc3BsYXkgdGhlIHRvdGFsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIHNob3dUb3RhbCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjInpkq7pl7Tot53vvIzljZXkvY0gcmVtIO+8iOaMiSAxcmVtID0gMTZweCDmr5TkvovmnaXorqHnrpfvvIlcclxuICAgKiBAZW5fVVMgQnV0dG9uIHNwYWNpbmcsIHVuaXQgcmVtIChjYWxjdWxhdGVkIGFjY29yZGluZyB0byB0aGUgcmF0aW8gb2YgMXJlbSA9IDE2cHgpXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDApIEBYSW5wdXROdW1iZXIoKSBzcGFjZSE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmakOiXj+i+ueahhlxyXG4gICAqIEBlbl9VUyBIaWRlIGJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgaGlkZGVuQm9yZGVyITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIhumhteadoeaVsFxyXG4gICAqIEBlbl9VUyBTaG93IHNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHNob3dTaXplITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteadoeaVsOmAieaLqeahhueahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGggc2VsZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIDExMCkgQFhJbnB1dE51bWJlcigpIHNpemVXaWR0aCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+k+WFpeWIhumhteadoeaVsO+8iOS4jeiDvei3n+S4i+aLiemAiemhueWQjOaXtuS9v+eUqO+8iVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHRoZSBudW1iZXIgb2YgaW5wdXQgcGFnZSBicmVha3MgKGNhbm5vdCBleGlzdCB3aXRoIHRoZSBkcm9wLWRvd24gb3B0aW9ucyBvZiBwYWdlIGJyZWFrcylcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHNob3dJbnB1dFNpemUhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG6aG15p2h5pWw6L6T5YWl5qGG55qE5a695bqmXHJcbiAgICogQGVuX1VTIHNpemUgd2l0aCBpbnB1dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCA1MCkgQFhJbnB1dE51bWJlcigpIGlucHV0U2l6ZVdpZHRoITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG6aG15p2h5pWw55qE5a695bqmXHJcbiAgICogQGVuX1VTIHNpemUgd2l0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYRGF0YTxYU2VsZWN0Tm9kZT4+KFhfQ09ORklHX05BTUUsIFhQYWdpbmF0aW9uU2l6ZURhdGEpIHNpemVEYXRhITogWERhdGE8WFNlbGVjdE5vZGU+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKjmlbTkuKrliIbpobVcclxuICAgKiBAZW5fVVMgZGlzYWJsZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGRpc2FibGVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui3s+i9rOi+k+WFpeahhlxyXG4gICAqIEBlbl9VUyBTaG93IHNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHNob3dKdW1wITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi3s+i9rOmhteeahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgNTApIEBYSW5wdXROdW1iZXIoKSBqdW1wV2lkdGghOiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgLvmlbDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgVG90YWwgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0b3RhbFRwbD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g566A5Y2V5YiG6aG1XHJcbiAgICogQGVuX1VTIFNpbXBsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgc2ltcGxlITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeugOWNleWIhumhtei+k+WFpeahhuWuveW6plxyXG4gICAqIEBlbl9VUyBTaW1wbGUgaW5kZXggd2l0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYTnVtYmVyPihYX0NPTkZJR19OQU1FLCAxMzApIEBYSW5wdXROdW1iZXIoKSBzaW1wbGVJbmRleFdpZHRoITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6aG156CB5Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhZ2UgbnVtYmVyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBxdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFF1ZXJ5PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpobXnoIHlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgUGFnZSBudW1iZXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOavj+mhteaYvuekuuadoeaVsOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTaG93IHRoZSBudW1iZXIgb2YgZXZlbnRzIG9uIGVhY2ggcGFnZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYWdpbmF0aW9uT3B0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhQYWdpbmF0aW9uT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6aG156CBXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICBpbmRleD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOavj+mhteaYvuekuuadoeaVsFxyXG4gICAqIEBlbl9VUyBOdW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlXHJcbiAgICovXHJcbiAgc2l6ZT86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaAu+aVsFxyXG4gICAqIEBlbl9VUyB0b3RhbFxyXG4gICAqL1xyXG4gIHRvdGFsPzogWE51bWJlcjtcclxufVxyXG4iXX0=