@haiilo/catalyst-angular 13.5.1-beta → 14.0.0
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/fesm2022/haiilo-catalyst-angular.mjs +1942 -0
- package/fesm2022/haiilo-catalyst-angular.mjs.map +1 -0
- package/package.json +9 -17
- package/types/haiilo-catalyst-angular.d.ts +802 -0
- package/esm2020/haiilo-catalyst-angular.mjs +0 -5
- package/esm2020/lib/catalyst.module.mjs +0 -118
- package/esm2020/lib/datetime/datetime.component.mjs +0 -137
- package/esm2020/lib/dialog/dialog-actions.component.mjs +0 -27
- package/esm2020/lib/dialog/dialog-header.component.mjs +0 -43
- package/esm2020/lib/dialog/dialog.component.mjs +0 -60
- package/esm2020/lib/dialog/dialog.service.mjs +0 -68
- package/esm2020/lib/directives/angular-component-lib/utils.mjs +0 -59
- package/esm2020/lib/directives/boolean-value-accessor.mjs +0 -38
- package/esm2020/lib/directives/date-value-accessor.mjs +0 -90
- package/esm2020/lib/directives/proxies.mjs +0 -786
- package/esm2020/lib/directives/radio-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/select-value-accessor-decorator.mjs +0 -24
- package/esm2020/lib/directives/select-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/text-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/time-value-accessor.mjs +0 -73
- package/esm2020/lib/directives/value-accessor-decorator.mjs +0 -55
- package/esm2020/lib/directives/value-accessor.mjs +0 -40
- package/esm2020/lib/injection-token.mjs +0 -21
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -34
- package/esm2020/public-api.mjs +0 -19
- package/fesm2015/haiilo-catalyst-angular.mjs +0 -1700
- package/fesm2015/haiilo-catalyst-angular.mjs.map +0 -1
- package/fesm2020/haiilo-catalyst-angular.mjs +0 -1679
- package/fesm2020/haiilo-catalyst-angular.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/catalyst.module.d.ts +0 -24
- package/lib/datetime/datetime.component.d.ts +0 -29
- package/lib/dialog/dialog-actions.component.d.ts +0 -12
- package/lib/dialog/dialog-header.component.d.ts +0 -29
- package/lib/dialog/dialog.component.d.ts +0 -35
- package/lib/dialog/dialog.service.d.ts +0 -49
- package/lib/directives/angular-component-lib/utils.d.ts +0 -9
- package/lib/directives/boolean-value-accessor.d.ts +0 -9
- package/lib/directives/date-value-accessor.d.ts +0 -17
- package/lib/directives/proxies.d.ts +0 -477
- package/lib/directives/radio-value-accessor.d.ts +0 -8
- package/lib/directives/select-value-accessor-decorator.d.ts +0 -14
- package/lib/directives/select-value-accessor.d.ts +0 -8
- package/lib/directives/text-value-accessor.d.ts +0 -8
- package/lib/directives/time-value-accessor.d.ts +0 -15
- package/lib/directives/value-accessor-decorator.d.ts +0 -18
- package/lib/directives/value-accessor.d.ts +0 -18
- package/lib/injection-token.d.ts +0 -7
- package/lib/tooltip/tooltip.directive.d.ts +0 -16
- package/public-api.d.ts +0 -18
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from './value-accessor';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class BooleanValueAccessor extends ValueAccessor {
|
|
6
|
-
constructor(el) {
|
|
7
|
-
super(el);
|
|
8
|
-
}
|
|
9
|
-
writeValue(value) {
|
|
10
|
-
this.el.nativeElement.checked = this.lastValue = this.el.nativeElement.value == null ? value : this.el.nativeElement.value === value;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
BooleanValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BooleanValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
-
BooleanValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: BooleanValueAccessor, selector: "cat-checkbox, cat-toggle", host: { listeners: { "catChange": "handleChangeEvent($event.target.resolvedValue)" } }, providers: [
|
|
15
|
-
{
|
|
16
|
-
provide: NG_VALUE_ACCESSOR,
|
|
17
|
-
useExisting: BooleanValueAccessor,
|
|
18
|
-
multi: true
|
|
19
|
-
}
|
|
20
|
-
], usesInheritance: true, ngImport: i0 });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BooleanValueAccessor, decorators: [{
|
|
22
|
-
type: Directive,
|
|
23
|
-
args: [{
|
|
24
|
-
/* tslint:disable-next-line:directive-selector */
|
|
25
|
-
selector: 'cat-checkbox, cat-toggle',
|
|
26
|
-
host: {
|
|
27
|
-
'(catChange)': 'handleChangeEvent($event.target.resolvedValue)'
|
|
28
|
-
},
|
|
29
|
-
providers: [
|
|
30
|
-
{
|
|
31
|
-
provide: NG_VALUE_ACCESSOR,
|
|
32
|
-
useExisting: BooleanValueAccessor,
|
|
33
|
-
multi: true
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdGFseXN0L3NyYy9saWIvZGlyZWN0aXZlcy9ib29sZWFuLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWdCakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFDckQsWUFBWSxFQUFjO1FBQ3hCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUM7SUFDdkksQ0FBQzs7aUhBTlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsMklBUnBCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJGQUVVLG9CQUFvQjtrQkFkaEMsU0FBUzttQkFBQztvQkFDVCxpREFBaUQ7b0JBQ2pELFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLElBQUksRUFBRTt3QkFDSixhQUFhLEVBQUUsZ0RBQWdEO3FCQUNoRTtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxzQkFBc0I7NEJBQ2pDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vdmFsdWUtYWNjZXNzb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xuICBzZWxlY3RvcjogJ2NhdC1jaGVja2JveCwgY2F0LXRvZ2dsZScsXG4gIGhvc3Q6IHtcbiAgICAnKGNhdENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50LnRhcmdldC5yZXNvbHZlZFZhbHVlKSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogQm9vbGVhblZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMubGFzdFZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID09IG51bGwgPyB2YWx1ZSA6IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9PT0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Directive, Optional, SkipSelf } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from './value-accessor';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
export class DateValueAccessor extends ValueAccessor {
|
|
7
|
-
constructor(el, ngControl) {
|
|
8
|
-
super(el);
|
|
9
|
-
this.ngControl = ngControl;
|
|
10
|
-
}
|
|
11
|
-
get nativeElement() {
|
|
12
|
-
return this.el.nativeElement;
|
|
13
|
-
}
|
|
14
|
-
ngAfterViewInit() {
|
|
15
|
-
if (this.ngControl?.control?.hasValidator(Validators.required)) {
|
|
16
|
-
this.el.nativeElement.required = true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
writeValue(value) {
|
|
20
|
-
if (!this.el.nativeElement.range) {
|
|
21
|
-
return super.writeValue(this.toISO(value));
|
|
22
|
-
}
|
|
23
|
-
else if (value instanceof Array) {
|
|
24
|
-
const data = [this.toISO(value[0]), this.toISO(value[1])];
|
|
25
|
-
return super.writeValue(JSON.stringify(data));
|
|
26
|
-
}
|
|
27
|
-
return super.writeValue(undefined);
|
|
28
|
-
}
|
|
29
|
-
handleChangeEvent(value) {
|
|
30
|
-
if (!this.el.nativeElement.range) {
|
|
31
|
-
return super.handleChangeEvent(this.toDate(value));
|
|
32
|
-
}
|
|
33
|
-
else if (typeof value === 'string') {
|
|
34
|
-
const data = JSON.parse(value).map(this.toDate);
|
|
35
|
-
data[1]?.setHours(23, 59, 59, 999);
|
|
36
|
-
return super.handleChangeEvent(data);
|
|
37
|
-
}
|
|
38
|
-
super.handleChangeEvent(null);
|
|
39
|
-
}
|
|
40
|
-
updateErrors() {
|
|
41
|
-
setTimeout(() => {
|
|
42
|
-
this.el.nativeElement.errors =
|
|
43
|
-
this.ngControl?.control?.errors?.required && !this.el.nativeElement.value ? { required: true } : null;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
toISO(value) {
|
|
47
|
-
if (value instanceof Date) {
|
|
48
|
-
const year = value.getFullYear();
|
|
49
|
-
const month = (value.getMonth() + 1).toString().padStart(2, '0');
|
|
50
|
-
const day = value.getDate().toString().padStart(2, '0');
|
|
51
|
-
return `${year}-${month}-${day}`;
|
|
52
|
-
}
|
|
53
|
-
return undefined;
|
|
54
|
-
}
|
|
55
|
-
toDate(value) {
|
|
56
|
-
const [match, year, month, day] = value?.match(/^(\d{4})-(\d{2})-(\d{2})/) ?? [];
|
|
57
|
-
return match ? new Date(Number(year), Number(month) - 1, Number(day)) : null;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
DateValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateValueAccessor, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
61
|
-
DateValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: DateValueAccessor, selector: "cat-date, cat-date-inline", host: { listeners: { "catChange": "handleChangeEvent($event.target.value); updateErrors()", "catBlur": "updateErrors()" } }, providers: [
|
|
62
|
-
{
|
|
63
|
-
provide: NG_VALUE_ACCESSOR,
|
|
64
|
-
useExisting: DateValueAccessor,
|
|
65
|
-
multi: true
|
|
66
|
-
}
|
|
67
|
-
], usesInheritance: true, ngImport: i0 });
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DateValueAccessor, decorators: [{
|
|
69
|
-
type: Directive,
|
|
70
|
-
args: [{
|
|
71
|
-
/* tslint:disable-next-line:directive-selector */
|
|
72
|
-
selector: 'cat-date, cat-date-inline',
|
|
73
|
-
host: {
|
|
74
|
-
'(catChange)': 'handleChangeEvent($event.target.value); updateErrors()',
|
|
75
|
-
'(catBlur)': 'updateErrors()'
|
|
76
|
-
},
|
|
77
|
-
providers: [
|
|
78
|
-
{
|
|
79
|
-
provide: NG_VALUE_ACCESSOR,
|
|
80
|
-
useExisting: DateValueAccessor,
|
|
81
|
-
multi: true
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
}]
|
|
85
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
|
86
|
-
type: Optional
|
|
87
|
-
}, {
|
|
88
|
-
type: SkipSelf
|
|
89
|
-
}] }]; } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdGFseXN0L3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBaUJqRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUNsRCxZQUNFLEVBQWMsRUFDMkIsU0FBcUI7UUFFOUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRitCLGNBQVMsR0FBVCxTQUFTLENBQVk7SUFHaEUsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDNUM7YUFBTSxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTTtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBVTtRQUN0QixJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7WUFDekIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsT0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7U0FDbEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ08sTUFBTSxDQUFDLEtBQVU7UUFDdkIsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakYsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0UsQ0FBQzs7OEdBeERVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlMQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSxpQkFBaUI7a0JBZjdCLFNBQVM7bUJBQUM7b0JBQ1QsaURBQWlEO29CQUNqRCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osYUFBYSxFQUFFLHdEQUF3RDt3QkFDdkUsV0FBVyxFQUFFLGdCQUFnQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs7MEJBSUksUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yICovXG4gIHNlbGVjdG9yOiAnY2F0LWRhdGUsIGNhdC1kYXRlLWlubGluZScsXG4gIGhvc3Q6IHtcbiAgICAnKGNhdENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50LnRhcmdldC52YWx1ZSk7IHVwZGF0ZUVycm9ycygpJyxcbiAgICAnKGNhdEJsdXIpJzogJ3VwZGF0ZUVycm9ycygpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBEYXRlVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbD86IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cbiAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuZWwubmF0aXZlRWxlbWVudC5yYW5nZSkge1xuICAgICAgcmV0dXJuIHN1cGVyLndyaXRlVmFsdWUodGhpcy50b0lTTyh2YWx1ZSkpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgZGF0YSA9IFt0aGlzLnRvSVNPKHZhbHVlWzBdKSwgdGhpcy50b0lTTyh2YWx1ZVsxXSldO1xuICAgICAgcmV0dXJuIHN1cGVyLndyaXRlVmFsdWUoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICB9XG4gIGhhbmRsZUNoYW5nZUV2ZW50KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuZWwubmF0aXZlRWxlbWVudC5yYW5nZSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUNoYW5nZUV2ZW50KHRoaXMudG9EYXRlKHZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZSh2YWx1ZSkubWFwKHRoaXMudG9EYXRlKTtcbiAgICAgIGRhdGFbMV0/LnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICByZXR1cm4gc3VwZXIuaGFuZGxlQ2hhbmdlRXZlbnQoZGF0YSk7XG4gICAgfVxuICAgIHN1cGVyLmhhbmRsZUNoYW5nZUV2ZW50KG51bGwpO1xuICB9XG5cbiAgdXBkYXRlRXJyb3JzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmVycm9ycyA9XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5lcnJvcnM/LnJlcXVpcmVkICYmICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b0lTTyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgeWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgICBjb25zdCBtb250aCA9ICh2YWx1ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgY29uc3QgZGF5ID0gdmFsdWUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHByaXZhdGUgdG9EYXRlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBbbWF0Y2gsIHllYXIsIG1vbnRoLCBkYXldID0gdmFsdWU/Lm1hdGNoKC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkvKSA/PyBbXTtcbiAgICByZXR1cm4gbWF0Y2ggPyBuZXcgRGF0ZShOdW1iZXIoeWVhciksIE51bWJlcihtb250aCkgLSAxLCBOdW1iZXIoZGF5KSkgOiBudWxsO1xuICB9XG59XG4iXX0=
|