@haiilo/catalyst-angular 3.0.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,90 +1,43 @@
1
- import * as i1$1 from '@angular/cdk/dialog';
2
- import { DialogModule } from '@angular/cdk/dialog';
3
- import * as i0 from '@angular/core';
4
- import { Directive, HostListener, Component, ChangeDetectionStrategy, EventEmitter, ViewEncapsulation, Inject, Input, Output, ContentChild, InjectionToken, NgModule, Injectable } from '@angular/core';
5
1
  import * as i3 from '@haiilo/catalyst';
6
2
  import { catI18nRegistry, catIconRegistry, catNotificationService } from '@haiilo/catalyst';
7
3
  export { catI18nRegistry, catIconRegistry, catNotificationService } from '@haiilo/catalyst';
4
+ import * as i1$1 from '@angular/cdk/dialog';
5
+ import { DialogModule } from '@angular/cdk/dialog';
6
+ import * as i1 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i0 from '@angular/core';
9
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Inject, Output, ContentChild, Directive, HostListener, Self, Optional, InjectionToken, NgModule, Injectable } from '@angular/core';
8
10
  import { defineCustomElements } from '@haiilo/catalyst/loader';
9
11
  import log from 'loglevel';
10
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
11
12
  import { __decorate } from 'tslib';
12
13
  import { fromEvent } from 'rxjs';
13
- import * as i1 from '@angular/common';
14
- import { CommonModule } from '@angular/common';
14
+ import * as i1$2 from '@angular/forms';
15
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
15
16
 
16
- class ValueAccessor {
17
- constructor(el) {
18
- this.el = el;
19
- this.onChange = () => { };
20
- this.onTouched = () => { };
21
- }
22
- writeValue(value) {
23
- this.el.nativeElement.value = this.lastValue = value == null ? '' : value;
24
- }
25
- handleChangeEvent(value) {
26
- if (value !== this.lastValue) {
27
- this.lastValue = value;
28
- this.onChange(value);
29
- }
30
- }
31
- _handleBlurEvent() {
32
- this.onTouched();
33
- }
34
- registerOnChange(fn) {
35
- this.onChange = fn;
36
- }
37
- registerOnTouched(fn) {
38
- this.onTouched = fn;
39
- }
40
- setDisabledState(isDisabled) {
41
- this.el.nativeElement.disabled = isDisabled;
17
+ /**
18
+ * The bottom actions of a dialog.
19
+ */
20
+ class CatDialogActionsComponent {
21
+ constructor() {
22
+ /**
23
+ * Horizontal alignment of action buttons.
24
+ */
25
+ this.align = 'end';
42
26
  }
43
27
  }
44
- ValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
45
- ValueAccessordir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ValueAccessor, host: { listeners: { "focusout": "_handleBlurEvent()" } }, ngImport: i0 });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
47
- type: Directive,
48
- args: [{}]
49
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
50
- type: HostListener,
51
- args: ['focusout']
28
+ CatDialogActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ CatDialogActionsComponentcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogActionsComponent, selector: "cat-dialog-actions", inputs: { align: "align" }, host: { properties: { "class.cat-dialog-actions-center": "align === \"center\"", "class.cat-dialog-actions-end": "align === \"end\"" }, classAttribute: "cat-dialog-actions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".cat-dialog-actions-center{justify-content:center}.cat-dialog-actions-end{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogActionsComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'cat-dialog-actions', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
33
+ class: 'cat-dialog-actions',
34
+ '[class.cat-dialog-actions-center]': 'align === "center"',
35
+ '[class.cat-dialog-actions-end]': 'align === "end"'
36
+ }, styles: [".cat-dialog-actions-center{justify-content:center}.cat-dialog-actions-end{flex-direction:row-reverse}\n"] }]
37
+ }], propDecorators: { align: [{
38
+ type: Input
52
39
  }] } });
53
40
 
