design-angular-kit 1.0.0-10 → 1.0.0-12

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 (86) hide show
  1. package/assets/i18n/en.json +5 -1
  2. package/assets/i18n/it.json +5 -1
  3. package/esm2020/lib/abstracts/abstract-form.component.mjs +187 -0
  4. package/esm2020/lib/abstracts/abstract.component.mjs +26 -8
  5. package/esm2020/lib/components/components.module.mjs +256 -0
  6. package/esm2020/lib/components/core/accordion/accordion.component.mjs +3 -3
  7. package/esm2020/lib/components/core/alert/alert.component.mjs +1 -1
  8. package/esm2020/lib/components/core/callout/callout.component.mjs +1 -1
  9. package/esm2020/lib/components/core/card/card.component.mjs +4 -4
  10. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +20 -7
  11. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +7 -6
  12. package/esm2020/lib/components/core/collapse/collapse.component.mjs +3 -3
  13. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +3 -3
  14. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +3 -3
  15. package/esm2020/lib/components/core/link/link.component.mjs +4 -4
  16. package/esm2020/lib/components/core/list/list/list.component.mjs +4 -4
  17. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +4 -4
  18. package/esm2020/lib/components/core/modal/modal.component.mjs +3 -3
  19. package/esm2020/lib/components/core/notifications/notifications.component.mjs +1 -1
  20. package/esm2020/lib/components/core/pagination/pagination.component.mjs +99 -19
  21. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +2 -2
  22. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +2 -2
  23. package/esm2020/lib/components/core/rating/rating.component.mjs +13 -9
  24. package/esm2020/lib/components/core/spinner/spinner.component.mjs +5 -5
  25. package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +14 -6
  26. package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +5 -4
  27. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +1 -1
  28. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +3 -3
  29. package/esm2020/lib/components/core/table/table.component.mjs +5 -5
  30. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +5 -5
  31. package/esm2020/lib/components/form/input/input.component.mjs +5 -5
  32. package/esm2020/lib/components/form/password-input/password-input.component.mjs +5 -5
  33. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +21 -6
  34. package/esm2020/lib/components/form/select/select.component.mjs +5 -5
  35. package/esm2020/lib/components/form/textarea/textarea.component.mjs +5 -5
  36. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +6 -4
  37. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +3 -3
  38. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +4 -4
  39. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +3 -13
  40. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +18 -7
  41. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
  42. package/esm2020/lib/components/navigation/header/header.component.mjs +8 -14
  43. package/esm2020/lib/components/utils/icon/icon.component.mjs +13 -20
  44. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +3 -3
  45. package/esm2020/lib/design-angular-kit.module.mjs +2 -2
  46. package/esm2020/lib/interfaces/icon.mjs +162 -2
  47. package/esm2020/public_api.mjs +2 -2
  48. package/fesm2015/design-angular-kit.mjs +1514 -1217
  49. package/fesm2015/design-angular-kit.mjs.map +1 -1
  50. package/fesm2020/design-angular-kit.mjs +1433 -1144
  51. package/fesm2020/design-angular-kit.mjs.map +1 -1
  52. package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +5 -8
  53. package/lib/abstracts/abstract.component.d.ts +16 -6
  54. package/lib/components/components.module.d.ts +60 -0
  55. package/lib/components/core/accordion/accordion.component.d.ts +1 -1
  56. package/lib/components/core/carousel/carousel/carousel.component.d.ts +6 -2
  57. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +2 -1
  58. package/lib/components/core/collapse/collapse.component.d.ts +1 -1
  59. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +1 -1
  60. package/lib/components/core/modal/modal.component.d.ts +1 -1
  61. package/lib/components/core/pagination/pagination.component.d.ts +69 -8
  62. package/lib/components/core/rating/rating.component.d.ts +7 -3
  63. package/lib/components/core/spinner/spinner.component.d.ts +1 -1
  64. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +4 -2
  65. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +2 -1
  66. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +1 -1
  67. package/lib/components/core/table/table.component.d.ts +2 -2
  68. package/lib/components/form/checkbox/checkbox.component.d.ts +2 -2
  69. package/lib/components/form/input/input.component.d.ts +2 -2
  70. package/lib/components/form/password-input/password-input.component.d.ts +2 -2
  71. package/lib/components/form/radio-button/radio-button.component.d.ts +3 -3
  72. package/lib/components/form/select/select.component.d.ts +3 -3
  73. package/lib/components/form/textarea/textarea.component.d.ts +2 -2
  74. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +1 -1
  75. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +1 -1
  76. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +1 -6
  77. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +7 -5
  78. package/lib/components/navigation/header/header.component.d.ts +2 -8
  79. package/lib/components/utils/icon/icon.component.d.ts +6 -11
  80. package/lib/design-angular-kit.module.d.ts +1 -1
  81. package/lib/interfaces/icon.d.ts +2 -1
  82. package/package.json +2 -2
  83. package/public_api.d.ts +1 -1
  84. package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -174
  85. package/esm2020/lib/modules/components.module.mjs +0 -261
  86. package/lib/modules/components.module.d.ts +0 -62
@@ -19,7 +19,7 @@
19
19
  "min-invalid": "The minimum value for this field is: {{min}}",
20
20
  "max-invalid": "The maximum value for this field is: {{max}}",
21
21
  "min-length-invalid": "The minimum length for this field is: {{min}}",
22
- "max-length-invalid": "The minimum length for this field is: {{max}}",
22
+ "max-length-invalid": "The maximum length for this field is: {{max}}",
23
23
  "email-invalid": "Enter a valid email",
24
24
  "tel-invalid": "Please enter a valid phone number format",
25
25
  "url-invalid": "Please enter a valid URL",
