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

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 (41) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +6 -22
  3. package/esm2020/lib/control-value-accessors/checkbox-value-accessor.mjs +41 -0
  4. package/esm2020/lib/control-value-accessors/datepicker-value-accessor.mjs +37 -0
  5. package/esm2020/lib/control-value-accessors/numeric-value-accessor.mjs +42 -0
  6. package/esm2020/lib/control-value-accessors/radio-value-accessor.mjs +62 -0
  7. package/esm2020/lib/control-value-accessors/range-value-accessor.mjs +42 -0
  8. package/esm2020/lib/control-value-accessors/select-value-accessor.mjs +37 -0
  9. package/esm2020/lib/control-value-accessors/switch-value-accessor.mjs +41 -0
  10. package/esm2020/lib/control-value-accessors/text-value-accessor.mjs +37 -0
  11. package/esm2020/lib/control-value-accessors/timepicker-value-accessor.mjs +37 -0
  12. package/esm2020/lib/control-value-accessors/value-accessor.mjs +145 -0
  13. package/esm2020/lib/form/six-form.directive.mjs +134 -0
  14. package/esm2020/lib/services/validation-messages.service.mjs +15 -0
  15. package/esm2020/lib/stencil-generated/components.mjs +59 -63
  16. package/esm2020/lib/stencil-generated/index.mjs +2 -2
  17. package/esm2020/lib/ui-library-angular.module.mjs +111 -19
  18. package/esm2020/lib/validators/six-ui-library-validators.mjs +116 -0
  19. package/esm2020/public-api.mjs +19 -1
  20. package/fesm2015/six-group-ui-library-angular.mjs +901 -83
  21. package/fesm2015/six-group-ui-library-angular.mjs.map +1 -1
  22. package/fesm2020/six-group-ui-library-angular.mjs +897 -82
  23. package/fesm2020/six-group-ui-library-angular.mjs.map +1 -1
  24. package/lib/control-value-accessors/checkbox-value-accessor.d.ts +10 -0
  25. package/lib/control-value-accessors/datepicker-value-accessor.d.ts +9 -0
  26. package/lib/control-value-accessors/numeric-value-accessor.d.ts +10 -0
  27. package/lib/control-value-accessors/radio-value-accessor.d.ts +15 -0
  28. package/lib/control-value-accessors/range-value-accessor.d.ts +10 -0
  29. package/lib/control-value-accessors/select-value-accessor.d.ts +9 -0
  30. package/lib/control-value-accessors/switch-value-accessor.d.ts +10 -0
  31. package/lib/control-value-accessors/text-value-accessor.d.ts +9 -0
  32. package/lib/control-value-accessors/timepicker-value-accessor.d.ts +9 -0
  33. package/lib/control-value-accessors/value-accessor.d.ts +39 -0
  34. package/lib/form/six-form.directive.d.ts +71 -0
  35. package/lib/services/validation-messages.service.d.ts +7 -0
  36. package/lib/stencil-generated/components.d.ts +17 -51
  37. package/lib/stencil-generated/index.d.ts +1 -1
  38. package/lib/ui-library-angular.module.d.ts +15 -1
  39. package/lib/validators/six-ui-library-validators.d.ts +47 -0
  40. package/package.json +4 -3
  41. package/public-api.d.ts +13 -0
@@ -1,8 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Injectable, inject, Directive, HostListener, Input, EventEmitter, Output, APP_INITIALIZER, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import { fromEvent } from 'rxjs';
5
5
  import { defineCustomElements } from '@six-group/ui-library/loader';
6
+ import * as i1 from '@angular/forms';
7
+ import { NgControl, NG_VALUE_ACCESSOR, FormControl, FormGroup, FormArray, NG_VALIDATORS, Validators } from '@angular/forms';
8
+ import { getErrorMessage } from '@six-group/ui-library';
6
9
 
7
10
  /* eslint-disable */
8
11
  /* tslint:disable */
@@ -209,11 +212,11 @@ let SixCheckbox = class SixCheckbox {
209
212
  }
210
213
  };
211
214
  SixCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