54
- class BooleanValueAccessor extends ValueAccessor {
55
- constructor(el) {
56
- super(el);
57
- }
58
- writeValue(value) {
59
- this.el.nativeElement.checked = this.lastValue = value == null ? false : value;
60
- }
61
- }
62
- BooleanValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BooleanValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
63
- BooleanValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: BooleanValueAccessor, selector: "cat-checkbox, cat-toggle", host: { listeners: { "catChange": "handleChangeEvent($event.target.value)" } }, providers: [
64
- {
65
- provide: NG_VALUE_ACCESSOR,
66
- useExisting: BooleanValueAccessor,
67
- multi: true
68
- }
69
- ], usesInheritance: true, ngImport: i0 });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BooleanValueAccessor, decorators: [{
71
- type: Directive,
72
- args: [{
73
- /* tslint:disable-next-line:directive-selector */
74
- selector: 'cat-checkbox, cat-toggle',
75
- host: {
76
- '(catChange)': 'handleChangeEvent($event.target.value)'
77
- },
78
- providers: [
79
- {
80
- provide: NG_VALUE_ACCESSOR,
81
- useExisting: BooleanValueAccessor,
82
- multi: true
83
- }
84
- ]
85
- }]
86
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
87
-
88
41
  /* eslint-disable */
89
42
  const proxyInputs = (Cmp, inputs) => {
90
43
  const Prototype = Cmp.prototype;
@@ -217,11 +170,11 @@ let CatButton = class CatButton {
217
170
  }
218
171
  };
219
172
  CatButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
220
- CatButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatButton, selector: "cat-button", inputs: { a11yCurrent: "a11yCurrent", a11yLabel: "a11yLabel", active: "active", buttonId: "buttonId", color: "color", disabled: "disabled", icon: "icon", iconOnly: "iconOnly", iconRight: "iconRight", iconSrc: "iconSrc", loading: "loading", name: "name", noEllipsis: "noEllipsis", round: "round", size: "size", submit: "submit", url: "url", urlTarget: "urlTarget", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
+ CatButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatButton, selector: "cat-button", inputs: { a11yCurrent: "a11yCurrent", a11yLabel: "a11yLabel", active: "active", buttonId: "buttonId", color: "color", disabled: "disabled", icon: "icon", iconOnly: "iconOnly", iconRight: "iconRight", iconSrc: "iconSrc", loading: "loading", name: "name", nativeAttributes: "nativeAttributes", noEllipsis: "noEllipsis", round: "round", size: "size", submit: "submit", url: "url", urlTarget: "urlTarget", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
221
174
  CatButton = __decorate([
222
175
  ProxyCmp({
223
176
  defineCustomElementFn: undefined,
224
- inputs: ['a11yCurrent', 'a11yLabel', 'active', 'buttonId', 'color', 'disabled', 'icon', 'iconOnly', 'iconRight', 'iconSrc', 'loading', 'name', 'noEllipsis', 'round', 'size', 'submit', 'url', 'urlTarget', 'value', 'variant'],
177
+ inputs: ['a11yCurrent', 'a11yLabel', 'active', 'buttonId', 'color', 'disabled', 'icon', 'iconOnly', 'iconRight', 'iconSrc', 'loading', 'name', 'nativeAttributes', 'noEllipsis', 'round', 'size', 'submit', 'url', 'urlTarget', 'value', 'variant'],
225
178
  methods: ['doFocus', 'doBlur', 'doClick']
226
179
  })
227
180
  ], CatButton);
@@ -231,7 +184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
231
184
  selector: 'cat-button',
232
185
  changeDetection: ChangeDetectionStrategy.OnPush,
233
186
  template: '<ng-content></ng-content>',
234
- inputs: ['a11yCurrent', 'a11yLabel', 'active', 'buttonId', 'color', 'disabled', 'icon', 'iconOnly', 'iconRight', 'iconSrc', 'loading', 'name', 'noEllipsis', 'round', 'size', 'submit', 'url', 'urlTarget', 'value', 'variant']
187
+ inputs: ['a11yCurrent', 'a11yLabel', 'active', 'buttonId', 'color', 'disabled', 'icon', 'iconOnly', 'iconRight', 'iconSrc', 'loading', 'name', 'nativeAttributes', 'noEllipsis', 'round', 'size', 'submit', 'url', 'urlTarget', 'value', 'variant']
235
188
  }]
236
189
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
237
190
  let CatCard = class CatCard {
@@ -265,11 +218,11 @@ let CatCheckbox = class CatCheckbox {
265
218
  }
266
219
  };
267
220
  CatCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
268
- CatCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatCheckbox, selector: "cat-checkbox", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", indeterminate: "indeterminate", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
221
+ CatCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatCheckbox, selector: "cat-checkbox", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", indeterminate: "indeterminate", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", nativeAttributes: "nativeAttributes", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
269
222
  CatCheckbox = __decorate([
270
223
  ProxyCmp({
271
224
  defineCustomElementFn: undefined,
272
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'indeterminate', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value'],
225
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'indeterminate', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value'],
273
226
  methods: ['doFocus', 'doBlur', 'doClick']
274
227
  })
275
228
  ], CatCheckbox);
@@ -279,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
279
232
  selector: 'cat-checkbox',
280
233
  changeDetection: ChangeDetectionStrategy.OnPush,
281
234
  template: '<ng-content></ng-content>',
282
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'indeterminate', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value']
235
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'indeterminate', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value']
283
236
  }]
284
237
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
285
238
  let CatDropdown = class CatDropdown {
@@ -365,11 +318,11 @@ let CatInput = class CatInput {
365
318
  }
366
319
  };
367
320
  CatInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
368
- CatInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatInput, selector: "cat-input", inputs: { autoComplete: "autoComplete", clearable: "clearable", disabled: "disabled", hint: "hint", icon: "icon", iconRight: "iconRight", identifier: "identifier", label: "label", labelHidden: "labelHidden", max: "max", maxLength: "maxLength", min: "min", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", requiredMarker: "requiredMarker", round: "round", textPrefix: "textPrefix", textSuffix: "textSuffix", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
321
+ CatInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatInput, selector: "cat-input", inputs: { autoComplete: "autoComplete", clearable: "clearable", disabled: "disabled", errorUpdate: "errorUpdate", errors: "errors", hint: "hint", icon: "icon", iconRight: "iconRight", identifier: "identifier", label: "label", labelHidden: "labelHidden", max: "max", maxLength: "maxLength", min: "min", minLength: "minLength", name: "name", nativeAttributes: "nativeAttributes", placeholder: "placeholder", readonly: "readonly", required: "required", requiredMarker: "requiredMarker", round: "round", textPrefix: "textPrefix", textSuffix: "textSuffix", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
369
322
  CatInput = __decorate([
370
323
  ProxyCmp({
371
324
  defineCustomElementFn: undefined,
372
- inputs: ['autoComplete', 'clearable', 'disabled', 'hint', 'icon', 'iconRight', 'identifier', 'label', 'labelHidden', 'max', 'maxLength', 'min', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'requiredMarker', 'round', 'textPrefix', 'textSuffix', 'type', 'value'],
325
+ inputs: ['autoComplete', 'clearable', 'disabled', 'errorUpdate', 'errors', 'hint', 'icon', 'iconRight', 'identifier', 'label', 'labelHidden', 'max', 'maxLength', 'min', 'minLength', 'name', 'nativeAttributes', 'placeholder', 'readonly', 'required', 'requiredMarker', 'round', 'textPrefix', 'textSuffix', 'type', 'value'],
373
326
  methods: ['doFocus', 'doBlur', 'doClick', 'clear']
374
327
  })
375
328
  ], CatInput);
@@ -379,7 +332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
379
332
  selector: 'cat-input',
380
333
  changeDetection: ChangeDetectionStrategy.OnPush,
381
334
  template: '<ng-content></ng-content>',
382
- inputs: ['autoComplete', 'clearable', 'disabled', 'hint', 'icon', 'iconRight', 'identifier', 'label', 'labelHidden', 'max', 'maxLength', 'min', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'requiredMarker', 'round', 'textPrefix', 'textSuffix', 'type', 'value']
335
+ inputs: ['autoComplete', 'clearable', 'disabled', 'errorUpdate', 'errors', 'hint', 'icon', 'iconRight', 'identifier', 'label', 'labelHidden', 'max', 'maxLength', 'min', 'minLength', 'name', 'nativeAttributes', 'placeholder', 'readonly', 'required', 'requiredMarker', 'round', 'textPrefix', 'textSuffix', 'type', 'value']
383
336
  }]