@@ -40,8 +40,12 @@
40
40
  "close-notification": "Close Notification: {{title}}",
41
41
  "close-alert": "Close alert",
42
42
  "page": "Page",
43
+ "previous": "Previous",
43
44
  "previous-page": "Previous page",
45
+ "next": "Next",
44
46
  "next-page": "Next page",
47
+ "go-to": "Go to",
48
+ "page-of-total": "Page {{page}} of {{total}}",
45
49
  "progress": "Progress",
46
50
  "loading": "Loading",
47
51
  "active": "Active",
@@ -19,7 +19,7 @@
19
19
  "min-invalid": "Il valore minimo per questo campo è: {{min}}",
20
20
  "max-invalid": "Il valore massimo per questo campo è: {{max}}",
21
21
  "min-length-invalid": "La lunghezza minima per questo campo è: {{min}}",
22
- "max-length-invalid": "La lunghezza minima per questo campo è: {{max}}",
22
+ "max-length-invalid": "La lunghezza massima per questo campo è: {{max}}",
23
23
  "email-invalid": "Inserisci un email valida",
24
24
  "tel-invalid": "Inserisci un formato telefonico valido",
25
25
  "url-invalid": "Inserisci un url valido",
@@ -40,8 +40,12 @@
40
40
  "close-notification": "Chiudi notifica: {{title}}",
41
41
  "close-alert": "Chiudi avviso",
42
42
  "page": "Pagina",
43
+ "previous": "Precedente",
43
44
  "previous-page": "Pagina precedente",
45
+ "next": "Successiva",
44
46
  "next-page": "Pagina successiva",
47
+ "go-to": "Vai a",
48
+ "page-of-total": "Pagina {{page}} di {{total}}",
45
49
  "progress": "Progresso",
46
50
  "loading": "Caricamento",
47
51
  "active": "Attivo",
