@six-group/ui-library-angular 0.0.0-insider.f272114 → 0.0.0-insider.f63f424

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 (54) hide show
  1. package/esm2022/lib/control-value-accessors/checkbox-value-accessor.mjs +41 -0
  2. package/esm2022/lib/control-value-accessors/date-value-accessor.mjs +41 -0
  3. package/esm2022/lib/control-value-accessors/datepicker-value-accessor.mjs +37 -0
  4. package/esm2022/lib/control-value-accessors/numeric-value-accessor.mjs +42 -0
  5. package/{esm2020 → esm2022}/lib/control-value-accessors/radio-value-accessor.mjs +10 -10
  6. package/{esm2020 → esm2022}/lib/control-value-accessors/range-value-accessor.mjs +10 -10
  7. package/esm2022/lib/control-value-accessors/select-value-accessor.mjs +37 -0
  8. package/esm2022/lib/control-value-accessors/switch-value-accessor.mjs +41 -0
  9. package/esm2022/lib/control-value-accessors/text-value-accessor.mjs +37 -0
  10. package/esm2022/lib/control-value-accessors/timepicker-value-accessor.mjs +37 -0
  11. package/esm2022/lib/control-value-accessors/value-accessor.mjs +138 -0
  12. package/esm2022/lib/form/six-form.directive.mjs +134 -0
  13. package/esm2022/lib/link/six-router-link.directive.mjs +61 -0
  14. package/esm2022/lib/services/alert.service.mjs +21 -0
  15. package/{esm2020 → esm2022}/lib/services/validation-messages.service.mjs +4 -4
  16. package/esm2022/lib/sidebar/active-sidebar.directive.mjs +110 -0
  17. package/esm2022/lib/stencil-generated/angular-component-lib/utils.mjs +59 -0
  18. package/esm2022/lib/stencil-generated/components.mjs +1414 -0
  19. package/esm2022/lib/stencil-generated/index.mjs +61 -0
  20. package/esm2022/lib/ui-library-angular.module.mjs +169 -0
  21. package/esm2022/lib/validators/six-ui-library-validators.mjs +203 -0
  22. package/esm2022/public-api.mjs +31 -0
  23. package/{fesm2020 → fesm2022}/six-group-ui-library-angular.mjs +824 -379
  24. package/fesm2022/six-group-ui-library-angular.mjs.map +1 -0
  25. package/lib/control-value-accessors/date-value-accessor.d.ts +10 -0
  26. package/lib/control-value-accessors/radio-value-accessor.d.ts +1 -1
  27. package/lib/link/six-router-link.directive.d.ts +26 -0
  28. package/lib/services/alert.service.d.ts +11 -0
  29. package/lib/sidebar/active-sidebar.directive.d.ts +59 -0
  30. package/lib/stencil-generated/components.d.ts +101 -88
  31. package/lib/stencil-generated/index.d.ts +1 -1
  32. package/lib/ui-library-angular.module.d.ts +11 -8
  33. package/lib/validators/six-ui-library-validators.d.ts +34 -7
  34. package/package.json +15 -13
  35. package/public-api.d.ts +4 -0
  36. package/esm2020/lib/control-value-accessors/checkbox-value-accessor.mjs +0 -41
  37. package/esm2020/lib/control-value-accessors/datepicker-value-accessor.mjs +0 -37
  38. package/esm2020/lib/control-value-accessors/numeric-value-accessor.mjs +0 -42
  39. package/esm2020/lib/control-value-accessors/select-value-accessor.mjs +0 -37
  40. package/esm2020/lib/control-value-accessors/switch-value-accessor.mjs +0 -41
  41. package/esm2020/lib/control-value-accessors/text-value-accessor.mjs +0 -37
  42. package/esm2020/lib/control-value-accessors/timepicker-value-accessor.mjs +0 -37
  43. package/esm2020/lib/control-value-accessors/value-accessor.mjs +0 -145
  44. package/esm2020/lib/form/six-form.directive.mjs +0 -134
  45. package/esm2020/lib/stencil-generated/angular-component-lib/utils.mjs +0 -51
  46. package/esm2020/lib/stencil-generated/components.mjs +0 -1372
  47. package/esm2020/lib/stencil-generated/index.mjs +0 -57
  48. package/esm2020/lib/ui-library-angular.module.mjs +0 -127
  49. package/esm2020/lib/validators/six-ui-library-validators.mjs +0 -116
  50. package/esm2020/public-api.mjs +0 -25
  51. package/fesm2015/six-group-ui-library-angular.mjs +0 -2287
  52. package/fesm2015/six-group-ui-library-angular.mjs.map +0 -1
  53. package/fesm2020/six-group-ui-library-angular.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/six-group-ui-library-angular.mjs +0 -0
