@six-group/ui-library-angular 0.0.0-insider.ebd822a → 0.0.0-insider.fa8b667

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 (39) hide show
  1. package/esm2020/lib/control-value-accessors/checkbox-value-accessor.mjs +41 -0
  2. package/esm2020/lib/control-value-accessors/datepicker-value-accessor.mjs +37 -0
  3. package/esm2020/lib/control-value-accessors/numeric-value-accessor.mjs +42 -0
  4. package/esm2020/lib/control-value-accessors/radio-value-accessor.mjs +62 -0
  5. package/esm2020/lib/control-value-accessors/range-value-accessor.mjs +42 -0
  6. package/esm2020/lib/control-value-accessors/select-value-accessor.mjs +37 -0
  7. package/esm2020/lib/control-value-accessors/switch-value-accessor.mjs +41 -0
  8. package/esm2020/lib/control-value-accessors/text-value-accessor.mjs +37 -0
  9. package/esm2020/lib/control-value-accessors/timepicker-value-accessor.mjs +37 -0
  10. package/esm2020/lib/control-value-accessors/value-accessor.mjs +143 -0
  11. package/esm2020/lib/form/six-form.directive.mjs +134 -0
  12. package/esm2020/lib/services/validation-messages.service.mjs +15 -0
  13. package/esm2020/lib/stencil-generated/components.mjs +36 -63
  14. package/esm2020/lib/stencil-generated/index.mjs +1 -2
  15. package/esm2020/lib/ui-library-angular.module.mjs +112 -19
  16. package/esm2020/lib/validators/six-ui-library-validators.mjs +116 -0
  17. package/esm2020/public-api.mjs +19 -1
  18. package/fesm2015/six-group-ui-library-angular.mjs +876 -82
  19. package/fesm2015/six-group-ui-library-angular.mjs.map +1 -1
  20. package/fesm2020/six-group-ui-library-angular.mjs +873 -82
  21. package/fesm2020/six-group-ui-library-angular.mjs.map +1 -1
  22. package/lib/control-value-accessors/checkbox-value-accessor.d.ts +10 -0
  23. package/lib/control-value-accessors/datepicker-value-accessor.d.ts +9 -0
  24. package/lib/control-value-accessors/numeric-value-accessor.d.ts +10 -0
  25. package/lib/control-value-accessors/radio-value-accessor.d.ts +15 -0
  26. package/lib/control-value-accessors/range-value-accessor.d.ts +10 -0
  27. package/lib/control-value-accessors/select-value-accessor.d.ts +9 -0
  28. package/lib/control-value-accessors/switch-value-accessor.d.ts +10 -0
  29. package/lib/control-value-accessors/text-value-accessor.d.ts +9 -0
  30. package/lib/control-value-accessors/timepicker-value-accessor.d.ts +9 -0
  31. package/lib/control-value-accessors/value-accessor.d.ts +39 -0
  32. package/lib/form/six-form.directive.d.ts +71 -0
  33. package/lib/services/validation-messages.service.d.ts +7 -0
  34. package/lib/stencil-generated/components.d.ts +8 -51
  35. package/lib/stencil-generated/index.d.ts +1 -1
  36. package/lib/ui-library-angular.module.d.ts +15 -1
  37. package/lib/validators/six-ui-library-validators.d.ts +47 -0
  38. package/package.json +3 -3
  39. package/public-api.d.ts +13 -0