384
337
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
385
338
  let CatLabel = class CatLabel {
@@ -439,11 +392,11 @@ let CatRadio = class CatRadio {
439
392
  }
440
393
  };
441
394
  CatRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
442
- CatRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatRadio, selector: "cat-radio", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
395
+ CatRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatRadio, selector: "cat-radio", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", nativeAttributes: "nativeAttributes", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
443
396
  CatRadio = __decorate([
444
397
  ProxyCmp({
445
398
  defineCustomElementFn: undefined,
446
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value'],
399
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value'],
447
400
  methods: ['doFocus', 'doBlur', 'doClick']
448
401
  })
449
402
  ], CatRadio);
@@ -453,7 +406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
453
406
  selector: 'cat-radio',
454
407
  changeDetection: ChangeDetectionStrategy.OnPush,
455
408
  template: '<ng-content></ng-content>',
456
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value']
409
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value']
457
410
  }]
458
411
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
459
412
  let CatRadioGroup = class CatRadioGroup {
@@ -515,11 +468,11 @@ let CatSelect = class CatSelect {
515
468
  }
516
469
  };
517
470
  CatSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
518
- CatSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatSelect, selector: "cat-select", inputs: { clearable: "clearable", debounce: "debounce", disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", multiple: "multiple", name: "name", noItems: "noItems", placeholder: "placeholder", placement: "placement", required: "required", requiredMarker: "requiredMarker", tagHint: "tagHint", tags: "tags", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
471
+ CatSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatSelect, selector: "cat-select", inputs: { clearable: "clearable", debounce: "debounce", disabled: "disabled", errorUpdate: "errorUpdate", errors: "errors", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", multiple: "multiple", name: "name", nativeAttributes: "nativeAttributes", noItems: "noItems", placeholder: "placeholder", placement: "placement", required: "required", requiredMarker: "requiredMarker", tagHint: "tagHint", tags: "tags", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
519
472
  CatSelect = __decorate([
520
473
  ProxyCmp({
521
474
  defineCustomElementFn: undefined,
522
- inputs: ['clearable', 'debounce', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'multiple', 'name', 'noItems', 'placeholder', 'placement', 'required', 'requiredMarker', 'tagHint', 'tags', 'value'],
475
+ inputs: ['clearable', 'debounce', 'disabled', 'errorUpdate', 'errors', 'hint', 'identifier', 'label', 'labelHidden', 'multiple', 'name', 'nativeAttributes', 'noItems', 'placeholder', 'placement', 'required', 'requiredMarker', 'tagHint', 'tags', 'value'],
523
476
  methods: ['connect']
524
477
  })
525
478
  ], CatSelect);
@@ -529,7 +482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
529
482
  selector: 'cat-select',
530
483
  changeDetection: ChangeDetectionStrategy.OnPush,
531
484
  template: '<ng-content></ng-content>',
532
- inputs: ['clearable', 'debounce', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'multiple', 'name', 'noItems', 'placeholder', 'placement', 'required', 'requiredMarker', 'tagHint', 'tags', 'value']
485
+ inputs: ['clearable', 'debounce', 'disabled', 'errorUpdate', 'errors', 'hint', 'identifier', 'label', 'labelHidden', 'multiple', 'name', 'nativeAttributes', 'noItems', 'placeholder', 'placement', 'required', 'requiredMarker', 'tagHint', 'tags', 'value']
533
486
  }]
534
487
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
535
488
  let CatSelectDemo = class CatSelectDemo {
@@ -660,11 +613,11 @@ let CatTextarea = class CatTextarea {
660
613
  }
661
614
  };
662
615
  CatTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
