@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.
Files changed (50) hide show
  1. package/fesm2022/haiilo-catalyst-angular.mjs +1942 -0
  2. package/fesm2022/haiilo-catalyst-angular.mjs.map +1 -0
  3. package/package.json +9 -17
  4. package/types/haiilo-catalyst-angular.d.ts +802 -0
  5. package/esm2020/haiilo-catalyst-angular.mjs +0 -5
  6. package/esm2020/lib/catalyst.module.mjs +0 -118
  7. package/esm2020/lib/datetime/datetime.component.mjs +0 -137
  8. package/esm2020/lib/dialog/dialog-actions.component.mjs +0 -27
  9. package/esm2020/lib/dialog/dialog-header.component.mjs +0 -43
  10. package/esm2020/lib/dialog/dialog.component.mjs +0 -60
  11. package/esm2020/lib/dialog/dialog.service.mjs +0 -68
  12. package/esm2020/lib/directives/angular-component-lib/utils.mjs +0 -59
  13. package/esm2020/lib/directives/boolean-value-accessor.mjs +0 -38
  14. package/esm2020/lib/directives/date-value-accessor.mjs +0 -90
  15. package/esm2020/lib/directives/proxies.mjs +0 -786
  16. package/esm2020/lib/directives/radio-value-accessor.mjs +0 -35
  17. package/esm2020/lib/directives/select-value-accessor-decorator.mjs +0 -24
  18. package/esm2020/lib/directives/select-value-accessor.mjs +0 -35
  19. package/esm2020/lib/directives/text-value-accessor.mjs +0 -35
  20. package/esm2020/lib/directives/time-value-accessor.mjs +0 -73
  21. package/esm2020/lib/directives/value-accessor-decorator.mjs +0 -55
  22. package/esm2020/lib/directives/value-accessor.mjs +0 -40
  23. package/esm2020/lib/injection-token.mjs +0 -21
  24. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -34
  25. package/esm2020/public-api.mjs +0 -19
  26. package/fesm2015/haiilo-catalyst-angular.mjs +0 -1700
  27. package/fesm2015/haiilo-catalyst-angular.mjs.map +0 -1
  28. package/fesm2020/haiilo-catalyst-angular.mjs +0 -1679
  29. package/fesm2020/haiilo-catalyst-angular.mjs.map +0 -1
  30. package/index.d.ts +0 -5
  31. package/lib/catalyst.module.d.ts +0 -24
  32. package/lib/datetime/datetime.component.d.ts +0 -29
  33. package/lib/dialog/dialog-actions.component.d.ts +0 -12
  34. package/lib/dialog/dialog-header.component.d.ts +0 -29
  35. package/lib/dialog/dialog.component.d.ts +0 -35
  36. package/lib/dialog/dialog.service.d.ts +0 -49
  37. package/lib/directives/angular-component-lib/utils.d.ts +0 -9
  38. package/lib/directives/boolean-value-accessor.d.ts +0 -9
  39. package/lib/directives/date-value-accessor.d.ts +0 -17
  40. package/lib/directives/proxies.d.ts +0 -477
  41. package/lib/directives/radio-value-accessor.d.ts +0 -8
  42. package/lib/directives/select-value-accessor-decorator.d.ts +0 -14
  43. package/lib/directives/select-value-accessor.d.ts +0 -8
  44. package/lib/directives/text-value-accessor.d.ts +0 -8
  45. package/lib/directives/time-value-accessor.d.ts +0 -15
  46. package/lib/directives/value-accessor-decorator.d.ts +0 -18
  47. package/lib/directives/value-accessor.d.ts +0 -18
  48. package/lib/injection-token.d.ts +0 -7
  49. package/lib/tooltip/tooltip.directive.d.ts +0 -16
  50. 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=