@acorex/components 18.16.0-next.6 → 18.16.0-next.7
Sign up to get free protection for your applications and to get access to all the features.
- package/color-palette/lib/color-palette-picker.component.d.ts +6 -2
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +2 -2
- package/esm2022/color-palette/lib/color-palette-picker.component.mjs +66 -40
- package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
- package/esm2022/image-editor/lib/image-editor-view/image-editor-view.component.mjs +7 -3
- package/esm2022/media-viewer/lib/media-viewer-container/media-viewer-container.component.mjs +7 -3
- package/esm2022/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.mjs +2 -2
- package/esm2022/tabs/lib/tabs.component.mjs +2 -2
- package/fesm2022/acorex-components-action-sheet.mjs +2 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +64 -38
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +2 -2
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +6 -2
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +8 -4
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +1 -1
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/package.json +1 -1
@@ -16,6 +16,8 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
16
16
|
b: number;
|
17
17
|
a: number;
|
18
18
|
};
|
19
|
+
private circle;
|
20
|
+
private changingColor;
|
19
21
|
/**
|
20
22
|
* @ignore
|
21
23
|
*/
|
@@ -66,11 +68,9 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
66
68
|
/**
|
67
69
|
* @ignore
|
68
70
|
*/
|
69
|
-
protected _handleSurfaceClick(e: MouseEvent): void;
|
70
71
|
/**
|
71
72
|
* @ignore
|
72
73
|
*/
|
73
|
-
protected _handleDrag(): void;
|
74
74
|
/**
|
75
75
|
* @ignore
|
76
76
|
*/
|
@@ -86,6 +86,10 @@ export declare class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
86
86
|
* @ignore
|
87
87
|
*/
|
88
88
|
private get __hostClass();
|
89
|
+
protected handleMove(event: MouseEvent): void;
|
90
|
+
protected handleDown(event: MouseEvent): void;
|
91
|
+
protected handleUp(): void;
|
92
|
+
private placePointer;
|
89
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXColorPalettePickerComponent, never>;
|
90
94
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXColorPalettePickerComponent, "ax-color-palette-picker", never, {}, {}, never, never, false, never>;
|
91
95
|
}
|
@@ -85,7 +85,7 @@ export class AXActionSheetComponent extends MXBaseComponent {
|
|
85
85
|
provide: AXFocusableComponent,
|
86
86
|
useExisting: AXActionSheetComponent,
|
87
87
|
},
|
88
|
-
], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:
|
88
|
+
], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
89
89
|
}
|
90
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXActionSheetComponent, decorators: [{
|
91
91
|
type: Component,
|
@@ -98,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
98
98
|
provide: AXFocusableComponent,
|
99
99
|
useExisting: AXActionSheetComponent,
|
100
100
|
},
|
101
|
-
], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:
|
101
|
+
], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
|
102
102
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
103
103
|
type: Inject,
|
104
104
|
args: [DIALOG_DATA]
|
@@ -1,14 +1,13 @@
|
|
1
1
|
import { MXBaseComponent } from '@acorex/components/common';
|
2
2
|
import { isBrowser } from '@acorex/core/platform';
|
3
3
|
import { AXColorUtil, AXUnsubscriber } from '@acorex/core/utils';
|
4
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Inject, ViewEncapsulation } from '@angular/core';
|
4
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Inject, signal, viewChild, ViewEncapsulation, } from '@angular/core';
|
5
5
|
import { AXColorPaletteChildComponent, AXColorPaletteParentComponent } from './color-palette.class';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
import * as i1 from "@acorex/core/utils";
|
8
8
|
import * as i2 from "@angular/forms";
|
9
9
|
import * as i3 from "@acorex/components/range-slider";
|
10
|
-
import * as i4 from "
|
11
|
-
import * as i5 from "./color-palette.class";
|
10
|
+
import * as i4 from "./color-palette.class";
|
12
11
|
/**
|
13
12
|
* Component for picking colors from a color palette.
|
14
13
|
*
|
@@ -28,6 +27,8 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
28
27
|
b: 0,
|
29
28
|
a: 0,
|
30
29
|
};
|
30
|
+
this.circle = viewChild('circle');
|
31
|
+
this.changingColor = signal(false);
|
31
32
|
/**
|
32
33
|
* @ignore
|
33
34
|
*/
|
@@ -123,41 +124,41 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
123
124
|
/**
|
124
125
|
* @ignore
|
125
126
|
*/
|
126
|
-
_handleSurfaceClick(e) {
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
}
|
127
|
+
// protected _handleSurfaceClick(e: MouseEvent) {
|
128
|
+
// if (this._parent.disabled || this._parent.readonly) {
|
129
|
+
// e.preventDefault();
|
130
|
+
// e.stopPropagation();
|
131
|
+
// return;
|
132
|
+
// }
|
133
|
+
// const surface = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-overlay');
|
134
|
+
// const pointer = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-pointer');
|
135
|
+
// const x = e.offsetX;
|
136
|
+
// const y = e.offsetY;
|
137
|
+
// this.setColorByXY(x, y);
|
138
|
+
// }
|
138
139
|
/**
|
139
140
|
* @ignore
|
140
141
|
*/
|
141
|
-
_handleDrag() {
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
}
|
142
|
+
// protected _handleDrag() {
|
143
|
+
// if (this._parent.disabled || this._parent.readonly) {
|
144
|
+
// return;
|
145
|
+
// }
|
146
|
+
// const surface = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-overlay');
|
147
|
+
// const sb = surface.getBoundingClientRect();
|
148
|
+
// const pointer = this.getHostElement().querySelector<HTMLDivElement>('.ax-color-box-pointer');
|
149
|
+
// const pb = pointer.getBoundingClientRect();
|
150
|
+
// const w = pb.width / 2;
|
151
|
+
// let x = pb.left - sb.left + w;
|
152
|
+
// let y = pb.top - sb.top + w;
|
153
|
+
// //
|
154
|
+
// x = x < 0 ? 0 : x;
|
155
|
+
// x = x > sb.width ? sb.width : x;
|
156
|
+
// //
|
157
|
+
// y = y < 0 ? 0 : y;
|
158
|
+
// y = y > sb.height ? sb.height : y;
|
159
|
+
// //
|
160
|
+
// this.setColorByXY(x, y);
|
161
|
+
// }
|
161
162
|
/**
|
162
163
|
* @ignore
|
163
164
|
*/
|
@@ -223,14 +224,39 @@ export class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
223
224
|
get __hostClass() {
|
224
225
|
return `ax-color-palette-picker`;
|
225
226
|
}
|
227
|
+
handleMove(event) {
|
228
|
+
if (!this.changingColor())
|
229
|
+
return;
|
230
|
+
this.placePointer(event);
|
231
|
+
}
|
232
|
+
handleDown(event) {
|
233
|
+
if (this._parent.disabled || this._parent.readonly)
|
234
|
+
return;
|
235
|
+
this.placePointer(event);
|
236
|
+
this.changingColor.set(true);
|
237
|
+
}
|
238
|
+
handleUp() {
|
239
|
+
this.changingColor.set(false);
|
240
|
+
}
|
241
|
+
placePointer(event) {
|
242
|
+
const circleElement = this.circle().nativeElement;
|
243
|
+
const parentStats = circleElement.parentElement.getBoundingClientRect();
|
244
|
+
const circleHeight = circleElement.offsetHeight / 2;
|
245
|
+
const circleWidth = circleElement.offsetWidth / 2;
|
246
|
+
const top = event.clientY - parentStats.top - circleHeight;
|
247
|
+
const left = event.clientX - parentStats.left - circleWidth;
|
248
|
+
circleElement.style.top = `${Math.max(0 - circleHeight, Math.min(top, parentStats.height - circleHeight))}px`;
|
249
|
+
circleElement.style.left = `${Math.max(0 - circleWidth, Math.min(left, parentStats.width - circleWidth))}px`;
|
250
|
+
this.setColorByXY(event.clientX - parentStats.left, event.clientY - parentStats.top);
|
251
|
+
}
|
226
252
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXColorPalettePickerComponent, deps: [{ token: AXColorPaletteParentComponent }, { token: i1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
|
227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker", host: { properties: { "class": "this.__hostClass" } }, providers: [
|
228
254
|
{
|
229
255
|
provide: AXColorPaletteChildComponent,
|
230
256
|
useExisting: AXColorPalettePickerComponent,
|
231
257
|
},
|
232
258
|
AXUnsubscriber,
|
233
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-box-overlay-trans\">\n <div
|
259
|
+
], viewQueries: [{ propertyName: "circle", first: true, predicate: ["circle"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-color-box-overlay-trans\">\n <div\n class=\"ax-color-box-overlay\"\n [style.background-color]=\"_bgColor\"\n (mousemove)=\"handleMove($event)\"\n (mousedown)=\"handleDown($event)\"\n (mouseup)=\"handleUp()\"\n (mouseleave)=\"handleUp()\"\n >\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\"></div>\n <div #circle class=\"ax-color-box-pointer\"></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
234
260
|
}
|
235
261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXColorPalettePickerComponent, decorators: [{
|
236
262
|
type: Component,
|
@@ -240,12 +266,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
240
266
|
useExisting: AXColorPalettePickerComponent,
|
241
267
|
},
|
242
268
|
AXUnsubscriber,
|
243
|
-
], template: "<div class=\"ax-color-box-overlay-trans\">\n <div
|
244
|
-
}], ctorParameters: () => [{ type:
|
269
|
+
], template: "<div class=\"ax-color-box-overlay-trans\">\n <div\n class=\"ax-color-box-overlay\"\n [style.background-color]=\"_bgColor\"\n (mousemove)=\"handleMove($event)\"\n (mousedown)=\"handleDown($event)\"\n (mouseup)=\"handleUp()\"\n (mouseleave)=\"handleUp()\"\n >\n <div class=\"ax-color-box-overlay-g1\"></div>\n <div class=\"ax-color-box-overlay-g2\"></div>\n <div #circle class=\"ax-color-box-pointer\"></div>\n </div>\n</div>\n\n<ax-range-slider\n class=\"ax-color-box-gradient\"\n [min]=\"0\"\n [max]=\"100\"\n [mode]=\"'single'\"\n [ngModel]=\"_gradient\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleGradientChanged($event)\"\n>\n</ax-range-slider>\n<ax-range-slider\n class=\"ax-color-box-transparent\"\n [min]=\"0\"\n [max]=\"1\"\n [hasStep]=\"false\"\n [ngModel]=\"_rgba.a\"\n [disabled]=\"_parent.disabled\"\n [readonly]=\"_parent.readonly\"\n (ngModelChange)=\"_handleAlphaChanged($event)\"\n>\n</ax-range-slider>\n" }]
|
270
|
+
}], ctorParameters: () => [{ type: i4.AXColorPaletteParentComponent, decorators: [{
|
245
271
|
type: Inject,
|
246
272
|
args: [AXColorPaletteParentComponent]
|
247
273
|
}] }, { type: i1.AXUnsubscriber }], propDecorators: { __hostClass: [{
|
248
274
|
type: HostBinding,
|
249
275
|
args: ['class']
|
250
276
|
}] } });
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFFcEc7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxlQUFlO0lBOENoRTs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFuRHZDLFVBQUssR0FBbUQ7WUFDdEQsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRUY7O1dBRUc7UUFDTyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRXhCOztXQUVHO1FB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QTZCO3NFQW9MM0IsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhDb2xvclV0aWwsIEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LCBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS5jbGFzcyc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBwaWNraW5nIGNvbG9ycyBmcm9tIGEgY29sb3IgcGFsZXR0ZS5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb2xvci1wYWxldHRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbG9yUGFsZXR0ZUNoaWxkQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhVbnN1YnNjcmliZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29sb3JQYWxldHRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgX3JnYmE6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlcjsgYTogbnVtYmVyIH0gPSB7XG4gICAgcjogMCxcbiAgICBnOiAwLFxuICAgIGI6IDAsXG4gICAgYTogMCxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfZ3JhZGllbnQgPSAwO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9iZ0NvbG9yID0gJyNGMDAnO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZ3JhZGllbnRDb2xvcnM6IGFueVtdID0gW1xuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAwKScsIHBvczogMCB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAyNTUsIDApJywgcG9zOiAwLjE3IH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAyNTUsIDApJywgcG9zOiAwLjMzIH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAyNTUsIDI1NSknLCBwb3M6IDAuNSB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMCwgMCwgMjU1KScsIHBvczogMC42NyB9LFxuICAgIHsgY29sb3I6ICdyZ2IoMjU1LCAwLCAyNTUpJywgcG9zOiAwLjgzIH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDApJywgcG9zOiAxIH0sXG4gIF07XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmFkaWVudHMgPSBBWENvbG9yVXRpbC5ncmFkaWVudCh0aGlzLl9ncmFkaWVudENvbG9ycyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb2xvcnMgPSB0aGlzLl9ncmFkaWVudHMucmdiKDEwMCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZHJhZ1Bvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50KVxuICAgIHB1YmxpYyBfcGFyZW50OiBBWENvbG9yUGFsZXR0ZVBhcmVudENvbXBvbmVudCxcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZXI6IEFYVW5zdWJzY3JpYmVyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIF9wYXJlbnQub25WYWx1ZUNoYW5nZWQucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgdGhpcy5faGFuZGxlUGFyZW50Q29sb3JDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgX3BhcmVudC5vbk9wdGlvbkNoYW5nZWQucGlwZShfdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2V0SFNWKCkge1xuICAgIGNvbnN0IGhzdiA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX3JnYmEsICdoc3ZhJykgYXMgYW55O1xuICAgIGNvbnN0IHNvcnRlZEggPSB0aGlzLl9jb2xvcnMubWFwKChjKSA9PiBjLnRvSHN2KCkuaCk7XG4gICAgdGhpcy5fZ3JhZGllbnQgPSBzb3J0ZWRILmZpbmRJbmRleCgoYykgPT4ge1xuICAgICAgcmV0dXJuIE1hdGgucm91bmQoYykgPj0gTWF0aC5yb3VuZChoc3YuaCk7XG4gICAgfSk7XG4gICAgdGhpcy5fYmdDb2xvciA9IEFYQ29sb3JVdGlsLnRvU3RyaW5nKHsgaDogaHN2LmgsIHM6IDEsIHY6IDEsIGE6IHRoaXMuX3JnYmEuYSB9LCAncmdiYScpO1xuICAgIHRoaXMuc2V0UG9pbnRlckJ5UGVyY2VudChoc3YucyAqIDEwMCwgaHN2LnYgKiAxMDApO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVQYXJlbnRDb2xvckNoYW5nZWQoKSB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLl9wYXJlbnQudmFsdWU7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgdGhpcy5fcmdiYSA9IHtcbiAgICAgICAgcjogMCxcbiAgICAgICAgZzogMCxcbiAgICAgICAgYjogMCxcbiAgICAgICAgYTogMCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghQVhDb2xvclV0aWwuZXF1YWwoY29sb3IsIHRoaXMuX3JnYmEpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcmdiYSwgQVhDb2xvclV0aWwudG8oY29sb3IsICdyZ2JhJykpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldEhTVigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVBbHBoYUNoYW5nZWQoZTogYW55KSB7XG4gICAgaWYgKGUgIT0gdGhpcy5fcmdiYS5hKSB7XG4gICAgICBjb25zdCB7IHIsIGcsIGIgfSA9IHRoaXMuX3JnYmE7XG4gICAgICBjb25zdCBfY29sb3IgPSBgcmdiYSgke3J9LCR7Z30sJHtifSwke2V9KWA7XG4gICAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoX2NvbG9yLCAncmdiYScpLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKGU6IGFueSkge1xuICAgIGlmIChlICE9IHRoaXMuX2dyYWRpZW50KSB7XG4gICAgICBjb25zdCB7IHMsIHYgfSA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX3JnYmEsICdoc3ZhJykgYXMgYW55O1xuICAgICAgY29uc3QgeyBoIH0gPSB0aGlzLl9jb2xvcnNbZSBhcyBudW1iZXJdLnRvSHN2KCk7XG4gICAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoLCBzLCB2LCBhOiB0aGlzLl9yZ2JhLmEgfSwgJ3JnYmEnKSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVN1cmZhY2VDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1cmZhY2UgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtb3ZlcmxheScpO1xuICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtcG9pbnRlcicpO1xuICAgIGNvbnN0IHggPSBlLm9mZnNldFg7XG4gICAgY29uc3QgeSA9IGUub2Zmc2V0WTtcbiAgICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVEcmFnKCkge1xuICAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN1cmZhY2UgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtb3ZlcmxheScpO1xuICAgIGNvbnN0IHNiID0gc3VyZmFjZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwb2ludGVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LXBvaW50ZXInKTtcbiAgICBjb25zdCBwYiA9IHBvaW50ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdyA9IHBiLndpZHRoIC8gMjtcbiAgICBsZXQgeCA9IHBiLmxlZnQgLSBzYi5sZWZ0ICsgdztcbiAgICBsZXQgeSA9IHBiLnRvcCAtIHNiLnRvcCArIHc7XG4gICAgLy9cbiAgICB4ID0geCA8IDAgPyAwIDogeDtcbiAgICB4ID0geCA+IHNiLndpZHRoID8gc2Iud2lkdGggOiB4O1xuICAgIC8vXG4gICAgeSA9IHkgPCAwID8gMCA6IHk7XG4gICAgeSA9IHkgPiBzYi5oZWlnaHQgPyBzYi5oZWlnaHQgOiB5O1xuICAgIC8vXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIHByb3RlY3RlZCBfaGFuZGxlRHJhZ01vdmUoZXZlbnQ6IGFueSkge1xuICAvLyAgIGlmICh0aGlzLl9wYXJlbnQuZGlzYWJsZWQgfHwgdGhpcy5fcGFyZW50LnJlYWRvbmx5KSB7XG4gIC8vICAgICByZXR1cm47XG4gIC8vICAgfVxuXG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJhZyBldmVudCByZWxhdGl2ZSB0byB0aGUgc3VyZmFjZVxuICAvLyAgIGNvbnN0IGRyYWdQb3NpdGlvbiA9IGV2ZW50LnBvaW50ZXJQb3NpdGlvbjtcblxuICAvLyAgIC8vIENhbGN1bGF0ZSB4IGFuZCB5IG9mZnNldHMgcmVsYXRpdmUgdG8gdGhlIHN1cmZhY2VcbiAgLy8gICBsZXQgeCA9IGRyYWdQb3NpdGlvbi54IC0gc2IubGVmdDsgLy8gUG9pbnRlciB4IHBvc2l0aW9uXG4gIC8vICAgbGV0IHkgPSBkcmFnUG9zaXRpb24ueSAtIHNiLnRvcDsgLy8gUG9pbnRlciB5IHBvc2l0aW9uXG5cbiAgLy8gICAvLyBDbGFtcCB2YWx1ZXMgdG8gYmUgd2l0aGluIGJvdW5kc1xuICAvLyAgIC8vIEFkanVzdCB0aGUgY2xhbXBpbmcgbG9naWMgdG8gcHJldmVudCBvdmVyc2hvb3RpbmcgYnkgdGFraW5nIHRoZSBwb2ludGVyIHNpemUgaW50byBhY2NvdW50XG4gIC8vICAgY29uc3QgcG9pbnRlcldpZHRoID0gMjA7IC8vIEFzc3VtaW5nIGEgcG9pbnRlciB3aWR0aCBvZiAyMHB4LCBhZGp1c3QgYXMgbmVjZXNzYXJ5XG4gIC8vICAgY29uc3QgcG9pbnRlckhlaWdodCA9IDIwOyAvLyBBc3N1bWluZyBhIHBvaW50ZXIgaGVpZ2h0IG9mIDIwcHgsIGFkanVzdCBhcyBuZWNlc3NhcnlcblxuICAvLyAgIHggPSBNYXRoLm1heCgwICsgcG9pbnRlcldpZHRoIC8gMiwgTWF0aC5taW4oeCwgc2Iud2lkdGggLSBwb2ludGVyV2lkdGggLyAyKSk7IC8vIENlbnRlciB0aGUgcG9pbnRlclxuICAvLyAgIHkgPSBNYXRoLm1heCgwICsgcG9pbnRlckhlaWdodCAvIDIsIE1hdGgubWluKHksIHNiLmhlaWdodCAtIHBvaW50ZXJIZWlnaHQgLyAyKSk7IC8vIENlbnRlciB0aGUgcG9pbnRlclxuXG4gIC8vICAgLy8gQ2FsbCB0aGUgbWV0aG9kIHRvIHNldCB0aGUgY29sb3IgYmFzZWQgb24gdGhlIG5ldyB4IGFuZCB5XG4gIC8vICAgdGhpcy5zZXRDb2xvckJ5WFkoeCwgeSk7XG4gIC8vIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2V0Q29sb3JCeVhZKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIC8vXG4gICAgY29uc3QgeyBoLCBhIH0gPSBBWENvbG9yVXRpbC50byh0aGlzLl9iZ0NvbG9yLCAnaHN2YScpIGFzIGFueTtcbiAgICBjb25zdCBoc3ZhID0ge1xuICAgICAgaCxcbiAgICAgIHM6IHggLyBzYi53aWR0aCxcbiAgICAgIHY6IChzYi5oZWlnaHQgLSB5KSAvIHNiLmhlaWdodCxcbiAgICAgIGEsXG4gICAgfTtcbiAgICB0aGlzLl9wYXJlbnQuY29tbWl0VmFsdWUoQVhDb2xvclV0aWwudG9TdHJpbmcoaHN2YSwgJ3JnYmEnKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgc2V0UG9pbnRlckJ5UGVyY2VudCh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gICAgICBpZiAoIXN1cmZhY2UpIHJldHVybjtcbiAgICAgIGNvbnN0IHNiID0gc3VyZmFjZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBwb2ludGVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LXBvaW50ZXInKTtcbiAgICAgIGNvbnN0IHBiID0gcG9pbnRlcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB3ID0gcGIud2lkdGggLyAyO1xuICAgICAgY29uc3Qgd2lkdGggPSBzYi53aWR0aDsgLy8rIHBiLndpZHRoXG4gICAgICBjb25zdCBoZWlnaHQgPSBzYi5oZWlnaHQ7IC8vICsgcGIud2lkdGhcbiAgICAgIHRoaXMuZHJhZ1Bvc2l0aW9uID0ge1xuICAgICAgICB4OiAoeCAqIHdpZHRoKSAvIDEwMCAtIHcsXG4gICAgICAgIHk6IGhlaWdodCAtICh5ICogaGVpZ2h0KSAvIDEwMCAtIHcsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC1jb2xvci1wYWxldHRlLXBpY2tlcmA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS10cmFuc1wiPlxuICA8ZGl2IGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJfYmdDb2xvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS1nMVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb2xvci1ib3gtb3ZlcmxheS1nMlwiIChjbGljayk9XCJfaGFuZGxlU3VyZmFjZUNsaWNrKCRldmVudClcIj48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4LWNvbG9yLWJveC1wb2ludGVyXCJcbiAgICAgIGNka0RyYWdcbiAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5heC1jb2xvci1ib3gtb3ZlcmxheVwiXG4gICAgICBbY2RrRHJhZ0ZyZWVEcmFnUG9zaXRpb25dPVwiZHJhZ1Bvc2l0aW9uXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwiX2hhbmRsZURyYWcoKVwiXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWQgfHwgX3BhcmVudC5yZWFkb25seVwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtY29sb3ItYm94LWdyYWRpZW50XCJcbiAgW21pbl09XCIwXCJcbiAgW21heF09XCIxMDBcIlxuICBbbW9kZV09XCInc2luZ2xlJ1wiXG4gIFtuZ01vZGVsXT1cIl9ncmFkaWVudFwiXG4gIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlR3JhZGllbnRDaGFuZ2VkKCRldmVudClcIlxuPlxuPC9heC1yYW5nZS1zbGlkZXI+XG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtY29sb3ItYm94LXRyYW5zcGFyZW50XCJcbiAgW21pbl09XCIwXCJcbiAgW21heF09XCIxXCJcbiAgW2hhc1N0ZXBdPVwiZmFsc2VcIlxuICBbbmdNb2RlbF09XCJfcmdiYS5hXCJcbiAgW2Rpc2FibGVkXT1cIl9wYXJlbnQuZGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiX3BhcmVudC5yZWFkb25seVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVBbHBoYUNoYW5nZWQoJGV2ZW50KVwiXG4+XG48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGUvc3JjL2xpYi9jb2xvci1wYWxldHRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFFcEc7Ozs7R0FJRztBQWNILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxlQUFlO0lBa0RoRTs7T0FFRztJQUNILFlBRVMsT0FBc0MsRUFDckMsYUFBNkI7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFIRCxZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUF2RHZDLFVBQUssR0FBbUQ7WUFDdEQsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBRU0sV0FBTSxHQUFHLFNBQVMsQ0FBNkIsUUFB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Z0JBQ3JDLFdBQVcsRUFBRSw2QkFBNkI7YUFDM0M7WUFDRCxjQUFjO1NBQ2YsbUtDL0JILDIvQkFxQ0E7OzJGREphLDZCQUE2QjtrQkFiekMsU0FBUzsrQkFDRSx5QkFBeUIsaUJBRXBCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVywrQkFBK0I7eUJBQzNDO3dCQUNELGNBQWM7cUJBQ2Y7OzBCQXdERSxNQUFNOzJCQUFDLDZCQUE2QjtzRUFvTDNCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCwgQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLXBhbGV0dGUuY2xhc3MnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgcGlja2luZyBjb2xvcnMgZnJvbSBhIGNvbG9yIHBhbGV0dGUuXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29sb3ItcGFsZXR0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGFsZXR0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb2xvclBhbGV0dGVDaGlsZENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbG9yUGFsZXR0ZVBpY2tlckNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGFsZXR0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIF9yZ2JhOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXI7IGE6IG51bWJlciB9ID0ge1xuICAgIHI6IDAsXG4gICAgZzogMCxcbiAgICBiOiAwLFxuICAgIGE6IDAsXG4gIH07XG5cbiAgcHJpdmF0ZSBjaXJjbGUgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdjaXJjbGUnKTtcblxuICBwcml2YXRlIGNoYW5naW5nQ29sb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9ncmFkaWVudCA9IDA7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2JnQ29sb3IgPSAnI0YwMCc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmFkaWVudENvbG9yczogYW55W10gPSBbXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDApJywgcG9zOiAwIH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDI1NSwgMCknLCBwb3M6IDAuMTcgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDI1NSwgMCknLCBwb3M6IDAuMzMgfSxcbiAgICB7IGNvbG9yOiAncmdiKDAsIDI1NSwgMjU1KScsIHBvczogMC41IH0sXG4gICAgeyBjb2xvcjogJ3JnYigwLCAwLCAyNTUpJywgcG9zOiAwLjY3IH0sXG4gICAgeyBjb2xvcjogJ3JnYigyNTUsIDAsIDI1NSknLCBwb3M6IDAuODMgfSxcbiAgICB7IGNvbG9yOiAncmdiKDI1NSwgMCwgMCknLCBwb3M6IDEgfSxcbiAgXTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyYWRpZW50cyA9IEFYQ29sb3JVdGlsLmdyYWRpZW50KHRoaXMuX2dyYWRpZW50Q29sb3JzKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbG9ycyA9IHRoaXMuX2dyYWRpZW50cy5yZ2IoMTAwKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBkcmFnUG9zaXRpb24gPSB7IHg6IDAsIHk6IDAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQVhDb2xvclBhbGV0dGVQYXJlbnRDb21wb25lbnQpXG4gICAgcHVibGljIF9wYXJlbnQ6IEFYQ29sb3JQYWxldHRlUGFyZW50Q29tcG9uZW50LFxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlcjogQVhVbnN1YnNjcmliZXIsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgX3BhcmVudC5vblZhbHVlQ2hhbmdlZC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLl9oYW5kbGVQYXJlbnRDb2xvckNoYW5nZWQoKTtcbiAgICB9KTtcbiAgICBfcGFyZW50Lm9uT3B0aW9uQ2hhbmdlZC5waXBlKF91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRIU1YoKSB7XG4gICAgY29uc3QgaHN2ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgJ2hzdmEnKSBhcyBhbnk7XG4gICAgY29uc3Qgc29ydGVkSCA9IHRoaXMuX2NvbG9ycy5tYXAoKGMpID0+IGMudG9Ic3YoKS5oKTtcbiAgICB0aGlzLl9ncmFkaWVudCA9IHNvcnRlZEguZmluZEluZGV4KChjKSA9PiB7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZChjKSA+PSBNYXRoLnJvdW5kKGhzdi5oKTtcbiAgICB9KTtcbiAgICB0aGlzLl9iZ0NvbG9yID0gQVhDb2xvclV0aWwudG9TdHJpbmcoeyBoOiBoc3YuaCwgczogMSwgdjogMSwgYTogdGhpcy5fcmdiYS5hIH0sICdyZ2JhJyk7XG4gICAgdGhpcy5zZXRQb2ludGVyQnlQZXJjZW50KGhzdi5zICogMTAwLCBoc3YudiAqIDEwMCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2hhbmRsZVBhcmVudENvbG9yQ2hhbmdlZCgpIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuX3BhcmVudC52YWx1ZTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICB0aGlzLl9yZ2JhID0ge1xuICAgICAgICByOiAwLFxuICAgICAgICBnOiAwLFxuICAgICAgICBiOiAwLFxuICAgICAgICBhOiAwLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFBWENvbG9yVXRpbC5lcXVhbChjb2xvciwgdGhpcy5fcmdiYSkpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9yZ2JhLCBBWENvbG9yVXRpbC50byhjb2xvciwgJ3JnYmEnKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2V0SFNWKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUFscGhhQ2hhbmdlZChlOiBhbnkpIHtcbiAgICBpZiAoZSAhPSB0aGlzLl9yZ2JhLmEpIHtcbiAgICAgIGNvbnN0IHsgciwgZywgYiB9ID0gdGhpcy5fcmdiYTtcbiAgICAgIGNvbnN0IF9jb2xvciA9IGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7ZX0pYDtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhfY29sb3IsICdyZ2JhJyksIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVHcmFkaWVudENoYW5nZWQoZTogYW55KSB7XG4gICAgaWYgKGUgIT0gdGhpcy5fZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgcywgdiB9ID0gQVhDb2xvclV0aWwudG8odGhpcy5fcmdiYSwgJ2hzdmEnKSBhcyBhbnk7XG4gICAgICBjb25zdCB7IGggfSA9IHRoaXMuX2NvbG9yc1tlIGFzIG51bWJlcl0udG9Ic3YoKTtcbiAgICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyh7IGgsIHMsIHYsIGE6IHRoaXMuX3JnYmEuYSB9LCAncmdiYScpLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIHByb3RlY3RlZCBfaGFuZGxlU3VyZmFjZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgLy8gICBpZiAodGhpcy5fcGFyZW50LmRpc2FibGVkIHx8IHRoaXMuX3BhcmVudC5yZWFkb25seSkge1xuICAvLyAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3QgcG9pbnRlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1wb2ludGVyJyk7XG4gIC8vICAgY29uc3QgeCA9IGUub2Zmc2V0WDtcbiAgLy8gICBjb25zdCB5ID0gZS5vZmZzZXRZO1xuICAvLyAgIHRoaXMuc2V0Q29sb3JCeVhZKHgsIHkpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICAvLyBwcm90ZWN0ZWQgX2hhbmRsZURyYWcoKSB7XG4gIC8vICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG4gIC8vICAgY29uc3Qgc3VyZmFjZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LWNvbG9yLWJveC1vdmVybGF5Jyk7XG4gIC8vICAgY29uc3Qgc2IgPSBzdXJmYWNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAvLyAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtcG9pbnRlcicpO1xuICAvLyAgIGNvbnN0IHBiID0gcG9pbnRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgLy8gICBjb25zdCB3ID0gcGIud2lkdGggLyAyO1xuICAvLyAgIGxldCB4ID0gcGIubGVmdCAtIHNiLmxlZnQgKyB3O1xuICAvLyAgIGxldCB5ID0gcGIudG9wIC0gc2IudG9wICsgdztcbiAgLy8gICAvL1xuICAvLyAgIHggPSB4IDwgMCA/IDAgOiB4O1xuICAvLyAgIHggPSB4ID4gc2Iud2lkdGggPyBzYi53aWR0aCA6IHg7XG4gIC8vICAgLy9cbiAgLy8gICB5ID0geSA8IDAgPyAwIDogeTtcbiAgLy8gICB5ID0geSA+IHNiLmhlaWdodCA/IHNiLmhlaWdodCA6IHk7XG4gIC8vICAgLy9cbiAgLy8gICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgLy8gcHJvdGVjdGVkIF9oYW5kbGVEcmFnTW92ZShldmVudDogYW55KSB7XG4gIC8vICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHtcbiAgLy8gICAgIHJldHVybjtcbiAgLy8gICB9XG5cbiAgLy8gICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgLy8gICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8gICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBkcmFnIGV2ZW50IHJlbGF0aXZlIHRvIHRoZSBzdXJmYWNlXG4gIC8vICAgY29uc3QgZHJhZ1Bvc2l0aW9uID0gZXZlbnQucG9pbnRlclBvc2l0aW9uO1xuXG4gIC8vICAgLy8gQ2FsY3VsYXRlIHggYW5kIHkgb2Zmc2V0cyByZWxhdGl2ZSB0byB0aGUgc3VyZmFjZVxuICAvLyAgIGxldCB4ID0gZHJhZ1Bvc2l0aW9uLnggLSBzYi5sZWZ0OyAvLyBQb2ludGVyIHggcG9zaXRpb25cbiAgLy8gICBsZXQgeSA9IGRyYWdQb3NpdGlvbi55IC0gc2IudG9wOyAvLyBQb2ludGVyIHkgcG9zaXRpb25cblxuICAvLyAgIC8vIENsYW1wIHZhbHVlcyB0byBiZSB3aXRoaW4gYm91bmRzXG4gIC8vICAgLy8gQWRqdXN0IHRoZSBjbGFtcGluZyBsb2dpYyB0byBwcmV2ZW50IG92ZXJzaG9vdGluZyBieSB0YWtpbmcgdGhlIHBvaW50ZXIgc2l6ZSBpbnRvIGFjY291bnRcbiAgLy8gICBjb25zdCBwb2ludGVyV2lkdGggPSAyMDsgLy8gQXNzdW1pbmcgYSBwb2ludGVyIHdpZHRoIG9mIDIwcHgsIGFkanVzdCBhcyBuZWNlc3NhcnlcbiAgLy8gICBjb25zdCBwb2ludGVySGVpZ2h0ID0gMjA7IC8vIEFzc3VtaW5nIGEgcG9pbnRlciBoZWlnaHQgb2YgMjBweCwgYWRqdXN0IGFzIG5lY2Vzc2FyeVxuXG4gIC8vICAgeCA9IE1hdGgubWF4KDAgKyBwb2ludGVyV2lkdGggLyAyLCBNYXRoLm1pbih4LCBzYi53aWR0aCAtIHBvaW50ZXJXaWR0aCAvIDIpKTsgLy8gQ2VudGVyIHRoZSBwb2ludGVyXG4gIC8vICAgeSA9IE1hdGgubWF4KDAgKyBwb2ludGVySGVpZ2h0IC8gMiwgTWF0aC5taW4oeSwgc2IuaGVpZ2h0IC0gcG9pbnRlckhlaWdodCAvIDIpKTsgLy8gQ2VudGVyIHRoZSBwb2ludGVyXG5cbiAgLy8gICAvLyBDYWxsIHRoZSBtZXRob2QgdG8gc2V0IHRoZSBjb2xvciBiYXNlZCBvbiB0aGUgbmV3IHggYW5kIHlcbiAgLy8gICB0aGlzLnNldENvbG9yQnlYWSh4LCB5KTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDb2xvckJ5WFkoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgICBjb25zdCBzYiA9IHN1cmZhY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgLy9cbiAgICBjb25zdCB7IGgsIGEgfSA9IEFYQ29sb3JVdGlsLnRvKHRoaXMuX2JnQ29sb3IsICdoc3ZhJykgYXMgYW55O1xuICAgIGNvbnN0IGhzdmEgPSB7XG4gICAgICBoLFxuICAgICAgczogeCAvIHNiLndpZHRoLFxuICAgICAgdjogKHNiLmhlaWdodCAtIHkpIC8gc2IuaGVpZ2h0LFxuICAgICAgYSxcbiAgICB9O1xuICAgIHRoaXMuX3BhcmVudC5jb21taXRWYWx1ZShBWENvbG9yVXRpbC50b1N0cmluZyhoc3ZhLCAncmdiYScpLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRQb2ludGVyQnlQZXJjZW50KHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICBjb25zdCBzdXJmYWNlID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtY29sb3ItYm94LW92ZXJsYXknKTtcbiAgICAgIGlmICghc3VyZmFjZSkgcmV0dXJuO1xuICAgICAgY29uc3Qgc2IgPSBzdXJmYWNlPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHBvaW50ZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1jb2xvci1ib3gtcG9pbnRlcicpO1xuICAgICAgY29uc3QgcGIgPSBwb2ludGVyPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHcgPSBwYi53aWR0aCAvIDI7XG4gICAgICBjb25zdCB3aWR0aCA9IHNiLndpZHRoOyAvLysgcGIud2lkdGhcbiAgICAgIGNvbnN0IGhlaWdodCA9IHNiLmhlaWdodDsgLy8gKyBwYi53aWR0aFxuICAgICAgdGhpcy5kcmFnUG9zaXRpb24gPSB7XG4gICAgICAgIHg6ICh4ICogd2lkdGgpIC8gMTAwIC0gdyxcbiAgICAgICAgeTogaGVpZ2h0IC0gKHkgKiBoZWlnaHQpIC8gMTAwIC0gdyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LWNvbG9yLXBhbGV0dGUtcGlja2VyYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNoYW5naW5nQ29sb3IoKSkgcmV0dXJuO1xuICAgIHRoaXMucGxhY2VQb2ludGVyKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudC5kaXNhYmxlZCB8fCB0aGlzLl9wYXJlbnQucmVhZG9ubHkpIHJldHVybjtcbiAgICB0aGlzLnBsYWNlUG9pbnRlcihldmVudCk7XG4gICAgdGhpcy5jaGFuZ2luZ0NvbG9yLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVVcCgpIHtcbiAgICB0aGlzLmNoYW5naW5nQ29sb3Iuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGxhY2VQb2ludGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgY2lyY2xlRWxlbWVudCA9IHRoaXMuY2lyY2xlKCkubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnRTdGF0cyA9IGNpcmNsZUVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGNpcmNsZUhlaWdodCA9IGNpcmNsZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICBjb25zdCBjaXJjbGVXaWR0aCA9IGNpcmNsZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xuXG4gICAgY29uc3QgdG9wID0gZXZlbnQuY2xpZW50WSAtIHBhcmVudFN0YXRzLnRvcCAtIGNpcmNsZUhlaWdodDtcbiAgICBjb25zdCBsZWZ0ID0gZXZlbnQuY2xpZW50WCAtIHBhcmVudFN0YXRzLmxlZnQgLSBjaXJjbGVXaWR0aDtcblxuICAgIGNpcmNsZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7TWF0aC5tYXgoMCAtIGNpcmNsZUhlaWdodCwgTWF0aC5taW4odG9wLCBwYXJlbnRTdGF0cy5oZWlnaHQgLSBjaXJjbGVIZWlnaHQpKX1weGA7XG4gICAgY2lyY2xlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5tYXgoMCAtIGNpcmNsZVdpZHRoLCBNYXRoLm1pbihsZWZ0LCBwYXJlbnRTdGF0cy53aWR0aCAtIGNpcmNsZVdpZHRoKSl9cHhgO1xuXG4gICAgdGhpcy5zZXRDb2xvckJ5WFkoZXZlbnQuY2xpZW50WCAtIHBhcmVudFN0YXRzLmxlZnQsIGV2ZW50LmNsaWVudFkgLSBwYXJlbnRTdGF0cy50b3ApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXktdHJhbnNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtY29sb3ItYm94LW92ZXJsYXlcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIl9iZ0NvbG9yXCJcbiAgICAobW91c2Vtb3ZlKT1cImhhbmRsZU1vdmUoJGV2ZW50KVwiXG4gICAgKG1vdXNlZG93bik9XCJoYW5kbGVEb3duKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cImhhbmRsZVVwKClcIlxuICAgIChtb3VzZWxlYXZlKT1cImhhbmRsZVVwKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLWJveC1vdmVybGF5LWcxXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbG9yLWJveC1vdmVybGF5LWcyXCI+PC9kaXY+XG4gICAgPGRpdiAjY2lyY2xlIGNsYXNzPVwiYXgtY29sb3ItYm94LXBvaW50ZXJcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGF4LXJhbmdlLXNsaWRlclxuICBjbGFzcz1cImF4LWNvbG9yLWJveC1ncmFkaWVudFwiXG4gIFttaW5dPVwiMFwiXG4gIFttYXhdPVwiMTAwXCJcbiAgW21vZGVdPVwiJ3NpbmdsZSdcIlxuICBbbmdNb2RlbF09XCJfZ3JhZGllbnRcIlxuICBbZGlzYWJsZWRdPVwiX3BhcmVudC5kaXNhYmxlZFwiXG4gIFtyZWFkb25seV09XCJfcGFyZW50LnJlYWRvbmx5XCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZUdyYWRpZW50Q2hhbmdlZCgkZXZlbnQpXCJcbj5cbjwvYXgtcmFuZ2Utc2xpZGVyPlxuPGF4LXJhbmdlLXNsaWRlclxuICBjbGFzcz1cImF4LWNvbG9yLWJveC10cmFuc3BhcmVudFwiXG4gIFttaW5dPVwiMFwiXG4gIFttYXhdPVwiMVwiXG4gIFtoYXNTdGVwXT1cImZhbHNlXCJcbiAgW25nTW9kZWxdPVwiX3JnYmEuYVwiXG4gIFtkaXNhYmxlZF09XCJfcGFyZW50LmRpc2FibGVkXCJcbiAgW3JlYWRvbmx5XT1cIl9wYXJlbnQucmVhZG9ubHlcIlxuICAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlQWxwaGFDaGFuZ2VkKCRldmVudClcIlxuPlxuPC9heC1yYW5nZS1zbGlkZXI+XG4iXX0=
|
@@ -262,7 +262,7 @@ export class AXDataPagerComponent extends MXValueComponent {
|
|
262
262
|
useExisting: forwardRef(() => AXDataPagerComponent),
|
263
263
|
multi: true,
|
264
264
|
},
|
265
|
-
], usesInheritance: true, ngImport: i0, template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix>\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-suffix>\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @case ('compact') {\n <ax-prefix>\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix>\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @default {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n}\n", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{
|
265
|
+
], usesInheritance: true, ngImport: i0, template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix class=\"ax-full-prefix\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-suffix class=\"ax-full-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @case ('compact') {\n <ax-prefix class=\"ax-compact-prefix\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-compact-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @default {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n}\n", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{display:flex;flex-wrap:nowrap;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;font-size:.875rem;line-height:1.25rem;overflow-x:auto}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{margin-inline-end:.5rem}ax-data-pager ax-data-pager-next-buttons ax-skeleton,ax-data-pager ax-data-pager-prev-buttons ax-skeleton,ax-data-pager ax-data-pager-numeric-selector ax-skeleton{width:100%;min-width:14rem;border-radius:var(--ax-rounded-border-default)}ax-data-pager ax-data-pager-numeric-selector{display:flex;flex-wrap:nowrap}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager .ax-full-prefix,ax-data-pager .ax-full-suffix{display:flex}ax-data-pager .ax-compact-prefix{display:flex}ax-data-pager .ax-compact-prefix ax-data-pager-next-buttons,ax-data-pager .ax-compact-prefix ax-data-pager-prev-buttons{display:flex;flex-wrap:nowrap}ax-data-pager ax-data-pager-info ax-text{color:rgb(var(--ax-color-neutral-400));white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2.AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }, { kind: "component", type: i3.AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: i4.AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: i5.AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: i6.AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: i7.AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
266
266
|
}
|
267
267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDataPagerComponent, decorators: [{
|
268
268
|
type: Component,
|
@@ -273,7 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
273
273
|
useExisting: forwardRef(() => AXDataPagerComponent),
|
274
274
|
multi: true,
|
275
275
|
},
|
276
|
-
], template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix>\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-suffix>\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @case ('compact') {\n <ax-prefix>\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix>\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @default {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n}\n", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{
|
276
|
+
], template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix class=\"ax-full-prefix\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-suffix class=\"ax-full-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @case ('compact') {\n <ax-prefix class=\"ax-compact-prefix\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-compact-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @default {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n}\n", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{display:flex;flex-wrap:nowrap;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;font-size:.875rem;line-height:1.25rem;overflow-x:auto}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{margin-inline-end:.5rem}ax-data-pager ax-data-pager-next-buttons ax-skeleton,ax-data-pager ax-data-pager-prev-buttons ax-skeleton,ax-data-pager ax-data-pager-numeric-selector ax-skeleton{width:100%;min-width:14rem;border-radius:var(--ax-rounded-border-default)}ax-data-pager ax-data-pager-numeric-selector{display:flex;flex-wrap:nowrap}ax-data-pager ax-data-pager-page-sizes ax-button{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-data-pager .ax-full-prefix,ax-data-pager .ax-full-suffix{display:flex}ax-data-pager .ax-compact-prefix{display:flex}ax-data-pager .ax-compact-prefix ax-data-pager-next-buttons,ax-data-pager .ax-compact-prefix ax-data-pager-prev-buttons{display:flex;flex-wrap:nowrap}ax-data-pager ax-data-pager-info ax-text{color:rgb(var(--ax-color-neutral-400));white-space:nowrap}\n"] }]
|
277
277
|
}], ctorParameters: () => [{ type: i8.AXPagedComponent, decorators: [{
|
278
278
|
type: Optional
|
279
279
|
}, {
|
@@ -295,4 +295,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
295
295
|
type: HostBinding,
|
296
296
|
args: ['class']
|
297
297
|
}] } });
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1wYWdlci9zcmMvbGliL2RhdGEtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtcGFnZXIvc3JjL2xpYi9kYXRhLXBhZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9FLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBR0wsMEJBQTBCLEdBQzNCLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFJckM7Ozs7R0FJRztBQWtCSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQXdCO0lBTWhFOzs7T0FHRztJQUNILElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsU0FBUyxDQUFDLENBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQU9EOztPQUVHO0lBQ0gsSUFDVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsSUFBSSxDQUFDLENBQVM7UUFDdkIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFPRDs7T0FFRztJQUNILElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFXLEtBQUssQ0FBQyxDQUFTO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFPRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFZLFVBQVUsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFlRDs7T0FFRztJQUNILElBQ1csV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFdBQVcsQ0FBQyxDQUFrQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLENBQUM7WUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVVEOztPQUVHO0lBQ0gsWUFHVSxPQUF5QjtRQUVqQyxLQUFLLEVBQUUsQ0FBQztRQUZBLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBeEpuQzs7V0FFRztRQUNLLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFvQm5DOztXQUVHO1FBQ0ssVUFBSyxHQUFHLElBQUksQ0FBQztRQTRCckI7O1dBRUc7UUFDSyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBd0JuQjs7V0FFRztRQUNLLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBa0J4Qjs7OztXQUlHO1FBRUksc0JBQWlCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFNUU7O1dBRUc7UUFDSyxpQkFBWSxHQUFvQixNQUFNLENBQUM7UUF5Qi9DOzs7O1dBSUc7UUFFSCxjQUFTLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBVzdGLEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ2dCLG9CQUFvQixDQUFDLEtBQVU7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNnQixnQkFBZ0IsQ0FBQyxLQUFVO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNELENBQUM7SUFPRCxJQUFXLFdBQVc7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUM7Z0JBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDakQ7WUFDRCxJQUFJO1lBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsS0FBSztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsRUFBRTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixNQUFNLENBQUMsTUFBTSxDQUNYO2dCQUNFLFNBQVMsRUFBRSxJQUFJO2dCQUNmLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ25DLEVBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FDRixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELEVBQUU7WUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxFQUFFO1lBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUVILFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OEdBMVJVLG9CQUFvQixrQkF3SnJCLGdCQUFnQjtrR0F4SmYsb0JBQW9CLHNkQVRwQjtZQUNULEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtZQUMxRTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDN0NILGd4QkF5QkE7OzJGRHNCYSxvQkFBb0I7a0JBakJoQyxTQUFTOytCQUNFLGVBQWUsVUFHakIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FDeEMsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsbUJBQzdELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDMUU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkF5SkUsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBN0lmLFNBQVM7c0JBRG5CLEtBQUs7Z0JBdUJLLElBQUk7c0JBRGQsS0FBSztnQkFnQ0ssS0FBSztzQkFEZixLQUFLO2dCQThDQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBWUksV0FBVztzQkFEckIsS0FBSztnQkEwQk4sU0FBUztzQkFEUixNQUFNO2dCQXdJSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGFnZWRDb21wb25lbnQsIE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsLCBpc051bWJlciB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQsXG4gIEFYRGF0YVBhZ2VyRGF0YSxcbiAgQVhEYXRhUGFnZXJQYXJlbnRDb21wb25lbnQsXG59IGZyb20gJy4vZGF0YS1wYWdlci1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEFYRGF0YVBhZ2VyTW9kZSA9ICdmdWxsJyB8ICdjb21wYWN0JyB8ICdjdXN0b20nO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgbWFuYWdpbmcgYW5kIGRpc3BsYXlpbmcgZGF0YSBwYWdpbmF0aW9uIGNvbnRyb2xzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGEtcGFnZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ3ZhbHVlJywgJ25hbWUnLCAnZGlzYWJsZWQnLCAncmVhZG9ubHknXSxcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZScsICdvblZhbHVlQ2hhbmdlZCcsICdkaXNhYmxlZENoYW5nZScsICdyZWFkb25seUNoYW5nZSddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWERhdGFQYWdlclBhcmVudENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0YVBhZ2VyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWERhdGFQYWdlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFQYWdlckNvbXBvbmVudCBleHRlbmRzIE1YVmFsdWVDb21wb25lbnQ8bnVtYmVyPiB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBjdXJyZW50bHkgbG9hZGluZy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsb2FkaW5nIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2IC0gVGhlIGxvYWRpbmcgc3RhdGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHNldCBpc0xvYWRpbmcodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzTG9hZGluZy5zZXQodik7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3NpemUgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGhlIGRhdGEgcGFnZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSB8fCAxMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgYW5kIHVwZGF0ZXMgdGhlIGRhdGEgcGFnZXIgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2IC0gVGhlIG5ldyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgc2V0IHNpemUodjogbnVtYmVyKSB7XG4gICAgaWYgKHYgIT0gdGhpcy5fc2l6ZSkge1xuICAgICAgY29uc3QgcHJldlNpemUgPSB0aGlzLl9zaXplO1xuICAgICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgICBpZiAodGhpcy5fcGFyZW50KSB7XG4gICAgICAgIHRoaXMuX3BhcmVudC5wYWdlU2l6ZSA9IHY7XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQYWdlID0gTWF0aC5jZWlsKHRoaXMuZGlzcGxheUluZm8ucmFuZ2UuZnJvbSAvIHRoaXMuX3NpemUpIHx8IDE7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG5ld1BhZ2UpO1xuICAgICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudChwcmV2U2l6ZSAhPSBudWxsID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3RvdGFsID0gMDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgYW5kIHRyaWdnZXJzIGFuIHVwZGF0ZSBldmVudCBpZiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHNldC5cbiAgICogICAgICAgICAgICAgICAgICAgICBJZiB0aGUgdmFsdWUgaXMgbm9uLXBvc2l0aXZlLCBpdCBkZWZhdWx0cyB0byAwLlxuICAgKi9cbiAgcHVibGljIHNldCB0b3RhbCh2OiBudW1iZXIpIHtcbiAgICBjb25zdCB0ID0gdiAmJiB2ID4gMCA/IHYgOiAwO1xuICAgIGlmICh0ICE9IHRoaXMuX3RvdGFsKSB7XG4gICAgICB0aGlzLl90b3RhbCA9IHQ7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlZEV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF90b3RhbFBhZ2VzID0gMDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsUGFnZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIHRvIHNldC5cbiAgICovXG4gIHByaXZhdGUgc2V0IHRvdGFsUGFnZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3RvdGFsUGFnZXMgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpc3BsYXkgbW9kZSBjaGFuZ2VzLlxuICAgKiBAZXZlbnRcbiAgICogQW4gZXZlbnQgY29udGFpbmluZyB0aGUgbmV3IGRpc3BsYXkgbW9kZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZGlzcGxheU1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kaXNwbGF5TW9kZTogQVhEYXRhUGFnZXJNb2RlID0gJ2Z1bGwnO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZSBvZiB0aGUgZGF0YSBwYWdlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzcGxheU1vZGUoKTogQVhEYXRhUGFnZXJNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheU1vZGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9mIHRoZSBkYXRhIHBhZ2VyIGFuZCBlbWl0cyBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgbmV3IGRpc3BsYXkgbW9kZSB0byBzZXQsIG9mIHR5cGUgYEFYRGF0YVBhZ2VyTW9kZWAuXG4gICAqL1xuICBwdWJsaWMgc2V0IGRpc3BsYXlNb2RlKHY6IEFYRGF0YVBhZ2VyTW9kZSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkaXNwbGF5TW9kZScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRhdGEgcGFnZXIncyBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAZXZlbnRcbiAgICogQW4gZXZlbnQgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHRoZSBjaGFuZ2UuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFQYWdlckNoYW5nZWRFdmVudD4oKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWFBhZ2VkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgX3BhcmVudDogQVhQYWdlZENvbXBvbmVudCxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvL1xuICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5vblBhZ2VDaGFuZ2VkLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLl9wYXJlbnQucGFnZVNpemU7XG4gICAgICAgIHRoaXMudG90YWwgPSB0aGlzLl9wYXJlbnQudG90YWxDb3VudDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGMudmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuX3BhcmVudC5wYWdlU2l6ZTtcbiAgICAgIHRoaXMudG90YWwgPSB0aGlzLl9wYXJlbnQudG90YWxDb3VudDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlZEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGludGVybmFsR2V0VmFsdWUodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKCFpc051bWJlcih2YWx1ZSkgfHwgIXZhbHVlIHx8IHRoaXMudG90YWxQYWdlcyA9PSAwKSByZXR1cm4gMTtcbiAgICByZXR1cm4gdmFsdWUgPiB0aGlzLnRvdGFsUGFnZXMgPyB0aGlzLnRvdGFsUGFnZXMgOiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBwcmV2aW91c0Rpc3BsYXlJbmZvOiBBWERhdGFQYWdlckRhdGEgfCBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUluZm8oKTogQVhEYXRhUGFnZXJEYXRhIHtcbiAgICBjb25zdCBza2lwID0gTWF0aC5tYXgoMCwgKHRoaXMudmFsdWUgLSAxKSAqIHRoaXMuc2l6ZSk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgcGFnZTogdGhpcy52YWx1ZSxcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMudG90YWwsXG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMsXG4gICAgICByYW5nZToge1xuICAgICAgICBmcm9tOiBza2lwICsgMSxcbiAgICAgICAgdG86IE1hdGgubWluKHRoaXMudmFsdWUgKiB0aGlzLnNpemUsIHRoaXMudG90YWwpLFxuICAgICAgfSxcbiAgICAgIHNraXAsXG4gICAgICB0YWtlOiB0aGlzLnNpemUsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9lbWl0Q2hhbmdlZEV2ZW50KHUgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLl90b3RhbCAvIHRoaXMuc2l6ZSk7XG4gICAgLy9cbiAgICBpZiAoIWlzRXF1YWwodGhpcy5wcmV2aW91c0Rpc3BsYXlJbmZvLCB0aGlzLmRpc3BsYXlJbmZvKSkge1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdChcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdSxcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLmRpc3BsYXlJbmZvLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgPiAwKSB0aGlzLl9wYXJlbnQ/LmdvVG9QYWdlKHRoaXMudmFsdWUpO1xuICAgICAgLy9cbiAgICAgIHRoaXMucHJldmlvdXNEaXNwbGF5SW5mbyA9IGNsb25lRGVlcCh0aGlzLmRpc3BsYXlJbmZvKTtcbiAgICAgIC8vXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHBhZ2UsIG9yIHRvIHRoZSBsYXN0IHBhZ2UgaWYgb24gdGhlIGZpbmFsIHBhZ2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG5cbiAgZ29OZXh0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKE1hdGgubWluKHRoaXMudmFsdWUgKyAxLCB0aGlzLnRvdGFsUGFnZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIGxhc3QgcGFnZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ29MYXN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKHRoaXMudG90YWxQYWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBmaXJzdCBwYWdlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnb0ZpcnN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKDEpO1xuICB9XG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIG9yIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG9uIHRoZSBpbml0aWFsIHBhZ2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdvUHJldlBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb1RvUGFnZShNYXRoLm1heCh0aGlzLnZhbHVlIC0gMSwgMSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byBhIHNwZWNpZmllZCBwYWdlLlxuICAgKiBAcGFyYW0gcGFnZSAtIFRoZSBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0by5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHBhZ2UgIT0gdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShwYWdlLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC1zbWA7XG4gIH1cbn1cbiIsIkBzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG4gIEBjYXNlICgnZnVsbCcpIHtcbiAgICA8YXgtcHJlZml4PlxuICAgICAgPGF4LWRhdGEtcGFnZXItbnVtZXJpYy1zZWxlY3Rvcj4gPC9heC1kYXRhLXBhZ2VyLW51bWVyaWMtc2VsZWN0b3I+XG4gICAgICA8YXgtZGF0YS1wYWdlci1wYWdlLXNpemVzPiA8L2F4LWRhdGEtcGFnZXItcGFnZS1zaXplcz5cbiAgICA8L2F4LXByZWZpeD5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgPGF4LWRhdGEtcGFnZXItaW5mbz4gPC9heC1kYXRhLXBhZ2VyLWluZm8+XG4gICAgPC9heC1zdWZmaXg+XG4gIH1cbiAgQGNhc2UgKCdjb21wYWN0Jykge1xuICAgIDxheC1wcmVmaXg+XG4gICAgICA8YXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+IDwvYXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICA8YXgtZGF0YS1wYWdlci1pbnB1dC1zZWxlY3Rvcj4gPC9heC1kYXRhLXBhZ2VyLWlucHV0LXNlbGVjdG9yPlxuICAgICAgPGF4LWRhdGEtcGFnZXItbmV4dC1idXR0b25zPiA8L2F4LWRhdGEtcGFnZXItbmV4dC1idXR0b25zPlxuICAgIDwvYXgtcHJlZml4PlxuICAgIDxheC1zdWZmaXg+XG4gICAgICA8YXgtZGF0YS1wYWdlci1pbmZvPiA8L2F4LWRhdGEtcGFnZXItaW5mbz5cbiAgICA8L2F4LXN1ZmZpeD5cbiAgfVxuICBAZGVmYXVsdCB7XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgfVxufVxuIl19
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1wYWdlci9zcmMvbGliL2RhdGEtcGFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtcGFnZXIvc3JjL2xpYi9kYXRhLXBhZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9FLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBR0wsMEJBQTBCLEdBQzNCLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFJckM7Ozs7R0FJRztBQWtCSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQXdCO0lBTWhFOzs7T0FHRztJQUNILElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsU0FBUyxDQUFDLENBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQU9EOztPQUVHO0lBQ0gsSUFDVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJ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OytCQUNFLGVBQWUsVUFHakIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FDeEMsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsbUJBQzdELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDMUU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkF5SkUsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBN0lmLFNBQVM7c0JBRG5CLEtBQUs7Z0JBdUJLLElBQUk7c0JBRGQsS0FBSztnQkFnQ0ssS0FBSztzQkFEZixLQUFLO2dCQThDQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBWUksV0FBVztzQkFEckIsS0FBSztnQkEwQk4sU0FBUztzQkFEUixNQUFNO2dCQXdJSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGFnZWRDb21wb25lbnQsIE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsLCBpc051bWJlciB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQsXG4gIEFYRGF0YVBhZ2VyRGF0YSxcbiAgQVhEYXRhUGFnZXJQYXJlbnRDb21wb25lbnQsXG59IGZyb20gJy4vZGF0YS1wYWdlci1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEFYRGF0YVBhZ2VyTW9kZSA9ICdmdWxsJyB8ICdjb21wYWN0JyB8ICdjdXN0b20nO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgbWFuYWdpbmcgYW5kIGRpc3BsYXlpbmcgZGF0YSBwYWdpbmF0aW9uIGNvbnRyb2xzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGEtcGFnZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1wYWdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ3ZhbHVlJywgJ25hbWUnLCAnZGlzYWJsZWQnLCAncmVhZG9ubHknXSxcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZScsICdvblZhbHVlQ2hhbmdlZCcsICdkaXNhYmxlZENoYW5nZScsICdyZWFkb25seUNoYW5nZSddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWERhdGFQYWdlclBhcmVudENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0YVBhZ2VyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWERhdGFQYWdlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFQYWdlckNvbXBvbmVudCBleHRlbmRzIE1YVmFsdWVDb21wb25lbnQ8bnVtYmVyPiB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBjdXJyZW50bHkgbG9hZGluZy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsb2FkaW5nIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2IC0gVGhlIGxvYWRpbmcgc3RhdGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHNldCBpc0xvYWRpbmcodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzTG9hZGluZy5zZXQodik7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3NpemUgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGhlIGRhdGEgcGFnZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZSB8fCAxMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgYW5kIHVwZGF0ZXMgdGhlIGRhdGEgcGFnZXIgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2IC0gVGhlIG5ldyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgc2V0IHNpemUodjogbnVtYmVyKSB7XG4gICAgaWYgKHYgIT0gdGhpcy5fc2l6ZSkge1xuICAgICAgY29uc3QgcHJldlNpemUgPSB0aGlzLl9zaXplO1xuICAgICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgICBpZiAodGhpcy5fcGFyZW50KSB7XG4gICAgICAgIHRoaXMuX3BhcmVudC5wYWdlU2l6ZSA9IHY7XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdQYWdlID0gTWF0aC5jZWlsKHRoaXMuZGlzcGxheUluZm8ucmFuZ2UuZnJvbSAvIHRoaXMuX3NpemUpIHx8IDE7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG5ld1BhZ2UpO1xuICAgICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudChwcmV2U2l6ZSAhPSBudWxsID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3RvdGFsID0gMDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgYW5kIHRyaWdnZXJzIGFuIHVwZGF0ZSBldmVudCBpZiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIHRvIHNldC5cbiAgICogICAgICAgICAgICAgICAgICAgICBJZiB0aGUgdmFsdWUgaXMgbm9uLXBvc2l0aXZlLCBpdCBkZWZhdWx0cyB0byAwLlxuICAgKi9cbiAgcHVibGljIHNldCB0b3RhbCh2OiBudW1iZXIpIHtcbiAgICBjb25zdCB0ID0gdiAmJiB2ID4gMCA/IHYgOiAwO1xuICAgIGlmICh0ICE9IHRoaXMuX3RvdGFsKSB7XG4gICAgICB0aGlzLl90b3RhbCA9IHQ7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlZEV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF90b3RhbFBhZ2VzID0gMDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsUGFnZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIHRvIHNldC5cbiAgICovXG4gIHByaXZhdGUgc2V0IHRvdGFsUGFnZXModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3RvdGFsUGFnZXMgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpc3BsYXkgbW9kZSBjaGFuZ2VzLlxuICAgKiBAZXZlbnRcbiAgICogQW4gZXZlbnQgY29udGFpbmluZyB0aGUgbmV3IGRpc3BsYXkgbW9kZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZGlzcGxheU1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kaXNwbGF5TW9kZTogQVhEYXRhUGFnZXJNb2RlID0gJ2Z1bGwnO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZSBvZiB0aGUgZGF0YSBwYWdlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzcGxheU1vZGUoKTogQVhEYXRhUGFnZXJNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheU1vZGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9mIHRoZSBkYXRhIHBhZ2VyIGFuZCBlbWl0cyBhIGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgbmV3IGRpc3BsYXkgbW9kZSB0byBzZXQsIG9mIHR5cGUgYEFYRGF0YVBhZ2VyTW9kZWAuXG4gICAqL1xuICBwdWJsaWMgc2V0IGRpc3BsYXlNb2RlKHY6IEFYRGF0YVBhZ2VyTW9kZSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkaXNwbGF5TW9kZScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRhdGEgcGFnZXIncyBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBAZXZlbnRcbiAgICogQW4gZXZlbnQgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHRoZSBjaGFuZ2UuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFQYWdlckNoYW5nZWRFdmVudD4oKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWFBhZ2VkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgX3BhcmVudDogQVhQYWdlZENvbXBvbmVudCxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvL1xuICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5vblBhZ2VDaGFuZ2VkLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLl9wYXJlbnQucGFnZVNpemU7XG4gICAgICAgIHRoaXMudG90YWwgPSB0aGlzLl9wYXJlbnQudG90YWxDb3VudDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGMudmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuX3BhcmVudC5wYWdlU2l6ZTtcbiAgICAgIHRoaXMudG90YWwgPSB0aGlzLl9wYXJlbnQudG90YWxDb3VudDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlZEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fZW1pdENoYW5nZWRFdmVudCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGludGVybmFsR2V0VmFsdWUodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKCFpc051bWJlcih2YWx1ZSkgfHwgIXZhbHVlIHx8IHRoaXMudG90YWxQYWdlcyA9PSAwKSByZXR1cm4gMTtcbiAgICByZXR1cm4gdmFsdWUgPiB0aGlzLnRvdGFsUGFnZXMgPyB0aGlzLnRvdGFsUGFnZXMgOiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBwcmV2aW91c0Rpc3BsYXlJbmZvOiBBWERhdGFQYWdlckRhdGEgfCBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUluZm8oKTogQVhEYXRhUGFnZXJEYXRhIHtcbiAgICBjb25zdCBza2lwID0gTWF0aC5tYXgoMCwgKHRoaXMudmFsdWUgLSAxKSAqIHRoaXMuc2l6ZSk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgcGFnZTogdGhpcy52YWx1ZSxcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMudG90YWwsXG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMsXG4gICAgICByYW5nZToge1xuICAgICAgICBmcm9tOiBza2lwICsgMSxcbiAgICAgICAgdG86IE1hdGgubWluKHRoaXMudmFsdWUgKiB0aGlzLnNpemUsIHRoaXMudG90YWwpLFxuICAgICAgfSxcbiAgICAgIHNraXAsXG4gICAgICB0YWtlOiB0aGlzLnNpemUsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9lbWl0Q2hhbmdlZEV2ZW50KHUgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLl90b3RhbCAvIHRoaXMuc2l6ZSk7XG4gICAgLy9cbiAgICBpZiAoIWlzRXF1YWwodGhpcy5wcmV2aW91c0Rpc3BsYXlJbmZvLCB0aGlzLmRpc3BsYXlJbmZvKSkge1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdChcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdSxcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLmRpc3BsYXlJbmZvLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLnRvdGFsUGFnZXMgPiAwKSB0aGlzLl9wYXJlbnQ/LmdvVG9QYWdlKHRoaXMudmFsdWUpO1xuICAgICAgLy9cbiAgICAgIHRoaXMucHJldmlvdXNEaXNwbGF5SW5mbyA9IGNsb25lRGVlcCh0aGlzLmRpc3BsYXlJbmZvKTtcbiAgICAgIC8vXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBuZXh0IHBhZ2UsIG9yIHRvIHRoZSBsYXN0IHBhZ2UgaWYgb24gdGhlIGZpbmFsIHBhZ2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG5cbiAgZ29OZXh0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKE1hdGgubWluKHRoaXMudmFsdWUgKyAxLCB0aGlzLnRvdGFsUGFnZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIGxhc3QgcGFnZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ29MYXN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKHRoaXMudG90YWxQYWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBmaXJzdCBwYWdlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnb0ZpcnN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9QYWdlKDEpO1xuICB9XG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIG9yIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG9uIHRoZSBpbml0aWFsIHBhZ2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdvUHJldlBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5nb1RvUGFnZShNYXRoLm1heCh0aGlzLnZhbHVlIC0gMSwgMSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlcyB0byBhIHNwZWNpZmllZCBwYWdlLlxuICAgKiBAcGFyYW0gcGFnZSAtIFRoZSBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0by5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHBhZ2UgIT0gdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShwYWdlLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBheC1zbWA7XG4gIH1cbn1cbiIsIkBzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG4gIEBjYXNlICgnZnVsbCcpIHtcbiAgICA8YXgtcHJlZml4IGNsYXNzPVwiYXgtZnVsbC1wcmVmaXhcIj5cbiAgICAgIDxheC1kYXRhLXBhZ2VyLW51bWVyaWMtc2VsZWN0b3I+IDwvYXgtZGF0YS1wYWdlci1udW1lcmljLXNlbGVjdG9yPlxuICAgICAgPGF4LWRhdGEtcGFnZXItcGFnZS1zaXplcz4gPC9heC1kYXRhLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgPC9heC1wcmVmaXg+XG4gICAgPGF4LXN1ZmZpeCBjbGFzcz1cImF4LWZ1bGwtc3VmZml4XCI+XG4gICAgICA8YXgtZGF0YS1wYWdlci1pbmZvPiA8L2F4LWRhdGEtcGFnZXItaW5mbz5cbiAgICA8L2F4LXN1ZmZpeD5cbiAgfVxuICBAY2FzZSAoJ2NvbXBhY3QnKSB7XG4gICAgPGF4LXByZWZpeCBjbGFzcz1cImF4LWNvbXBhY3QtcHJlZml4XCI+XG4gICAgICA8YXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+IDwvYXgtZGF0YS1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICA8YXgtZGF0YS1wYWdlci1pbnB1dC1zZWxlY3Rvcj4gPC9heC1kYXRhLXBhZ2VyLWlucHV0LXNlbGVjdG9yPlxuICAgICAgPGF4LWRhdGEtcGFnZXItbmV4dC1idXR0b25zPiA8L2F4LWRhdGEtcGFnZXItbmV4dC1idXR0b25zPlxuICAgIDwvYXgtcHJlZml4PlxuICAgIDxheC1zdWZmaXggY2xhc3M9XCJheC1jb21wYWN0LXN1ZmZpeFwiPlxuICAgICAgPGF4LWRhdGEtcGFnZXItaW5mbz4gPC9heC1kYXRhLXBhZ2VyLWluZm8+XG4gICAgPC9heC1zdWZmaXg+XG4gIH1cbiAgQGRlZmF1bHQge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gIH1cbn1cbiJdfQ==
|