212
- SixCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixCheckbox, selector: "six-checkbox", inputs: { checked: "checked", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", indeterminate: "indeterminate", invalid: "invalid", label: "label", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
215
+ SixCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixCheckbox, selector: "six-checkbox", inputs: { checked: "checked", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", indeterminate: "indeterminate", invalid: "invalid", label: "label", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
213
216
  SixCheckbox = __decorate([
214
217
  ProxyCmp({
215
- inputs: ['checked', 'disabled', 'errorOnBlur', 'errorText', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
216
- methods: ['setFocus', 'removeFocus', 'reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
218
+ inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
219
+ methods: ['setFocus', 'removeFocus']
217
220
  })
218
221
  ], SixCheckbox);
219
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCheckbox, decorators: [{
@@ -223,7 +226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
223
226
  changeDetection: ChangeDetectionStrategy.OnPush,
224
227
  template: '<ng-content></ng-content>',
225
228
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
226
- inputs: ['checked', 'disabled', 'errorOnBlur', 'errorText', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
229
+ inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
227
230
  }]
228
231
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
229
232
  let SixDatepicker = class SixDatepicker {
@@ -235,11 +238,11 @@ let SixDatepicker = class SixDatepicker {
235
238
  }
236
239
  };
237
240
  SixDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDatepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
238
- SixDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDatepicker, selector: "six-datepicker", inputs: { allowedDates: "allowedDates", clearable: "clearable", closeOnSelect: "closeOnSelect", containingElement: "containingElement", dateFormat: "dateFormat", debounce: "debounce", defaultDate: "defaultDate", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", label: "label", locale: "locale", max: "max", min: "min", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
241
+ SixDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDatepicker, selector: "six-datepicker", inputs: { allowedDates: "allowedDates", clearable: "clearable", closeOnSelect: "closeOnSelect", containingElement: "containingElement", dateFormat: "dateFormat", debounce: "debounce", defaultDate: "defaultDate", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", invalid: "invalid", label: "label", locale: "locale", max: "max", min: "min", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
239
242
  SixDatepicker = __decorate([
240
243
  ProxyCmp({
241
- inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorOnBlur', 'errorText', 'hoist', 'iconPosition', 'inline', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
242
- methods: ['reportValidity', 'checkValidity', 'setCustomValidity', 'reset', 'select']
244
+ inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorText', 'errorTextCount', 'hoist', 'iconPosition', 'inline', 'invalid', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
245
+ methods: ['setFocus', 'select']
243
246
  })
244
247
  ], SixDatepicker);
245
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDatepicker, decorators: [{
@@ -249,7 +252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
249
252
  changeDetection: ChangeDetectionStrategy.OnPush,
250
253
  template: '<ng-content></ng-content>',
251
254
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
252
- inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorOnBlur', 'errorText', 'hoist', 'iconPosition', 'inline', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
255
+ inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorText', 'errorTextCount', 'hoist', 'iconPosition', 'inline', 'invalid', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
253
256
  }]
254
257
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
255
258
  let SixDetails = class SixDetails {
@@ -356,6 +359,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
356
359
  inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
357
360
  }]
358
361
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
362
+ let SixError = class SixError {
363
+ constructor(c, r, z) {
364
+ this.z = z;
365
+ c.detach();
366
+ this.el = r.nativeElement;
367
+ }
368
+ };
369
+ SixError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixError, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
370
+ SixError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixError, selector: "six-error", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
371
+ SixError = __decorate([
372
+ ProxyCmp({})
373
+ ], SixError);
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixError, decorators: [{
375
+ type: Component,
376
+ args: [{
377
+ selector: 'six-error',
378
+ changeDetection: ChangeDetectionStrategy.OnPush,
379
+ template: '<ng-content></ng-content>',
380
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
381
+ inputs: [],
382
+ }]
383
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
359
384
  let SixErrorPage = class SixErrorPage {
360
385
  constructor(c, r, z) {
361
386
  this.z = z;
@@ -474,32 +499,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
474
499
  inputs: [],
475
500
  }]
476
501
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
477
- let SixForm = class SixForm {
478
- constructor(c, r, z) {
479
- this.z = z;
480
- c.detach();
481
- this.el = r.nativeElement;
482
- proxyOutputs(this, this.el, ['six-form-submit', 'six-form-change', 'six-form-reset']);
483
- }
484
- };
485
- SixForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
486
- SixForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixForm, selector: "six-form", inputs: { novalidate: "novalidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
487
- SixForm = __decorate([
488
- ProxyCmp({
489
- inputs: ['novalidate'],
490
- methods: ['getFormData', 'getFormControls', 'submit', 'checkValidity', 'reset']
491
- })
492
- ], SixForm);
493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixForm, decorators: [{
494
- type: Component,
495
- args: [{
496
- selector: 'six-form',
497
- changeDetection: ChangeDetectionStrategy.OnPush,
498
- template: '<ng-content></ng-content>',
499
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
500
- inputs: ['novalidate'],
501
- }]
502
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
503
502
  let SixGroupLabel = class SixGroupLabel {
504
503
  constructor(c, r, z) {
505
504
  this.z = z;
@@ -603,15 +602,15 @@ let SixInput = class SixInput {
603
602
  this.z = z;
604
603
  c.detach();
605
604
  this.el = r.nativeElement;
606
- proxyOutputs(this, this.el, ['six-input-change', 'six-input-clear', 'six-input-input', 'six-input-focus', 'six-input-blur', 'six-input-value-change']);
605
+ proxyOutputs(this, this.el, ['six-input-change', 'six-input-clear', 'six-input-input', 'six-input-focus', 'six-input-blur']);
607
606
  }
608
607
  };
609
608
  SixInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
610
- SixInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixInput, selector: "six-input", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearable: "clearable", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", line: "line", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", pattern: "pattern", pill: "pill", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", spellcheck: "spellcheck", step: "step", togglePassword: "togglePassword", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
609
+ SixInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixInput, selector: "six-input", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", line: "line", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", pattern: "pattern", pill: "pill", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", spellcheck: "spellcheck", step: "step", togglePassword: "togglePassword", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
611
610
  SixInput = __decorate([
612
611
  ProxyCmp({
613
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorOnBlur', 'errorText', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
614
- methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText', 'reportValidity', 'checkValidity', 'setCustomValidity', 'getValidity', 'isValid', 'getValidationMessage', 'reset']
612
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
613
+ methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
615
614
  })
616
615
  ], SixInput);
617
616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixInput, decorators: [{
@@ -621,7 +620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
621
620
  changeDetection: ChangeDetectionStrategy.OnPush,
622
621
  template: '<ng-content></ng-content>',
623
622
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
624
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorOnBlur', 'errorText', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
623
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
625
624
  }]
626
625
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
627
626
  let SixItemPicker = class SixItemPicker {
@@ -902,7 +901,7 @@ SixRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
902
901
  SixRadio = __decorate([
903
902
  ProxyCmp({
904
903
  inputs: ['checked', 'disabled', 'invalid', 'name', 'value'],
905
- methods: ['setFocus', 'removeFocus', 'reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
904
+ methods: ['setFocus', 'removeFocus']
906
905
  })
907
906
  ], SixRadio);
908
907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRadio, decorators: [{
@@ -924,11 +923,11 @@ let SixRange = class SixRange {
924
923
  }
925
924
  };
926
925
  SixRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
927
- SixRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixRange, selector: "six-range", inputs: { disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", helpText: "helpText", invalid: "invalid", label: "label", max: "max", min: "min", name: "name", required: "required", step: "step", tooltip: "tooltip", tooltipFormatter: "tooltipFormatter", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
926
+ SixRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixRange, selector: "six-range", inputs: { disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", invalid: "invalid", label: "label", max: "max", min: "min", name: "name", required: "required", step: "step", tooltip: "tooltip", tooltipFormatter: "tooltipFormatter", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
928
927
  SixRange = __decorate([
929
928
  ProxyCmp({
930
- inputs: ['disabled', 'errorOnBlur', 'errorText', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
931
- methods: ['setFocus', 'removeFocus', 'setCustomValidity', 'reset']
929
+ inputs: ['disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
930
+ methods: ['setFocus', 'removeFocus']
932
931
  })
933
932
  ], SixRange);
934
933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRange, decorators: [{
@@ -938,7 +937,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
938
937
  changeDetection: ChangeDetectionStrategy.OnPush,
939
938
  template: '<ng-content></ng-content>',
940
939
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
941
- inputs: ['disabled', 'errorOnBlur', 'errorText', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
940
+ inputs: ['disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
942
941
  }]
943
942
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
944
943
  let SixRoot = class SixRoot {
@@ -1000,11 +999,11 @@ let SixSelect = class SixSelect {
1000
999
  }
1001
1000
  };
1002
1001
  SixSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1003
- SixSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", defaultValue: "defaultValue", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1002
+ SixSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1004
1003
  SixSelect = __decorate([
1005
1004
  ProxyCmp({
1006
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'defaultValue', 'disabled', 'errorOnBlur', 'errorText', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
1007
- methods: ['reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
1005
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
1006
+ methods: ['setFocus']
1008
1007
  })
1009
1008
  ], SixSelect);
1010
1009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSelect, decorators: [{
@@ -1014,7 +1013,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1014
1013
  changeDetection: ChangeDetectionStrategy.OnPush,
1015
1014
  template: '<ng-content></ng-content>',
1016
1015
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1017
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'defaultValue', 'disabled', 'errorOnBlur', 'errorText', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
1016
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
1018
1017
  }]
1019
1018
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1020
1019
  let SixSidebar = class SixSidebar {
@@ -1148,11 +1147,11 @@ let SixSwitch = class SixSwitch {
1148
1147
  }
1149
1148
  };
1150
1149
  SixSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1151
- SixSwitch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSwitch, selector: "six-switch", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1150
+ SixSwitch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSwitch, selector: "six-switch", inputs: { checked: "checked", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", invalid: "invalid", label: "label", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1152
1151
  SixSwitch = __decorate([
1153
1152
  ProxyCmp({
1154
- inputs: ['checked', 'disabled', 'invalid', 'name', 'required', 'value'],
1155
- methods: ['setFocus', 'removeFocus', 'reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
1153
+ inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'invalid', 'label', 'name', 'required', 'value'],
1154
+ methods: ['setFocus', 'removeFocus']
1156
1155
  })
1157
1156
  ], SixSwitch);
1158
1157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSwitch, decorators: [{
@@ -1162,7 +1161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1162
1161
  changeDetection: ChangeDetectionStrategy.OnPush,
1163
1162
  template: '<ng-content></ng-content>',
1164
1163
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1165
- inputs: ['checked', 'disabled', 'invalid', 'name', 'required', 'value'],
1164
+ inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'invalid', 'label', 'name', 'required', 'value'],
1166
1165
  }]
1167
1166
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1168
1167
  let SixTab = class SixTab {
@@ -1271,15 +1270,15 @@ let SixTextarea = class SixTextarea {
1271
1270
  this.z = z;
1272
1271
  c.detach();
1273
1272
  this.el = r.nativeElement;
1274
- proxyOutputs(this, this.el, ['six-textarea-change', 'six-textarea-input', 'six-textarea-focus', 'six-textarea-blur', 'six-textarea-value-change']);
1273
+ proxyOutputs(this, this.el, ['six-textarea-change', 'six-textarea-input', 'six-textarea-focus', 'six-textarea-blur']);
1275
1274
  }
1276
1275
  };
1277
1276
  SixTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1278
- SixTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTextarea, selector: "six-textarea", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", maxlength: "maxlength", minlength: "minlength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", resize: "resize", rows: "rows", size: "size", spellcheck: "spellcheck", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1277
+ SixTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTextarea, selector: "six-textarea", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", maxlength: "maxlength", minlength: "minlength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", resize: "resize", rows: "rows", size: "size", spellcheck: "spellcheck", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1279
1278
  SixTextarea = __decorate([
1280
1279
  ProxyCmp({
1281
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorOnBlur', 'errorText', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1282
- methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText', 'reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
1280
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1281
+ methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
1283
1282
  })
1284
1283
  ], SixTextarea);
1285
1284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTextarea, decorators: [{
@@ -1289,7 +1288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1289
1288
  changeDetection: ChangeDetectionStrategy.OnPush,
1290
1289
  template: '<ng-content></ng-content>',
1291
1290
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1292
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorOnBlur', 'errorText', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1291
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1293
1292
  }]
1294
1293
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1295
1294
  let SixTile = class SixTile {
@@ -1327,11 +1326,11 @@ let SixTimepicker = class SixTimepicker {
1327
1326
  }
1328
1327
  };
1329
1328
  SixTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTimepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1330
- SixTimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTimepicker, selector: "six-timepicker", inputs: { clearable: "clearable", debounce: "debounce", defaultTime: "defaultTime", disabled: "disabled", errorOnBlur: "errorOnBlur", errorText: "errorText", format: "format", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", interval: "interval", label: "label", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", separator: "separator", size: "size", timeout: "timeout", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1329
+ SixTimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTimepicker, selector: "six-timepicker", inputs: { clearable: "clearable", debounce: "debounce", defaultTime: "defaultTime", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", format: "format", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", interval: "interval", invalid: "invalid", label: "label", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", separator: "separator", size: "size", timeout: "timeout", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1331
1330
  SixTimepicker = __decorate([
1332
1331
  ProxyCmp({
1333
- inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorOnBlur', 'errorText', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1334
- methods: ['reportValidity', 'checkValidity', 'setCustomValidity', 'reset']
1332
+ inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorText', 'errorTextCount', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'invalid', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1333
+ methods: ['setFocus']
1335
1334
  })
1336
1335
  ], SixTimepicker);
1337
1336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTimepicker, decorators: [{
@@ -1341,7 +1340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1341
1340
  changeDetection: ChangeDetectionStrategy.OnPush,
1342
1341
  template: '<ng-content></ng-content>',
1343
1342
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1344
- inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorOnBlur', 'errorText', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1343
+ inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorText', 'errorTextCount', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'invalid', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1345
1344
  }]
1346
1345
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1347
1346
  let SixTooltip = class SixTooltip {
@@ -1384,12 +1383,12 @@ const DIRECTIVES = [
1384
1383
  SixDialog,
1385
1384
  SixDrawer,
1386
1385
  SixDropdown,
1386
+ SixError,
1387
1387
  SixErrorPage,
1388
1388
  SixFileList,
1389
1389
  SixFileListItem,
1390
1390
  SixFileUpload,
1391
1391
  SixFooter,
1392
- SixForm,
1393
1392
  SixGroupLabel,
1394
1393
  SixHeader,
1395
1394
  SixIcon,
@@ -1427,33 +1426,849 @@ const DIRECTIVES = [
1427
1426
  SixTooltip
1428
1427
  ];
1429
1428
 
1430
- class UiLibraryAngularModule {
1429
+ class ValidationMessagesService {
1430
+ getErrorMessage(language, error) {
1431
+ return getErrorMessage(language, error);
1432
+ }
1431
1433
  }
1432
- UiLibraryAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1433
- UiLibraryAngularModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, declarations: [SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixForm, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip], exports: [SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixForm, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip] });
1434
- UiLibraryAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, providers: [
1434
+ ValidationMessagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValidationMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1435
+ ValidationMessagesServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValidationMessagesService, providedIn: 'root' });
1436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValidationMessagesService, decorators: [{
1437
+ type: Injectable,
1438
+ args: [{ providedIn: 'root' }]
1439
+ }] });
1440
+
1441
+ class ValueAccessor {
1442
+ constructor(injector, el) {
1443
+ this.injector = injector;
1444
+ this.el = el;
1445
+ this.validationMessagesService = inject(ValidationMessagesService);
1446
+ this.onChange = () => { };
1447
+ this.onTouched = () => { };
1448
+ }
1449
+ registerOnChange(fn) {
1450
+ this.onChange = fn;
1451
+ }
1452
+ registerOnTouched(fn) {
1453
+ this.onTouched = fn;
1454
+ }
1455
+ writeValue(value) {
1456
+ this.el.nativeElement.value = value;
1457
+ this.updateValidation();
1458
+ }
1459
+ /**
1460
+ * Notifies the ControlValueAccessor of a change in the value of the control.
1461
+ *
1462
+ * This is called by each of the ValueAccessor directives when we want to update
1463
+ * the status and validity of the form control. For example with text components this
1464
+ * is called when the input event is fired. For select components this is called
1465
+ * when the change event is fired.
1466
+ *
1467
+ * This also updates the form status on the element by setting the 'invalid' property to true/false.
1468
+ *
1469
+ * @param el The component element.
1470
+ * @param value The new value of the control.
1471
+ */
1472
+ handleValueChange(el, value) {
1473
+ if (el === this.el.nativeElement) {
1474
+ this.onChange(value);
1475
+ this.updateValidation();
1476
+ }
1477
+ }
1478
+ _handleBlurEvent(el) {
1479
+ if (el === this.el.nativeElement) {
1480
+ this.onTouched();
1481
+ this.updateValidation();
1482
+ }
1483
+ }
1484
+ updateValidation() {
1485
+ nextTick(() => {
1486
+ if (this.ngControl?.control == null)
1487
+ return;
1488
+ const element = this.el.nativeElement;
1489
+ const control = this.ngControl?.control;
1490
+ const invalid = !control.valid && control.dirty && control.touched;
1491
+ let errorTexts;
1492
+ if (invalid) {
1493
+ errorTexts = this.initialErrorText || this.getErrorTexts(control);
1494
+ }
1495
+ element.invalid = invalid;
1496
+ element.errorText = errorTexts ?? '';
1497
+ });
1498
+ }
1499
+ setDisabledState(isDisabled) {
1500
+ this.el.nativeElement.disabled = isDisabled;
1501
+ }
1502
+ ngOnDestroy() {
1503
+ if (this.statusChanges) {
1504
+ this.statusChanges.unsubscribe();
1505
+ }
1506
+ }
1507
+ ngAfterViewInit() {
1508
+ this.initialErrorText = this.el.nativeElement?.errorText?.trim() || undefined;
1509
+ try {
1510
+ this.ngControl = this.injector.get(NgControl);
1511
+ }
1512
+ catch {
1513
+ /* No FormControl or ngModel binding */
1514
+ }
1515
+ if (!this.ngControl) {
1516
+ return;
1517
+ }
1518
+ // Listen for changes in validity, disabled, or pending states
1519
+ if (this.ngControl.statusChanges) {
1520
+ this.statusChanges = this.ngControl.statusChanges.subscribe(() => this.updateValidation());
1521
+ }
1522
+ /**
1523
+ * TODO FW-2787: Remove this in favor of https://github.com/angular/angular/issues/10887
1524
+ * whenever it is implemented.
1525
+ */
1526
+ const formControl = this.ngControl.control;
1527
+ if (formControl) {
1528
+ const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];
1529
+ methodsToPatch.forEach((method) => {
1530
+ if (typeof formControl[method] !== 'undefined') {
1531
+ const oldFn = formControl[method].bind(formControl);
1532
+ formControl[method] = (...params) => {
1533
+ oldFn(...params);
1534
+ this.updateValidation();
1535
+ };
1536
+ }
1537
+ });
1538
+ }
1539
+ }
1540
+ getErrorTexts(control) {
1541
+ if (control.errors == null) {
1542
+ console.warn('no errors for invalid control', control);
1543
+ return [];
1544
+ }
1545
+ const errorList = Object.entries(control.errors);
1546
+ if (errorList.length <= 0) {
1547
+ console.warn('no errors for invalid control', control);
1548
+ return [];
1549
+ }
1550
+ return errorList.map((error) => {
1551
+ const [key, value] = error;
1552
+ return (this.validationMessagesService.getErrorMessage(getLanguage(), { key: key, ...value }) ?? key);
1553
+ });
1554
+ }
1555
+ }
1556
+ 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 });
1557
+ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ValueAccessor, host: { listeners: { "blur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
1558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValueAccessor, decorators: [{
1559
+ type: Directive
1560
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
1561
+ type: HostListener,
1562
+ args: ['blur', ['$event.target']]
1563
+ }] } });
1564
+ function getLanguage() {
1565
+ const languages = ['de', 'fr', 'it', 'en'];
1566
+ const documentLang = document.documentElement.lang;
1567
+ if (languages.includes(documentLang)) {
1568
+ return documentLang;
1569
+ }
1570
+ return 'de';
1571
+ }
1572
+ const nextTick = (h) => {
1573
+ if (typeof __zone_symbol__requestAnimationFrame === 'function') {
1574
+ return __zone_symbol__requestAnimationFrame(h);
1575
+ }
1576
+ if (typeof requestAnimationFrame === 'function') {
1577
+ return requestAnimationFrame(h);
1578
+ }
1579
+ return setTimeout(h);
1580
+ };
1581
+
1582
+ class TextValueAccessor extends ValueAccessor {
1583
+ constructor(injector, el) {
1584
+ super(injector, el);
1585
+ }
1586
+ handleInputEvent(el) {
1587
+ this.handleValueChange(el, el.value);
1588
+ }
1589
+ }
1590
+ TextValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TextValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1591
+ TextValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TextValueAccessor, selector: "six-input:not([type=number]),six-textarea", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
1435
1592
  {
1436
- provide: APP_INITIALIZER,
1437
- useFactory: () => {
1438
- return defineCustomElements();
1439
- },
1593
+ provide: NG_VALUE_ACCESSOR,
1594
+ useExisting: TextValueAccessor,
1595
+ multi: true,
1440
1596
  },
1441
- ] });
1442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, decorators: [{
1443
- type: NgModule,
1597
+ ], usesInheritance: true, ngImport: i0 });
1598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TextValueAccessor, decorators: [{
1599
+ type: Directive,
1444
1600
  args: [{
1445
- declarations: [...DIRECTIVES],
1446
- imports: [],
1447
- exports: [...DIRECTIVES],
1601
+ selector: 'six-input:not([type=number]),six-textarea',
1602
+ providers: [
1603
+ {
1604
+ provide: NG_VALUE_ACCESSOR,
1605
+ useExisting: TextValueAccessor,
1606
+ multi: true,
1607
+ },
1608
+ ],
1609
+ }]
1610
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
1611
+ type: HostListener,
1612
+ args: ['input', ['$event.target']]
1613
+ }] } });
1614
+
1615
+ class NumericValueAccessor extends ValueAccessor {
1616
+ constructor(injector, el) {
1617
+ super(injector, el);
1618
+ }
1619
+ handleInputEvent(el) {
1620
+ this.handleValueChange(el, el.value);
1621
+ }
1622
+ registerOnChange(fn) {
1623
+ super.registerOnChange((value) => {
1624
+ fn(value === '' ? null : parseFloat(value));
1625
+ });
1626
+ }
1627
+ }
1628
+ NumericValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumericValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1629
+ NumericValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NumericValueAccessor, selector: "six-input[type=number]", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
1630
+ {
1631
+ provide: NG_VALUE_ACCESSOR,
1632
+ useExisting: NumericValueAccessor,
1633
+ multi: true,
1634
+ },
1635
+ ], usesInheritance: true, ngImport: i0 });
1636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NumericValueAccessor, decorators: [{
1637
+ type: Directive,
1638
+ args: [{
1639
+ selector: 'six-input[type=number]',
1640
+ providers: [
1641
+ {
1642
+ provide: NG_VALUE_ACCESSOR,
1643
+ useExisting: NumericValueAccessor,
1644
+ multi: true,
1645
+ },
1646
+ ],
1647
+ }]
1648
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
1649
+ type: HostListener,
1650
+ args: ['input', ['$event.target']]
1651
+ }] } });
1652
+
1653
+ class RadioValueAccessor extends ValueAccessor {
1654
+ constructor(injector, el) {
1655
+ super(injector, el);
1656
+ }
1657
+ handleChangeEvent(el) {
1658
+ this.handleValueChange(el, this.value);
1659
+ }
1660
+ ngOnInit() {
1661
+ this.checkName();
1662
+ }
1663
+ writeValue(value) {
1664
+ this.el.nativeElement.checked = value === this.value;
1665
+ this.updateValidation();
1666
+ }
1667
+ checkName() {
1668
+ if (this.name && this.formControlName && this.name !== this.formControlName) {
1669
+ throw new Error(`
1670
+ If you define both a name and a formControlName attribute on your radio button, their values
1671
+ must match. Ex: <six-input type="radio" formControlName="food" name="food">
1672
+ `);
1673
+ }
1674
+ if (!this.name && this.formControlName) {
1675
+ this.name = this.formControlName;
1676
+ this.el.nativeElement.name = this.formControlName;
1677
+ }
1678
+ }
1679
+ }
1680
+ RadioValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1681
+ RadioValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RadioValueAccessor, selector: "six-radio", inputs: { value: "value", formControlName: "formControlName", name: "name" }, host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
1682
+ {
1683
+ provide: NG_VALUE_ACCESSOR,
1684
+ useExisting: RadioValueAccessor,
1685
+ multi: true,
1686
+ },
1687
+ ], usesInheritance: true, ngImport: i0 });
1688
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioValueAccessor, decorators: [{
1689
+ type: Directive,
1690
+ args: [{
1691
+ selector: 'six-radio',
1692
+ providers: [
1693
+ {
1694
+ provide: NG_VALUE_ACCESSOR,
1695
+ useExisting: RadioValueAccessor,
1696
+ multi: true,
1697
+ },
1698
+ ],
1699
+ }]
1700
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { value: [{
1701
+ type: Input
1702
+ }], formControlName: [{
1703
+ type: Input
1704
+ }], name: [{
1705
+ type: Input
1706
+ }], handleChangeEvent: [{
1707
+ type: HostListener,
1708
+ args: ['change', ['$event.target']]
1709
+ }] } });
1710
+
1711
+ class DatepickerValueAccessor extends ValueAccessor {
1712
+ constructor(injector, el) {
1713
+ super(injector, el);
1714
+ }
1715
+ handleChangeEvent(el) {
1716
+ this.handleValueChange(el, el.value);
1717
+ }
1718
+ }
1719
+ DatepickerValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1720
+ DatepickerValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerValueAccessor, selector: "six-datepicker", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
1721
+ {
1722
+ provide: NG_VALUE_ACCESSOR,
1723
+ useExisting: DatepickerValueAccessor,
1724
+ multi: true,
1725
+ },
1726
+ ], usesInheritance: true, ngImport: i0 });
1727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerValueAccessor, decorators: [{
1728
+ type: Directive,
1729
+ args: [{
1730
+ selector: 'six-datepicker',
1731
+ providers: [
1732
+ {
1733
+ provide: NG_VALUE_ACCESSOR,
1734
+ useExisting: DatepickerValueAccessor,
1735
+ multi: true,
1736
+ },
1737
+ ],
1738
+ }]
1739
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
1740
+ type: HostListener,
1741
+ args: ['change', ['$event.target']]
1742
+ }] } });
1743
+
1744
+ /**
1745
+ * This directive intercepts the ngSubmit event of an Angular form and introduces
1746
+ * a supplementary event named sixSubmit. The sixSubmit event is triggered exclusively
1747
+ * when the form is valid. In cases where the form is considered invalid, this directive
1748
+ * takes proactive actions by marking all form controls as touched and dirty. Additionally,
1749
+ * it shifts the focus to the initial invalid form element, facilitating quick error
1750
+ * resolution.
1751
+ *
1752
+ * To utilize this directive, apply it to an Angular form.
1753
+ * ```html
1754
+ * <form [formGroup]="form" sixForm (sixSubmit)="onSubmit($event)">
1755
+ * <!-- form content -->
1756
+ * </form>
1757
+ * ```
1758
+ *
1759
+ * For users needing greater flexibility in determining when error messages are displayed,
1760
+ * or for those who prefer not to rely solely on the form submission event,
1761
+ * an alternative is to use the SixFormUtilDirective.
1762
+ */
1763
+ class SixFormDirective {
1764
+ onNgSubmit(event) {
1765
+ if (this.formGroupDirective.invalid) {
1766
+ focusInvalidField(this.formGroupDirective, this.elementRef);
1767
+ }
1768
+ else {
1769
+ this.sixSubmit.emit(event);
1770
+ }
1771
+ }
1772
+ constructor(elementRef, formGroupDirective) {
1773
+ this.elementRef = elementRef;
1774
+ this.formGroupDirective = formGroupDirective;
1775
+ /**
1776
+ * Emits an event when the form is valid and the form submission has been triggered.
1777
+ */
1778
+ this.sixSubmit = new EventEmitter();
1779
+ }
1780
+ }
1781
+ 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 });
1782
+ 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 });
1783
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormDirective, decorators: [{
1784
+ type: Directive,
1785
+ args: [{
1786
+ selector: 'form[sixForm]',
1787
+ }]
1788
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormGroupDirective }]; }, propDecorators: { sixSubmit: [{
1789
+ type: Output
1790
+ }], onNgSubmit: [{
1791
+ type: HostListener,
1792
+ args: ['ngSubmit', ['$event']]
1793
+ }] } });
1794
+ /**
1795
+ * This directive provides a utility method, that marks all form controls
1796
+ * as touched and dirty, and focuses the first invalid form element.
1797
+ *
1798
+ * To utilize this directive, apply it to an Angular form.
1799
+ * ```html
1800
+ * <form [formGroup]="form" sixFormUtil (ngSubmit)="onSubmit($event)">
1801
+ * <!-- form content -->
1802
+ * </form>
1803
+ * ```
1804
+ *
1805
+ * Then, get a reference to the directive and invoke `focusInvalidField()` if the
1806
+ * form is invalid:
1807
+ * ```ts
1808
+ * @ViewChild(SixFormUtilDirective) sixFormUtil!: SixFormUtilDirective;
1809
+ * // ...
1810
+ * onSubmit() {
1811
+ * if (this.form.invalid) {
1812
+ * this.sixFormUtil.focusInvalidField();
1813
+ * } else {
1814
+ * // ...
1815
+ * }
1816
+ * }
1817
+ * ```
1818
+ */
1819
+ class SixFormUtilDirective {
1820
+ constructor(elementRef, formGroupDirective) {
1821
+ this.elementRef = elementRef;
1822
+ this.formGroupDirective = formGroupDirective;
1823
+ }
1824
+ /** markAllControlsAsDirty(Object.values(formGroup.controls));
1825
+ * Marks all form controls as touched and dirty, and focuses the first
1826
+ * invalid form element.
1827
+ */
1828
+ focusInvalidField() {
1829
+ focusInvalidField(this.formGroupDirective, this.elementRef);
1830
+ }
1831
+ }
1832
+ 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 });
1833
+ SixFormUtilDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SixFormUtilDirective, selector: "[sixFormUtil]", ngImport: i0 });
1834
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFormUtilDirective, decorators: [{
1835
+ type: Directive,
1836
+ args: [{
1837
+ selector: '[sixFormUtil]',
1838
+ }]
1839
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormGroupDirective }]; } });
1840
+ function focusInvalidField(formGroupDirective, formElement) {
1841
+ formGroupDirective.form.markAllAsTouched();
1842
+ markAllAsDirty([formGroupDirective.form]);
1843
+ const invalidElement = getInvalidElement(formElement.nativeElement);
1844
+ if ('setFocus' in invalidElement && typeof invalidElement?.setFocus === 'function') {
1845
+ invalidElement.setFocus();
1846
+ }
1847
+ if ('focus' in invalidElement && typeof invalidElement?.focus === 'function') {
1848
+ invalidElement.focus();
1849
+ }
1850
+ }
1851
+ function getInvalidElement(parent) {
1852
+ const invalidElement = parent.querySelector('.ng-invalid');
1853
+ if (invalidElement == null) {
1854
+ return parent;
1855
+ }
1856
+ return getInvalidElement(invalidElement);
1857
+ }
1858
+ function markAllAsDirty(controls) {
1859
+ controls.forEach((control) => {
1860
+ if (control instanceof FormControl) {
1861
+ control.markAsDirty({ onlySelf: true });
1862
+ }
1863
+ else if (control instanceof FormGroup) {
1864
+ control.markAsDirty({ onlySelf: true });
1865
+ markAllAsDirty(Object.values(control.controls));
1866
+ }
1867
+ else if (control instanceof FormArray) {
1868
+ control.markAsDirty({ onlySelf: true });
1869
+ markAllAsDirty(control.controls);
1870
+ }
1871
+ });
1872
+ }
1873
+
1874
+ class SixUiLibraryValidators {
1875
+ static minDate(mindate) {
1876
+ return (control) => {
1877
+ if (control.value == null)
1878
+ return null;
1879
+ const actualDate = control.value;
1880
+ return actualDate.getTime() >= mindate.getTime() ? null : { mindate: { mindate, actual: actualDate } };
1881
+ };
1882
+ }
1883
+ static maxDate(maxdate) {
1884
+ return (control) => {
1885
+ if (control.value == null)
1886
+ return null;
1887
+ const actualDate = control.value;
1888
+ return actualDate.getTime() <= maxdate.getTime() ? null : { maxdate: { maxdate, actual: actualDate } };
1889
+ };
1890
+ }
1891
+ static allowedDates(allowedDates = () => true) {
1892
+ return (control) => {
1893
+ if (control.value == null)
1894
+ return null;
1895
+ const allowed = allowedDates(control.value);
1896
+ return allowed ? null : { invaliddate: { actual: control.value } };
1897
+ };
1898
+ }
1899
+ }
1900
+ class MinDateValidator {
1901
+ validate(control) {
1902
+ return SixUiLibraryValidators.minDate(this.mindate);
1903
+ }
1904
+ }
1905
+ MinDateValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MinDateValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1906
+ MinDateValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MinDateValidator, selector: "six-datepicker[min]", inputs: { mindate: "mindate" }, providers: [{ provide: NG_VALIDATORS, useExisting: MinDateValidator, multi: true }], ngImport: i0 });
1907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MinDateValidator, decorators: [{
1908
+ type: Directive,
1909
+ args: [{
1910
+ selector: 'six-datepicker[min]',
1911
+ providers: [{ provide: NG_VALIDATORS, useExisting: MinDateValidator, multi: true }],
1912
+ }]
1913
+ }], propDecorators: { mindate: [{
1914
+ type: Input
1915
+ }] } });
1916
+ class MaxDateValidator {
1917
+ validate(control) {
1918
+ return SixUiLibraryValidators.maxDate(this.maxdate);
1919
+ }
1920
+ }
1921
+ MaxDateValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MaxDateValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1922
+ MaxDateValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MaxDateValidator, selector: "six-datepicker[max]", inputs: { maxdate: "maxdate" }, providers: [{ provide: NG_VALIDATORS, useExisting: MaxDateValidator, multi: true }], ngImport: i0 });
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MaxDateValidator, decorators: [{
1924
+ type: Directive,
1925
+ args: [{
1926
+ selector: 'six-datepicker[max]',
1927
+ providers: [{ provide: NG_VALIDATORS, useExisting: MaxDateValidator, multi: true }],
1928
+ }]
1929
+ }], propDecorators: { maxdate: [{
1930
+ type: Input
1931
+ }] } });
1932
+ class AllowedDatesValidator {
1933
+ constructor() {
1934
+ this.allowedDates = () => true;
1935
+ }
1936
+ validate(control) {
1937
+ return SixUiLibraryValidators.allowedDates(this.allowedDates)(control);
1938
+ }
1939
+ }
1940
+ AllowedDatesValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AllowedDatesValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1941
+ AllowedDatesValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: AllowedDatesValidator, selector: "six-datepicker[allowedDates]", inputs: { allowedDates: "allowedDates" }, providers: [{ provide: NG_VALIDATORS, useExisting: AllowedDatesValidator, multi: true }], ngImport: i0 });
1942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AllowedDatesValidator, decorators: [{
1943
+ type: Directive,
1944
+ args: [{
1945
+ selector: 'six-datepicker[allowedDates]',
1946
+ providers: [{ provide: NG_VALIDATORS, useExisting: AllowedDatesValidator, multi: true }],
1947
+ }]
1948
+ }], propDecorators: { allowedDates: [{
1949
+ type: Input
1950
+ }] } });
1951
+ class MinValidator {
1952
+ validate(control) {
1953
+ return Validators.min(toFloat(this.min))(control);
1954
+ }
1955
+ }
1956
+ MinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1957
+ MinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MinValidator, selector: "six-input[type=number][min]", inputs: { min: "min" }, providers: [{ provide: NG_VALIDATORS, useExisting: MinValidator, multi: true }], ngImport: i0 });
1958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MinValidator, decorators: [{
1959
+ type: Directive,
1960
+ args: [{
1961
+ selector: 'six-input[type=number][min]',
1962
+ providers: [{ provide: NG_VALIDATORS, useExisting: MinValidator, multi: true }],
1963
+ }]
1964
+ }], propDecorators: { min: [{
1965
+ type: Input
1966
+ }] } });
1967
+ class MaxValidator {
1968
+ validate(control) {
1969
+ return Validators.max(toFloat(this.max))(control);
1970
+ }
1971
+ }
1972
+ MaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1973
+ MaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MaxValidator, selector: "six-input[type=number][max]", inputs: { max: "max" }, providers: [{ provide: NG_VALIDATORS, useExisting: MaxValidator, multi: true }], ngImport: i0 });
1974
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MaxValidator, decorators: [{
1975
+ type: Directive,
1976
+ args: [{
1977
+ selector: 'six-input[type=number][max]',
1978
+ providers: [{ provide: NG_VALIDATORS, useExisting: MaxValidator, multi: true }],
1979
+ }]
1980
+ }], propDecorators: { max: [{
1981
+ type: Input
1982
+ }] } });
1983
+ function toFloat(value) {
1984
+ return typeof value === 'number' ? value : parseFloat(value);
1985
+ }
1986
+
1987
+ class SelectValueAccessor extends ValueAccessor {
1988
+ constructor(injector, el) {
1989
+ super(injector, el);
1990
+ }
1991
+ handleChangeEvent(el) {
1992
+ this.handleValueChange(el, el.value);
1993
+ }
1994
+ }
1995
+ SelectValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1996
+ SelectValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SelectValueAccessor, selector: "six-select", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
1997
+ {
1998
+ provide: NG_VALUE_ACCESSOR,
1999
+ useExisting: SelectValueAccessor,
2000
+ multi: true,
2001
+ },
2002
+ ], usesInheritance: true, ngImport: i0 });
2003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectValueAccessor, decorators: [{
2004
+ type: Directive,
2005
+ args: [{
2006
+ selector: 'six-select',
2007
+ providers: [
2008
+ {
2009
+ provide: NG_VALUE_ACCESSOR,
2010
+ useExisting: SelectValueAccessor,
2011
+ multi: true,
2012
+ },
2013
+ ],
2014
+ }]
2015
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
2016
+ type: HostListener,
2017
+ args: ['change', ['$event.target']]
2018
+ }] } });
2019
+
2020
+ class CheckboxValueAccessor extends ValueAccessor {
2021
+ constructor(injector, el) {
2022
+ super(injector, el);
2023
+ }
2024
+ handleChangeEvent(el) {
2025
+ this.handleValueChange(el, el.checked);
2026
+ }
2027
+ writeValue(value) {
2028
+ this.el.nativeElement.checked = value === true;
2029
+ this.updateValidation();
2030
+ }
2031
+ }
2032
+ CheckboxValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2033
+ CheckboxValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxValueAccessor, selector: "six-checkbox", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
2034
+ {
2035
+ provide: NG_VALUE_ACCESSOR,
2036
+ useExisting: CheckboxValueAccessor,
2037
+ multi: true,
2038
+ },
2039
+ ], usesInheritance: true, ngImport: i0 });
2040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxValueAccessor, decorators: [{
2041
+ type: Directive,
2042
+ args: [{
2043
+ selector: 'six-checkbox',
1448
2044
  providers: [
1449
2045
  {
1450
- provide: APP_INITIALIZER,
1451
- useFactory: () => {
1452
- return defineCustomElements();
1453
- },
2046
+ provide: NG_VALUE_ACCESSOR,
2047
+ useExisting: CheckboxValueAccessor,
2048
+ multi: true,
1454
2049
  },
1455
2050
  ],
1456
2051
  }]
2052
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
2053
+ type: HostListener,
2054
+ args: ['change', ['$event.target']]
2055
+ }] } });
2056
+
2057
+ class RangeValueAccessor extends ValueAccessor {
2058
+ constructor(injector, el) {
2059
+ super(injector, el);
2060
+ }
2061
+ handleInputEvent(el) {
2062
+ this.handleValueChange(el, el.value);
2063
+ }
2064
+ registerOnChange(fn) {
2065
+ super.registerOnChange((value) => {
2066
+ fn(value === '' ? null : parseFloat(value));
2067
+ });
2068
+ }
2069
+ }
2070
+ RangeValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangeValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2071
+ RangeValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RangeValueAccessor, selector: "six-range", host: { listeners: { "input": "handleInputEvent($event.target)" } }, providers: [
2072
+ {
2073
+ provide: NG_VALUE_ACCESSOR,
2074
+ useExisting: RangeValueAccessor,
2075
+ multi: true,
2076
+ },
2077
+ ], usesInheritance: true, ngImport: i0 });
2078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RangeValueAccessor, decorators: [{
2079
+ type: Directive,
2080
+ args: [{
2081
+ selector: 'six-range',
2082
+ providers: [
2083
+ {
2084
+ provide: NG_VALUE_ACCESSOR,
2085
+ useExisting: RangeValueAccessor,
2086
+ multi: true,
2087
+ },
2088
+ ],
2089
+ }]
2090
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleInputEvent: [{
2091
+ type: HostListener,
2092
+ args: ['input', ['$event.target']]
2093
+ }] } });
2094
+
2095
+ class SwitchValueAccessor extends ValueAccessor {
2096
+ constructor(injector, el) {
2097
+ super(injector, el);
2098
+ }
2099
+ handleChangeEvent(el) {
2100
+ this.handleValueChange(el, el.checked);
2101
+ }
2102
+ writeValue(value) {
2103
+ this.el.nativeElement.checked = value === true;
2104
+ this.updateValidation();
2105
+ }
2106
+ }
2107
+ SwitchValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SwitchValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2108
+ SwitchValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SwitchValueAccessor, selector: "six-switch", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
2109
+ {
2110
+ provide: NG_VALUE_ACCESSOR,
2111
+ useExisting: SwitchValueAccessor,
2112
+ multi: true,
2113
+ },
2114
+ ], usesInheritance: true, ngImport: i0 });
2115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SwitchValueAccessor, decorators: [{
2116
+ type: Directive,
2117
+ args: [{
2118
+ selector: 'six-switch',
2119
+ providers: [
2120
+ {
2121
+ provide: NG_VALUE_ACCESSOR,
2122
+ useExisting: SwitchValueAccessor,
2123
+ multi: true,
2124
+ },
2125
+ ],
2126
+ }]
2127
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
2128
+ type: HostListener,
2129
+ args: ['change', ['$event.target']]
2130
+ }] } });
2131
+
2132
+ class TimepickerValueAccessor extends ValueAccessor {
2133
+ constructor(injector, el) {
2134
+ super(injector, el);
2135
+ }
2136
+ handleChangeEvent(el) {
2137
+ this.handleValueChange(el, el.value);
2138
+ }
2139
+ }
2140
+ TimepickerValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimepickerValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2141
+ TimepickerValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TimepickerValueAccessor, selector: "six-timepicker", host: { listeners: { "change": "handleChangeEvent($event.target)" } }, providers: [
2142
+ {
2143
+ provide: NG_VALUE_ACCESSOR,
2144
+ useExisting: TimepickerValueAccessor,
2145
+ multi: true,
2146
+ },
2147
+ ], usesInheritance: true, ngImport: i0 });
2148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimepickerValueAccessor, decorators: [{
2149
+ type: Directive,
2150
+ args: [{
2151
+ selector: 'six-timepicker',
2152
+ providers: [
2153
+ {
2154
+ provide: NG_VALUE_ACCESSOR,
2155
+ useExisting: TimepickerValueAccessor,
2156
+ multi: true,
2157
+ },
2158
+ ],
2159
+ }]
2160
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { handleChangeEvent: [{
2161
+ type: HostListener,
2162
+ args: ['change', ['$event.target']]
2163
+ }] } });
2164
+
2165
+ class UiLibraryAngularModule {
2166
+ static forRoot(customValidationMessagesService) {
2167
+ return {
2168
+ ngModule: UiLibraryAngularModule,
2169
+ providers: [
2170
+ {
2171
+ provide: APP_INITIALIZER,
2172
+ useFactory: () => async () => defineCustomElements(),
2173
+ multi: true,
2174
+ },
2175
+ { provide: ValidationMessagesService, useClass: customValidationMessagesService ?? ValidationMessagesService },
2176
+ ],
2177
+ };
2178
+ }
2179
+ }
2180
+ UiLibraryAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2181
+ UiLibraryAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, declarations: [SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixError, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip,
2182
+ // value accessors
2183
+ TextValueAccessor,
2184
+ NumericValueAccessor,
2185
+ RadioValueAccessor,
2186
+ DatepickerValueAccessor,
2187
+ TimepickerValueAccessor,
2188
+ SelectValueAccessor,
2189
+ CheckboxValueAccessor,
2190
+ SwitchValueAccessor,
2191
+ RangeValueAccessor,
2192
+ // validators
2193
+ MinValidator,
2194
+ MaxValidator,
2195
+ MinDateValidator,
2196
+ MaxDateValidator,
2197
+ AllowedDatesValidator,
2198
+ // form helpers
2199
+ SixFormDirective,
2200
+ SixFormUtilDirective], exports: [SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixError, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip,
2201
+ // value accessors
2202
+ TextValueAccessor,
2203
+ NumericValueAccessor,
2204
+ RadioValueAccessor,
2205
+ DatepickerValueAccessor,
2206
+ TimepickerValueAccessor,
2207
+ SelectValueAccessor,
2208
+ CheckboxValueAccessor,
2209
+ SwitchValueAccessor,
2210
+ RangeValueAccessor,
2211
+ // validators
2212
+ MinValidator,
2213
+ MaxValidator,
2214
+ MinDateValidator,
2215
+ MaxDateValidator,
2216
+ AllowedDatesValidator,
2217
+ // form helpers
2218
+ SixFormDirective,
2219
+ SixFormUtilDirective] });
2220
+ UiLibraryAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule });
2221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UiLibraryAngularModule, decorators: [{
2222
+ type: NgModule,
2223
+ args: [{
2224
+ declarations: [
2225
+ // proxies
2226
+ ...DIRECTIVES,
2227
+ // value accessors
2228
+ TextValueAccessor,
2229
+ NumericValueAccessor,
2230
+ RadioValueAccessor,
2231
+ DatepickerValueAccessor,
2232
+ TimepickerValueAccessor,
2233
+ SelectValueAccessor,
2234
+ CheckboxValueAccessor,
2235
+ SwitchValueAccessor,
2236
+ RangeValueAccessor,
2237
+ // validators
2238
+ MinValidator,
2239
+ MaxValidator,
2240
+ MinDateValidator,
2241
+ MaxDateValidator,
2242
+ AllowedDatesValidator,
2243
+ // form helpers
2244
+ SixFormDirective,
2245
+ SixFormUtilDirective,
2246
+ ],
2247
+ imports: [],
2248
+ exports: [
2249
+ // proxies
2250
+ ...DIRECTIVES,
2251
+ // value accessors
2252
+ TextValueAccessor,
2253
+ NumericValueAccessor,
2254
+ RadioValueAccessor,
2255
+ DatepickerValueAccessor,
2256
+ TimepickerValueAccessor,
2257
+ SelectValueAccessor,
2258
+ CheckboxValueAccessor,
2259
+ SwitchValueAccessor,
2260
+ RangeValueAccessor,
2261
+ // validators
2262
+ MinValidator,
2263
+ MaxValidator,
2264
+ MinDateValidator,
2265
+ MaxDateValidator,
2266
+ AllowedDatesValidator,
2267
+ // form helpers
2268
+ SixFormDirective,
2269
+ SixFormUtilDirective,
2270
+ ],
2271
+ }]
1457
2272
  }] });