663
- CatTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatTextarea, selector: "cat-textarea", inputs: { disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", maxLength: "maxLength", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", requiredMarker: "requiredMarker", rows: "rows", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
616
+ CatTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatTextarea, selector: "cat-textarea", inputs: { disabled: "disabled", errorUpdate: "errorUpdate", errors: "errors", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", maxLength: "maxLength", minLength: "minLength", name: "name", nativeAttributes: "nativeAttributes", placeholder: "placeholder", readonly: "readonly", required: "required", requiredMarker: "requiredMarker", rows: "rows", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
664
617
  CatTextarea = __decorate([
665
618
  ProxyCmp({
666
619
  defineCustomElementFn: undefined,
667
- inputs: ['disabled', 'hint', 'identifier', 'label', 'labelHidden', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'requiredMarker', 'rows', 'value'],
620
+ inputs: ['disabled', 'errorUpdate', 'errors', 'hint', 'identifier', 'label', 'labelHidden', 'maxLength', 'minLength', 'name', 'nativeAttributes', 'placeholder', 'readonly', 'required', 'requiredMarker', 'rows', 'value'],
668
621
  methods: ['doFocus', 'doBlur', 'doClick']
669
622
  })
670
623
  ], CatTextarea);
@@ -674,7 +627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
674
627
  selector: 'cat-textarea',
675
628
  changeDetection: ChangeDetectionStrategy.OnPush,
676
629
  template: '<ng-content></ng-content>',
677
- inputs: ['disabled', 'hint', 'identifier', 'label', 'labelHidden', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'requiredMarker', 'rows', 'value']
630
+ inputs: ['disabled', 'errorUpdate', 'errors', 'hint', 'identifier', 'label', 'labelHidden', 'maxLength', 'minLength', 'name', 'nativeAttributes', 'placeholder', 'readonly', 'required', 'requiredMarker', 'rows', 'value']
678
631
  }]
679
632
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
680
633
  let CatToggle = class CatToggle {
@@ -686,11 +639,11 @@ let CatToggle = class CatToggle {
686
639
  }
687
640
  };
688
641
  CatToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
689
- CatToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatToggle, selector: "cat-toggle", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
642
+ CatToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatToggle, selector: "cat-toggle", inputs: { checked: "checked", disabled: "disabled", hint: "hint", identifier: "identifier", label: "label", labelHidden: "labelHidden", labelLeft: "labelLeft", name: "name", nativeAttributes: "nativeAttributes", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
690
643
  CatToggle = __decorate([
691
644
  ProxyCmp({
692
645
  defineCustomElementFn: undefined,
693
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value'],
646
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value'],
694
647
  methods: ['doFocus', 'doBlur', 'doClick']
695
648
  })
696
649
  ], CatToggle);
@@ -700,7 +653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
700
653
  selector: 'cat-toggle',
701
654
  changeDetection: ChangeDetectionStrategy.OnPush,
702
655
  template: '<ng-content></ng-content>',
703
- inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'required', 'value']
656
+ inputs: ['checked', 'disabled', 'hint', 'identifier', 'label', 'labelHidden', 'labelLeft', 'name', 'nativeAttributes', 'required', 'value']
704
657
  }]
705
658
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
706
659
  let CatTooltip = class CatTooltip {
@@ -728,6 +681,139 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
728
681
  }]
729
682
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
730
683
 