@@ -0,0 +1,41 @@
1
+ import { Directive, HostListener } 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 CheckboxValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, el.checked);
11
+ }
12
+ writeValue(value) {
13
+ this.el.nativeElement.checked = value === true;
14
+ this.updateValidation();
15
+ }
16
+ }
17
+ CheckboxValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
18
+ CheckboxValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxValueAccessor, selector: "six-checkbox", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
19
+ {
20
+ provide: NG_VALUE_ACCESSOR,
21
+ useExisting: CheckboxValueAccessor,
22
+ multi: true,
23
+ },
24
+ ], usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxValueAccessor, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: 'six-checkbox',
29
+ providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: CheckboxValueAccessor,
33
+ multi: true,
34
+ },
35
+ ],
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
38
+ type: HostListener,
39
+ args: ['change', ['$event.target']]
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtdmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2NoZWNrYm94LXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFDdEQsWUFBWSxRQUFrQixFQUFFLEVBQWM7UUFDNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QsaUJBQWlCLENBQUMsRUFBMEI7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7O2tIQWJVLHFCQUFxQjtzR0FBckIscUJBQXFCLDhHQVJyQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSxxQkFBcUI7a0JBVmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHVCQUF1Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7d0hBT0MsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NpeC1jaGVja2JveCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IENoZWNrYm94VmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94VmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50LnRhcmdldCddKVxuICBoYW5kbGVDaGFuZ2VFdmVudChlbDogSFRNTFNpeENoZWNrYm94RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoZWwsIGVsLmNoZWNrZWQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB2YWx1ZSA9PT0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { Directive, HostListener } 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 DatepickerValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ }
13
+ DatepickerValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ DatepickerValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerValueAccessor, selector: "six-datepicker", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: DatepickerValueAccessor,
18
+ multi: true,
19
+ },
20
+ ], usesInheritance: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerValueAccessor, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'six-datepicker',
25
+ providers: [
26
+ {
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: DatepickerValueAccessor,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
34
+ type: HostListener,
35
+ args: ['change', ['$event.target']]
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMvZGF0ZXBpY2tlci12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWpELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBQ3hELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELGlCQUFpQixDQUFDLEVBQTRCO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O29IQVJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGdIQVJ2QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSx1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcseUJBQXlCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc2l4LWRhdGVwaWNrZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBEYXRlcGlja2VyVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUNoYW5nZUV2ZW50KGVsOiBIVE1MU2l4RGF0ZXBpY2tlckVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Directive, HostListener } 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 NumericValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleInputEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ registerOnChange(fn) {
13
+ super.registerOnChange((value) => {
14
+ fn(value === '' ? null : parseFloat(value));
15
+ });
16
+ }
17
+ }
18
+ NumericValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumericValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ NumericValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NumericValueAccessor, selector: "six-input[type=number]", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
20
+ {
21
+ provide: NG_VALUE_ACCESSOR,
22
+ useExisting: NumericValueAccessor,
23
+ multi: true,
24
+ },
25
+ ], usesInheritance: true, ngImport: i0 });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumericValueAccessor, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: 'six-input[type=number]',
30
+ providers: [
31
+ {
32
+ provide: NG_VALUE_ACCESSOR,
33
+ useExisting: NumericValueAccessor,
34
+ multi: true,
35
+ },
36
+ ],
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
39
+ type: HostListener,
40
+ args: ['input', ['$event.target']]
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMvbnVtZXJpYy12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBQ3JELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELGdCQUFnQixDQUFDLEVBQXVCO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxFQUE4QjtRQUN0RCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUN2QyxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQWRVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHNIQVJwQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsb0JBQW9CO1lBQ2pDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSxvQkFBb0I7a0JBVmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsc0JBQXNCOzRCQUNqQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NpeC1pbnB1dFt0eXBlPW51bWJlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdW1lcmljVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgaGFuZGxlSW5wdXRFdmVudChlbDogSFRNTFNpeElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoZWwsIGVsLnZhbHVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBudW1iZXIgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgZm4odmFsdWUgPT09ICcnID8gbnVsbCA6IHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Directive, HostListener, Input } 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 RadioValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, this.value);
11
+ }
12
+ ngOnInit() {
13
+ this.checkName();
14
+ }
15
+ writeValue(value) {
16
+ this.el.nativeElement.checked = value === this.value;
17
+ this.updateValidation();
18
+ }
19
+ checkName() {
20
+ if (this.name && this.formControlName && this.name !== this.formControlName) {
21
+ throw new Error(`
22
+ If you define both a name and a formControlName attribute on your radio button, their values
23
+ must match. Ex: <six-input type="radio" formControlName="food" name="food">
24
+ `);
25
+ }
26
+ if (!this.name && this.formControlName) {
27
+ this.name = this.formControlName;
28
+ this.el.nativeElement.name = this.formControlName;
29
+ }
30
+ }
31
+ }
32
+ RadioValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
33
+ RadioValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RadioValueAccessor, selector: "six-radio", inputs: { value: "value", formControlName: "formControlName", name: "name" }, host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
34
+ {
35
+ provide: NG_VALUE_ACCESSOR,
36
+ useExisting: RadioValueAccessor,
37
+ multi: true,
38
+ },
39
+ ], usesInheritance: true, ngImport: i0 });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioValueAccessor, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: 'six-radio',
44
+ providers: [
45
+ {
46
+ provide: NG_VALUE_ACCESSOR,
47
+ useExisting: RadioValueAccessor,
48
+ multi: true,
49
+ },
50
+ ],
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { value: [{
53
+ type: Input
54
+ }], formControlName: [{
55
+ type: Input
56
+ }], name: [{
57
+ type: Input
58
+ }], handleChangeEvent: [{
59
+ type: HostListener,
60
+ args: ['change', ['$event.target']]
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tdmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL3JhZGlvLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWpELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBQ25ELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQU9ELGlCQUFpQixDQUFDLEVBQXVCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFUSxVQUFVLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDM0UsTUFBTSxJQUFJLEtBQUssQ0FBQzs7O0tBR2pCLENBQUMsQ0FBQztTQUNGO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzsrR0FsQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IseUxBUmxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJGQUVVLGtCQUFrQjtrQkFWOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsb0JBQW9COzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFNVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NpeC1yYWRpbycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgaGFuZGxlQ2hhbmdlRXZlbnQoZWw6IEhUTUxTaXhSYWRpb0VsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tOYW1lKCk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlID09PSB0aGlzLnZhbHVlO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja05hbWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmFtZSAmJiB0aGlzLmZvcm1Db250cm9sTmFtZSAmJiB0aGlzLm5hbWUgIT09IHRoaXMuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgSWYgeW91IGRlZmluZSBib3RoIGEgbmFtZSBhbmQgYSBmb3JtQ29udHJvbE5hbWUgYXR0cmlidXRlIG9uIHlvdXIgcmFkaW8gYnV0dG9uLCB0aGVpciB2YWx1ZXNcbiAgICAgIG11c3QgbWF0Y2guIEV4OiA8c2l4LWlucHV0IHR5cGU9XCJyYWRpb1wiIGZvcm1Db250cm9sTmFtZT1cImZvb2RcIiBuYW1lPVwiZm9vZFwiPlxuICAgIGApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubmFtZSAmJiB0aGlzLmZvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gdGhpcy5mb3JtQ29udHJvbE5hbWU7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZSA9IHRoaXMuZm9ybUNvbnRyb2xOYW1lO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Directive, HostListener } 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 RangeValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleInputEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ registerOnChange(fn) {
13
+ super.registerOnChange((value) => {
14
+ fn(value === '' ? null : parseFloat(value));
15
+ });
16
+ }
17
+ }
18
+ RangeValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangeValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ RangeValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RangeValueAccessor, selector: "six-range", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
20
+ {
21
+ provide: NG_VALUE_ACCESSOR,
22
+ useExisting: RangeValueAccessor,
23
+ multi: true,
24
+ },
25
+ ], usesInheritance: true, ngImport: i0 });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangeValueAccessor, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: 'six-range',
30
+ providers: [
31
+ {
32
+ provide: NG_VALUE_ACCESSOR,
33
+ useExisting: RangeValueAccessor,
34
+ multi: true,
35
+ },
36
+ ],
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
39
+ type: HostListener,
40
+ args: ['input', ['$event.target']]
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtdmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL3JhbmdlLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFDbkQsWUFBWSxRQUFrQixFQUFFLEVBQWM7UUFDNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsRUFBdUI7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVRLGdCQUFnQixDQUFDLEVBQThCO1FBQ3RELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3ZDLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBZFUsa0JBQWtCO21HQUFsQixrQkFBa0IseUdBUmxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJGQUVVLGtCQUFrQjtrQkFWOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsb0JBQW9COzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NpeC1yYW5nZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhbmdlVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUlucHV0RXZlbnQoZWw6IEhUTUxTaXhSYW5nZUVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZ2lzdGVyT25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGZuKHZhbHVlID09PSAnJyA/IG51bGwgOiBwYXJzZUZsb2F0KHZhbHVlKSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Directive, HostListener } 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 SelectValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ }
13
+ SelectValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ SelectValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SelectValueAccessor, selector: "six-select", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: SelectValueAccessor,
18
+ multi: true,
19
+ },
20
+ ], usesInheritance: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectValueAccessor, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'six-select',
25
+ providers: [
26
+ {
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: SelectValueAccessor,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
34
+ type: HostListener,
35
+ args: ['change', ['$event.target']]
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sLXZhbHVlLWFjY2Vzc29ycy9zZWxlY3QtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVlqRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUNwRCxZQUFZLFFBQWtCLEVBQUUsRUFBYztRQUM1QyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxFQUF3QjtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOztnSEFSVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw0R0FSbkI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLG1CQUFtQjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7MkZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxxQkFBcUI7NEJBQ2hDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3dIQU9DLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vdmFsdWUtYWNjZXNzb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VsZWN0JyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2VsZWN0VmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGluamVjdG9yLCBlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgaGFuZGxlQ2hhbmdlRXZlbnQoZWw6IEhUTUxTaXhTZWxlY3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShlbCwgZWwudmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Directive, HostListener } 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 SwitchValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, el.checked);
11
+ }
12
+ writeValue(value) {
13
+ this.el.nativeElement.checked = value === true;
14
+ this.updateValidation();
15
+ }
16
+ }
17
+ SwitchValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SwitchValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
18
+ SwitchValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SwitchValueAccessor, selector: "six-switch", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
19
+ {
20
+ provide: NG_VALUE_ACCESSOR,
21
+ useExisting: SwitchValueAccessor,
22
+ multi: true,
23
+ },
24
+ ], usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SwitchValueAccessor, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: 'six-switch',
29
+ providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: SwitchValueAccessor,
33
+ multi: true,
34
+ },
35
+ ],
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
38
+ type: HostListener,
39
+ args: ['change', ['$event.target']]
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sLXZhbHVlLWFjY2Vzc29ycy9zd2l0Y2gtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVlqRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUNwRCxZQUFZLFFBQWtCLEVBQUUsRUFBYztRQUM1QyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxFQUF3QjtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRVEsVUFBVSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Z0hBYlUsbUJBQW1CO29HQUFuQixtQkFBbUIsNEdBUm5CO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJGQUVVLG1CQUFtQjtrQkFWL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCOzRCQUNoQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc2l4LXN3aXRjaCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFN3aXRjaFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUNoYW5nZUV2ZW50KGVsOiBIVE1MU2l4U3dpdGNoRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoZWwsIGVsLmNoZWNrZWQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB2YWx1ZSA9PT0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { Directive, HostListener } 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 TextValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleInputEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ }
13
+ TextValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TextValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ TextValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TextValueAccessor, selector: "six-input:not([type=number]),six-textarea", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: TextValueAccessor,
18
+ multi: true,
19
+ },
20
+ ], usesInheritance: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TextValueAccessor, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'six-input:not([type=number]),six-textarea',
25
+ providers: [
26
+ {
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: TextValueAccessor,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
34
+ type: HostListener,
35
+ args: ['input', ['$event.target']]
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMvdGV4dC12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWpELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELGdCQUFnQixDQUFDLEVBQXVCO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OzhHQVJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlJQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSxpQkFBaUI7a0JBVjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJDQUEyQztvQkFDckQsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NpeC1pbnB1dDpub3QoW3R5cGU9bnVtYmVyXSksc2l4LXRleHRhcmVhJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogVGV4dFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0VmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUlucHV0RXZlbnQoZWw6IEhUTUxTaXhJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Directive, HostListener } 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 TimepickerValueAccessor extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ handleChangeEvent(el) {
10
+ this.handleValueChange(el, el.value);
11
+ }
12
+ }
13
+ TimepickerValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimepickerValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ TimepickerValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TimepickerValueAccessor, selector: "six-timepicker", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: TimepickerValueAccessor,
18
+ multi: true,
19
+ },
20
+ ], usesInheritance: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimepickerValueAccessor, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'six-timepicker',
25
+ providers: [
26
+ {
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: TimepickerValueAccessor,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
34
+ type: HostListener,
35
+ args: ['change', ['$event.target']]
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMvdGltZXBpY2tlci12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWpELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBQ3hELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELGlCQUFpQixDQUFDLEVBQTRCO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O29IQVJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGdIQVJ2QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsdUJBQXVCO1lBQ3BDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSx1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcseUJBQXlCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc2l4LXRpbWVwaWNrZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBUaW1lcGlja2VyVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVwaWNrZXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUNoYW5nZUV2ZW50KGVsOiBIVE1MU2l4VGltZXBpY2tlckVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,143 @@
1
+ import { Directive, HostListener, inject } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { ValidationMessagesService } from '../services/validation-messages.service';
4
+ import * as i0 from "@angular/core";
5
+ export class ValueAccessor {
6
+ constructor(injector, el) {
7
+ this.injector = injector;
8
+ this.el = el;
9
+ this.validationMessagesService = inject(ValidationMessagesService);
10
+ this.onChange = () => { };
11
+ this.onTouched = () => { };
12
+ }
13
+ registerOnChange(fn) {
14
+ this.onChange = fn;
15
+ }
16
+ registerOnTouched(fn) {
17
+ this.onTouched = fn;
18
+ }
19
+ writeValue(value) {
20
+ this.el.nativeElement.value = value;
21
+ this.updateValidation();
22
+ }
23
+ /**
24
+ * Notifies the ControlValueAccessor of a change in the value of the control.
25
+ *
26
+ * This is called by each of the ValueAccessor directives when we want to update
27
+ * the status and validity of the form control. For example with text components this
28
+ * is called when the input event is fired. For select components this is called
29
+ * when the change event is fired.
30
+ *
31
+ * This also updates the form status on the element by setting the 'invalid' property to true/false.
32
+ *
33
+ * @param el The component element.
34
+ * @param value The new value of the control.
35
+ */
36
+ handleValueChange(el, value) {
37
+ if (el === this.el.nativeElement) {
38
+ this.onChange(value);
39
+ this.updateValidation();
40
+ }
41
+ }
42
+ _handleBlurEvent(el) {
43
+ if (el === this.el.nativeElement) {
44
+ this.onTouched();
45
+ this.updateValidation();
46
+ }
47
+ }
48
+ updateValidation() {
49
+ nextTick(() => {
50
+ if (this.ngControl?.control == null)
51
+ return;
52
+ const element = this.el.nativeElement;
53
+ const control = this.ngControl?.control;
54
+ const invalid = !control.valid && control.dirty && control.touched;
55
+ let errorText;
56
+ if (invalid) {
57
+ errorText = this.initialErrorText || this.getErrorText(control);
58
+ }
59
+ element.invalid = invalid;
60
+ element.errorText = errorText ?? '';
61
+ });
62
+ }
63
+ setDisabledState(isDisabled) {
64
+ this.el.nativeElement.disabled = isDisabled;
65
+ }
66
+ ngOnDestroy() {
67
+ if (this.statusChanges) {
68
+ this.statusChanges.unsubscribe();
69
+ }
70
+ }
71
+ ngAfterViewInit() {
72
+ this.initialErrorText = this.el.nativeElement?.errorText?.trim() || undefined;
73
+ try {
74
+ this.ngControl = this.injector.get(NgControl);
75
+ }
76
+ catch {
77
+ /* No FormControl or ngModel binding */
78
+ }
79
+ if (!this.ngControl) {
80
+ return;
81
+ }
82
+ // Listen for changes in validity, disabled, or pending states
83
+ if (this.ngControl.statusChanges) {
84
+ this.statusChanges = this.ngControl.statusChanges.subscribe(() => this.updateValidation());
85
+ }
86
+ /**
87
+ * TODO FW-2787: Remove this in favor of https://github.com/angular/angular/issues/10887
88
+ * whenever it is implemented.
89
+ */
90
+ const formControl = this.ngControl.control;
91
+ if (formControl) {
92
+ const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];
93
+ methodsToPatch.forEach((method) => {
94
+ if (typeof formControl[method] !== 'undefined') {
95
+ const oldFn = formControl[method].bind(formControl);
96
+ formControl[method] = (...params) => {
97
+ oldFn(...params);
98
+ this.updateValidation();
99
+ };
100
+ }
101
+ });
102
+ }
103
+ }
104
+ getErrorText(control) {
105
+ if (control.errors == null) {
106
+ console.warn('no errors for invalid control', control);
107
+ return '';
108
+ }
109
+ const firstError = Object.entries(control.errors).at(0);
110
+ if (firstError == null) {
111
+ console.warn('no errors for invalid control', control);
112
+ return '';
113
+ }
114
+ const [key, value] = firstError;
115
+ return (this.validationMessagesService.getErrorMessage(getLanguage(), { key: key, ...value }) ?? key);
116
+ }
117
+ }
118
+ ValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
119
+ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ValueAccessor, host: { listeners: { "blur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValueAccessor, decorators: [{
121
+ type: Directive
122
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
123
+ type: HostListener,
124
+ args: ['blur', ['$event.target']]
125
+ }] } });
126
+ function getLanguage() {
127
+ const languages = ['de', 'fr', 'it', 'en'];
128
+ const documentLang = document.documentElement.lang;
129
+ if (languages.includes(documentLang)) {
130
+ return documentLang;
131
+ }
132
+ return 'de';
133
+ }
134
+ const nextTick = (h) => {
135
+ if (typeof __zone_symbol__requestAnimationFrame === 'function') {
136
+ return __zone_symbol__requestAnimationFrame(h);
137
+ }
138
+ if (typeof requestAnimationFrame === 'function') {
139
+ return requestAnimationFrame(h);
140
+ }
141
+ return setTimeout(h);
142
+ };
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL3ZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBeUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBR3BGLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQXNCLFFBQWtCLEVBQVksRUFBYztRQUE1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVksT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUYxRCw4QkFBeUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUk5RCxhQUFRLEdBQXlCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBSDRCLENBQUM7SUFJdEUsZ0JBQWdCLENBQUMsRUFBd0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILGlCQUFpQixDQUFDLEVBQWUsRUFBRSxLQUFVO1FBQzNDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENB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L0QsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBSUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQU8sRUFBRTtJQUMvQixJQUFJLE9BQU8sb0NBQW9DLEtBQUssVUFBVSxFQUFFO1FBQzlELE9BQU8sb0NBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEQ7SUFDRCxJQUFJLE9BQU8scUJBQXFCLEtBQUssVUFBVSxFQUFFO1FBQy9DLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakM7SUFDRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExhbmd1YWdlLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0dXNDaGFuZ2VzPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG5nQ29udHJvbD86IE5nQ29udHJvbDtcbiAgcHJpdmF0ZSBpbml0aWFsRXJyb3JUZXh0Pzogc3RyaW5nO1xuICBwcml2YXRlIHZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UgPSBpbmplY3QoVmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvciwgcHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBvZiBhIGNoYW5nZSBpbiB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wuXG4gICAqXG4gICAqIFRoaXMgaXMgY2FsbGVkIGJ5IGVhY2ggb2YgdGhlIFZhbHVlQWNjZXNzb3IgZGlyZWN0aXZlcyB3aGVuIHdlIHdhbnQgdG8gdXBkYXRlXG4gICAqIHRoZSBzdGF0dXMgYW5kIHZhbGlkaXR5IG9mIHRoZSBmb3JtIGNvbnRyb2wuIEZvciBleGFtcGxlIHdpdGggdGV4dCBjb21wb25lbnRzIHRoaXNcbiAgICogaXMgY2FsbGVkIHdoZW4gdGhlIGlucHV0IGV2ZW50IGlzIGZpcmVkLiBGb3Igc2VsZWN0IGNvbXBvbmVudHMgdGhpcyBpcyBjYWxsZWRcbiAgICogd2hlbiB0aGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkLlxuICAgKlxuICAgKiBUaGlzIGFsc28gdXBkYXRlcyB0aGUgZm9ybSBzdGF0dXMgb24gdGhlIGVsZW1lbnQgYnkgc2V0dGluZyB0aGUgJ2ludmFsaWQnIHByb3BlcnR5IHRvIHRydWUvZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBlbCBUaGUgY29tcG9uZW50IGVsZW1lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBjb250cm9sLlxuICAgKi9cbiAgaGFuZGxlVmFsdWVDaGFuZ2UoZWw6IEhUTUxFbGVtZW50LCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKGVsID09PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50LnRhcmdldCddKVxuICBfaGFuZGxlQmx1ckV2ZW50KGVsOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZWwgPT09IHRoaXMuZWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVZhbGlkYXRpb24oKSB7XG4gICAgbmV4dFRpY2soKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sID09IG51bGwpIHJldHVybjtcblxuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MU2l4SW5wdXRFbGVtZW50O1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sO1xuXG4gICAgICBjb25zdCBpbnZhbGlkID0gIWNvbnRyb2wudmFsaWQgJiYgY29udHJvbC5kaXJ0eSAmJiBjb250cm9sLnRvdWNoZWQ7XG4gICAgICBsZXQgZXJyb3JUZXh0O1xuICAgICAgaWYgKGludmFsaWQpIHtcbiAgICAgICAgZXJyb3JUZXh0ID0gdGhpcy5pbml0aWFsRXJyb3JUZXh0IHx8IHRoaXMuZ2V0RXJyb3JUZXh0KGNvbnRyb2wpO1xuICAgICAgfVxuICAgICAgZWxlbWVudC5pbnZhbGlkID0gaW52YWxpZDtcbiAgICAgIGVsZW1lbnQuZXJyb3JUZXh0ID0gZXJyb3JUZXh0ID8/ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxFcnJvclRleHQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmVycm9yVGV4dD8udHJpbSgpIHx8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldDxOZ0NvbnRyb2w+KE5nQ29udHJvbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBObyBGb3JtQ29udHJvbCBvciBuZ01vZGVsIGJpbmRpbmcgKi9cbiAgICB9XG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgY2hhbmdlcyBpbiB2YWxpZGl0eSwgZGlzYWJsZWQsIG9yIHBlbmRpbmcgc3RhdGVzXG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcyA9IHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVmFsaWRhdGlvbigpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUT0RPIEZXLTI3ODc6IFJlbW92ZSB0aGlzIGluIGZhdm9yIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEwODg3XG4gICAgICogd2hlbmV2ZXIgaXQgaXMgaW1wbGVtZW50ZWQuXG4gICAgICovXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIGFueTtcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IG1ldGhvZHNUb1BhdGNoID0gWydtYXJrQXNUb3VjaGVkJywgJ21hcmtBbGxBc1RvdWNoZWQnLCAnbWFya0FzVW50b3VjaGVkJywgJ21hcmtBc0RpcnR5JywgJ21hcmtBc1ByaXN0aW5lJ107XG4gICAgICBtZXRob2RzVG9QYXRjaC5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtQ29udHJvbFttZXRob2RdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9sZEZuID0gZm9ybUNvbnRyb2xbbWV0aG9kXS5iaW5kKGZvcm1Db250cm9sKTtcbiAgICAgICAgICBmb3JtQ29udHJvbFttZXRob2RdID0gKC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIG9sZEZuKC4uLnBhcmFtcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRFcnJvclRleHQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogc3RyaW5nIHtcbiAgICBpZiAoY29udHJvbC5lcnJvcnMgPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKCdubyBlcnJvcnMgZm9yIGludmFsaWQgY29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0RXJyb3IgPSBPYmplY3QuZW50cmllcyhjb250cm9sLmVycm9ycykuYXQoMCk7XG4gICAgaWYgKGZpcnN0RXJyb3IgPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKCdubyBlcnJvcnMgZm9yIGludmFsaWQgY29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGZpcnN0RXJyb3I7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZ2V0TGFuZ3VhZ2UoKSwgeyBrZXk6IGtleSwgLi4udmFsdWUgfSBhcyBWYWxpZGF0aW9uRXJyb3IpID8/IGtleVxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UoKTogTGFuZ3VhZ2Uge1xuICBjb25zdCBsYW5ndWFnZXM6IExhbmd1YWdlW10gPSBbJ2RlJywgJ2ZyJywgJ2l0JywgJ2VuJ107XG4gIGNvbnN0IGRvY3VtZW50TGFuZyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nIGFzIExhbmd1YWdlO1xuICBpZiAobGFuZ3VhZ2VzLmluY2x1ZGVzKGRvY3VtZW50TGFuZykpIHtcbiAgICByZXR1cm4gZG9jdW1lbnRMYW5nO1xuICB9XG4gIHJldHVybiAnZGUnO1xufVxuXG5kZWNsYXJlIGNvbnN0IF9fem9uZV9zeW1ib2xfX3JlcXVlc3RBbmltYXRpb25GcmFtZTogYW55O1xuZGVjbGFyZSBjb25zdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IGFueTtcbmNvbnN0IG5leHRUaWNrID0gKGg6IGFueSk6IGFueSA9PiB7XG4gIGlmICh0eXBlb2YgX196b25lX3N5bWJvbF9fcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIF9fem9uZV9zeW1ib2xfX3JlcXVlc3RBbmltYXRpb25GcmFtZShoKTtcbiAgfVxuICBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaCk7XG4gIH1cbiAgcmV0dXJuIHNldFRpbWVvdXQoaCk7XG59O1xuIl19