1458
2273
 
1459
2274
  /*
@@ -1464,5 +2279,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1464
2279
  * Generated bundle index. Do not edit.
1465
2280
  */
1466
2281
 
1467
- export { DIRECTIVES, SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixForm, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip, UiLibraryAngularModule };
2282
+ export { AllowedDatesValidator, CheckboxValueAccessor, DIRECTIVES, DatepickerValueAccessor, MaxDateValidator, MaxValidator, MinDateValidator, MinValidator, NumericValueAccessor, RadioValueAccessor, RangeValueAccessor, SelectValueAccessor, SetAttributes, SixAlert, SixAvatar, SixBadge, SixButton, SixCard, SixCheckbox, SixDatepicker, SixDetails, SixDialog, SixDrawer, SixDropdown, SixError, SixErrorPage, SixFileList, SixFileListItem, SixFileUpload, SixFooter, SixFormDirective, SixFormUtilDirective, SixGroupLabel, SixHeader, SixIcon, SixIconButton, SixInput, SixItemPicker, SixLanguageSwitcher, SixLayoutGrid, SixMainContainer, SixMenu, SixMenuDivider, SixMenuItem, SixMenuLabel, SixPicto, SixProgressBar, SixProgressRing, SixRadio, SixRange, SixRoot, SixSearchField, SixSelect, SixSidebar, SixSidebarItem, SixSidebarItemGroup, SixSpinner, SixStageIndicator, SixSwitch, SixTab, SixTabGroup, SixTabPanel, SixTag, SixTextarea, SixTile, SixTimepicker, SixTooltip, SixUiLibraryValidators, SwitchValueAccessor, TextValueAccessor, TimepickerValueAccessor, UiLibraryAngularModule, ValidationMessagesService, ValueAccessor };
1468
2283
  //# sourceMappingURL=six-group-ui-library-angular.mjs.map