684
+ /**
685
+ * The header of a dialog.
686
+ */
687
+ class CatDialogHeaderComponent {
688
+ constructor(i18n) {
689
+ this.i18n = i18n;
690
+ this.closeTxt = this.i18n.t('dialog.close');
691
+ this.closeSvg = '<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.53 6.47a.75.75 0 0 0-1.06 1.06L10.94 12l-4.47 4.47a.75.75 0 1 0 1.06 1.06L12 13.06l4.47 4.47a.75.75 0 1 0 1.06-1.06L13.06 12l4.47-4.47a.75.75 0 0 0-1.06-1.06L12 10.94 7.53 6.47Z"/></svg>';
692
+ /**
693
+ * Whether the dialog can be closed via a close button.
694
+ */
695
+ this.closable = true;
696
+ /**
697
+ * Emits when the close button is clicked.
698
+ */
699
+ this.close = new EventEmitter();
700
+ }
701
+ }
702
+ CatDialogHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogHeaderComponent, deps: [{ token: CAT_I18N_REGISTRY_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
703
+ CatDialogHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogHeaderComponent, selector: "cat-dialog-header", inputs: { headline: "headline", subline: "subline", closable: "closable" }, outputs: { close: "close" }, host: { classAttribute: "cat-dialog-header" }, ngImport: i0, template: "<div class=\"cat-dialog-header-content\" *ngIf=\"headline || subline\">\n <h3 class=\"cat-h5 cat-m-0\" *ngIf=\"headline\">{{ headline }}</h3>\n <h4 class=\"cat-h6 cat-m-0\" *ngIf=\"subline\">{{ subline }}</h4>\n</div>\n<ng-content></ng-content>\n<cat-button\n *ngIf=\"closable\"\n class=\"cat-dialog-close cat-button-pull\"\n variant=\"text\"\n size=\"s\"\n [iconSrc]=\"closeSvg\"\n [iconOnly]=\"true\"\n [a11yLabel]=\"closeTxt\"\n (click)=\"close.emit()\"\n></cat-button>\n", styles: [".cat-dialog-close{margin-left:auto;align-self:start}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CatButton, selector: "cat-button", inputs: ["a11yCurrent", "a11yLabel", "active", "buttonId", "color", "disabled", "icon", "iconOnly", "iconRight", "iconSrc", "loading", "name", "nativeAttributes", "noEllipsis", "round", "size", "submit", "url", "urlTarget", "value", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogHeaderComponent, decorators: [{
705
+ type: Component,
706
+ args: [{ selector: 'cat-dialog-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
707
+ class: 'cat-dialog-header'
708
+ }, template: "<div class=\"cat-dialog-header-content\" *ngIf=\"headline || subline\">\n <h3 class=\"cat-h5 cat-m-0\" *ngIf=\"headline\">{{ headline }}</h3>\n <h4 class=\"cat-h6 cat-m-0\" *ngIf=\"subline\">{{ subline }}</h4>\n</div>\n<ng-content></ng-content>\n<cat-button\n *ngIf=\"closable\"\n class=\"cat-dialog-close cat-button-pull\"\n variant=\"text\"\n size=\"s\"\n [iconSrc]=\"closeSvg\"\n [iconOnly]=\"true\"\n [a11yLabel]=\"closeTxt\"\n (click)=\"close.emit()\"\n></cat-button>\n", styles: [".cat-dialog-close{margin-left:auto;align-self:start}\n"] }]
709
+ }], ctorParameters: function () { return [{ type: i3.CatI18nRegistry, decorators: [{
710
+ type: Inject,
711
+ args: [CAT_I18N_REGISTRY_TOKEN]
712
+ }] }]; }, propDecorators: { headline: [{
713
+ type: Input
714
+ }], subline: [{
715
+ type: Input
716
+ }], closable: [{
717
+ type: Input
718
+ }], close: [{
719
+ type: Output
720
+ }] } });
721
+
722
+ /**
723
+ * A modal dialog.
724
+ */
725
+ class CatDialogComponent {
726
+ constructor(dialogRef) {
727
+ this.dialogRef = dialogRef;
728
+ }
729
+ ngAfterContentInit() {
730
+ this.header?.close.subscribe(() => this.dialogRef.close());
731
+ }
732
+ }
733
+ CatDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
734
+ CatDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogComponent, selector: "cat-dialog", host: { classAttribute: "cat-dialog-inner" }, queries: [{ propertyName: "header", first: true, predicate: CatDialogHeaderComponent, descendants: true }], ngImport: i0, template: "<ng-content select=\"cat-dialog-header\"></ng-content>\n <cat-scrollable>\n <div class=\"cat-dialog-content\">\n <ng-content></ng-content>\n </div>\n </cat-scrollable>\n<ng-content select=\"cat-dialog-actions\"></ng-content>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-pane{transition:transform .25s ease,opacity .25s ease;transform:translateY(24px);opacity:0}.cdk-overlay-backdrop-showing+.cdk-global-overlay-wrapper .cdk-overlay-pane{transform:translateY(0);opacity:1}.cat-backdrop.cdk-overlay-backdrop{transition-duration:.5s}.cdk-dialog-container>*:only-child{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}.cat-dialog-inner{display:flex;flex-direction:column;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"], dependencies: [{ kind: "component", type: CatScrollable, selector: "cat-scrollable", inputs: ["noOverflowX", "noOverflowY", "noOverscroll", "noScrolledInit", "noShadowX", "noShadowY", "scrolledBuffer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogComponent, decorators: [{
736
+ type: Component,
737
+ args: [{ selector: 'cat-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
738
+ class: 'cat-dialog-inner',
739
+ }, template: "<ng-content select=\"cat-dialog-header\"></ng-content>\n <cat-scrollable>\n <div class=\"cat-dialog-content\">\n <ng-content></ng-content>\n </div>\n </cat-scrollable>\n<ng-content select=\"cat-dialog-actions\"></ng-content>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-pane{transition:transform .25s ease,opacity .25s ease;transform:translateY(24px);opacity:0}.cdk-overlay-backdrop-showing+.cdk-global-overlay-wrapper .cdk-overlay-pane{transform:translateY(0);opacity:1}.cat-backdrop.cdk-overlay-backdrop{transition-duration:.5s}.cdk-dialog-container>*:only-child{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}.cat-dialog-inner{display:flex;flex-direction:column;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"] }]
740
+ }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; }, propDecorators: { header: [{
741
+ type: ContentChild,
742
+ args: [CatDialogHeaderComponent]
743
+ }] } });
744
+
745
+ class ValueAccessor {
746
+ constructor(el) {
747
+ this.el = el;
748
+ this.onChange = () => { };
749
+ this.onTouched = () => { };
750
+ }
751
+ writeValue(value) {
752
+ this.el.nativeElement.value = this.lastValue = value == null ? '' : value;
753
+ }
754
+ handleChangeEvent(value) {
755
+ if (value !== this.lastValue) {
756
+ this.lastValue = value;
757
+ this.onChange(value);
758
+ }
759
+ }
760
+ _handleBlurEvent() {
761
+ this.onTouched();
762
+ }
763
+ registerOnChange(fn) {
764
+ this.onChange = fn;
765
+ }
766
+ registerOnTouched(fn) {
767
+ this.onTouched = fn;
768
+ }
769
+ setDisabledState(isDisabled) {
770
+ this.el.nativeElement.disabled = isDisabled;
771
+ }
772
+ }
773
+ ValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
774
+ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ValueAccessor, host: { listeners: { "focusout": "_handleBlurEvent()" } }, ngImport: i0 });
775
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
776
+ type: Directive,
777
+ args: [{}]
778
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
779
+ type: HostListener,
780
+ args: ['focusout']
781
+ }] } });
782
+
783
+ class BooleanValueAccessor extends ValueAccessor {
784
+ constructor(el) {
785
+ super(el);
786
+ }
787
+ writeValue(value) {
788
+ this.el.nativeElement.checked = this.lastValue = value == null ? false : value;
789
+ }
790
+ }
791
+ BooleanValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BooleanValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
792
+ BooleanValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: BooleanValueAccessor, selector: "cat-checkbox, cat-toggle", host: { listeners: { "catChange": "handleChangeEvent($event.target.value)" } }, providers: [
793
+ {
794
+ provide: NG_VALUE_ACCESSOR,
795
+ useExisting: BooleanValueAccessor,
796
+ multi: true
797
+ }
798
+ ], usesInheritance: true, ngImport: i0 });
799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BooleanValueAccessor, decorators: [{
800
+ type: Directive,
801
+ args: [{
802
+ /* tslint:disable-next-line:directive-selector */
803
+ selector: 'cat-checkbox, cat-toggle',
804
+ host: {
805
+ '(catChange)': 'handleChangeEvent($event.target.value)'
806
+ },
807
+ providers: [
808
+ {
809
+ provide: NG_VALUE_ACCESSOR,
810
+ useExisting: BooleanValueAccessor,
811
+ multi: true
812
+ }
813
+ ]
814
+ }]
815
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
816
+
731
817
  class RadioValueAccessor extends ValueAccessor {
732
818
  constructor(el) {
733
819
  super(el);
@@ -821,90 +907,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
821
907
  }]
822
908
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
823
909
 
824
- /**
825
- * The header of a dialog.
826
- */
827
- class CatDialogHeaderComponent {
828
- constructor(i18n) {
829
- this.i18n = i18n;
830
- this.closeTxt = this.i18n.t('dialog.close');
831
- this.closeSvg = '<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.53 6.47a.75.75 0 0 0-1.06 1.06L10.94 12l-4.47 4.47a.75.75 0 1 0 1.06 1.06L12 13.06l4.47 4.47a.75.75 0 1 0 1.06-1.06L13.06 12l4.47-4.47a.75.75 0 0 0-1.06-1.06L12 10.94 7.53 6.47Z"/></svg>';
832
- /**
833
- * Whether the dialog can be closed via a close button.
834
- */
835
- this.closable = true;
836
- /**
837
- * Emits when the close button is clicked.
838
- */
839
- this.close = new EventEmitter();
840
- }
841
- }
842
- CatDialogHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogHeaderComponent, deps: [{ token: CAT_I18N_REGISTRY_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
843
- CatDialogHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogHeaderComponent, selector: "cat-dialog-header", inputs: { headline: "headline", subline: "subline", closable: "closable" }, outputs: { close: "close" }, host: { classAttribute: "cat-dialog-header" }, ngImport: i0, template: "<div class=\"cat-dialog-header-content\" *ngIf=\"headline || subline\">\n <h3 class=\"cat-h5 cat-m-0\" *ngIf=\"headline\">{{ headline }}</h3>\n <h4 class=\"cat-h6 cat-m-0\" *ngIf=\"subline\">{{ subline }}</h4>\n</div>\n<ng-content></ng-content>\n<cat-button\n *ngIf=\"closable\"\n class=\"cat-dialog-close cat-button-pull\"\n variant=\"text\"\n size=\"s\"\n [iconSrc]=\"closeSvg\"\n [iconOnly]=\"true\"\n [a11yLabel]=\"closeTxt\"\n (click)=\"close.emit()\"\n></cat-button>\n", styles: [".cat-dialog-close{margin-left:auto;align-self:start}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CatButton, selector: "cat-button", inputs: ["a11yCurrent", "a11yLabel", "active", "buttonId", "color", "disabled", "icon", "iconOnly", "iconRight", "iconSrc", "loading", "name", "noEllipsis", "round", "size", "submit", "url", "urlTarget", "value", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogHeaderComponent, decorators: [{
845
- type: Component,
846
- args: [{ selector: 'cat-dialog-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
847
- class: 'cat-dialog-header'
848
- }, template: "<div class=\"cat-dialog-header-content\" *ngIf=\"headline || subline\">\n <h3 class=\"cat-h5 cat-m-0\" *ngIf=\"headline\">{{ headline }}</h3>\n <h4 class=\"cat-h6 cat-m-0\" *ngIf=\"subline\">{{ subline }}</h4>\n</div>\n<ng-content></ng-content>\n<cat-button\n *ngIf=\"closable\"\n class=\"cat-dialog-close cat-button-pull\"\n variant=\"text\"\n size=\"s\"\n [iconSrc]=\"closeSvg\"\n [iconOnly]=\"true\"\n [a11yLabel]=\"closeTxt\"\n (click)=\"close.emit()\"\n></cat-button>\n", styles: [".cat-dialog-close{margin-left:auto;align-self:start}\n"] }]
849
- }], ctorParameters: function () { return [{ type: i3.CatI18nRegistry, decorators: [{
850
- type: Inject,
851
- args: [CAT_I18N_REGISTRY_TOKEN]
852
- }] }]; }, propDecorators: { headline: [{
853
- type: Input
854
- }], subline: [{
855
- type: Input
856
- }], closable: [{
857
- type: Input
858
- }], close: [{
859
- type: Output
860
- }] } });
861
-
862
- /**
863
- * A modal dialog.
864
- */
865
- class CatDialogComponent {
866
- constructor(dialogRef) {
867
- this.dialogRef = dialogRef;
910
+ class ValueAccessorDecorator {
911
+ constructor(el, controlDirective) {
912
+ this.el = el;
913
+ this.controlDirective = controlDirective;
868
914
  }
869
- ngAfterContentInit() {
870
- this.header?.close.subscribe(() => this.dialogRef.close());
915
+ ngAfterViewInit() {
916
+ this.updateErrors();
917
+ this.controlDirective?.statusChanges?.subscribe(() => this.updateErrors());
871
918
  }
872
- }
873
- CatDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
874
- CatDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogComponent, selector: "cat-dialog", host: { classAttribute: "cat-dialog-inner" }, queries: [{ propertyName: "header", first: true, predicate: CatDialogHeaderComponent, descendants: true }], ngImport: i0, template: "<ng-content select=\"cat-dialog-header\"></ng-content>\n <cat-scrollable>\n <div class=\"cat-dialog-content\">\n <ng-content></ng-content>\n </div>\n </cat-scrollable>\n<ng-content select=\"cat-dialog-actions\"></ng-content>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-pane{transition:transform .25s ease,opacity .25s ease;transform:translateY(24px);opacity:0}.cdk-overlay-backdrop-showing+.cdk-global-overlay-wrapper .cdk-overlay-pane{transform:translateY(0);opacity:1}.cat-backdrop.cdk-overlay-backdrop{transition-duration:.5s}.cdk-dialog-container>*:only-child{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}.cat-dialog-inner{display:flex;flex-direction:column;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"], dependencies: [{ kind: "component", type: CatScrollable, selector: "cat-scrollable", inputs: ["noOverflowX", "noOverflowY", "noOverscroll", "noScrolledInit", "noShadowX", "noShadowY", "scrolledBuffer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogComponent, decorators: [{
876
- type: Component,
877
- args: [{ selector: 'cat-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
878
- class: 'cat-dialog-inner',
879
- }, template: "<ng-content select=\"cat-dialog-header\"></ng-content>\n <cat-scrollable>\n <div class=\"cat-dialog-content\">\n <ng-content></ng-content>\n </div>\n </cat-scrollable>\n<ng-content select=\"cat-dialog-actions\"></ng-content>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-pane{transition:transform .25s ease,opacity .25s ease;transform:translateY(24px);opacity:0}.cdk-overlay-backdrop-showing+.cdk-global-overlay-wrapper .cdk-overlay-pane{transform:translateY(0);opacity:1}.cat-backdrop.cdk-overlay-backdrop{transition-duration:.5s}.cdk-dialog-container>*:only-child{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}.cat-dialog-inner{display:flex;flex-direction:column;width:100%;height:100%;min-height:inherit;max-height:inherit}\n"] }]
880
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; }, propDecorators: { header: [{
881
- type: ContentChild,
882
- args: [CatDialogHeaderComponent]
883
- }] } });
884
-
885
- /**
886
- * The bottom actions of a dialog.
887
- */
888
- class CatDialogActionsComponent {
889
- constructor() {
890
- /**
891
- * Horizontal alignment of action buttons.
892
- */
893
- this.align = 'end';
919
+ updateErrors() {
920
+ this.el.nativeElement.errors = this.controlDirective?.errors || !!this.controlDirective?.invalid;
894
921
  }
895
922
  }
896
- CatDialogActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
897
- CatDialogActionsComponentcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CatDialogActionsComponent, selector: "cat-dialog-actions", inputs: { align: "align" }, host: { properties: { "class.cat-dialog-actions-center": "align === \"center\"", "class.cat-dialog-actions-end": "align === \"end\"" }, classAttribute: "cat-dialog-actions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".cat-dialog-actions-center{justify-content:center}.cat-dialog-actions-end{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatDialogActionsComponent, decorators: [{
899
- type: Component,
900
- args: [{ selector: 'cat-dialog-actions', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
901
- class: 'cat-dialog-actions',
902
- '[class.cat-dialog-actions-center]': 'align === "center"',
903
- '[class.cat-dialog-actions-end]': 'align === "end"'
904
- }, styles: [".cat-dialog-actions-center{justify-content:center}.cat-dialog-actions-end{flex-direction:row-reverse}\n"] }]
905
- }], propDecorators: { align: [{
906
- type: Input
907
- }] } });
923
+ ValueAccessorDecorator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessorDecorator, deps: [{ token: i0.ElementRef }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
924
+ ValueAccessorDecoratordir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ValueAccessorDecorator, selector: "cat-input, cat-textarea, cat-select", ngImport: i0 });
925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessorDecorator, decorators: [{
926
+ type: Directive,
927
+ args: [{
928
+ /* tslint:disable-next-line:directive-selector */
929
+ selector: 'cat-input, cat-textarea, cat-select'
930
+ }]
931
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.NgControl, decorators: [{
932
+ type: Self
933
+ }, {
934
+ type: Optional
935
+ }] }]; } });
908
936
 