@@ -1,145 +0,0 @@
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 errorTexts;
56
- if (invalid) {
57
- errorTexts = this.initialErrorText || this.getErrorTexts(control);
58
- }
59
- element.invalid = invalid;
60
- element.errorText = errorTexts ?? '';
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
- getErrorTexts(control) {
105
- if (control.errors == null) {
106
- console.warn('no errors for invalid control', control);
107
- return [];
108
- }
109
- const errorList = Object.entries(control.errors);
110
- if (errorList.length <= 0) {
111
- console.warn('no errors for invalid control', control);
112
- return [];
113
- }
114
- return errorList.map((error) => {
115
- const [key, value] = error;
116
- return (this.validationMessagesService.getErrorMessage(getLanguage(), { key: key, ...value }) ?? key);
117
- });
118
- }
119
- }
120
- 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 });
121
- ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ValueAccessor, host: { listeners: { "blur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValueAccessor, decorators: [{
123
- type: Directive
124
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
125
- type: HostListener,
126
- args: ['blur', ['$event.target']]
127
- }] } });
128
- function getLanguage() {
129
- const languages = ['de', 'fr', 'it', 'en'];
130
- const documentLang = document.documentElement.lang;
131
- if (languages.includes(documentLang)) {
132
- return documentLang;
133
- }
134
- return 'de';
135
- }
136
- const nextTick = (h) => {
137
- if (typeof __zone_symbol__requestAnimationFrame === 'function') {
138
- return __zone_symbol__requestAnimationFrame(h);
139
- }
140
- if (typeof requestAnimationFrame === 'function') {
141
- return requestAnimationFrame(h);
142
- }
143
- return setTimeout(h);
144
- };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL3ZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBeUMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBR3BGLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQXNCLFFBQWtCLEVBQVksRUFBYztRQUE1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVksT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUYxRCw4QkFBeUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUk5RCxhQUFRLEdBQXlCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBSDRCLENBQUM7SUFJdEUsZ0JBQWdCLENBQUMsRUFBd0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILGlCQUFpQixDQUFDLEVBQWUsRUFBRSxLQUFVO1FBQzNDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENB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O0lBQ3ZELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBZ0IsQ0FBQztJQUMvRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDcEMsT0FBTyxZQUFZLENBQUM7S0FDckI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFJRCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQU0sRUFBTyxFQUFFO0lBQy9CLElBQUksT0FBTyxvQ0FBb0MsS0FBSyxVQUFVLEVBQUU7UUFDOUQsT0FBTyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNoRDtJQUNELElBQUksT0FBTyxxQkFBcUIsS0FBSyxVQUFVLEVBQUU7UUFDL0MsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQztJQUNELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2UsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFsaWRhdGlvbi1tZXNzYWdlcy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXR1c0NoYW5nZXM/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbmdDb250cm9sPzogTmdDb250cm9sO1xuICBwcml2YXRlIGluaXRpYWxFcnJvclRleHQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgdmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSA9IGluamVjdChWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLCBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG9mIGEgY2hhbmdlIGluIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbC5cbiAgICpcbiAgICogVGhpcyBpcyBjYWxsZWQgYnkgZWFjaCBvZiB0aGUgVmFsdWVBY2Nlc3NvciBkaXJlY3RpdmVzIHdoZW4gd2Ugd2FudCB0byB1cGRhdGVcbiAgICogdGhlIHN0YXR1cyBhbmQgdmFsaWRpdHkgb2YgdGhlIGZvcm0gY29udHJvbC4gRm9yIGV4YW1wbGUgd2l0aCB0ZXh0IGNvbXBvbmVudHMgdGhpc1xuICAgKiBpcyBjYWxsZWQgd2hlbiB0aGUgaW5wdXQgZXZlbnQgaXMgZmlyZWQuIEZvciBzZWxlY3QgY29tcG9uZW50cyB0aGlzIGlzIGNhbGxlZFxuICAgKiB3aGVuIHRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQuXG4gICAqXG4gICAqIFRoaXMgYWxzbyB1cGRhdGVzIHRoZSBmb3JtIHN0YXR1cyBvbiB0aGUgZWxlbWVudCBieSBzZXR0aW5nIHRoZSAnaW52YWxpZCcgcHJvcGVydHkgdG8gdHJ1ZS9mYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIGVsIFRoZSBjb21wb25lbnQgZWxlbWVudC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBoYW5kbGVWYWx1ZUNoYW5nZShlbDogSFRNTEVsZW1lbnQsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZWwgPT09IHRoaXMuZWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIF9oYW5kbGVCbHVyRXZlbnQoZWw6IGFueSk6IHZvaWQge1xuICAgIGlmIChlbCA9PT0gdGhpcy5lbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVmFsaWRhdGlvbigpIHtcbiAgICBuZXh0VGljaygoKSA9PiB7XG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxTaXhJbnB1dEVsZW1lbnQ7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w7XG5cbiAgICAgIGNvbnN0IGludmFsaWQgPSAhY29udHJvbC52YWxpZCAmJiBjb250cm9sLmRpcnR5ICYmIGNvbnRyb2wudG91Y2hlZDtcbiAgICAgIGxldCBlcnJvclRleHRzO1xuICAgICAgaWYgKGludmFsaWQpIHtcbiAgICAgICAgZXJyb3JUZXh0cyA9IHRoaXMuaW5pdGlhbEVycm9yVGV4dCB8fCB0aGlzLmdldEVycm9yVGV4dHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgICBlbGVtZW50LmludmFsaWQgPSBpbnZhbGlkO1xuICAgICAgZWxlbWVudC5lcnJvclRleHQgPSBlcnJvclRleHRzID8/ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxFcnJvclRleHQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmVycm9yVGV4dD8udHJpbSgpIHx8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldDxOZ0NvbnRyb2w+KE5nQ29udHJvbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBObyBGb3JtQ29udHJvbCBvciBuZ01vZGVsIGJpbmRpbmcgKi9cbiAgICB9XG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgY2hhbmdlcyBpbiB2YWxpZGl0eSwgZGlzYWJsZWQsIG9yIHBlbmRpbmcgc3RhdGVzXG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcyA9IHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVmFsaWRhdGlvbigpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUT0RPIEZXLTI3ODc6IFJlbW92ZSB0aGlzIGluIGZhdm9yIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEwODg3XG4gICAgICogd2hlbmV2ZXIgaXQgaXMgaW1wbGVtZW50ZWQuXG4gICAgICovXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIGFueTtcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IG1ldGhvZHNUb1BhdGNoID0gWydtYXJrQXNUb3VjaGVkJywgJ21hcmtBbGxBc1RvdWNoZWQnLCAnbWFya0FzVW50b3VjaGVkJywgJ21hcmtBc0RpcnR5JywgJ21hcmtBc1ByaXN0aW5lJ107XG4gICAgICBtZXRob2RzVG9QYXRjaC5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtQ29udHJvbFttZXRob2RdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9sZEZuID0gZm9ybUNvbnRyb2xbbWV0aG9kXS5iaW5kKGZvcm1Db250cm9sKTtcbiAgICAgICAgICBmb3JtQ29udHJvbFttZXRob2RdID0gKC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIG9sZEZuKC4uLnBhcmFtcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRFcnJvclRleHRzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoY29udHJvbC5lcnJvcnMgPT0gbnVsbCkge1xuICAgICAgY29uc29sZS53YXJuKCdubyBlcnJvcnMgZm9yIGludmFsaWQgY29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yTGlzdCA9IE9iamVjdC5lbnRyaWVzKGNvbnRyb2wuZXJyb3JzKTtcbiAgICBpZiAoZXJyb3JMaXN0Lmxlbmd0aCA8PSAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ25vIGVycm9ycyBmb3IgaW52YWxpZCBjb250cm9sJywgY29udHJvbCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9yTGlzdC5tYXAoKGVycm9yKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBlcnJvcjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZ2V0TGFuZ3VhZ2UoKSwgeyBrZXk6IGtleSwgLi4udmFsdWUgfSBhcyBWYWxpZGF0aW9uRXJyb3IpID8/IGtleVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRMYW5ndWFnZSgpOiBMYW5ndWFnZSB7XG4gIGNvbnN0IGxhbmd1YWdlczogTGFuZ3VhZ2VbXSA9IFsnZGUnLCAnZnInLCAnaXQnLCAnZW4nXTtcbiAgY29uc3QgZG9jdW1lbnRMYW5nID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgYXMgTGFuZ3VhZ2U7XG4gIGlmIChsYW5ndWFnZXMuaW5jbHVkZXMoZG9jdW1lbnRMYW5nKSkge1xuICAgIHJldHVybiBkb2N1bWVudExhbmc7XG4gIH1cbiAgcmV0dXJuICdkZSc7XG59XG5cbmRlY2xhcmUgY29uc3QgX196b25lX3N5bWJvbF9fcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBhbnk7XG5kZWNsYXJlIGNvbnN0IHJlcXVlc3RBbmltYXRpb25GcmFtZTogYW55O1xuY29uc3QgbmV4dFRpY2sgPSAoaDogYW55KTogYW55ID0+IHtcbiAgaWYgKHR5cGVvZiBfX3pvbmVfc3ltYm9sX19yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gX196b25lX3N5bWJvbF9fcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGgpO1xuICB9XG4gIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShoKTtcbiAgfVxuICByZXR1cm4gc2V0VGltZW91dChoKTtcbn07XG4iXX0=
@@ -1,134 +0,0 @@
1
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- /**
6
- * This directive intercepts the ngSubmit event of an Angular form and introduces
7
- * a supplementary event named sixSubmit. The sixSubmit event is triggered exclusively
8
- * when the form is valid. In cases where the form is considered invalid, this directive
9
- * takes proactive actions by marking all form controls as touched and dirty. Additionally,
10
- * it shifts the focus to the initial invalid form element, facilitating quick error
11
- * resolution.
12
- *
13
- * To utilize this directive, apply it to an Angular form.
14
- * ```html
15
- * <form [formGroup]="form" sixForm (sixSubmit)="onSubmit($event)">
16
- * <!-- form content -->
17
- * </form>
18
- * ```
19
- *
20
- * For users needing greater flexibility in determining when error messages are displayed,
21
- * or for those who prefer not to rely solely on the form submission event,
22
- * an alternative is to use the SixFormUtilDirective.
23
- */
24
- export class SixFormDirective {
25
- onNgSubmit(event) {
26
- if (this.formGroupDirective.invalid) {
27
- focusInvalidField(this.formGroupDirective, this.elementRef);
28
- }
29
- else {
30
- this.sixSubmit.emit(event);
31
- }
32
- }
33
- constructor(elementRef, formGroupDirective) {
34
- this.elementRef = elementRef;
35
- this.formGroupDirective = formGroupDirective;
36
- /**
37
- * Emits an event when the form is valid and the form submission has been triggered.
38
- */
39
- this.sixSubmit = new EventEmitter();
40
- }
41
- }
42
- SixFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormDirective, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Directive });
43
- SixFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SixFormDirective, selector: "form[sixForm]", outputs: { sixSubmit: "sixSubmit" }, host: { listeners: { "ngSubmit": "onNgSubmit($event)" } }, ngImport: i0 });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormDirective, decorators: [{
45
- type: Directive,
46
- args: [{
47
- selector: 'form[sixForm]',
48
- }]
49
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormGroupDirective }]; }, propDecorators: { sixSubmit: [{
50
- type: Output
51
- }], onNgSubmit: [{
52
- type: HostListener,
53
- args: ['ngSubmit', ['$event']]
54
- }] } });
55
- /**
56
- * This directive provides a utility method, that marks all form controls
57
- * as touched and dirty, and focuses the first invalid form element.
58
- *
59
- * To utilize this directive, apply it to an Angular form.
60
- * ```html
61
- * <form [formGroup]="form" sixFormUtil (ngSubmit)="onSubmit($event)">
62
- * <!-- form content -->
63
- * </form>
64
- * ```
65
- *
66
- * Then, get a reference to the directive and invoke `focusInvalidField()` if the
67
- * form is invalid:
68
- * ```ts
69
- * @ViewChild(SixFormUtilDirective) sixFormUtil!: SixFormUtilDirective;
70
- * // ...
71
- * onSubmit() {
72
- * if (this.form.invalid) {
73
- * this.sixFormUtil.focusInvalidField();
74
- * } else {
75
- * // ...
76
- * }
77
- * }
78
- * ```
79
- */
80
- export class SixFormUtilDirective {
81
- constructor(elementRef, formGroupDirective) {
82
- this.elementRef = elementRef;
83
- this.formGroupDirective = formGroupDirective;
84
- }
85
- /** markAllControlsAsDirty(Object.values(formGroup.controls));
86
- * Marks all form controls as touched and dirty, and focuses the first
87
- * invalid form element.
88
- */
89
- focusInvalidField() {
90
- focusInvalidField(this.formGroupDirective, this.elementRef);
91
- }
92
- }
93
- SixFormUtilDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormUtilDirective, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Directive });
94
- SixFormUtilDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SixFormUtilDirective, selector: "[sixFormUtil]", ngImport: i0 });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormUtilDirective, decorators: [{
96
- type: Directive,
97
- args: [{
98
- selector: '[sixFormUtil]',
99
- }]
100
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormGroupDirective }]; } });
101
- function focusInvalidField(formGroupDirective, formElement) {
102
- formGroupDirective.form.markAllAsTouched();
103
- markAllAsDirty([formGroupDirective.form]);
104
- const invalidElement = getInvalidElement(formElement.nativeElement);
105
- if ('setFocus' in invalidElement && typeof invalidElement?.setFocus === 'function') {
106
- invalidElement.setFocus();
107
- }
108
- if ('focus' in invalidElement && typeof invalidElement?.focus === 'function') {
109
- invalidElement.focus();
110
- }
111
- }
112
- function getInvalidElement(parent) {
113
- const invalidElement = parent.querySelector('.ng-invalid');
114
- if (invalidElement == null) {
115
- return parent;
116
- }
117
- return getInvalidElement(invalidElement);
118
- }
119
- function markAllAsDirty(controls) {
120
- controls.forEach((control) => {
121
- if (control instanceof FormControl) {
122
- control.markAsDirty({ onlySelf: true });
123
- }
124
- else if (control instanceof FormGroup) {
125
- control.markAsDirty({ onlySelf: true });
126
- markAllAsDirty(Object.values(control.controls));
127
- }
128
- else if (control instanceof FormArray) {
129
- control.markAsDirty({ onlySelf: true });
130
- markAllAsDirty(control.controls);
131
- }
132
- });
133
- }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l4LWZvcm0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mb3JtL3NpeC1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV4Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixVQUFVLENBQUMsS0FBa0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFO1lBQ25DLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDN0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELFlBQW9CLFVBQW1DLEVBQVUsa0JBQXNDO1FBQW5GLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWR2Rzs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0lBV29ELENBQUM7OzZHQWZoRyxnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtrSUFLVyxTQUFTO3NCQUFsQixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBWXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLFVBQW1DLEVBQVUsa0JBQXNDO1FBQW5GLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFM0c7OztPQUdHO0lBQ0ksaUJBQWlCO1FBQ3RCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7aUhBVFUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7O0FBYUQsU0FBUyxpQkFBaUIsQ0FBQyxrQkFBc0MsRUFBRSxXQUFvQztJQUNyRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMzQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxJQUFJLFVBQVUsSUFBSSxjQUFjLElBQUksT0FBTyxjQUFjLEVBQUUsUUFBUSxLQUFLLFVBQVUsRUFBRTtRQUNsRixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDM0I7SUFDRCxJQUFJLE9BQU8sSUFBSSxjQUFjLElBQUksT0FBTyxjQUFjLEVBQUUsS0FBSyxLQUFLLFVBQVUsRUFBRTtRQUM1RSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxNQUFlO0lBQ3hDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsSUFBSSxjQUFjLElBQUksSUFBSSxFQUFFO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxRQUEyQjtJQUNqRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDM0IsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN6QzthQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtZQUN2QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDeEMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDdkMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgaW50ZXJjZXB0cyB0aGUgbmdTdWJtaXQgZXZlbnQgb2YgYW4gQW5ndWxhciBmb3JtIGFuZCBpbnRyb2R1Y2VzXG4gKiBhIHN1cHBsZW1lbnRhcnkgZXZlbnQgbmFtZWQgc2l4U3VibWl0LiBUaGUgc2l4U3VibWl0IGV2ZW50IGlzIHRyaWdnZXJlZCBleGNsdXNpdmVseVxuICogd2hlbiB0aGUgZm9ybSBpcyB2YWxpZC4gSW4gY2FzZXMgd2hlcmUgdGhlIGZvcm0gaXMgY29uc2lkZXJlZCBpbnZhbGlkLCB0aGlzIGRpcmVjdGl2ZVxuICogdGFrZXMgcHJvYWN0aXZlIGFjdGlvbnMgYnkgbWFya2luZyBhbGwgZm9ybSBjb250cm9scyBhcyB0b3VjaGVkIGFuZCBkaXJ0eS4gQWRkaXRpb25hbGx5LFxuICogaXQgc2hpZnRzIHRoZSBmb2N1cyB0byB0aGUgaW5pdGlhbCBpbnZhbGlkIGZvcm0gZWxlbWVudCwgZmFjaWxpdGF0aW5nIHF1aWNrIGVycm9yXG4gKiByZXNvbHV0aW9uLlxuICpcbiAqIFRvIHV0aWxpemUgdGhpcyBkaXJlY3RpdmUsIGFwcGx5IGl0IHRvIGFuIEFuZ3VsYXIgZm9ybS5cbiAqIGBgYGh0bWxcbiAqIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIHNpeEZvcm0gKHNpeFN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gKiAgIDwhLS0gZm9ybSBjb250ZW50IC0tPlxuICogPC9mb3JtPlxuICogYGBgXG4gKlxuICogRm9yIHVzZXJzIG5lZWRpbmcgZ3JlYXRlciBmbGV4aWJpbGl0eSBpbiBkZXRlcm1pbmluZyB3aGVuIGVycm9yIG1lc3NhZ2VzIGFyZSBkaXNwbGF5ZWQsXG4gKiBvciBmb3IgdGhvc2Ugd2hvIHByZWZlciBub3QgdG8gcmVseSBzb2xlbHkgb24gdGhlIGZvcm0gc3VibWlzc2lvbiBldmVudCxcbiAqIGFuIGFsdGVybmF0aXZlIGlzIHRvIHVzZSB0aGUgU2l4Rm9ybVV0aWxEaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Zvcm1bc2l4Rm9ybV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGb3JtRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGZvcm0gaXMgdmFsaWQgYW5kIHRoZSBmb3JtIHN1Ym1pc3Npb24gaGFzIGJlZW4gdHJpZ2dlcmVkLlxuICAgKi9cbiAgQE91dHB1dCgpIHNpeFN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VibWl0RXZlbnQ+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignbmdTdWJtaXQnLCBbJyRldmVudCddKVxuICBvbk5nU3VibWl0KGV2ZW50OiBTdWJtaXRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5pbnZhbGlkKSB7XG4gICAgICBmb2N1c0ludmFsaWRGaWVsZCh0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZSwgdGhpcy5lbGVtZW50UmVmKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaXhTdWJtaXQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSkge31cbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHV0aWxpdHkgbWV0aG9kLCB0aGF0IG1hcmtzIGFsbCBmb3JtIGNvbnRyb2xzXG4gKiBhcyB0b3VjaGVkIGFuZCBkaXJ0eSwgYW5kIGZvY3VzZXMgdGhlIGZpcnN0IGludmFsaWQgZm9ybSBlbGVtZW50LlxuICpcbiAqIFRvIHV0aWxpemUgdGhpcyBkaXJlY3RpdmUsIGFwcGx5IGl0IHRvIGFuIEFuZ3VsYXIgZm9ybS5cbiAqIGBgYGh0bWxcbiAqIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIHNpeEZvcm1VdGlsIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gKiAgIDwhLS0gZm9ybSBjb250ZW50IC0tPlxuICogPC9mb3JtPlxuICogYGBgXG4gKlxuICogVGhlbiwgZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBkaXJlY3RpdmUgYW5kIGludm9rZSBgZm9jdXNJbnZhbGlkRmllbGQoKWAgaWYgdGhlXG4gKiBmb3JtIGlzIGludmFsaWQ6XG4gKiBgYGB0c1xuICogQFZpZXdDaGlsZChTaXhGb3JtVXRpbERpcmVjdGl2ZSkgc2l4Rm9ybVV0aWwhOiBTaXhGb3JtVXRpbERpcmVjdGl2ZTtcbiAqIC8vIC4uLlxuICogb25TdWJtaXQoKSB7XG4gKiAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICogICAgIHRoaXMuc2l4Rm9ybVV0aWwuZm9jdXNJbnZhbGlkRmllbGQoKTtcbiAqICAgfSBlbHNlIHtcbiAqICAgICAgLy8gLi4uXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2l4Rm9ybVV0aWxdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Rm9ybVV0aWxEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKSB7fVxuXG4gIC8qKiBtYXJrQWxsQ29udHJvbHNBc0RpcnR5KE9iamVjdC52YWx1ZXMoZm9ybUdyb3VwLmNvbnRyb2xzKSk7XG4gICAqIE1hcmtzIGFsbCBmb3JtIGNvbnRyb2xzIGFzIHRvdWNoZWQgYW5kIGRpcnR5LCBhbmQgZm9jdXNlcyB0aGUgZmlyc3RcbiAgICogaW52YWxpZCBmb3JtIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNJbnZhbGlkRmllbGQoKSB7XG4gICAgZm9jdXNJbnZhbGlkRmllbGQodGhpcy5mb3JtR3JvdXBEaXJlY3RpdmUsIHRoaXMuZWxlbWVudFJlZik7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9jdXNJbnZhbGlkRmllbGQoZm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUsIGZvcm1FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICBmb3JtR3JvdXBEaXJlY3RpdmUuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gIG1hcmtBbGxBc0RpcnR5KFtmb3JtR3JvdXBEaXJlY3RpdmUuZm9ybV0pO1xuXG4gIGNvbnN0IGludmFsaWRFbGVtZW50ID0gZ2V0SW52YWxpZEVsZW1lbnQoZm9ybUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIGlmICgnc2V0Rm9jdXMnIGluIGludmFsaWRFbGVtZW50ICYmIHR5cGVvZiBpbnZhbGlkRWxlbWVudD8uc2V0Rm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnZhbGlkRWxlbWVudC5zZXRGb2N1cygpO1xuICB9XG4gIGlmICgnZm9jdXMnIGluIGludmFsaWRFbGVtZW50ICYmIHR5cGVvZiBpbnZhbGlkRWxlbWVudD8uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnZhbGlkRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEludmFsaWRFbGVtZW50KHBhcmVudDogRWxlbWVudCk6IEVsZW1lbnQge1xuICBjb25zdCBpbnZhbGlkRWxlbWVudCA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKCcubmctaW52YWxpZCcpO1xuICBpZiAoaW52YWxpZEVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cbiAgcmV0dXJuIGdldEludmFsaWRFbGVtZW50KGludmFsaWRFbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gbWFya0FsbEFzRGlydHkoY29udHJvbHM6IEFic3RyYWN0Q29udHJvbFtdKTogdm9pZCB7XG4gIGNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICBtYXJrQWxsQXNEaXJ0eShPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIG1hcmtBbGxBc0RpcnR5KGNvbnRyb2wuY29udHJvbHMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -1,51 +0,0 @@
1
- /* eslint-disable */
2
- /* tslint:disable */
3
- import { fromEvent } from 'rxjs';
4
- export const proxyInputs = (Cmp, inputs) => {
5
- const Prototype = Cmp.prototype;
6
- inputs.forEach((item) => {
7
- Object.defineProperty(Prototype, item, {
8
- get() {
9
- return this.el[item];
10
- },
11
- set(val) {
12
- this.z.runOutsideAngular(() => (this.el[item] = val));
13
- },
14
- });
15
- });
16
- };
17
- export const proxyMethods = (Cmp, methods) => {
18
- const Prototype = Cmp.prototype;
19
- methods.forEach((methodName) => {
20
- Prototype[methodName] = function () {
21
- const args = arguments;
22
- return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
23
- };
24
- });
25
- };
26
- export const proxyOutputs = (instance, el, events) => {
27
- events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));
28
- };
29
- export const defineCustomElement = (tagName, customElement) => {
30
- if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {
31
- customElements.define(tagName, customElement);
32
- }
33
- };
34
- // tslint:disable-next-line: only-arrow-functions
35
- export function ProxyCmp(opts) {
36
- const decorator = function (cls) {
37
- const { defineCustomElementFn, inputs, methods } = opts;
38
- if (defineCustomElementFn !== undefined) {
39
- defineCustomElementFn();
40
- }
41
- if (inputs) {
42
- proxyInputs(cls, inputs);
43
- }
44
- if (methods) {
45
- proxyMethods(cls, methods);
46
- }
47
- return cls;
48
- };
49
- return decorator;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDckMsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFRO2dCQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM3QixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDdEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBTyxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxhQUFrQixFQUFFLEVBQUU7SUFDekUsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDeEcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDL0M7QUFDSCxDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUF5RTtJQUNoRyxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQVE7UUFDbEMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEQsSUFBSSxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDdkMscUJBQXFCLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBwcm94eUlucHV0cyA9IChDbXA6IGFueSwgaW5wdXRzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBQcm90b3R5cGUgPSBDbXAucHJvdG90eXBlO1xuICBpbnB1dHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm90b3R5cGUsIGl0ZW0sIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxbaXRlbV07XG4gICAgICB9LFxuICAgICAgc2V0KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuei5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiAodGhpcy5lbFtpdGVtXSA9IHZhbCkpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJveHlNZXRob2RzID0gKENtcDogYW55LCBtZXRob2RzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBQcm90b3R5cGUgPSBDbXAucHJvdG90eXBlO1xuICBtZXRob2RzLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBQcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIHRoaXMuei5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmVsW21ldGhvZE5hbWVdLmFwcGx5KHRoaXMuZWwsIGFyZ3MpKTtcbiAgICB9O1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm94eU91dHB1dHMgPSAoaW5zdGFuY2U6IGFueSwgZWw6IGFueSwgZXZlbnRzOiBzdHJpbmdbXSkgPT4ge1xuICBldmVudHMuZm9yRWFjaCgoZXZlbnROYW1lKSA9PiAoaW5zdGFuY2VbZXZlbnROYW1lXSA9IGZyb21FdmVudChlbCwgZXZlbnROYW1lKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUN1c3RvbUVsZW1lbnQgPSAodGFnTmFtZTogc3RyaW5nLCBjdXN0b21FbGVtZW50OiBhbnkpID0+IHtcbiAgaWYgKGN1c3RvbUVsZW1lbnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgY3VzdG9tRWxlbWVudCk7XG4gIH1cbn07XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBQcm94eUNtcChvcHRzOiB7IGRlZmluZUN1c3RvbUVsZW1lbnRGbj86ICgpID0+IHZvaWQ7IGlucHV0cz86IGFueTsgbWV0aG9kcz86IGFueSB9KSB7XG4gIGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIChjbHM6IGFueSkge1xuICAgIGNvbnN0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudEZuLCBpbnB1dHMsIG1ldGhvZHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoZGVmaW5lQ3VzdG9tRWxlbWVudEZuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlZmluZUN1c3RvbUVsZW1lbnRGbigpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dHMpIHtcbiAgICAgIHByb3h5SW5wdXRzKGNscywgaW5wdXRzKTtcbiAgICB9XG4gICAgaWYgKG1ldGhvZHMpIHtcbiAgICAgIHByb3h5TWV0aG9kcyhjbHMsIG1ldGhvZHMpO1xuICAgIH1cbiAgICByZXR1cm4gY2xzO1xuICB9O1xuICByZXR1cm4gZGVjb3JhdG9yO1xufVxuIl19