@@ -0,0 +1,187 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { Component, Input, Optional, Self } from '@angular/core';
3
+ import { AbstractComponent } from './abstract.component';
4
+ import { isFalseBooleanInput, isTrueBooleanInput } from '../utils/boolean-input';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ import * as i2 from "@angular/forms";
8
+ export class AbstractFormComponent extends AbstractComponent {
9
+ constructor(_translateService, _ngControl) {
10
+ super();
11
+ this._translateService = _translateService;
12
+ this._ngControl = _ngControl;
13
+ /**
14
+ * Validation color display mode (validation triggered if field is touched or not pristine)
15
+ * - <b>true</b>: Always show the validation color
16
+ * - <b>false</b>: Never show validation color
17
+ * - <b>only-valid</b>: Show only valid validation color
18
+ * - <b>only-invalid</b>: Show only invalid validation color
19
+ * @default <b>only-invalid</b>: Show only invalid validation color
20
+ */
21
+ this.validationMode = 'only-invalid';
22
+ this.onChange = (_) => {
23
+ };
24
+ this.onTouched = () => {
25
+ };
26
+ this.control = new FormControl();
27
+ this._ngControl && (this._ngControl.valueAccessor = this);
28
+ }
29
+ /**
30
+ * Set the disabled state
31
+ */
32
+ set disabled(isDisabled) {
33
+ this.setDisabledState(isTrueBooleanInput(isDisabled));
34
+ }
35
+ /**
36
+ * Check if field is invalid (Validation failed)
37
+ */
38
+ get isInvalid() {
39
+ if (this.validationMode === 'only-valid' || (this.validationMode !== 'only-invalid' && isFalseBooleanInput(this.validationMode))) {
40
+ return undefined;
41
+ }
42
+ if (this._ngControl) {
43
+ return this._ngControl.invalid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
44
+ }
45
+ return this.control.invalid && (!this.control.pristine || this.control.touched);
46
+ }
47
+ /**
48
+ * Check if field is valid (Validation successful)
49
+ */
50
+ get isValid() {
51
+ if (this.validationMode === 'only-invalid' || (this.validationMode !== 'only-valid' && isFalseBooleanInput(this.validationMode))) {
52
+ return undefined;
53
+ }
54
+ if (this._ngControl) {
55
+ return this._ngControl.valid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
56
+ }
57
+ return this.control.valid && (!this.control.pristine || this.control.touched);
58
+ }
59
+ /**
60
+ * Return the invalid message string from TranslateService
61
+ */
62
+ get invalidMessage() {
63
+ if (this.control.hasError('required')) {
64
+ return this._translateService.get('it.errors.required-field');
65
+ }
66
+ return this._translateService.get('it.errors.invalid-field');
67
+ }
68
+ ngOnInit() {
69
+ if (this._ngControl?.control) {
70
+ this.control.setValidators(this._ngControl.control.validator);
71
+ }
72
+ }
73
+ registerOnChange(fn) {
74
+ this.control.valueChanges.subscribe(fn);
75
+ this.onChange = fn;
76
+ }
77
+ registerOnTouched(fn) {
78
+ this.onTouched = fn;
79
+ }
80
+ setDisabledState(isDisabled) {
81
+ if (isDisabled) {
82
+ return this.control.disable();
83
+ }
84
+ this.control.enable();
85
+ }
86
+ writeValue(value) {
87
+ this.control.setValue(value, { emitEvent: false });
88
+ }
89
+ /**
90
+ * Mark the control as touched
91
+ */
92
+ markAsTouched() {
93
+ if (!this.control.touched) {
94
+ this.onTouched();
95
+ }
96
+ }
97
+ /**
98
+ * Fired to check if form control is touched
99
+ */
100
+ ngDoCheck() {
101
+ if (!this._ngControl?.control) {
102
+ return;
103
+ }
104
+ const ngControl = this._ngControl.control;
105
+ if (this.control.touched !== ngControl.touched) {
106
+ if (ngControl.touched) {
107
+ this.control.markAsTouched();
108
+ }
109
+ else {
110
+ this.control.markAsUntouched();
111
+ }
112
+ this._changeDetectorRef.detectChanges();
113
+ }
114
+ if (this.control.pristine !== ngControl.pristine) {
115
+ if (ngControl.pristine) {
116
+ this.control.markAsPristine();
117
+ }
118
+ else {
119
+ this.control.markAsDirty();
120
+ }
121
+ this._changeDetectorRef.detectChanges();
122
+ }
123
+ }
124
+ /**
125
+ * Add the validators in control and parent control
126
+ * @param validators the validators
127
+ * @protected
128
+ */
129
+ addValidators(validators) {
130
+ if (!Array.isArray(validators)) {
131
+ validators = [validators];
132
+ }
133
+ validators.forEach(validator => {
134
+ if (!this.control.hasValidator(validator)) {
135
+ this.control.addValidators(validator);
136
+ }
137
+ if (this._ngControl?.control && !this._ngControl.control.hasValidator(validator)) {
138
+ this._ngControl.control.addValidators(validator);
139
+ }
140
+ });
141
+ }
142
+ /**
143
+ * Reports whether the control with the given path has the error specified. <br/>
144
+ * If the control is not present, false is returned.
145
+ * @param errorCode The code of the error to check
146
+ * @param path A list of control names that designates how to move from the current control
147
+ * to the control that should be queried for errors.
148
+ * @returns whether the given error is present in the control at the given path.
149
+ */
150
+ hasError(errorCode, path) {
151
+ if (this._ngControl) {
152
+ return this._ngControl.hasError(errorCode, path);
153
+ }
154
+ return this.control.hasError(errorCode, path);
155
+ }
156
+ /**
157
+ * Reports error data for the control with the given path.
158
+ * @param errorCode The code of the error to check
159
+ * @param path A list of control names that designates how to move from the current control
160
+ * to the control that should be queried for errors.
161
+ * @returns error data for that particular error. If the control or error is not present,
162
+ * null is returned.
163
+ */
164
+ getError(errorCode, path) {
165
+ if (this._ngControl) {
166
+ return this._ngControl.getError(errorCode, path);
167
+ }
168
+ return this.control.getError(errorCode, path);
169
+ }
170
+ }
171
+ AbstractFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
172
+ AbstractFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode", disabled: "disabled" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, decorators: [{
174
+ type: Component,
175
+ args: [{ template: '' }]
176
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.NgControl, decorators: [{
177
+ type: Self
178
+ }, {
179
+ type: Optional
180
+ }] }]; }, propDecorators: { label: [{
181
+ type: Input
182
+ }], validationMode: [{
183
+ type: Input
184
+ }], disabled: [{
185
+ type: Input
186
+ }] } });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFLL0YsTUFBTSxPQUFnQixxQkFBK0IsU0FBUSxpQkFBaUI7SUE2QjVFLFlBQ3FCLGlCQUFtQyxFQUNmLFVBQXFCO1FBRTVELEtBQUssRUFBRSxDQUFDO1FBSFcsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNmLGVBQVUsR0FBVixVQUFVLENBQVc7UUF4QjlEOzs7Ozs7O1dBT0c7UUFDTSxtQkFBYyxHQUFpRCxjQUFjLENBQUM7UUFvRXZGLGFBQVEsR0FBRyxDQUFDLENBQUksRUFBRSxFQUFFO1FBQ3BCLENBQUMsQ0FBQztRQUVGLGNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDakIsQ0FBQyxDQUFDO1FBckRBLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQW5CRDs7T0FFRztJQUNILElBQWEsUUFBUSxDQUFDLFVBQXdCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0Is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LEtBQUs7c0JBQWIsS0FBSztnQkFVRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNGYWxzZUJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZvcm1Db21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2sge1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgZm9ybSBjb250cm9sXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVmFsaWRhdGlvbiBjb2xvciBkaXNwbGF5IG1vZGUgKHZhbGlkYXRpb24gdHJpZ2dlcmVkIGlmIGZpZWxkIGlzIHRvdWNoZWQgb3Igbm90IHByaXN0aW5lKVxuICAgKiAtIDxiPnRydWU8L2I+OiBBbHdheXMgc2hvdyB0aGUgdmFsaWRhdGlvbiBjb2xvclxuICAgKiAtIDxiPmZhbHNlPC9iPjogTmV2ZXIgc2hvdyB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+b25seS12YWxpZDwvYj46IFNob3cgb25seSB2YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+b25seS1pbnZhbGlkPC9iPjogU2hvdyBvbmx5IGludmFsaWQgdmFsaWRhdGlvbiBjb2xvclxuICAgKiBAZGVmYXVsdCA8Yj5vbmx5LWludmFsaWQ8L2I+OiBTaG93IG9ubHkgaW52YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZGF0aW9uTW9kZTogQm9vbGVhbklucHV0IHwgJ29ubHktdmFsaWQnIHwgJ29ubHktaW52YWxpZCcgPSAnb25seS1pbnZhbGlkJztcblxuICAvKipcbiAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKGlzRGlzYWJsZWQ6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc1RydWVCb29sZWFuSW5wdXQoaXNEaXNhYmxlZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIGZvcm0gY29udHJvbFxuICAgKi9cbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHJlYWRvbmx5IF9uZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMuX25nQ29udHJvbCAmJiAodGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmaWVsZCBpcyBpbnZhbGlkIChWYWxpZGF0aW9uIGZhaWxlZClcbiAgICovXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbk1vZGUgPT09ICdvbmx5LXZhbGlkJyB8fCAodGhpcy52YWxpZGF0aW9uTW9kZSAhPT0gJ29ubHktaW52YWxpZCcgJiYgaXNGYWxzZUJvb2xlYW5JbnB1dCh0aGlzLnZhbGlkYXRpb25Nb2RlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5pbnZhbGlkID09PSB0cnVlICYmICghdGhpcy5fbmdDb250cm9sLnByaXN0aW5lIHx8IHRoaXMuX25nQ29udHJvbC50b3VjaGVkID09PSB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkICYmICghdGhpcy5jb250cm9sLnByaXN0aW5lIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmaWVsZCBpcyB2YWxpZCAoVmFsaWRhdGlvbiBzdWNjZXNzZnVsKVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbk1vZGUgPT09ICdvbmx5LWludmFsaWQnIHx8ICh0aGlzLnZhbGlkYXRpb25Nb2RlICE9PSAnb25seS12YWxpZCcgJiYgaXNGYWxzZUJvb2xlYW5JbnB1dCh0aGlzLnZhbGlkYXRpb25Nb2RlKSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC52YWxpZCA9PT0gdHJ1ZSAmJiAoIXRoaXMuX25nQ29udHJvbC5wcmlzdGluZSB8fCB0aGlzLl9uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wudmFsaWQgJiYgKCF0aGlzLmNvbnRyb2wucHJpc3RpbmUgfHwgdGhpcy5jb250cm9sLnRvdWNoZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW52YWxpZCBtZXNzYWdlIHN0cmluZyBmcm9tIFRyYW5zbGF0ZVNlcnZpY2VcbiAgICovXG4gIGdldCBpbnZhbGlkTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnJlcXVpcmVkLWZpZWxkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMuaW52YWxpZC1maWVsZCcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoKHRoaXMuX25nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKS52YWxpZGF0b3IpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlID0gKF86IFQpID0+IHtcbiAgfTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7XG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXG4gICAqL1xuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHRvIGNoZWNrIGlmIGZvcm0gY29udHJvbCBpcyB0b3VjaGVkXG4gICAqL1xuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKCF0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLl9uZ0NvbnRyb2wuY29udHJvbDtcbiAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQgIT09IG5nQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICBpZiAobmdDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udHJvbC5wcmlzdGluZSAhPT0gbmdDb250cm9sLnByaXN0aW5lKSB7XG4gICAgICBpZiAobmdDb250cm9sLnByaXN0aW5lKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgdmFsaWRhdG9ycyBpbiBjb250cm9sIGFuZCBwYXJlbnQgY29udHJvbFxuICAgKiBAcGFyYW0gdmFsaWRhdG9ycyB0aGUgdmFsaWRhdG9yc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgYWRkVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsaWRhdG9ycykpIHtcbiAgICAgIHZhbGlkYXRvcnMgPSBbdmFsaWRhdG9yc107XG4gICAgfVxuXG4gICAgdmFsaWRhdG9ycy5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICBpZiAoIXRoaXMuY29udHJvbC5oYXNWYWxpZGF0b3IodmFsaWRhdG9yKSkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyh2YWxpZGF0b3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fbmdDb250cm9sPy5jb250cm9sICYmICF0aGlzLl9uZ0NvbnRyb2wuY29udHJvbC5oYXNWYWxpZGF0b3IodmFsaWRhdG9yKSkge1xuICAgICAgICB0aGlzLl9uZ0NvbnRyb2wuY29udHJvbC5hZGRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB3aGV0aGVyIHRoZSBjb250cm9sIHdpdGggdGhlIGdpdmVuIHBhdGggaGFzIHRoZSBlcnJvciBzcGVjaWZpZWQuIDxici8+XG4gICAqIElmIHRoZSBjb250cm9sIGlzIG5vdCBwcmVzZW50LCBmYWxzZSBpcyByZXR1cm5lZC5cbiAgICogQHBhcmFtIGVycm9yQ29kZSBUaGUgY29kZSBvZiB0aGUgZXJyb3IgdG8gY2hlY2tcbiAgICogQHBhcmFtIHBhdGggQSBsaXN0IG9mIGNvbnRyb2wgbmFtZXMgdGhhdCBkZXNpZ25hdGVzIGhvdyB0byBtb3ZlIGZyb20gdGhlIGN1cnJlbnQgY29udHJvbFxuICAgKiB0byB0aGUgY29udHJvbCB0aGF0IHNob3VsZCBiZSBxdWVyaWVkIGZvciBlcnJvcnMuXG4gICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGVycm9yIGlzIHByZXNlbnQgaW4gdGhlIGNvbnRyb2wgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3IoZXJyb3JDb2RlOiBzdHJpbmcsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmhhc0Vycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyBlcnJvciBkYXRhIGZvciB0aGUgY29udHJvbCB3aXRoIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gZXJyb3JDb2RlIFRoZSBjb2RlIG9mIHRoZSBlcnJvciB0byBjaGVja1xuICAgKiBAcGFyYW0gcGF0aCBBIGxpc3Qgb2YgY29udHJvbCBuYW1lcyB0aGF0IGRlc2lnbmF0ZXMgaG93IHRvIG1vdmUgZnJvbSB0aGUgY3VycmVudCBjb250cm9sXG4gICAqIHRvIHRoZSBjb250cm9sIHRoYXQgc2hvdWxkIGJlIHF1ZXJpZWQgZm9yIGVycm9ycy5cbiAgICogQHJldHVybnMgZXJyb3IgZGF0YSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGVycm9yLiBJZiB0aGUgY29udHJvbCBvciBlcnJvciBpcyBub3QgcHJlc2VudCxcbiAgICogbnVsbCBpcyByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXRFcnJvcihlcnJvckNvZGU6IHN0cmluZywgcGF0aD86IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuZ2V0RXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5nZXRFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG59XG4iXX0=
@@ -1,10 +1,14 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, Renderer2 } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class AbstractComponent {
4
- constructor(_renderer, _elementRef, _changeDetectorRef) {
5
- this._renderer = _renderer;
6
- this._elementRef = _elementRef;
7
- this._changeDetectorRef = _changeDetectorRef;
4
+ constructor() {
5
+ /**
6
+ * The element ID
7
+ */
8
+ this.id = this.getDefaultId();
9
+ this._renderer = inject(Renderer2);
10
+ this._elementRef = inject(ElementRef);
11
+ this._changeDetectorRef = inject(ChangeDetectorRef);
8
12
  this.valueChanges = new EventEmitter();
9
13
  }
10
14
  ngAfterViewInit() {
@@ -13,15 +17,29 @@ export class AbstractComponent {
13
17
  ngOnChanges(changes) {
14
18
  this.valueChanges.next(); // The inputs were changed
15
19
  }
20
+ /**
21
+ * Generate unique id for components
22
+ * @private
23
+ */
24
+ getDefaultId() {
25
+ const name = this.constructor.name.replace('Component', '');
26
+ const kebabName = name.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());
27
+ return `it-${kebabName}-${AbstractComponent.instances++}`;
28
+ }
16
29
  }
17
- AbstractComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
30
+ /**
31
+ * Counter of active instances
32
+ * @private
33
+ */
34
+ AbstractComponent.instances = 0;
35
+ AbstractComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
36
  AbstractComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractComponent, selector: "ng-component", inputs: { id: "id" }, outputs: { valueChanges: "valueChanges" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
19
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, decorators: [{
20
38
  type: Component,
21
39
  args: [{ template: '' }]
22
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
40
+ }], ctorParameters: function () { return []; }, propDecorators: { id: [{
23
41
  type: Input
24
42
  }], valueChanges: [{
25
43
  type: Output
26
44
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDOztBQUd2QixNQUFNLE9BQU8saUJBQWlCO0lBWTVCLFlBQ3FCLFNBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLGtCQUFxQztRQUZyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFFeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsMEJBQTBCO0lBQ3RELENBQUM7OzhHQTFCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwSUFEUCxFQUFFOzJGQUNaLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7eUpBTWhCLEVBQUU7c0JBQVYsS0FBSztnQkFLVyxZQUFZO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgSURcbiAgICovXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGNvbXBvbmVudCBpbnB1dCBhdHRyaWJ1dGVzIHdhcyBjaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHZhbHVlQ2hhbmdlczogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCgpOyAvLyBUaGUgaW5wdXRzIHdlcmUgY2hhbmdlZFxuICB9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxPQUFnQixpQkFBaUI7SUF1QnJDO1FBckJBOztXQUVHO1FBQ00sT0FBRSxHQUFXLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQW1CeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RyxPQUFPLE1BQU0sU0FBUyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDNUQsQ0FBQzs7QUFuQ0Q7OztHQUdHO0FBQ1ksMkJBQVMsR0FBRyxDQUFDLENBQUM7OEdBaEJULGlCQUFpQjtrR0FBakIsaUJBQWlCLDBJQURoQixFQUFFOzJGQUNILGlCQUFpQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7MEVBTWhCLEVBQUU7c0JBQVYsS0FBSztnQkFLVyxZQUFZO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCBJRFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuZ2V0RGVmYXVsdElkKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY29tcG9uZW50IGlucHV0IGF0dHJpYnV0ZXMgd2FzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgLyoqXG4gICAqIENvdW50ZXIgb2YgYWN0aXZlIGluc3RhbmNlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2VzID0gMDtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMjsgLy8gSW5qZWN0ZWRcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmOyAvLyBJbmplY3RlZFxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjsgLy8gSW5qZWN0ZWRcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCgpOyAvLyBUaGUgaW5wdXRzIHdlcmUgY2hhbmdlZFxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgY29tcG9uZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoJ0NvbXBvbmVudCcsICcnKTtcbiAgICBjb25zdCBrZWJhYk5hbWUgPSBuYW1lLnJlcGxhY2UoL1tBLVpdKyg/IVthLXpdKXxbQS1aXS9nLCAoJCwgb2ZzKSA9PiAob2ZzID8gJy0nIDogJycpICsgJC50b0xvd2VyQ2FzZSgpKTtcbiAgICByZXR1cm4gYGl0LSR7a2ViYWJOYW1lfS0ke0Fic3RyYWN0Q29tcG9uZW50Lmluc3RhbmNlcysrfWA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,256 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule, NgForOf, NgIf } from '@angular/common';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { RouterLink } from '@angular/router';
6
+ import { AccordionComponent } from './core/accordion/accordion.component';
7
+ import { AlertComponent } from './core/alert/alert.component';
8
+ import { BadgeDirective } from './core/badge/badge.directive';
9
+ import { ButtonDirective } from './core/button/button.directive';
10
+ import { CalloutComponent } from './core/callout/callout.component';
11
+ import { CardComponent } from './core/card/card.component';
12
+ import { CarouselComponent } from './core/carousel/carousel/carousel.component';
13
+ import { CarouselItemComponent } from './core/carousel/carousel-item/carousel-item.component';
14
+ import { CollapseComponent } from './core/collapse/collapse.component';
15
+ import { DropdownComponent } from './core/dropdown/dropdown/dropdown.component';
16
+ import { DropdownItemComponent } from './core/dropdown/dropdown-item/dropdown-item.component';
17
+ import { LinkComponent } from './core/link/link.component';
18
+ import { ListComponent } from './core/list/list/list.component';
19
+ import { ListItemComponent } from './core/list/list-item/list-item.component';
20
+ import { ModalComponent } from './core/modal/modal.component';
21
+ import { NotificationsComponent } from './core/notifications/notifications.component';
22
+ import { PaginationComponent } from './core/pagination/pagination.component';
23
+ import { PopoverDirective } from './core/popover/popover.directive';
24
+ import { ProgressBarComponent } from './core/progress-bar/progress-bar.component';
25
+ import { ProgressButtonComponent } from './core/progress-button/progress-button.component';
26
+ import { RatingComponent } from './core/rating/rating.component';
27
+ import { SpinnerComponent } from './core/spinner/spinner.component';
28
+ import { SteppersContainerComponent } from './core/steppers/steppers-container/steppers-container.component';
29
+ import { SteppersItemComponent } from './core/steppers/steppers-item/steppers-item.component';
30
+ import { TabContainerComponent } from './core/tab/tab-container/tab-container.component';
31
+ import { TabItemComponent } from './core/tab/tab-item/tab-item.component';
32
+ import { TableComponent } from './core/table/table.component';
33
+ import { TooltipDirective } from './core/tooltip/tooltip.directive';
34
+ import { CheckboxComponent } from './form/checkbox/checkbox.component';
35
+ import { InputComponent } from './form/input/input.component';
36
+ import { PasswordInputComponent } from './form/password-input/password-input.component';
37
+ import { RadioButtonComponent } from './form/radio-button/radio-button.component';
38
+ import { SelectComponent } from './form/select/select.component';
39
+ import { TextareaComponent } from './form/textarea/textarea.component';
40
+ import { UploadDragDropComponent } from './form/upload-drag-drop/upload-drag-drop.component';
41
+ import { UploadFileListComponent } from './form/upload-file-list/upload-file-list.component';
42
+ import { BackButtonComponent } from './navigation/back-button/back-button.component';
43
+ import { BackToTopComponent } from './navigation/back-to-top/back-to-top.component';
44
+ import { BreadcrumbComponent } from './navigation/breadcrumbs/breadcrumb/breadcrumb.component';
45
+ import { BreadcrumbItemComponent } from './navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component';
46
+ import { HeaderComponent } from './navigation/header/header.component';
47
+ import { IconComponent } from './utils/icon/icon.component';
48
+ import { LanguageSwitcherComponent } from './utils/language-switcher/language-switcher.component';
49
+ import { NotFoundPageComponent } from './utils/not-found-page/not-found-page.component';
50
+ import { ChipComponent } from './core/chip/chip.component';
51
+ import { ForwardDirective } from './core/forward/forward.directive';
52
+ import { DimmerComponent } from './core/dimmer/dimmer.component';
53
+ import { DimmerButtonsComponent } from './core/dimmer/dimmer-buttons/dimmer-buttons.component';
54
+ import { DimmerIconComponent } from './core/dimmer/dimmer-icon/dimmer-icon.component';
55
+ import { MarkMatchingTextPipe } from '../pipes/mark-matching-text.pipe';
56
+ import * as i0 from "@angular/core";
57
+ /**
58
+ * Core components
59
+ */
60
+ const core = [
61
+ AccordionComponent,
62
+ AlertComponent,
63
+ BadgeDirective,
64
+ ButtonDirective,
65
+ CalloutComponent,
66
+ CardComponent,
67
+ CarouselComponent,
68
+ CarouselItemComponent,
69
+ ChipComponent,
70
+ CollapseComponent,
71
+ DimmerButtonsComponent,
72
+ DimmerComponent,
73
+ DimmerIconComponent,
74
+ DropdownComponent,
75
+ DropdownItemComponent,
76
+ ForwardDirective,
77
+ LinkComponent,
78
+ ListComponent,
79
+ ListItemComponent,
80
+ ModalComponent,
81
+ NotificationsComponent,
82
+ PaginationComponent,
83
+ PopoverDirective,
84
+ ProgressBarComponent,
85
+ ProgressButtonComponent,
86
+ RatingComponent,
87
+ SpinnerComponent,
88
+ SteppersContainerComponent,
89
+ SteppersItemComponent,
90
+ TabContainerComponent,
91
+ TabItemComponent,
92
+ TableComponent,
93
+ TooltipDirective
94
+ ];
95
+ /**
96
+ * Form components
97
+ */
98
+ const form = [
99
+ CheckboxComponent,
100
+ InputComponent,
101
+ PasswordInputComponent,
102
+ RadioButtonComponent,
103
+ SelectComponent,
104
+ TextareaComponent,
105
+ UploadDragDropComponent,
106
+ UploadFileListComponent
107
+ ];
108
+ /**
109
+ * Navigation Components
110
+ */
111
+ const navigation = [
112
+ BackButtonComponent,
113
+ BackToTopComponent,
114
+ BreadcrumbComponent,
115
+ BreadcrumbItemComponent,
116
+ HeaderComponent
117
+ ];
118
+ /**
119
+ * Utils components
120
+ */
121
+ const utils = [
122
+ IconComponent,
123
+ NotFoundPageComponent,
124
+ LanguageSwitcherComponent,
125
+ MarkMatchingTextPipe
126
+ ];
127
+ export class ComponentsModule {
128
+ }
129
+ ComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
130
+ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, declarations: [AccordionComponent,
131
+ AlertComponent,
132
+ BadgeDirective,
133
+ ButtonDirective,
134
+ CalloutComponent,
135
+ CardComponent,
136
+ CarouselComponent,
137
+ CarouselItemComponent,
138
+ ChipComponent,
139
+ CollapseComponent,
140
+ DimmerButtonsComponent,
141
+ DimmerComponent,
142
+ DimmerIconComponent,
143
+ DropdownComponent,
144
+ DropdownItemComponent,
145
+ ForwardDirective,
146
+ LinkComponent,
147
+ ListComponent,
148
+ ListItemComponent,
149
+ ModalComponent,
150
+ NotificationsComponent,
151
+ PaginationComponent,
152
+ PopoverDirective,
153
+ ProgressBarComponent,
154
+ ProgressButtonComponent,
155
+ RatingComponent,
156
+ SpinnerComponent,
157
+ SteppersContainerComponent,
158
+ SteppersItemComponent,
159
+ TabContainerComponent,
160
+ TabItemComponent,
161
+ TableComponent,
162
+ TooltipDirective, CheckboxComponent,
163
+ InputComponent,
164
+ PasswordInputComponent,
165
+ RadioButtonComponent,
166
+ SelectComponent,
167
+ TextareaComponent,
168
+ UploadDragDropComponent,
169
+ UploadFileListComponent, BackButtonComponent,
170
+ BackToTopComponent,
171
+ BreadcrumbComponent,
172
+ BreadcrumbItemComponent,
173
+ HeaderComponent, IconComponent,
174
+ NotFoundPageComponent,
175
+ LanguageSwitcherComponent,
176
+ MarkMatchingTextPipe], imports: [CommonModule,
177
+ TranslateModule,
178
+ ReactiveFormsModule,
179
+ NgIf,
180
+ NgForOf,
181
+ RouterLink], exports: [AccordionComponent,
182
+ AlertComponent,
183
+ BadgeDirective,
184
+ ButtonDirective,
185
+ CalloutComponent,
186
+ CardComponent,
187
+ CarouselComponent,
188
+ CarouselItemComponent,
189
+ ChipComponent,
190
+ CollapseComponent,
191
+ DimmerButtonsComponent,
192
+ DimmerComponent,
193
+ DimmerIconComponent,
194
+ DropdownComponent,
195
+ DropdownItemComponent,
196
+ ForwardDirective,
197
+ LinkComponent,
198
+ ListComponent,
199
+ ListItemComponent,
200
+ ModalComponent,
201
+ NotificationsComponent,
202
+ PaginationComponent,
203
+ PopoverDirective,
204
+ ProgressBarComponent,
205
+ ProgressButtonComponent,
206
+ RatingComponent,
207
+ SpinnerComponent,
208
+ SteppersContainerComponent,
209
+ SteppersItemComponent,
210
+ TabContainerComponent,
211
+ TabItemComponent,
212
+ TableComponent,
213
+ TooltipDirective, CheckboxComponent,
214
+ InputComponent,
215
+ PasswordInputComponent,
216
+ RadioButtonComponent,
217
+ SelectComponent,
218
+ TextareaComponent,
219
+ UploadDragDropComponent,
220
+ UploadFileListComponent, BackButtonComponent,
221
+ BackToTopComponent,
222
+ BreadcrumbComponent,
223
+ BreadcrumbItemComponent,
224
+ HeaderComponent, IconComponent,
225
+ NotFoundPageComponent,
226
+ LanguageSwitcherComponent,
227
+ MarkMatchingTextPipe] });
228
+ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
229
+ TranslateModule,
230
+ ReactiveFormsModule] });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, decorators: [{
232
+ type: NgModule,
233
+ args: [{
234
+ declarations: [
235
+ ...core,
236
+ ...form,
237
+ ...navigation,
238
+ ...utils
239
+ ],
240
+ imports: [
241
+ CommonModule,
242
+ TranslateModule,
243
+ ReactiveFormsModule,
244
+ NgIf,
245
+ NgForOf,
246
+ RouterLink
247
+ ],
248
+ exports: [
249
+ ...core,
250
+ ...form,
251
+ ...navigation,
252
+ ...utils
253
+ ]
254
+ }]
255
+ }] });
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7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QjtRQUNoQixjQUFjO1FBQ2QsZ0JBQWdCLEVBT2hCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2Qsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix1QkFBdUIsRUFPdkIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLGVBQWUsRUFPZixhQUFhO1FBQ2IscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6QixvQkFBb0I7OEdBeUJULGdCQUFnQixZQWR6QixZQUFZO1FBQ1osZUFBZTtRQUNmLG1CQUFtQjsyRkFZVixnQkFBZ0I7a0JBdEI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixHQUFHLElBQUk7d0JBQ1AsR0FBRyxJQUFJO3dCQUNQLEdBQUcsVUFBVTt3QkFDYixHQUFHLEtBQUs7cUJBQ1Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxVQUFVO3FCQUNYO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLElBQUk7d0JBQ1AsR0FBRyxJQUFJO3dCQUNQLEdBQUcsVUFBVTt3QkFDYixHQUFHLEtBQUs7cUJBQ1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZURpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9iYWRnZS9iYWRnZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IENhbGxvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvY2FsbG91dC9jYWxsb3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvY2Fyb3VzZWwvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IENhcm91c2VsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29yZS9jYXJvdXNlbC9jYXJvdXNlbC1pdGVtL2Nhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxhcHNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vY29yZS9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2Ryb3Bkb3duL2Ryb3Bkb3duLWl0ZW0vZHJvcGRvd24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJy4vY29yZS9saW5rL2xpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvbGlzdC9saXN0L2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9wb3BvdmVyL3BvcG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3Byb2dyZXNzLWJ1dHRvbi9wcm9ncmVzcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFJhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29yZS9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcHBlcnNDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvc3RlcHBlcnMvc3RlcHBlcnMtY29udGFpbmVyL3N0ZXBwZXJzLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcHBlcnNJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3N0ZXBwZXJzL3N0ZXBwZXJzLWl0ZW0vc3RlcHBlcnMtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL3RhYi90YWItY29udGFpbmVyL3RhYi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvcmUvdGFiL3RhYi1pdGVtL3RhYi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29yZS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFzc3dvcmRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGxvYWREcmFnRHJvcENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZEZpbGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL3VwbG9hZC1maWxlLWxpc3QvdXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFja0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi9iYWNrLWJ1dHRvbi9iYWNrLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFja1RvVG9wQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vYnJlYWRjcnVtYnMvYnJlYWRjcnVtYi1pdGVtL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTd2l0Y2hlckNvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvbGFuZ3VhZ2Utc3dpdGNoZXIvbGFuZ3VhZ2Utc3dpdGNoZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdEZvdW5kUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvbm90LWZvdW5kLXBhZ2Uvbm90LWZvdW5kLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENoaXBDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvY2hpcC9jaGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3J3YXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2ZvcndhcmQvZm9yd2FyZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGltbWVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2RpbW1lci9kaW1tZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpbW1lckJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvcmUvZGltbWVyL2RpbW1lci1idXR0b25zL2RpbW1lci1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaW1tZXJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb3JlL2RpbW1lci9kaW1tZXItaWNvbi9kaW1tZXItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFya01hdGNoaW5nVGV4dFBpcGUgfSBmcm9tICcuLi9waXBlcy9tYXJrLW1hdGNoaW5nLXRleHQucGlwZSc7XG5cblxuLyoqXG4gKiBDb3JlIGNvbXBvbmVudHNcbiAqL1xuY29uc3QgY29yZSA9IFtcbiAgQWNjb3JkaW9uQ29tcG9uZW50LFxuICBBbGVydENvbXBvbmVudCxcbiAgQmFkZ2VEaXJlY3RpdmUsXG4gIEJ1dHRvbkRpcmVjdGl2ZSxcbiAgQ2FsbG91dENvbXBvbmVudCxcbiAgQ2FyZENvbXBvbmVudCxcbiAgQ2Fyb3VzZWxDb21wb25lbnQsXG4gIENhcm91c2VsSXRlbUNvbXBvbmVudCxcbiAgQ2hpcENvbXBvbmVudCxcbiAgQ29sbGFwc2VDb21wb25lbnQsXG4gIERpbW1lckJ1dHRvbnNDb21wb25lbnQsXG4gIERpbW1lckNvbXBvbmVudCxcbiAgRGltbWVySWNvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25Db21wb25lbnQsXG4gIERyb3Bkb3duSXRlbUNvbXBvbmVudCxcbiAgRm9yd2FyZERpcmVjdGl2ZSxcbiAgTGlua0NvbXBvbmVudCxcbiAgTGlzdENvbXBvbmVudCxcbiAgTGlzdEl0ZW1Db21wb25lbnQsXG4gIE1vZGFsQ29tcG9uZW50LFxuICBOb3RpZmljYXRpb25zQ29tcG9uZW50LFxuICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICBQb3BvdmVyRGlyZWN0aXZlLFxuICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgUHJvZ3Jlc3NCdXR0b25Db21wb25lbnQsXG4gIFJhdGluZ0NvbXBvbmVudCxcbiAgU3Bpbm5lckNvbXBvbmVudCxcbiAgU3RlcHBlcnNDb250YWluZXJDb21wb25lbnQsXG4gIFN0ZXBwZXJzSXRlbUNvbXBvbmVudCxcbiAgVGFiQ29udGFpbmVyQ29tcG9uZW50LFxuICBUYWJJdGVtQ29tcG9uZW50LFxuICBUYWJsZUNvbXBvbmVudCxcbiAgVG9vbHRpcERpcmVjdGl2ZVxuXTtcblxuLyoqXG4gKiBGb3JtIGNvbXBvbmVudHNcbiAqL1xuY29uc3QgZm9ybSA9IFtcbiAgQ2hlY2tib3hDb21wb25lbnQsXG4gIElucHV0Q29tcG9uZW50LFxuICBQYXNzd29yZElucHV0Q29tcG9uZW50LFxuICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgU2VsZWN0Q29tcG9uZW50LFxuICBUZXh0YXJlYUNvbXBvbmVudCxcbiAgVXBsb2FkRHJhZ0Ryb3BDb21wb25lbnQsXG4gIFVwbG9hZEZpbGVMaXN0Q29tcG9uZW50XG5dO1xuXG4vKipcbiAqIE5hdmlnYXRpb24gQ29tcG9uZW50c1xuICovXG5jb25zdCBuYXZpZ2F0aW9uID0gW1xuICBCYWNrQnV0dG9uQ29tcG9uZW50LFxuICBCYWNrVG9Ub3BDb21wb25lbnQsXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICBIZWFkZXJDb21wb25lbnRcbl07XG5cbi8qKlxuICogVXRpbHMgY29tcG9uZW50c1xuICovXG5jb25zdCB1dGlscyA9IFtcbiAgSWNvbkNvbXBvbmVudCxcbiAgTm90Rm91bmRQYWdlQ29tcG9uZW50LFxuICBMYW5ndWFnZVN3aXRjaGVyQ29tcG9uZW50LFxuICBNYXJrTWF0Y2hpbmdUZXh0UGlwZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLi4uY29yZSxcbiAgICAuLi5mb3JtLFxuICAgIC4uLm5hdmlnYXRpb24sXG4gICAgLi4udXRpbHNcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgUm91dGVyTGlua1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uY29yZSxcbiAgICAuLi5mb3JtLFxuICAgIC4uLm5hdmlnYXRpb24sXG4gICAgLi4udXRpbHNcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHtcbn1cbiJdfQ==