909
937
  const CatComponents = [
910
938
  CatAlert,
@@ -934,23 +962,24 @@ const CatDirectives = [
934
962
  TextValueAccessor,
935
963
  SelectValueAccessor,
936
964
  RadioValueAccessor,
937
- BooleanValueAccessor
965
+ BooleanValueAccessor,
966
+ ValueAccessorDecorator
938
967
  ];
939
968
  const CAT_LOG_TOKEN = new InjectionToken('CAT_LOG', {
940
969
  providedIn: 'root',
941
- factory: () => log,
970
+ factory: () => log
942
971
  });
943
972
  const CAT_I18N_REGISTRY_TOKEN = new InjectionToken('CAT_I18N_REGISTRY', {
944
973
  providedIn: 'root',
945
- factory: () => catI18nRegistry,
974
+ factory: () => catI18nRegistry
946
975
  });
947
976
  const CAT_ICON_REGISTRY_TOKEN = new InjectionToken('CAT_ICON_REGISTRY', {
948
977
  providedIn: 'root',
949
- factory: () => catIconRegistry,
978
+ factory: () => catIconRegistry
950
979
  });
951
980
  const CAT_NOTIFICATION_SERVICE_TOKEN = new InjectionToken('CAT_NOTIFICATION_SERVICE', {
952
981
  providedIn: 'root',
953
- factory: () => catNotificationService,
982
+ factory: () => catNotificationService
954
983
  });
955
984
  class CatalystModule {
956
985
  static forRoot() {
@@ -964,17 +993,35 @@ CatalystModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
964
993
  CatalystModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: CatalystModule, declarations: [CatAlert, CatAvatar, CatBadge, CatButton, CatCard, CatCheckbox, CatDropdown, CatFormGroup, CatIcon, CatInput, CatLabel, CatRadio, CatRadioGroup, CatScrollable, CatSelect, CatSkeleton, CatSpinner, CatTab, CatTabs, CatTextarea, CatToggle, CatTooltip, TextValueAccessor,
965
994
  SelectValueAccessor,
966
995
  RadioValueAccessor,
967
- BooleanValueAccessor, CatDialogComponent, CatDialogActionsComponent, CatDialogHeaderComponent], imports: [CommonModule, DialogModule], exports: [CatAlert, CatAvatar, CatBadge, CatButton, CatCard, CatCheckbox, CatDropdown, CatFormGroup, CatIcon, CatInput, CatLabel, CatRadio, CatRadioGroup, CatScrollable, CatSelect, CatSkeleton, CatSpinner, CatTab, CatTabs, CatTextarea, CatToggle, CatTooltip, TextValueAccessor,
996
+ BooleanValueAccessor,
997
+ ValueAccessorDecorator, CatDialogComponent,
998
+ CatDialogActionsComponent,
999
+ CatDialogHeaderComponent], imports: [CommonModule, DialogModule], exports: [CatAlert, CatAvatar, CatBadge, CatButton, CatCard, CatCheckbox, CatDropdown, CatFormGroup, CatIcon, CatInput, CatLabel, CatRadio, CatRadioGroup, CatScrollable, CatSelect, CatSkeleton, CatSpinner, CatTab, CatTabs, CatTextarea, CatToggle, CatTooltip, TextValueAccessor,
968
1000
  SelectValueAccessor,
969
1001
  RadioValueAccessor,
970
- BooleanValueAccessor, CatDialogComponent, CatDialogActionsComponent, CatDialogHeaderComponent] });
1002
+ BooleanValueAccessor,
1003
+ ValueAccessorDecorator, CatDialogComponent,
1004
+ CatDialogActionsComponent,
1005
+ CatDialogHeaderComponent] });
971
1006
  CatalystModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatalystModule, imports: [CommonModule, DialogModule] });
