asksuite-citrus 0.0.12 → 0.2.1
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.
- package/assets/citrus-i18n/en.json +11 -0
- package/assets/citrus-i18n/es.json +11 -0
- package/assets/citrus-i18n/pt.json +11 -0
- package/esm2022/lib/asksuite-citrus.module.mjs +12 -4
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +64 -26
- package/esm2022/lib/components/avatar/avatar.component.mjs +2 -2
- package/esm2022/lib/components/box/box.component.mjs +2 -2
- package/esm2022/lib/components/button/button.component.mjs +14 -7
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +2 -2
- package/esm2022/lib/components/chips/chips.component.mjs +2 -2
- package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs +35 -18
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +90 -46
- package/esm2022/lib/components/dropdown-container/dropdown-container.component.mjs +2 -2
- package/esm2022/lib/components/input/input.component.mjs +2 -2
- package/esm2022/lib/components/select/select.component.mjs +2 -2
- package/esm2022/lib/directives/ask-dropdown.directive.mjs +12 -6
- package/fesm2022/asksuite-citrus.mjs +266 -152
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/asksuite-citrus.module.d.ts +3 -1
- package/lib/components/autocomplete/autocomplete.component.d.ts +12 -5
- package/lib/components/button/button.component.d.ts +6 -5
- package/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.d.ts +19 -5
- package/lib/components/date-picker/date-picker.component.d.ts +18 -9
- package/lib/directives/ask-dropdown.directive.d.ts +3 -2
- package/package.json +1 -1
- package/styles/styles.scss +4 -0
@@ -7,31 +7,38 @@ export class ButtonComponent {
|
|
7
7
|
this.label = '';
|
8
8
|
this.size = 'normal';
|
9
9
|
this.type = 'primary';
|
10
|
+
this.rounded = false;
|
10
11
|
this.disabled = false;
|
12
|
+
this.labelSide = 'left';
|
11
13
|
// Event handlers
|
12
14
|
this.onClick = new EventEmitter();
|
13
15
|
this.onFocus = new EventEmitter();
|
14
16
|
this.onBlur = new EventEmitter();
|
15
17
|
}
|
16
|
-
ngOnInit() {
|
17
|
-
}
|
18
18
|
get buttonClasses() {
|
19
|
-
return `${this.type} ${this.size}`;
|
19
|
+
return `${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;
|
20
|
+
}
|
21
|
+
get labelClass() {
|
22
|
+
return `-${this.labelSide}`;
|
20
23
|
}
|
21
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ButtonComponent, selector: "ask-button", inputs: { label: "label", size: "size", type: "type", disabled: "disabled" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: "<button\n type=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n {{ label }}
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ButtonComponent, selector: "ask-button", inputs: { label: "label", size: "size", type: "type", rounded: "rounded", disabled: "disabled", labelSide: "labelSide" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, ngImport: i0, template: "<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}button{position:relative;display:flex;padding:8px 24px;background:#FF5724;color:#fff;border-radius:6px;border:none;outline:none;line-height:2.286em;cursor:pointer;gap:8px;transition:background-color .1s,box-shadow .1s;font-weight:500}button.small{font-size:.75rem}button.xsmall{font-size:.75rem;line-height:.75rem;padding:8px 16px}button.normal{font-size:.875rem}button.medium{font-size:1rem}button.large{font-size:1.125rem}button.rounded{border-radius:99999px}button>.label{order:1}button>.label.-left{order:0}button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}button:active:not(:disabled){background-color:#f34915}button:disabled{cursor:not-allowed;background-color:#9aa5b1}button.secondary{background:none;color:#616e7c;box-shadow:0 1px 2px #2a304229}button.secondary:hover:not(:disabled){box-shadow:0 0 6px #2a304229}button.secondary:active:not(:disabled){background-color:#e4e7eb}button.secondary:disabled{cursor:not-allowed;background-color:#9aa5b1;color:#fff}button.outline{background:none;color:#ff5724}button.outline:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;border-radius:6px;box-shadow:0 0 0 2px inset #ff5724}button.outline:active:not(:disabled){background-color:#ff572419}button.outline:disabled{color:#9aa5b1}button.outline:disabled:after{box-shadow:0 0 0 2px inset #9aa5b1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
23
26
|
}
|
24
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ButtonComponent, decorators: [{
|
25
28
|
type: Component,
|
26
|
-
args: [{ selector: 'ask-button', template: "<button\n type=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n {{ label }}
|
27
|
-
}],
|
29
|
+
args: [{ selector: 'ask-button', template: "<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}button{position:relative;display:flex;padding:8px 24px;background:#FF5724;color:#fff;border-radius:6px;border:none;outline:none;line-height:2.286em;cursor:pointer;gap:8px;transition:background-color .1s,box-shadow .1s;font-weight:500}button.small{font-size:.75rem}button.xsmall{font-size:.75rem;line-height:.75rem;padding:8px 16px}button.normal{font-size:.875rem}button.medium{font-size:1rem}button.large{font-size:1.125rem}button.rounded{border-radius:99999px}button>.label{order:1}button>.label.-left{order:0}button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}button:active:not(:disabled){background-color:#f34915}button:disabled{cursor:not-allowed;background-color:#9aa5b1}button.secondary{background:none;color:#616e7c;box-shadow:0 1px 2px #2a304229}button.secondary:hover:not(:disabled){box-shadow:0 0 6px #2a304229}button.secondary:active:not(:disabled){background-color:#e4e7eb}button.secondary:disabled{cursor:not-allowed;background-color:#9aa5b1;color:#fff}button.outline{background:none;color:#ff5724}button.outline:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;border-radius:6px;box-shadow:0 0 0 2px inset #ff5724}button.outline:active:not(:disabled){background-color:#ff572419}button.outline:disabled{color:#9aa5b1}button.outline:disabled:after{box-shadow:0 0 0 2px inset #9aa5b1}\n"] }]
|
30
|
+
}], propDecorators: { label: [{
|
28
31
|
type: Input
|
29
32
|
}], size: [{
|
30
33
|
type: Input
|
31
34
|
}], type: [{
|
32
35
|
type: Input
|
36
|
+
}], rounded: [{
|
37
|
+
type: Input
|
33
38
|
}], disabled: [{
|
34
39
|
type: Input
|
40
|
+
}], labelSide: [{
|
41
|
+
type: Input
|
35
42
|
}], onClick: [{
|
36
43
|
type: Output
|
37
44
|
}], onFocus: [{
|
@@ -39,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
39
46
|
}], onBlur: [{
|
40
47
|
type: Output
|
41
48
|
}] } });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBTUUsYUFBYTtRQUNKLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxTQUFJLEdBQXVELFFBQVEsQ0FBQztRQUNwRSxTQUFJLEdBQXdDLFNBQVMsQ0FBQztRQUN0RCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFxQixNQUFNLENBQUM7UUFFOUMsaUJBQWlCO1FBQ1AsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7S0FTbkQ7SUFQQyxJQUFJLGFBQWE7UUFDZixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDN0IsQ0FBQzs4R0FwQlUsZUFBZTtrR0FBZixlQUFlLG1QQ1A1QixrWEFZQTs7MkZETGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZOzhCQU1iLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgLy8gUHJvcGVydGllc1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBzaXplOiAneHNtYWxsJyB8ICdzbWFsbCcgfCAnbm9ybWFsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdub3JtYWwnO1xuICBASW5wdXQoKSB0eXBlOiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdvdXRsaW5lJyA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFNpZGU6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG5cbiAgLy8gRXZlbnQgaGFuZGxlcnNcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gIGdldCBidXR0b25DbGFzc2VzKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnR5cGV9ICR7dGhpcy5zaXplfSAke3RoaXMucm91bmRlZCA/ICdyb3VuZGVkJyA6ICcnfWA7XG4gIH1cblxuICBnZXQgbGFiZWxDbGFzcygpIHtcbiAgICByZXR1cm4gYC0ke3RoaXMubGFiZWxTaWRlfWBcbiAgfVxufVxuIiwiPGJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgZGF0YS10ZXN0aWQ9XCJidXR0b25cIlxuICBbbmdDbGFzc109XCJidXR0b25DbGFzc2VzXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgKGZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgKGJsdXIpPVwib25CbHVyLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxzcGFuIGRhdGEtdGVzdGlkPVwibGFiZWxcIiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cImxhYmVsQ2xhc3NcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG4iXX0=
|
@@ -47,11 +47,11 @@ export class CheckboxComponent {
|
|
47
47
|
this.valueChange.emit(this.value);
|
48
48
|
}
|
49
49
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: CheckboxComponent, selector: "ask-checkbox", inputs: { value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange", change: "change", click: "click", focus: "focus" }, providers: [valueAccessor], ngImport: i0, template: "<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n", styles: ["@import\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css\";:root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}:host{max-width:100%}.ask-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%}.ask-checkbox>input{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:2px solid #FF5724;border-radius:3px;outline:none;transition:border-color .3s;position:relative;flex-shrink:0;cursor:pointer;color:transparent}.ask-checkbox>input:checked{background-color:#ff5724;color:#fff}.ask-checkbox>input:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ask-checkbox>input:after{content:\"\\f00c\";font-family:\"Font Awesome 5 Free\",serif;font-weight:900;font-size:12px}.ask-checkbox>input:disabled{border-color:#7b8794}.ask-checkbox>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: CheckboxComponent, selector: "ask-checkbox", inputs: { value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange", change: "change", click: "click", focus: "focus" }, providers: [valueAccessor], ngImport: i0, template: "<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n", styles: ["@import\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css\";:root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}:host{max-width:100%}.ask-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%}.ask-checkbox>input{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:2px solid #FF5724;border-radius:3px;outline:none;transition:border-color .3s;position:relative;flex-shrink:0;cursor:pointer;color:transparent}.ask-checkbox>input:checked{background-color:#ff5724;color:#fff}.ask-checkbox>input:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ask-checkbox>input:after{content:\"\\f00c\";font-family:\"Font Awesome 5 Free\",serif;font-weight:900;font-size:12px}.ask-checkbox>input:disabled{border-color:#7b8794}.ask-checkbox>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
51
51
|
}
|
52
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CheckboxComponent, decorators: [{
|
53
53
|
type: Component,
|
54
|
-
args: [{ selector: 'ask-checkbox', providers: [valueAccessor], template: "<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n", styles: ["@import\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css\";:root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}:host{max-width:100%}.ask-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%}.ask-checkbox>input{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:2px solid #FF5724;border-radius:3px;outline:none;transition:border-color .3s;position:relative;flex-shrink:0;cursor:pointer;color:transparent}.ask-checkbox>input:checked{background-color:#ff5724;color:#fff}.ask-checkbox>input:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ask-checkbox>input:after{content:\"\\f00c\";font-family:\"Font Awesome 5 Free\",serif;font-weight:900;font-size:12px}.ask-checkbox>input:disabled{border-color:#7b8794}.ask-checkbox>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
54
|
+
args: [{ selector: 'ask-checkbox', providers: [valueAccessor], template: "<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n", styles: ["@import\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css\";:root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}:host{max-width:100%}.ask-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%}.ask-checkbox>input{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:2px solid #FF5724;border-radius:3px;outline:none;transition:border-color .3s;position:relative;flex-shrink:0;cursor:pointer;color:transparent}.ask-checkbox>input:checked{background-color:#ff5724;color:#fff}.ask-checkbox>input:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ask-checkbox>input:after{content:\"\\f00c\";font-family:\"Font Awesome 5 Free\",serif;font-weight:900;font-size:12px}.ask-checkbox>input:disabled{border-color:#7b8794}.ask-checkbox>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
55
55
|
}], propDecorators: { value: [{
|
56
56
|
type: Input
|
57
57
|
}], disabled: [{
|
@@ -6,11 +6,11 @@ export class ChipsComponent {
|
|
6
6
|
this.action = new EventEmitter();
|
7
7
|
}
|
8
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ChipsComponent, selector: "ask-chips", inputs: { color: "color" }, outputs: { action: "action" }, ngImport: i0, template: "<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.chip-container>.body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}.chip-container{max-width:100%;display:flex;flex-direction:row;gap:.5rem;background:#7B8794;align-items:center;padding-left:.5rem;width:-moz-fit-content;width:fit-content;border-radius:12px;color:#fff}.chip-container>.body{color:inherit}.chip-container>.action{width:24px;height:24px;border-radius:50%;color:#fff}.chip-container>.action:hover{cursor:pointer}\n"] }); }
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ChipsComponent, selector: "ask-chips", inputs: { color: "color" }, outputs: { action: "action" }, ngImport: i0, template: "<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.chip-container>.body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.chip-container{max-width:100%;display:flex;flex-direction:row;gap:.5rem;background:#7B8794;align-items:center;padding-left:.5rem;width:-moz-fit-content;width:fit-content;border-radius:12px;color:#fff}.chip-container>.body{color:inherit}.chip-container>.action{width:24px;height:24px;border-radius:50%;color:#fff}.chip-container>.action:hover{cursor:pointer}\n"] }); }
|
10
10
|
}
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ChipsComponent, decorators: [{
|
12
12
|
type: Component,
|
13
|
-
args: [{ selector: 'ask-chips', template: "<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.chip-container>.body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}.chip-container{max-width:100%;display:flex;flex-direction:row;gap:.5rem;background:#7B8794;align-items:center;padding-left:.5rem;width:-moz-fit-content;width:fit-content;border-radius:12px;color:#fff}.chip-container>.body{color:inherit}.chip-container>.action{width:24px;height:24px;border-radius:50%;color:#fff}.chip-container>.action:hover{cursor:pointer}\n"] }]
|
13
|
+
args: [{ selector: 'ask-chips', template: "<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.chip-container>.body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.chip-container{max-width:100%;display:flex;flex-direction:row;gap:.5rem;background:#7B8794;align-items:center;padding-left:.5rem;width:-moz-fit-content;width:fit-content;border-radius:12px;color:#fff}.chip-container>.body{color:inherit}.chip-container>.action{width:24px;height:24px;border-radius:50%;color:#fff}.chip-container>.action:hover{cursor:pointer}\n"] }]
|
14
14
|
}], propDecorators: { color: [{
|
15
15
|
type: Input
|
16
16
|
}], action: [{
|
package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs
CHANGED
@@ -1,8 +1,20 @@
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
2
2
|
import moment from 'moment';
|
3
|
-
import { asDate } from "../date-picker.component";
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
import * as i1 from "@angular/common";
|
5
|
+
export var PeriodLabel;
|
6
|
+
(function (PeriodLabel) {
|
7
|
+
PeriodLabel["TODAY"] = "TODAY";
|
8
|
+
PeriodLabel["YESTERDAY"] = "YESTERDAY";
|
9
|
+
PeriodLabel["LAST_7_DAYS"] = "LAST_7_DAYS";
|
10
|
+
PeriodLabel["LAST_30_DAYS"] = "LAST_30_DAYS";
|
11
|
+
PeriodLabel["THIS_MONTH"] = "THIS_MONTH";
|
12
|
+
PeriodLabel["LAST_QUARTER"] = "LAST_QUARTER";
|
13
|
+
PeriodLabel["CUSTOM_PERIOD"] = "CUSTOM_PERIOD";
|
14
|
+
})(PeriodLabel || (PeriodLabel = {}));
|
15
|
+
export const DEFAULT_DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';
|
16
|
+
export const formatFrom = (from) => from.startOf('day').format(DEFAULT_DATE_FORMAT);
|
17
|
+
export const formatTo = (from) => from.endOf('day').format(DEFAULT_DATE_FORMAT);
|
6
18
|
export class DatePickerCalendarComponent {
|
7
19
|
constructor() {
|
8
20
|
this.isRange = false;
|
@@ -41,15 +53,15 @@ export class DatePickerCalendarComponent {
|
|
41
53
|
}
|
42
54
|
isFirstSelectedDay(day) {
|
43
55
|
if (this.isRange) {
|
44
|
-
return day.
|
56
|
+
return day.formatted === this.innerDate.from?.formatted;
|
45
57
|
}
|
46
|
-
return this.innerDate.
|
58
|
+
return this.innerDate.formatted === day.formatted;
|
47
59
|
}
|
48
60
|
isLastSelectedDay(day) {
|
49
61
|
if (this.isRange) {
|
50
|
-
return day.
|
62
|
+
return day.formatted === (this.innerDate.to?.formatted || this.innerDate.from?.formatted);
|
51
63
|
}
|
52
|
-
return this.innerDate.
|
64
|
+
return this.innerDate.formatted === day.formatted;
|
53
65
|
}
|
54
66
|
ngOnInit() {
|
55
67
|
this.assignInitialValues();
|
@@ -60,17 +72,20 @@ export class DatePickerCalendarComponent {
|
|
60
72
|
const receivedDate = this.date;
|
61
73
|
if (receivedDate.from && receivedDate.to) {
|
62
74
|
this.innerDate = {
|
63
|
-
from: this.
|
64
|
-
to: this.
|
75
|
+
from: this.getDayFromString(receivedDate.from),
|
76
|
+
to: this.getDayFromString(receivedDate.to),
|
77
|
+
label: PeriodLabel[receivedDate.label || 'CUSTOM_PERIOD'].toString()
|
65
78
|
};
|
66
79
|
}
|
67
80
|
else {
|
68
|
-
this.innerDate = {
|
81
|
+
this.innerDate = {
|
82
|
+
label: 'CUSTOM_PERIOD'
|
83
|
+
};
|
69
84
|
}
|
70
85
|
this.displayDate = moment.unix(this.innerDate.from?.timestamp || (Date.now() / 1000));
|
71
86
|
}
|
72
87
|
else {
|
73
|
-
this.innerDate = this.
|
88
|
+
this.innerDate = this.getDayFromString(this.date);
|
74
89
|
this.displayDate = moment.unix(this.innerDate.timestamp);
|
75
90
|
}
|
76
91
|
this.firstDayOfWeek = this.displayDate.clone().startOf('week').day();
|
@@ -139,14 +154,15 @@ export class DatePickerCalendarComponent {
|
|
139
154
|
timestamp: day.unix(),
|
140
155
|
day: day.format('D'),
|
141
156
|
month: day.month(),
|
142
|
-
weekDay: day.day()
|
157
|
+
weekDay: day.day(),
|
158
|
+
formatted: day.format(DEFAULT_DATE_FORMAT),
|
143
159
|
};
|
144
160
|
}
|
145
|
-
|
146
|
-
return this.getDayFromMoment(moment(date)
|
161
|
+
getDayFromString(date) {
|
162
|
+
return this.getDayFromMoment(moment(date));
|
147
163
|
}
|
148
164
|
getDateFromDay(day) {
|
149
|
-
return moment.unix(day.timestamp).startOf('day').
|
165
|
+
return moment.unix(day.timestamp).startOf('day').format(DEFAULT_DATE_FORMAT);
|
150
166
|
}
|
151
167
|
incrementMonth(amount) {
|
152
168
|
this.displayDate.add(amount, 'month');
|
@@ -189,23 +205,24 @@ export class DatePickerCalendarComponent {
|
|
189
205
|
}
|
190
206
|
emitRange(range) {
|
191
207
|
const newRange = {};
|
208
|
+
newRange.label = PeriodLabel.CUSTOM_PERIOD;
|
192
209
|
if (range.from) {
|
193
210
|
newRange.from = this.getDateFromDay(range.from);
|
194
211
|
if (range.to)
|
195
|
-
newRange.to =
|
212
|
+
newRange.to = formatTo(moment.unix(range.to.timestamp));
|
196
213
|
}
|
197
214
|
this.dateChange.emit(newRange);
|
198
215
|
}
|
199
216
|
handleSingleSelect(momentDate) {
|
200
217
|
this.innerDate = this.getDayFromMoment(momentDate);
|
201
|
-
this.dateChange.emit(
|
218
|
+
this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));
|
202
219
|
}
|
203
220
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerCalendarComponent, selector: "ask-date-picker-calendar", inputs: { isRange: "isRange", date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}.date-picker-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
221
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerCalendarComponent, selector: "ask-date-picker-calendar", inputs: { isRange: "isRange", date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.date-picker-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
205
222
|
}
|
206
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerCalendarComponent, decorators: [{
|
207
224
|
type: Component,
|
208
|
-
args: [{ selector: 'ask-date-picker-calendar', template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}.date-picker-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"] }]
|
225
|
+
args: [{ selector: 'ask-date-picker-calendar', template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.date-picker-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"] }]
|
209
226
|
}], propDecorators: { isRange: [{
|
210
227
|
type: Input
|
211
228
|
}], date: [{
|
@@ -213,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
213
230
|
}], dateChange: [{
|
214
231
|
type: Output
|
215
232
|
}] } });
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1jYWxlbmRhci9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBMEJoRCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBTVcsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV4QixlQUFVLEdBQWtDLElBQUksWUFBWSxFQUFtQixDQUFDO1FBS2xGLGNBQVMsR0FBbUIsRUFBRSxDQUFDO1FBQy9CLFVBQUssR0FBZSxFQUFFLENBQUM7S0FtUGhDO0lBalBDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7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Q0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQTNQVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxSkM1QnhDLHlxQ0FtQ0E7OzJGRFBhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OEJBSzNCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge2FzRGF0ZX0gZnJvbSBcIi4uL2RhdGUtcGlja2VyLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERheSB7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBkYXk6IHN0cmluZztcbiAgbW9udGg6IG51bWJlcjtcbiAgd2Vla0RheTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtEYXkge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgZnJvbT86IERhdGU7IHRvPzogRGF0ZTsgfTtcblxuZXhwb3J0IHR5cGUgRGF0ZVBpY2tlclZhbHVlID0gRGF0ZSB8IERhdGVSYW5nZTtcblxudHlwZSBEYXlSYW5nZSA9IHsgZnJvbT86IERheTsgdG8/OiBEYXk7IH07XG5cbnR5cGUgRGF0ZVBpY2tlcklubmVyVmFsdWUgPSBEYXkgfCBEYXlSYW5nZTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWRhdGUtcGlja2VyLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpc1JhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGUhOiBEYXRlUGlja2VyVmFsdWU7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVBpY2tlclZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVBpY2tlclZhbHVlPigpO1xuXG4gIHByaXZhdGUgaW5uZXJEYXRlITogRGF0ZVBpY2tlcklubmVyVmFsdWU7XG4gIHByaXZhdGUgZGlzcGxheURhdGUhOiBtb21lbnQuTW9tZW50O1xuICBwcml2YXRlIGZpcnN0RGF5T2ZXZWVrITogbnVtYmVyO1xuICBwcml2YXRlIF93ZWVrRGF5czogQXJyYXk8V2Vla0RheT4gPSBbXTtcbiAgcHJpdmF0ZSBfZGF5czogQXJyYXk8RGF5PiA9IFtdO1xuXG4gIGdldCBkYXlzKCk6IEFycmF5PERheT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXlzXG4gIH1cblxuICBnZXQgbW9udGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5mb3JtYXQoJ01NTU0nKTtcbiAgfVxuXG4gIGdldCBtb250aE51bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlEYXRlLm1vbnRoKCk7XG4gIH1cblxuICBnZXQgeWVhcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlEYXRlLmZvcm1hdCgnWVlZWScpO1xuICB9XG5cbiAgZ2V0IHdlZWtEYXlzKCk6IEFycmF5PFdlZWtEYXk+IHtcbiAgICByZXR1cm4gdGhpcy5fd2Vla0RheXM7XG4gIH1cblxuICBpc0RheVNlbGVjdGVkKGRheTogRGF5KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuXG4gICAgICBjb25zdCBmcm9tID0gKHRoaXMuaW5uZXJEYXRlIGFzIERheVJhbmdlKS5mcm9tPy50aW1lc3RhbXA7XG4gICAgICBjb25zdCB0byA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkudG8/LnRpbWVzdGFtcDtcblxuICAgICAgaWYgKCFmcm9tKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCF0bykge1xuICAgICAgICByZXR1cm4gZGF5LnRpbWVzdGFtcCA9PT0gZnJvbTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRheS50aW1lc3RhbXAgPj0gZnJvbSAmJiBkYXkudGltZXN0YW1wIDw9IHRvO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5pbm5lckRhdGUgYXMgRGF5KT8udGltZXN0YW1wID09PSBkYXkudGltZXN0YW1wO1xuICB9XG5cbiAgaXNGaXJzdFNlbGVjdGVkRGF5KGRheTogRGF5KSB7XG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgcmV0dXJuIGRheS50aW1lc3RhbXAgPT09ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkuZnJvbT8udGltZXN0YW1wO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5pbm5lckRhdGUgYXMgRGF5KS50aW1lc3RhbXAgPT09IGRheS50aW1lc3RhbXA7XG4gIH1cblxuICBpc0xhc3RTZWxlY3RlZERheShkYXk6IERheSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybiBkYXkudGltZXN0YW1wID09PSAoKHRoaXMuaW5uZXJEYXRlIGFzIERheVJhbmdlKS50bz8udGltZXN0YW1wIHx8ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkuZnJvbT8udGltZXN0YW1wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSkudGltZXN0YW1wID09PSBkYXkudGltZXN0YW1wO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hc3NpZ25Jbml0aWFsVmFsdWVzKCk7XG4gICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25Jbml0aWFsVmFsdWVzKCkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIGNvbnN0IHJlY2VpdmVkRGF0ZSA9IHRoaXMuZGF0ZSBhcyBEYXRlUmFuZ2U7XG4gICAgICBpZiAocmVjZWl2ZWREYXRlLmZyb20gJiYgcmVjZWl2ZWREYXRlLnRvKSB7XG4gICAgICAgICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkgPSB7XG4gICAgICAgICAgZnJvbTogdGhpcy5nZXREYXlGcm9tRGF0ZShyZWNlaXZlZERhdGUuZnJvbSksXG4gICAgICAgICAgdG86IHRoaXMuZ2V0RGF5RnJvbURhdGUocmVjZWl2ZWREYXRlLnRvKSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkgPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCgodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LnRpbWVzdGFtcCB8fCAoRGF0ZS5ub3coKSAvIDEwMDApKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbURhdGUodGhpcy5kYXRlIGFzIERhdGUpO1xuICAgICAgdGhpcy5kaXNwbGF5RGF0ZSA9IG1vbWVudC51bml4KHRoaXMuaW5uZXJEYXRlLnRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgdGhpcy5maXJzdERheU9mV2VlayA9IHRoaXMuZGlzcGxheURhdGUuY2xvbmUoKS5zdGFydE9mKCd3ZWVrJykuZGF5KCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hEaXNwbGF5KCkge1xuICAgIHRoaXMuYnVpbGRXZWVrRGF5cygpO1xuICAgIHRoaXMuYnVpbGREYXlzKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkV2Vla0RheXMoKSB7XG4gICAgY29uc3Qgc3RhcnRPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignd2VlaycpO1xuICAgIGNvbnN0IGVuZE9mV2VlayA9IHRoaXMuZGlzcGxheURhdGUuY2xvbmUoKS5lbmRPZignd2VlaycpO1xuICAgIHRoaXMuX3dlZWtEYXlzID0gW107XG5cbiAgICBkbyB7XG4gICAgICB0aGlzLl93ZWVrRGF5cy5wdXNoKHtcbiAgICAgICAgbmFtZTogc3RhcnRPZldlZWsuZm9ybWF0KCdkZGQnKVxuICAgICAgfSk7XG5cbiAgICAgIHN0YXJ0T2ZXZWVrLmFkZCgxLCAnZGF5Jyk7XG4gICAgfVxuICAgIHdoaWxlIChzdGFydE9mV2Vlay5pc0JlZm9yZShlbmRPZldlZWspKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREYXlzKCkge1xuICAgIGxldCBzdGFydERheSA9IHRoaXMuZGlzcGxheURhdGUuY2xvbmUoKS5zdGFydE9mKCdtb250aCcpO1xuICAgIGxldCBlbmREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuZW5kT2YoJ21vbnRoJyk7XG5cbiAgICBsZXQgZGF5c09mUGFzdE1vbnRoOiBBcnJheTxEYXk+ID0gW107XG4gICAgbGV0IGRheXNPZlRoaXNNb250aDogQXJyYXk8RGF5PiA9IFtdO1xuICAgIGxldCBkYXlzT2ZOZXh0TW9udGg6IEFycmF5PERheT4gPSBbXTtcblxuICAgIC8vIEJ1aWxkcyB0aGlzIG1vbnRoIGRheXNcbiAgICBkYXlzT2ZUaGlzTW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgLy8gQnVpbGRzIHBhc3QgbW9udGggZGF5c1xuICAgIGlmIChkYXlzT2ZUaGlzTW9udGhbMF0ud2Vla0RheSAhPT0gdGhpcy5maXJzdERheU9mV2Vlaykge1xuICAgICAgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignbW9udGgnKS5zdGFydE9mKCd3ZWVrJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuZW5kT2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpO1xuICAgIH1cbiAgICBlbmREYXkgPSBzdGFydERheS5jbG9uZSgpLmVuZE9mKCdtb250aCcpO1xuICAgIGRheXNPZlBhc3RNb250aCA9IHRoaXMuZ2V0RGF5c0JldHdlZW4oc3RhcnREYXksIGVuZERheSk7XG5cbiAgICAvLyBCdWlsZHMgbmV4dCBtb250aCBkYXlzXG4gICAgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuYWRkKDEsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJyk7XG4gICAgZW5kRGF5ID0gc3RhcnREYXkuY2xvbmUoKS5lbmRPZignd2VlaycpO1xuICAgIGRheXNPZk5leHRNb250aCA9IHRoaXMuZ2V0RGF5c0JldHdlZW4oc3RhcnREYXksIGVuZERheSk7XG5cbiAgICB0aGlzLl9kYXlzID0gW1xuICAgICAgLi4uZGF5c09mUGFzdE1vbnRoLFxuICAgICAgLi4uZGF5c09mVGhpc01vbnRoLFxuICAgICAgLi4uZGF5c09mTmV4dE1vbnRoLFxuICAgIF07XG5cbiAgICAvLyBJZiBjYWxlbmRhciBpc24ndCBjb21wbGV0ZSB5ZXQgKGFsbCA3IGNvbHVtbnMgYW5kIDYgcm93cyBhcmUgZnVsbCksIGFkZHMgYW5vdGhlciB3ZWVrIHRvIGNvbXBsZXRlIHRoZSBjYWxlbmRhclxuICAgIGlmICh0aGlzLl9kYXlzLmxlbmd0aCA8IDQyKSB7XG4gICAgICBlbmREYXkgPSBlbmREYXkuY2xvbmUoKS5hZGQoMSwgJ2RheScpLmVuZE9mKCd3ZWVrJyk7XG4gICAgICBzdGFydERheSA9IGVuZERheS5jbG9uZSgpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICAgIHRoaXMuX2RheXMucHVzaCguLi50aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERheXNCZXR3ZWVuKHN0YXJ0OiBtb21lbnQuTW9tZW50LCBlbmQ6IG1vbWVudC5Nb21lbnQpOiBBcnJheTxEYXk+IHtcbiAgICBzdGFydCA9IHN0YXJ0LmNsb25lKCk7XG4gICAgZW5kID0gZW5kLmNsb25lKCk7XG5cbiAgICBjb25zdCBkYXlzID0gW107XG4gICAgZG8ge1xuICAgICAgZGF5cy5wdXNoKHRoaXMuZ2V0RGF5RnJvbU1vbWVudChzdGFydCkpO1xuXG4gICAgICBzdGFydC5hZGQoMSwgJ2RheScpO1xuICAgIH1cbiAgICB3aGlsZSAoc3RhcnQuaXNCZWZvcmUoZW5kKSk7XG5cbiAgICByZXR1cm4gZGF5cztcbiAgfVxuXG4gIGdldERheUZyb21Nb21lbnQoZGF5OiBtb21lbnQuTW9tZW50KTogRGF5IHtcbiAgICBkYXkgPSBkYXkuY2xvbmUoKS5zdGFydE9mKCdkYXknKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0aW1lc3RhbXA6IGRheS51bml4KCksXG4gICAgICBkYXk6IGRheS5mb3JtYXQoJ0QnKSxcbiAgICAgIG1vbnRoOiBkYXkubW9udGgoKSxcbiAgICAgIHdlZWtEYXk6IGRheS5kYXkoKVxuICAgIH1cbiAgfVxuXG4gIGdldERheUZyb21EYXRlKGRhdGU6IERhdGUpOiBEYXkge1xuICAgIHJldHVybiB0aGlzLmdldERheUZyb21Nb21lbnQobW9tZW50KGRhdGUpLnV0YyhmYWxzZSkpO1xuICB9XG5cbiAgZ2V0RGF0ZUZyb21EYXkoZGF5OiBEYXkpOiBEYXRlIHtcbiAgICByZXR1cm4gbW9tZW50LnVuaXgoZGF5LnRpbWVzdGFtcCkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gIH1cblxuICBpbmNyZW1lbnRNb250aChhbW91bnQ6IG51bWJlcikge1xuICAgIHRoaXMuZGlzcGxheURhdGUuYWRkKGFtb3VudCwgJ21vbnRoJyk7XG4gICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICB9XG5cbiAgc2VsZWN0RGF0ZSh0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIGNvbnN0IG1vbWVudERhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgdGhpcy5oYW5kbGVSYW5nZVNlbGVjdChtb21lbnREYXRlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVNpbmdsZVNlbGVjdChtb21lbnREYXRlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJhbmdlU2VsZWN0KHNlbGVjdGVkRGF0ZTogbW9tZW50Lk1vbWVudCkge1xuICAgIGNvbnN0IGlubmVyRGF0ZSA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSk7XG5cbiAgICAvLyBGaXJzdCBzZWxlY3Rpb25cbiAgICBpZiAoIWlubmVyRGF0ZS5mcm9tKSB7XG4gICAgICBpbm5lckRhdGUuZnJvbSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChzZWxlY3RlZERhdGUpO1xuICAgIH1cblxuICAgIC8vIFNlY29uZCBzZWxlY3Rpb25cbiAgICBlbHNlIGlmICghaW5uZXJEYXRlLnRvKSB7XG4gICAgICBjb25zdCBhY3R1YWxGcm9tID0gbW9tZW50LnVuaXgoaW5uZXJEYXRlLmZyb20udGltZXN0YW1wKTtcblxuICAgICAgLy8gU2VsZWN0ZWQgZGF0ZSBpcyBwYXN0IHRoZSBwcmV2aW91cyBzZWxlY3RlZCBkYXRlXG4gICAgICBpZiAoc2VsZWN0ZWREYXRlLmlzQmVmb3JlKGFjdHVhbEZyb20sICdkYXknKSkge1xuICAgICAgICBpbm5lckRhdGUudG8gPSBpbm5lckRhdGUuZnJvbTtcbiAgICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VsZWN0ZWQgZGF0ZSBpcyBmdXR1cmUgb2YgdGhlIHByZXZpb3VzIHNlbGVjdGVkIGRhdGVcbiAgICAgIGVsc2Uge1xuICAgICAgICBpbm5lckRhdGUudG8gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3Rpb24gd2hlbiBib3RoIGZyb20gYW5kIHRvIGFyZSBhbHJlYWR5IHNlbGVjdGVkXG4gICAgZWxzZSB7XG4gICAgICBpbm5lckRhdGUuZnJvbSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChzZWxlY3RlZERhdGUpO1xuICAgICAgaW5uZXJEYXRlLnRvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFJhbmdlKGlubmVyRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRSYW5nZShyYW5nZTogRGF5UmFuZ2UpIHtcbiAgICBjb25zdCBuZXdSYW5nZTogRGF0ZVJhbmdlID0ge307XG5cbiAgICBpZiAocmFuZ2UuZnJvbSkge1xuICAgICAgbmV3UmFuZ2UuZnJvbSA9IHRoaXMuZ2V0RGF0ZUZyb21EYXkocmFuZ2UuZnJvbSk7XG5cbiAgICAgIGlmIChyYW5nZS50bykgbmV3UmFuZ2UudG8gPSBhc0RhdGUobW9tZW50LnVuaXgocmFuZ2UudG8udGltZXN0YW1wKS5lbmRPZignZGF5JykpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KG5ld1JhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2luZ2xlU2VsZWN0KG1vbWVudERhdGU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChtb21lbnREYXRlKTtcbiAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChhc0RhdGUobW9tZW50RGF0ZSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY2FsZW5kYXItY29udGFpbmVyXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJtb250aC1zZWxlY3RvclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VsZWN0b3ItYnV0dG9uXCIgKGNsaWNrKT1cImluY3JlbWVudE1vbnRoKC0xKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBpY29uXCI+Y2hldnJvbl9sZWZ0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJtb250aC15ZWFyLWRpc3BsYXlcIiBkYXRhLXRlc3RpZD1cIm1vbnRoLXllYXItZGlzcGxheVwiPnt7IG1vbnRoIH19IHt7IHllYXIgfX08L3NwYW4+XG5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNlbGVjdG9yLWJ1dHRvblwiIChjbGljayk9XCJpbmNyZW1lbnRNb250aCgxKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBpY29uXCI+Y2hldnJvbl9yaWdodDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9oZWFkZXI+XG5cbiAgPG1haW4gY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheXMtaGVhZGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIndlZWstZGF5XCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXNcIj57eyB3ZWVrRGF5Lm5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGF5cy1ibG9ja1wiIGRhdGEtdGVzdGlkPVwiZGF5cy1ibG9ja1wiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlzXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF5LnRpbWVzdGFtcClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2RheSc6IHRydWUsXG4gICAgICAgICAgJ2Fub3RoZXItbW9udGgnOiBtb250aE51bWJlciAhPSBkYXkubW9udGgsXG4gICAgICAgICAgJ3NlbGVjdGVkJzogaXNEYXlTZWxlY3RlZChkYXkpLFxuICAgICAgICAgICdmaXJzdCc6IGlzRmlyc3RTZWxlY3RlZERheShkYXkpLFxuICAgICAgICAgICdsYXN0JzogaXNMYXN0U2VsZWN0ZWREYXkoZGF5KSxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIHt7IGRheS5kYXkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9tYWluPlxuPC9kaXY+XG4iXX0=
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1jYWxlbmRhci9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFFNUIsTUFBTSxDQUFOLElBQVksV0FRWDtBQVJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2Ysc0NBQXVCLENBQUE7SUFDdkIsMENBQTJCLENBQUE7SUFDM0IsNENBQTZCLENBQUE7SUFDN0Isd0NBQXlCLENBQUE7SUFDekIsNENBQTZCLENBQUE7SUFDN0IsOENBQStCLENBQUE7QUFDakMsQ0FBQyxFQVJXLFdBQVcsS0FBWCxXQUFXLFFBUXRCO0FBc0JELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDbEcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtBQU85RixNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBTVcsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV4QixlQUFVLEdBQWtDLElBQUksWUFBWSxFQUFtQixDQUFDO1FBS2xGLGNBQVMsR0FBbUIsRUFBRSxDQUFDO1FBQy9CLFVBQUssR0FBZSxFQUFFLENBQUM7S0F3UGhDO0lBdFBDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFRO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUVoQixNQUFNLElBQUksR0FBSSxJQUFJLENBQUMsU0FBc0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO1lBQzFELE1BQU0sRUFBRSxHQUFJLElBQUksQ0FBQyxTQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUM7WUFFdEQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLEtBQUssQ0FBQzthQUNkO2lCQUNJLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ1osT0FBTyxHQUFHLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQzthQUMvQjtZQUVELE9BQU8sR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7U0FDckQ7UUFFRCxPQUFRLElBQUksQ0FBQyxTQUFpQixFQUFFLFNBQVMsS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFRO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPLEdBQUcsQ0FBQyxTQUFTLEtBQU0sSUFBSSxDQUFDLFNBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUN2RTtRQUVELE9BQVEsSUFBSSxDQUFDLFNBQWlCLENBQUMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU8sR0FBRyxDQUFDLFNBQVMsS0FBSyxDQUFFLElBQUksQ0FBQyxTQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLElBQUssSUFBSSxDQUFDLFNBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZIO1FBRUQsT0FBUSxJQUFJLENBQUMsU0FBaUIsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBaUIsQ0FBQztZQUM1QyxJQUFJLFlBQVksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFNBQXNCLEdBQUc7b0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDOUMsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO29CQUMxQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFO2lCQUNyRSxDQUFBO2FBQ0Y7aUJBQ0k7Z0JBQ0YsSUFBSSxDQUFDLFNBQXNCLEdBQUc7b0JBQzdCLEtBQUssRUFBRSxlQUFlO2lCQUN2QixDQUFDO2FBQ0g7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLFNBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JHO2FBQ0k7WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBYyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFcEIsR0FBRztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDaEMsQ0FBQyxDQUFDO1lBRUgsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0IsUUFDTSxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO0lBQzFDLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxlQUFlLEdBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksZUFBZSxHQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLGVBQWUsR0FBZSxFQUFFLENBQUM7UUFFckMseUJBQXlCO1FBQ3pCLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4RCx5QkFBeUI7UUFDekIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEQsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0RTthQUNJO1lBQ0gsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhELHlCQUF5QjtRQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsZUFBZTtZQUNsQixHQUFHLGVBQWU7WUFDbEIsR0FBRyxlQUFlO1NBQ25CLENBQUM7UUFFRixpSEFBaUg7UUFDakgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQW9CLEVBQUUsR0FBa0I7UUFDN0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixHQUFHO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUV4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNyQixRQUNNLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFFNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBa0I7UUFDakMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsT0FBTztZQUNMLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUNsQixPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNsQixTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztTQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BDO2FBQ0k7WUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsWUFBMkI7UUFDbkQsTUFBTSxTQUFTLEdBQUksSUFBSSxDQUFDLFNBQXNCLENBQUM7UUFFL0Msa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25CLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3REO1FBRUQsbUJBQW1CO2FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpELG1EQUFtRDtZQUNuRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUM1QyxTQUFTLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQzlCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3REO1lBRUQsd0RBQXdEO2lCQUNuRDtnQkFDSCxTQUFTLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNwRDtTQUNGO1FBRUQsdURBQXVEO2FBQ2xEO1lBQ0gsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBZTtRQUMvQixNQUFNLFFBQVEsR0FBYyxFQUFFLENBQUM7UUFDL0IsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBRTNDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNkLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUF5QjtRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzhHQWhRVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxSkMxQ3hDLHlxQ0FtQ0E7OzJGRE9hLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OEJBSzNCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBlbnVtIFBlcmlvZExhYmVsIHtcbiAgVE9EQVkgPSAnVE9EQVknLFxuICBZRVNURVJEQVkgPSAnWUVTVEVSREFZJyxcbiAgTEFTVF83X0RBWVMgPSAnTEFTVF83X0RBWVMnLFxuICBMQVNUXzMwX0RBWVMgPSAnTEFTVF8zMF9EQVlTJyxcbiAgVEhJU19NT05USCA9ICdUSElTX01PTlRIJyxcbiAgTEFTVF9RVUFSVEVSID0gJ0xBU1RfUVVBUlRFUicsXG4gIENVU1RPTV9QRVJJT0QgPSAnQ1VTVE9NX1BFUklPRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF5IHtcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGRheTogc3RyaW5nO1xuICBtb250aDogbnVtYmVyO1xuICB3ZWVrRGF5OiBudW1iZXI7XG4gIGZvcm1hdHRlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtEYXkge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgZnJvbT86IHN0cmluZzsgdG8/OiBzdHJpbmc7IGxhYmVsPzogUGVyaW9kTGFiZWw7IH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJWYWx1ZSA9IHN0cmluZyB8IERhdGVSYW5nZTtcblxudHlwZSBEYXlSYW5nZSA9IHsgZnJvbT86IERheTsgdG8/OiBEYXk7IGxhYmVsPzogc3RyaW5nOyB9O1xuXG50eXBlIERhdGVQaWNrZXJJbm5lclZhbHVlID0gRGF5IHwgRGF5UmFuZ2U7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RBVEVfRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3NaJztcbmV4cG9ydCBjb25zdCBmb3JtYXRGcm9tID0gKGZyb206IG1vbWVudC5Nb21lbnQpID0+IGZyb20uc3RhcnRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpXG5leHBvcnQgY29uc3QgZm9ybWF0VG8gPSAoZnJvbTogbW9tZW50Lk1vbWVudCkgPT4gZnJvbS5lbmRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fzay1kYXRlLXBpY2tlci1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNSYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRlITogRGF0ZVBpY2tlclZhbHVlO1xuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVQaWNrZXJWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVQaWNrZXJWYWx1ZT4oKTtcblxuICBwcml2YXRlIGlubmVyRGF0ZSE6IERhdGVQaWNrZXJJbm5lclZhbHVlO1xuICBwcml2YXRlIGRpc3BsYXlEYXRlITogbW9tZW50Lk1vbWVudDtcbiAgcHJpdmF0ZSBmaXJzdERheU9mV2VlayE6IG51bWJlcjtcbiAgcHJpdmF0ZSBfd2Vla0RheXM6IEFycmF5PFdlZWtEYXk+ID0gW107XG4gIHByaXZhdGUgX2RheXM6IEFycmF5PERheT4gPSBbXTtcblxuICBnZXQgZGF5cygpOiBBcnJheTxEYXk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF5c1xuICB9XG5cbiAgZ2V0IG1vbnRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheURhdGUuZm9ybWF0KCdNTU1NJyk7XG4gIH1cblxuICBnZXQgbW9udGhOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5tb250aCgpO1xuICB9XG5cbiAgZ2V0IHllYXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5mb3JtYXQoJ1lZWVknKTtcbiAgfVxuXG4gIGdldCB3ZWVrRGF5cygpOiBBcnJheTxXZWVrRGF5PiB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtEYXlzO1xuICB9XG5cbiAgaXNEYXlTZWxlY3RlZChkYXk6IERheSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcblxuICAgICAgY29uc3QgZnJvbSA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkuZnJvbT8udGltZXN0YW1wO1xuICAgICAgY29uc3QgdG8gPSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLnRvPy50aW1lc3RhbXA7XG5cbiAgICAgIGlmICghZnJvbSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICghdG8pIHtcbiAgICAgICAgcmV0dXJuIGRheS50aW1lc3RhbXAgPT09IGZyb207XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXkudGltZXN0YW1wID49IGZyb20gJiYgZGF5LnRpbWVzdGFtcCA8PSB0bztcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSk/LnRpbWVzdGFtcCA9PT0gZGF5LnRpbWVzdGFtcDtcbiAgfVxuXG4gIGlzRmlyc3RTZWxlY3RlZERheShkYXk6IERheSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybiBkYXkuZm9ybWF0dGVkID09PSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSkuZm9ybWF0dGVkID09PSBkYXkuZm9ybWF0dGVkO1xuICB9XG5cbiAgaXNMYXN0U2VsZWN0ZWREYXkoZGF5OiBEYXkpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm4gZGF5LmZvcm1hdHRlZCA9PT0gKCh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkudG8/LmZvcm1hdHRlZCB8fCAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmlubmVyRGF0ZSBhcyBEYXkpLmZvcm1hdHRlZCA9PT0gZGF5LmZvcm1hdHRlZDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNzaWduSW5pdGlhbFZhbHVlcygpO1xuICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5pdGlhbFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICBjb25zdCByZWNlaXZlZERhdGUgPSB0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlO1xuICAgICAgaWYgKHJlY2VpdmVkRGF0ZS5mcm9tICYmIHJlY2VpdmVkRGF0ZS50bykge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGZyb206IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUuZnJvbSksXG4gICAgICAgICAgdG86IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUudG8pLFxuICAgICAgICAgIGxhYmVsOiBQZXJpb2RMYWJlbFtyZWNlaXZlZERhdGUubGFiZWwgfHwgJ0NVU1RPTV9QRVJJT0QnXS50b1N0cmluZygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGxhYmVsOiAnQ1VTVE9NX1BFUklPRCdcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCgodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LnRpbWVzdGFtcCB8fCAoRGF0ZS5ub3coKSAvIDEwMDApKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyh0aGlzLmRhdGUgYXMgc3RyaW5nKTtcbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCh0aGlzLmlubmVyRGF0ZS50aW1lc3RhbXApO1xuICAgIH1cblxuICAgIHRoaXMuZmlyc3REYXlPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignd2VlaycpLmRheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcbiAgICB0aGlzLmJ1aWxkV2Vla0RheXMoKTtcbiAgICB0aGlzLmJ1aWxkRGF5cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFdlZWtEYXlzKCkge1xuICAgIGNvbnN0IHN0YXJ0T2ZXZWVrID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICBjb25zdCBlbmRPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICB0aGlzLl93ZWVrRGF5cyA9IFtdO1xuXG4gICAgZG8ge1xuICAgICAgdGhpcy5fd2Vla0RheXMucHVzaCh7XG4gICAgICAgIG5hbWU6IHN0YXJ0T2ZXZWVrLmZvcm1hdCgnZGRkJylcbiAgICAgIH0pO1xuXG4gICAgICBzdGFydE9mV2Vlay5hZGQoMSwgJ2RheScpO1xuICAgIH1cbiAgICB3aGlsZSAoc3RhcnRPZldlZWsuaXNCZWZvcmUoZW5kT2ZXZWVrKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGF5cygpIHtcbiAgICBsZXQgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignbW9udGgnKTtcbiAgICBsZXQgZW5kRGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmVuZE9mKCdtb250aCcpO1xuXG4gICAgbGV0IGRheXNPZlBhc3RNb250aDogQXJyYXk8RGF5PiA9IFtdO1xuICAgIGxldCBkYXlzT2ZUaGlzTW9udGg6IEFycmF5PERheT4gPSBbXTtcbiAgICBsZXQgZGF5c09mTmV4dE1vbnRoOiBBcnJheTxEYXk+ID0gW107XG5cbiAgICAvLyBCdWlsZHMgdGhpcyBtb250aCBkYXlzXG4gICAgZGF5c09mVGhpc01vbnRoID0gdGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KTtcblxuICAgIC8vIEJ1aWxkcyBwYXN0IG1vbnRoIGRheXNcbiAgICBpZiAoZGF5c09mVGhpc01vbnRoWzBdLndlZWtEYXkgIT09IHRoaXMuZmlyc3REYXlPZldlZWspIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICB9XG4gICAgZW5kRGF5ID0gc3RhcnREYXkuY2xvbmUoKS5lbmRPZignbW9udGgnKTtcbiAgICBkYXlzT2ZQYXN0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgLy8gQnVpbGRzIG5leHQgbW9udGggZGF5c1xuICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmFkZCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpO1xuICAgIGVuZERheSA9IHN0YXJ0RGF5LmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICBkYXlzT2ZOZXh0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgdGhpcy5fZGF5cyA9IFtcbiAgICAgIC4uLmRheXNPZlBhc3RNb250aCxcbiAgICAgIC4uLmRheXNPZlRoaXNNb250aCxcbiAgICAgIC4uLmRheXNPZk5leHRNb250aCxcbiAgICBdO1xuXG4gICAgLy8gSWYgY2FsZW5kYXIgaXNuJ3QgY29tcGxldGUgeWV0IChhbGwgNyBjb2x1bW5zIGFuZCA2IHJvd3MgYXJlIGZ1bGwpLCBhZGRzIGFub3RoZXIgd2VlayB0byBjb21wbGV0ZSB0aGUgY2FsZW5kYXJcbiAgICBpZiAodGhpcy5fZGF5cy5sZW5ndGggPCA0Mikge1xuICAgICAgZW5kRGF5ID0gZW5kRGF5LmNsb25lKCkuYWRkKDEsICdkYXknKS5lbmRPZignd2VlaycpO1xuICAgICAgc3RhcnREYXkgPSBlbmREYXkuY2xvbmUoKS5zdGFydE9mKCd3ZWVrJyk7XG4gICAgICB0aGlzLl9kYXlzLnB1c2goLi4udGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXlzQmV0d2VlbihzdGFydDogbW9tZW50Lk1vbWVudCwgZW5kOiBtb21lbnQuTW9tZW50KTogQXJyYXk8RGF5PiB7XG4gICAgc3RhcnQgPSBzdGFydC5jbG9uZSgpO1xuICAgIGVuZCA9IGVuZC5jbG9uZSgpO1xuXG4gICAgY29uc3QgZGF5cyA9IFtdO1xuICAgIGRvIHtcbiAgICAgIGRheXMucHVzaCh0aGlzLmdldERheUZyb21Nb21lbnQoc3RhcnQpKTtcblxuICAgICAgc3RhcnQuYWRkKDEsICdkYXknKTtcbiAgICB9XG4gICAgd2hpbGUgKHN0YXJ0LmlzQmVmb3JlKGVuZCkpO1xuXG4gICAgcmV0dXJuIGRheXM7XG4gIH1cblxuICBnZXREYXlGcm9tTW9tZW50KGRheTogbW9tZW50Lk1vbWVudCk6IERheSB7XG4gICAgZGF5ID0gZGF5LmNsb25lKCkuc3RhcnRPZignZGF5Jyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGltZXN0YW1wOiBkYXkudW5peCgpLFxuICAgICAgZGF5OiBkYXkuZm9ybWF0KCdEJyksXG4gICAgICBtb250aDogZGF5Lm1vbnRoKCksXG4gICAgICB3ZWVrRGF5OiBkYXkuZGF5KCksXG4gICAgICBmb3JtYXR0ZWQ6IGRheS5mb3JtYXQoREVGQVVMVF9EQVRFX0ZPUk1BVCksXG4gICAgfVxuICB9XG5cbiAgZ2V0RGF5RnJvbVN0cmluZyhkYXRlOiBzdHJpbmcpOiBEYXkge1xuICAgIHJldHVybiB0aGlzLmdldERheUZyb21Nb21lbnQobW9tZW50KGRhdGUpKTtcbiAgfVxuXG4gIGdldERhdGVGcm9tRGF5KGRheTogRGF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbW9tZW50LnVuaXgoZGF5LnRpbWVzdGFtcCkuc3RhcnRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpO1xuICB9XG5cbiAgaW5jcmVtZW50TW9udGgoYW1vdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLmRpc3BsYXlEYXRlLmFkZChhbW91bnQsICdtb250aCcpO1xuICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgfVxuXG4gIHNlbGVjdERhdGUodGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcblxuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHRoaXMuaGFuZGxlUmFuZ2VTZWxlY3QobW9tZW50RGF0ZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVTaW5nbGVTZWxlY3QobW9tZW50RGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSYW5nZVNlbGVjdChzZWxlY3RlZERhdGU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICBjb25zdCBpbm5lckRhdGUgPSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpO1xuXG4gICAgLy8gRmlyc3Qgc2VsZWN0aW9uXG4gICAgaWYgKCFpbm5lckRhdGUuZnJvbSkge1xuICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICAvLyBTZWNvbmQgc2VsZWN0aW9uXG4gICAgZWxzZSBpZiAoIWlubmVyRGF0ZS50bykge1xuICAgICAgY29uc3QgYWN0dWFsRnJvbSA9IG1vbWVudC51bml4KGlubmVyRGF0ZS5mcm9tLnRpbWVzdGFtcCk7XG5cbiAgICAgIC8vIFNlbGVjdGVkIGRhdGUgaXMgcGFzdCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgZGF0ZVxuICAgICAgaWYgKHNlbGVjdGVkRGF0ZS5pc0JlZm9yZShhY3R1YWxGcm9tLCAnZGF5JykpIHtcbiAgICAgICAgaW5uZXJEYXRlLnRvID0gaW5uZXJEYXRlLmZyb207XG4gICAgICAgIGlubmVyRGF0ZS5mcm9tID0gdGhpcy5nZXREYXlGcm9tTW9tZW50KHNlbGVjdGVkRGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlbGVjdGVkIGRhdGUgaXMgZnV0dXJlIG9mIHRoZSBwcmV2aW91cyBzZWxlY3RlZCBkYXRlXG4gICAgICBlbHNlIHtcbiAgICAgICAgaW5uZXJEYXRlLnRvID0gdGhpcy5nZXREYXlGcm9tTW9tZW50KHNlbGVjdGVkRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VsZWN0aW9uIHdoZW4gYm90aCBmcm9tIGFuZCB0byBhcmUgYWxyZWFkeSBzZWxlY3RlZFxuICAgIGVsc2Uge1xuICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIGlubmVyRGF0ZS50byA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRSYW5nZShpbm5lckRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmFuZ2UocmFuZ2U6IERheVJhbmdlKSB7XG4gICAgY29uc3QgbmV3UmFuZ2U6IERhdGVSYW5nZSA9IHt9O1xuICAgIG5ld1JhbmdlLmxhYmVsID0gUGVyaW9kTGFiZWwuQ1VTVE9NX1BFUklPRDtcblxuICAgIGlmIChyYW5nZS5mcm9tKSB7XG4gICAgICBuZXdSYW5nZS5mcm9tID0gdGhpcy5nZXREYXRlRnJvbURheShyYW5nZS5mcm9tKTtcblxuICAgICAgaWYgKHJhbmdlLnRvKSBuZXdSYW5nZS50byA9IGZvcm1hdFRvKG1vbWVudC51bml4KHJhbmdlLnRvLnRpbWVzdGFtcCkpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KG5ld1JhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2luZ2xlU2VsZWN0KG1vbWVudERhdGU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChtb21lbnREYXRlKTtcbiAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChtb21lbnREYXRlLmZvcm1hdChERUZBVUxUX0RBVEVfRk9STUFUKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1jYWxlbmRhci1jb250YWluZXJcIj5cbiAgPGhlYWRlciBjbGFzcz1cIm1vbnRoLXNlbGVjdG9yXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWxlY3Rvci1idXR0b25cIiAoY2xpY2spPVwiaW5jcmVtZW50TW9udGgoLTEpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGljb25cIj5jaGV2cm9uX2xlZnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8c3BhbiBjbGFzcz1cIm1vbnRoLXllYXItZGlzcGxheVwiIGRhdGEtdGVzdGlkPVwibW9udGgteWVhci1kaXNwbGF5XCI+e3sgbW9udGggfX0ge3sgeWVhciB9fTwvc3Bhbj5cblxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VsZWN0b3ItYnV0dG9uXCIgKGNsaWNrKT1cImluY3JlbWVudE1vbnRoKDEpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGljb25cIj5jaGV2cm9uX3JpZ2h0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2hlYWRlcj5cblxuICA8bWFpbiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gICAgPGRpdiBjbGFzcz1cIndlZWstZGF5cy1oZWFkZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5c1wiPnt7IHdlZWtEYXkubmFtZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkYXlzLWJsb2NrXCIgZGF0YS10ZXN0aWQ9XCJkYXlzLWJsb2NrXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkudGltZXN0YW1wKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnZGF5JzogdHJ1ZSxcbiAgICAgICAgICAnYW5vdGhlci1tb250aCc6IG1vbnRoTnVtYmVyICE9IGRheS5tb250aCxcbiAgICAgICAgICAnc2VsZWN0ZWQnOiBpc0RheVNlbGVjdGVkKGRheSksXG4gICAgICAgICAgJ2ZpcnN0JzogaXNGaXJzdFNlbGVjdGVkRGF5KGRheSksXG4gICAgICAgICAgJ2xhc3QnOiBpc0xhc3RTZWxlY3RlZERheShkYXkpLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAge3sgZGF5LmRheSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L21haW4+XG48L2Rpdj5cbiJdfQ==
|