972
1007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CatalystModule, decorators: [{
973
1008
  type: NgModule,
974
1009
  args: [{
975
1010
  imports: [CommonModule, DialogModule],
976
- declarations: [...CatComponents, ...CatDirectives, CatDialogComponent, CatDialogActionsComponent, CatDialogHeaderComponent],
977
- exports: [...CatComponents, ...CatDirectives, CatDialogComponent, CatDialogActionsComponent, CatDialogHeaderComponent],
1011
+ declarations: [
1012
+ ...CatComponents,
1013
+ ...CatDirectives,
1014
+ CatDialogComponent,
1015
+ CatDialogActionsComponent,
1016
+ CatDialogHeaderComponent
1017
+ ],
1018
+ exports: [
1019
+ ...CatComponents,
1020
+ ...CatDirectives,
1021
+ CatDialogComponent,
1022
+ CatDialogActionsComponent,
1023
+ CatDialogHeaderComponent
1024
+ ],
978
1025
  providers: []
979
1026
  }]
980
1027
  }] });
@@ -1025,5 +1072,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
1025
1072
  * Generated bundle index. Do not edit.
1026
1073
  */
1027
1074
 
1028
- export { BooleanValueAccessor, CAT_I18N_REGISTRY_TOKEN, CAT_ICON_REGISTRY_TOKEN, CAT_LOG_TOKEN, CAT_NOTIFICATION_SERVICE_TOKEN, CatAlert, CatAvatar, CatBadge, CatButton, CatCard, CatCheckbox, CatDialogActionsComponent, CatDialogComponent, CatDialogHeaderComponent, CatDialogService, CatDropdown, CatFormGroup, CatIcon, CatInput, CatLabel, CatPagination, CatRadio, CatRadioGroup, CatScrollable, CatSelect, CatSelectDemo, CatSkeleton, CatSpinner, CatTab, CatTabs, CatTextarea, CatToggle, CatTooltip, CatalystModule, RadioValueAccessor, SelectValueAccessor, TextValueAccessor, ValueAccessor };
1075
+ export { BooleanValueAccessor, CAT_I18N_REGISTRY_TOKEN, CAT_ICON_REGISTRY_TOKEN, CAT_LOG_TOKEN, CAT_NOTIFICATION_SERVICE_TOKEN, CatAlert, CatAvatar, CatBadge, CatButton, CatCard, CatCheckbox, CatDialogActionsComponent, CatDialogComponent, CatDialogHeaderComponent, CatDialogService, CatDropdown, CatFormGroup, CatIcon, CatInput, CatLabel, CatPagination, CatRadio, CatRadioGroup, CatScrollable, CatSelect, CatSelectDemo, CatSkeleton, CatSpinner, CatTab, CatTabs, CatTextarea, CatToggle, CatTooltip, CatalystModule, RadioValueAccessor, SelectValueAccessor, TextValueAccessor, ValueAccessor, ValueAccessorDecorator };
1029
1076
  //# sourceMappingURL=haiilo-catalyst-angular.mjs.map