@ojiepermana/angular-component 22.0.43 → 22.0.45

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 (63) hide show
  1. package/fesm2022/ojiepermana-angular-component-accordion.mjs +21 -23
  2. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +111 -50
  3. package/fesm2022/ojiepermana-angular-component-alert.mjs +13 -17
  4. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +4 -5
  5. package/fesm2022/ojiepermana-angular-component-avatar.mjs +20 -26
  6. package/fesm2022/ojiepermana-angular-component-badge.mjs +4 -5
  7. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +32 -35
  8. package/fesm2022/ojiepermana-angular-component-button-group.mjs +10 -13
  9. package/fesm2022/ojiepermana-angular-component-button.mjs +4 -5
  10. package/fesm2022/ojiepermana-angular-component-calendar.mjs +10 -8
  11. package/fesm2022/ojiepermana-angular-component-card.mjs +22 -29
  12. package/fesm2022/ojiepermana-angular-component-carousel.mjs +31 -34
  13. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +42 -13
  14. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +19 -17
  15. package/fesm2022/ojiepermana-angular-component-combobox.mjs +30 -17
  16. package/fesm2022/ojiepermana-angular-component-command.mjs +29 -37
  17. package/fesm2022/ojiepermana-angular-component-composer.mjs +31 -34
  18. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +3 -3
  19. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +39 -14
  20. package/fesm2022/ojiepermana-angular-component-dialog.mjs +100 -45
  21. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +61 -56
  22. package/fesm2022/ojiepermana-angular-component-editor.mjs +52 -43
  23. package/fesm2022/ojiepermana-angular-component-empty.mjs +19 -25
  24. package/fesm2022/ojiepermana-angular-component-form.mjs +41 -49
  25. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +10 -11
  26. package/fesm2022/ojiepermana-angular-component-icon.mjs +56 -11
  27. package/fesm2022/ojiepermana-angular-component-input-group.mjs +29 -27
  28. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +29 -28
  29. package/fesm2022/ojiepermana-angular-component-input.mjs +4 -5
  30. package/fesm2022/ojiepermana-angular-component-item.mjs +31 -41
  31. package/fesm2022/ojiepermana-angular-component-kanban.mjs +47 -46
  32. package/fesm2022/ojiepermana-angular-component-kbd.mjs +7 -9
  33. package/fesm2022/ojiepermana-angular-component-label.mjs +4 -5
  34. package/fesm2022/ojiepermana-angular-component-menubar.mjs +16 -16
  35. package/fesm2022/ojiepermana-angular-component-native-select.mjs +11 -11
  36. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +41 -28
  37. package/fesm2022/ojiepermana-angular-component-pagination.mjs +25 -16
  38. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +78 -50
  39. package/fesm2022/ojiepermana-angular-component-popover.mjs +6 -6
  40. package/fesm2022/ojiepermana-angular-component-progress.mjs +10 -8
  41. package/fesm2022/ojiepermana-angular-component-radio.mjs +17 -13
  42. package/fesm2022/ojiepermana-angular-component-resizable.mjs +32 -21
  43. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +11 -9
  44. package/fesm2022/ojiepermana-angular-component-select.mjs +35 -23
  45. package/fesm2022/ojiepermana-angular-component-separator.mjs +4 -5
  46. package/fesm2022/ojiepermana-angular-component-sheet.mjs +101 -45
  47. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +4 -5
  48. package/fesm2022/ojiepermana-angular-component-slider.mjs +30 -18
  49. package/fesm2022/ojiepermana-angular-component-spinner.mjs +9 -8
  50. package/fesm2022/ojiepermana-angular-component-switch.mjs +19 -10
  51. package/fesm2022/ojiepermana-angular-component-table.mjs +26 -34
  52. package/fesm2022/ojiepermana-angular-component-tabs.mjs +20 -24
  53. package/fesm2022/ojiepermana-angular-component-textarea.mjs +4 -5
  54. package/fesm2022/ojiepermana-angular-component-timeline.mjs +28 -28
  55. package/fesm2022/ojiepermana-angular-component-toast.mjs +3 -3
  56. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +18 -13
  57. package/fesm2022/ojiepermana-angular-component-toggle.mjs +4 -5
  58. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +20 -19
  59. package/package.json +10 -1
  60. package/types/ojiepermana-angular-component-alert-dialog.d.ts +42 -3
  61. package/types/ojiepermana-angular-component-dialog.d.ts +33 -3
  62. package/types/ojiepermana-angular-component-icon.d.ts +48 -1
  63. package/types/ojiepermana-angular-component-sheet.d.ts +33 -3
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, input, output, Directive, computed, ChangeDetectionStrategy, Component, model, forwardRef, ContentChildren, TemplateRef, ViewContainerRef, DestroyRef, signal } from '@angular/core';
2
+ import { inject, ElementRef, input, output, Directive, computed, Component, model, forwardRef, ContentChildren, TemplateRef, ViewContainerRef, DestroyRef, signal } from '@angular/core';
3
3
  import { cn, radiusBaseValue, densityBaseValue, connectedPositionFor, oppositeSide } from '@ojiepermana/angular-component/utils';
4
4
  import { FocusKeyManager } from '@angular/cdk/a11y';
5
5
  import { Overlay } from '@angular/cdk/overlay';
@@ -38,10 +38,10 @@ class MenuFocusableItem {
38
38
  this.selected.emit(event);
39
39
  return true;
40
40
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuFocusableItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.3", type: MenuFocusableItem, isStandalone: true, inputs: { disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0 });
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuFocusableItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.4", type: MenuFocusableItem, isStandalone: true, inputs: { disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0 });
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuFocusableItem, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuFocusableItem, decorators: [{
45
45
  type: Directive
46
46
  }], propDecorators: { disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
47
47
  class MenuGroupComponent {
@@ -49,14 +49,13 @@ class MenuGroupComponent {
49
49
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
50
50
  classes = computed(() => cn('block', this.class()), /* @ts-ignore */
51
51
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuGroupComponent, isStandalone: true, selector: "MenuGroup", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"group\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuGroupComponent, isStandalone: true, selector: "MenuGroup", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"group\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuGroupComponent, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuGroupComponent, decorators: [{
56
56
  type: Component,
57
57
  args: [{
58
58
  selector: 'MenuGroup',
59
- changeDetection: ChangeDetectionStrategy.OnPush,
60
59
  host: {
61
60
  '[class]': 'classes()',
62
61
  '[attr.role]': '"group"',
@@ -65,10 +64,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
65
64
  }]
66
65
  }], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
67
66
  class MenuRadioGroupBase {
68
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioGroupBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.3", type: MenuRadioGroupBase, isStandalone: true, ngImport: i0 });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioGroupBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
68
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: MenuRadioGroupBase, isStandalone: true, ngImport: i0 });
70
69
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioGroupBase, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioGroupBase, decorators: [{
72
71
  type: Directive
73
72
  }] });
74
73
  class MenuRadioGroupComponent extends MenuRadioGroupBase {
@@ -84,15 +83,18 @@ class MenuRadioGroupComponent extends MenuRadioGroupBase {
84
83
  select(value) {
85
84
  this.value.set(value);
86
85
  }
87
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
88
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuRadioGroupComponent, isStandalone: true, selector: "MenuRadioGroup", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()", "attr.role": "\"group\"" } }, providers: [{ provide: MenuRadioGroupBase, useExisting: forwardRef(() => MenuRadioGroupComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuRadioGroupComponent, isStandalone: true, selector: "MenuRadioGroup", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class": "classes()", "attr.role": "\"group\"" } }, providers: [
88
+ { provide: MenuRadioGroupBase, useExisting: forwardRef(() => MenuRadioGroupComponent) },
89
+ ], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true });
89
90
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioGroupComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioGroupComponent, decorators: [{
91
92
  type: Component,
92
93
  args: [{
93
94
  selector: 'MenuRadioGroup',
94
- changeDetection: ChangeDetectionStrategy.OnPush,
95
- providers: [{ provide: MenuRadioGroupBase, useExisting: forwardRef(() => MenuRadioGroupComponent) }],
95
+ providers: [
96
+ { provide: MenuRadioGroupBase, useExisting: forwardRef(() => MenuRadioGroupComponent) },
97
+ ],
96
98
  host: {
97
99
  '[class]': 'classes()',
98
100
  '[attr.role]': '"group"',
@@ -106,14 +108,13 @@ class MenuItemComponent extends MenuFocusableItem {
106
108
  handleClick(e) {
107
109
  this.emitSelection(e);
108
110
  }
109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.3", type: MenuItemComponent, isStandalone: true, selector: "MenuItem, button[MenuItem]", host: { attributes: { "tabindex": "-1" }, listeners: { "click": "handleClick($any($event))", "keydown.enter": "handleClick($any($event))", "keydown.space": "handleClick($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitem\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.data-inset": "inset() ? \"true\" : null", "attr.data-variant": "variant()" } }, providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuItemComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: MenuItemComponent, isStandalone: true, selector: "MenuItem, button[MenuItem]", host: { attributes: { "tabindex": "-1" }, listeners: { "click": "handleClick($any($event))", "keydown.enter": "handleClick($any($event))", "keydown.space": "handleClick($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitem\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.data-inset": "inset() ? \"true\" : null", "attr.data-variant": "variant()" } }, providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuItemComponent) }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true });
111
113
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuItemComponent, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuItemComponent, decorators: [{
113
115
  type: Component,
114
116
  args: [{
115
117
  selector: 'MenuItem, button[MenuItem]',
116
- changeDetection: ChangeDetectionStrategy.OnPush,
117
118
  providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuItemComponent) }],
118
119
  host: {
119
120
  '[class]': 'classes()',
@@ -140,8 +141,10 @@ class MenuCheckboxItemComponent extends MenuFocusableItem {
140
141
  }
141
142
  this.checked.set(!this.checked());
142
143
  }
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuCheckboxItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
144
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.3", type: MenuCheckboxItemComponent, isStandalone: true, selector: "MenuCheckboxItem, button[MenuCheckboxItem]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "toggle($any($event))", "keydown.enter": "toggle($any($event))", "keydown.space": "toggle($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitemcheckbox\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.aria-checked": "checked()", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-variant": "variant()" } }, providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuCheckboxItemComponent) }], usesInheritance: true, ngImport: i0, template: `
144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuCheckboxItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
145
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: MenuCheckboxItemComponent, isStandalone: true, selector: "MenuCheckboxItem, button[MenuCheckboxItem]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "toggle($any($event))", "keydown.enter": "toggle($any($event))", "keydown.space": "toggle($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitemcheckbox\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.aria-checked": "checked()", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-variant": "variant()" } }, providers: [
146
+ { provide: MenuFocusableItem, useExisting: forwardRef(() => MenuCheckboxItemComponent) },
147
+ ], usesInheritance: true, ngImport: i0, template: `
145
148
  <span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
146
149
  @if (checked()) {
147
150
  <svg
@@ -152,20 +155,22 @@ class MenuCheckboxItemComponent extends MenuFocusableItem {
152
155
  stroke="currentColor"
153
156
  stroke-width="2"
154
157
  stroke-linecap="round"
155
- stroke-linejoin="round">
158
+ stroke-linejoin="round"
159
+ >
156
160
  <polyline points="20 6 9 17 4 12" />
157
161
  </svg>
158
162
  }
159
163
  </span>
160
164
  <ng-content />
161
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
165
+ `, isInline: true });
162
166
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuCheckboxItemComponent, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuCheckboxItemComponent, decorators: [{
164
168
  type: Component,
165
169
  args: [{
166
170
  selector: 'MenuCheckboxItem, button[MenuCheckboxItem]',
167
- changeDetection: ChangeDetectionStrategy.OnPush,
168
- providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuCheckboxItemComponent) }],
171
+ providers: [
172
+ { provide: MenuFocusableItem, useExisting: forwardRef(() => MenuCheckboxItemComponent) },
173
+ ],
169
174
  host: {
170
175
  '[class]': 'classes()',
171
176
  '[attr.role]': '"menuitemcheckbox"',
@@ -189,7 +194,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
189
194
  stroke="currentColor"
190
195
  stroke-width="2"
191
196
  stroke-linecap="round"
192
- stroke-linejoin="round">
197
+ stroke-linejoin="round"
198
+ >
193
199
  <polyline points="20 6 9 17 4 12" />
194
200
  </svg>
195
201
  }
@@ -212,22 +218,25 @@ class MenuRadioItemComponent extends MenuFocusableItem {
212
218
  }
213
219
  this.group.select(this.value());
214
220
  }
215
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
216
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.3", type: MenuRadioItemComponent, isStandalone: true, selector: "MenuRadioItem, button[MenuRadioItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "select($any($event))", "keydown.enter": "select($any($event))", "keydown.space": "select($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitemradio\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.aria-checked": "checked()", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-variant": "variant()" } }, providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuRadioItemComponent) }], usesInheritance: true, ngImport: i0, template: `
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: MenuRadioItemComponent, isStandalone: true, selector: "MenuRadioItem, button[MenuRadioItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "tabindex": "-1" }, listeners: { "click": "select($any($event))", "keydown.enter": "select($any($event))", "keydown.space": "select($any($event))" }, properties: { "class": "classes()", "attr.role": "\"menuitemradio\"", "attr.aria-disabled": "disabled ? \"true\" : null", "attr.aria-checked": "checked()", "attr.data-state": "checked() ? \"checked\" : \"unchecked\"", "attr.data-variant": "variant()" } }, providers: [
223
+ { provide: MenuFocusableItem, useExisting: forwardRef(() => MenuRadioItemComponent) },
224
+ ], usesInheritance: true, ngImport: i0, template: `
217
225
  <span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
218
226
  @if (checked()) {
219
227
  <span aria-hidden="true" class="h-2 w-2 rounded-full bg-current"></span>
220
228
  }
221
229
  </span>
222
230
  <ng-content />
223
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
231
+ `, isInline: true });
224
232
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuRadioItemComponent, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuRadioItemComponent, decorators: [{
226
234
  type: Component,
227
235
  args: [{
228
236
  selector: 'MenuRadioItem, button[MenuRadioItem]',
229
- changeDetection: ChangeDetectionStrategy.OnPush,
230
- providers: [{ provide: MenuFocusableItem, useExisting: forwardRef(() => MenuRadioItemComponent) }],
237
+ providers: [
238
+ { provide: MenuFocusableItem, useExisting: forwardRef(() => MenuRadioItemComponent) },
239
+ ],
231
240
  host: {
232
241
  '[class]': 'classes()',
233
242
  '[attr.role]': '"menuitemradio"',
@@ -255,14 +264,13 @@ class MenuSeparatorComponent {
255
264
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
256
265
  classes = computed(() => cn('-mx-1 my-1 block h-px bg-border', this.class()), /* @ts-ignore */
257
266
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
258
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
259
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuSeparatorComponent, isStandalone: true, selector: "MenuSeparator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"separator\"", "attr.aria-orientation": "\"horizontal\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
267
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
268
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuSeparatorComponent, isStandalone: true, selector: "MenuSeparator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"separator\"", "attr.aria-orientation": "\"horizontal\"" } }, ngImport: i0, template: '', isInline: true });
260
269
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuSeparatorComponent, decorators: [{
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuSeparatorComponent, decorators: [{
262
271
  type: Component,
263
272
  args: [{
264
273
  selector: 'MenuSeparator',
265
- changeDetection: ChangeDetectionStrategy.OnPush,
266
274
  host: {
267
275
  '[class]': 'classes()',
268
276
  '[attr.role]': '"separator"',
@@ -278,14 +286,13 @@ class MenuLabelComponent {
278
286
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
279
287
  classes = computed(() => cn('px-2 py-1.5 text-sm font-semibold text-foreground', this.inset() ? 'pl-8' : '', this.class()), /* @ts-ignore */
280
288
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
281
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
282
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuLabelComponent, isStandalone: true, selector: "MenuLabel", inputs: { inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
289
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
290
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuLabelComponent, isStandalone: true, selector: "MenuLabel", inputs: { inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
283
291
  }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuLabelComponent, decorators: [{
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuLabelComponent, decorators: [{
285
293
  type: Component,
286
294
  args: [{
287
295
  selector: 'MenuLabel',
288
- changeDetection: ChangeDetectionStrategy.OnPush,
289
296
  host: { '[class]': 'classes()' },
290
297
  template: `<ng-content />`,
291
298
  }]
@@ -295,14 +302,13 @@ class MenuShortcutComponent {
295
302
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
296
303
  classes = computed(() => cn('ml-auto text-xs tracking-widest text-muted-foreground', this.class()), /* @ts-ignore */
297
304
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
298
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuShortcutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
299
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuShortcutComponent, isStandalone: true, selector: "MenuShortcut, span[MenuShortcut]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
305
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuShortcutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuShortcutComponent, isStandalone: true, selector: "MenuShortcut, span[MenuShortcut]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
300
307
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuShortcutComponent, decorators: [{
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuShortcutComponent, decorators: [{
302
309
  type: Component,
303
310
  args: [{
304
311
  selector: 'MenuShortcut, span[MenuShortcut]',
305
- changeDetection: ChangeDetectionStrategy.OnPush,
306
312
  host: { '[class]': 'classes()' },
307
313
  template: `<ng-content />`,
308
314
  }]
@@ -353,14 +359,13 @@ class MenuSurfaceComponent {
353
359
  e.preventDefault();
354
360
  this.closeRequested.emit();
355
361
  }
356
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuSurfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
357
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: MenuSurfaceComponent, isStandalone: true, selector: "MenuSurface", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequested: "closeRequested" }, host: { attributes: { "tabindex": "-1" }, listeners: { "keydown.arrowDown": "onArrow($any($event), 1)", "keydown.arrowUp": "onArrow($any($event), -1)", "keydown.home": "onHome($any($event))", "keydown.end": "onEnd($any($event))", "keydown.tab": "onTab($any($event))" }, properties: { "class": "classes()", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()", "attr.role": "\"menu\"" } }, queries: [{ propertyName: "items", predicate: MenuFocusableItem, descendants: true }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuSurfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
363
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: MenuSurfaceComponent, isStandalone: true, selector: "MenuSurface", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequested: "closeRequested" }, host: { attributes: { "tabindex": "-1" }, listeners: { "keydown.arrowDown": "onArrow($any($event), 1)", "keydown.arrowUp": "onArrow($any($event), -1)", "keydown.home": "onHome($any($event))", "keydown.end": "onEnd($any($event))", "keydown.tab": "onTab($any($event))" }, properties: { "class": "classes()", "style.--radius-base": "radiusBase()", "style.--spacing-base": "densityBase()", "attr.role": "\"menu\"" } }, queries: [{ propertyName: "items", predicate: MenuFocusableItem, descendants: true }], ngImport: i0, template: `<ng-content />`, isInline: true });
358
364
  }
359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuSurfaceComponent, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuSurfaceComponent, decorators: [{
360
366
  type: Component,
361
367
  args: [{
362
368
  selector: 'MenuSurface',
363
- changeDetection: ChangeDetectionStrategy.OnPush,
364
369
  host: {
365
370
  '[class]': 'classes()',
366
371
  '[style.--radius-base]': 'radiusBase()',
@@ -384,10 +389,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
384
389
  */
385
390
  class MenuContentDirective {
386
391
  template = inject(TemplateRef);
387
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
388
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.3", type: MenuContentDirective, isStandalone: true, selector: "ng-template[MenuContent]", exportAs: ["MenuContent"], ngImport: i0 });
392
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
393
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: MenuContentDirective, isStandalone: true, selector: "ng-template[MenuContent]", exportAs: ["MenuContent"], ngImport: i0 });
389
394
  }
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuContentDirective, decorators: [{
395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuContentDirective, decorators: [{
391
396
  type: Directive,
392
397
  args: [{
393
398
  selector: 'ng-template[MenuContent]',
@@ -475,10 +480,10 @@ class MenuTriggerDirective {
475
480
  this.el.nativeElement.focus();
476
481
  }
477
482
  }
478
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
479
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.3", type: MenuTriggerDirective, isStandalone: true, selector: "[MenuTrigger]", inputs: { MenuTrigger: { classPropertyName: "MenuTrigger", publicName: "MenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, host: { listeners: { "click": "toggle()", "keydown.enter": "openAndFocus($any($event))", "keydown.space": "openAndFocus($any($event))", "keydown.arrowDown": "openAndFocus($any($event))", "keydown.arrowRight": "openForSide($any($event), \"right\")", "keydown.arrowLeft": "openForSide($any($event), \"left\")" }, properties: { "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "isOpen()" } }, exportAs: ["MenuTrigger"], ngImport: i0 });
483
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
484
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.4", type: MenuTriggerDirective, isStandalone: true, selector: "[MenuTrigger]", inputs: { MenuTrigger: { classPropertyName: "MenuTrigger", publicName: "MenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, host: { listeners: { "click": "toggle()", "keydown.enter": "openAndFocus($any($event))", "keydown.space": "openAndFocus($any($event))", "keydown.arrowDown": "openAndFocus($any($event))", "keydown.arrowRight": "openForSide($any($event), \"right\")", "keydown.arrowLeft": "openForSide($any($event), \"left\")" }, properties: { "attr.aria-haspopup": "\"menu\"", "attr.aria-expanded": "isOpen()" } }, exportAs: ["MenuTrigger"], ngImport: i0 });
480
485
  }
481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: MenuTriggerDirective, decorators: [{
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MenuTriggerDirective, decorators: [{
482
487
  type: Directive,
483
488
  args: [{
484
489
  selector: '[MenuTrigger]',
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, booleanAttribute, output, computed, ChangeDetectionStrategy, Component, inject, ElementRef, signal, SecurityContext, forwardRef } from '@angular/core';
3
+ import { input, booleanAttribute, output, computed, Component, inject, ElementRef, signal, SecurityContext, forwardRef } from '@angular/core';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { DomSanitizer } from '@angular/platform-browser';
6
6
  import { cn } from '@ojiepermana/angular-component/utils';
@@ -129,23 +129,23 @@ class EditorComponent {
129
129
  this.content = null;
130
130
  }
131
131
  }
132
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
133
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: EditorComponent, isStandalone: true, selector: "Editor", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { commandSelected: "commandSelected" }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor\"", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.inert": "disabled() ? \"\" : null" } }, ngImport: i0, template: `
132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
133
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: EditorComponent, isStandalone: true, selector: "Editor", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { commandSelected: "commandSelected" }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor\"", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.inert": "disabled() ? \"\" : null" } }, ngImport: i0, template: `
134
134
  <div
135
135
  data-slot="editor-shell"
136
136
  [class]="shellClasses()"
137
137
  [attr.data-disabled]="disabled() ? 'true' : null"
138
- [attr.aria-invalid]="invalid() ? 'true' : null">
138
+ [attr.aria-invalid]="invalid() ? 'true' : null"
139
+ >
139
140
  <ng-content select="EditorToolbar" />
140
141
  <ng-content select="EditorContent" />
141
142
  </div>
142
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
+ `, isInline: true });
143
144
  }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorComponent, decorators: [{
145
146
  type: Component,
146
147
  args: [{
147
148
  selector: 'Editor',
148
- changeDetection: ChangeDetectionStrategy.OnPush,
149
149
  host: {
150
150
  '[class]': 'classes()',
151
151
  '[attr.data-slot]': '"editor"',
@@ -159,7 +159,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
159
159
  data-slot="editor-shell"
160
160
  [class]="shellClasses()"
161
161
  [attr.data-disabled]="disabled() ? 'true' : null"
162
- [attr.aria-invalid]="invalid() ? 'true' : null">
162
+ [attr.aria-invalid]="invalid() ? 'true' : null"
163
+ >
163
164
  <ng-content select="EditorToolbar" />
164
165
  <ng-content select="EditorContent" />
165
166
  </div>
@@ -197,8 +198,8 @@ class EditorToolbarComponent {
197
198
  }
198
199
  return part.track;
199
200
  }
200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
201
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.3", type: EditorToolbarComponent, isStandalone: true, selector: "EditorToolbar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-toolbar\"", "attr.aria-label": "ariaLabel()", "attr.data-disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: `
201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
202
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: EditorToolbarComponent, isStandalone: true, selector: "EditorToolbar", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "toolbar" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-toolbar\"", "attr.aria-label": "ariaLabel()", "attr.data-disabled": "disabled() ? \"true\" : null" } }, ngImport: i0, template: `
202
203
  @for (part of parts(); track trackPart(part, $index)) {
203
204
  @switch (part.type) {
204
205
  @case ('heading') {
@@ -206,7 +207,8 @@ class EditorToolbarComponent {
206
207
  [class]="selectClasses"
207
208
  [disabled]="disabled()"
208
209
  aria-label="Text style"
209
- (change)="handleSelect($event)">
210
+ (change)="handleSelect($event)"
211
+ >
210
212
  <option value="paragraph">Text</option>
211
213
  <option value="heading-1">Heading 1</option>
212
214
  <option value="heading-2">Heading 2</option>
@@ -218,7 +220,8 @@ class EditorToolbarComponent {
218
220
  [class]="selectClasses"
219
221
  [disabled]="disabled()"
220
222
  aria-label="Text alignment"
221
- (change)="handleSelect($event)">
223
+ (change)="handleSelect($event)"
224
+ >
222
225
  <option value="align-left">Left</option>
223
226
  <option value="align-center">Center</option>
224
227
  <option value="align-right">Right</option>
@@ -229,7 +232,8 @@ class EditorToolbarComponent {
229
232
  data-slot="editor-separator"
230
233
  class="mx-1 h-6 w-px shrink-0 bg-border"
231
234
  role="separator"
232
- aria-orientation="vertical"></span>
235
+ aria-orientation="vertical"
236
+ ></span>
233
237
  }
234
238
  @case ('spacer') {
235
239
  <span data-slot="editor-spacer" class="min-w-2 flex-1"></span>
@@ -243,7 +247,8 @@ class EditorToolbarComponent {
243
247
  [attr.aria-label]="part.ariaLabel"
244
248
  [attr.title]="part.ariaLabel"
245
249
  (mousedown)="preserveSelection($event)"
246
- (click)="execute(part.command, $event)">
250
+ (click)="execute(part.command, $event)"
251
+ >
247
252
  @if (part.command === 'undo') {
248
253
  <svg
249
254
  aria-hidden="true"
@@ -253,7 +258,8 @@ class EditorToolbarComponent {
253
258
  stroke="currentColor"
254
259
  stroke-width="1.75"
255
260
  stroke-linecap="round"
256
- stroke-linejoin="round">
261
+ stroke-linejoin="round"
262
+ >
257
263
  <path d="M9 14 4 9l5-5" />
258
264
  <path d="M4 9h10a6 6 0 0 1 0 12h-2" />
259
265
  </svg>
@@ -266,7 +272,8 @@ class EditorToolbarComponent {
266
272
  stroke="currentColor"
267
273
  stroke-width="1.75"
268
274
  stroke-linecap="round"
269
- stroke-linejoin="round">
275
+ stroke-linejoin="round"
276
+ >
270
277
  <path d="m15 14 5-5-5-5" />
271
278
  <path d="M20 9H10a6 6 0 0 0 0 12h2" />
272
279
  </svg>
@@ -278,13 +285,12 @@ class EditorToolbarComponent {
278
285
  }
279
286
  }
280
287
  <ng-content />
281
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
288
+ `, isInline: true });
282
289
  }
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorToolbarComponent, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorToolbarComponent, decorators: [{
284
291
  type: Component,
285
292
  args: [{
286
293
  selector: 'EditorToolbar',
287
- changeDetection: ChangeDetectionStrategy.OnPush,
288
294
  host: {
289
295
  '[class]': 'classes()',
290
296
  '[attr.data-slot]': '"editor-toolbar"',
@@ -300,7 +306,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
300
306
  [class]="selectClasses"
301
307
  [disabled]="disabled()"
302
308
  aria-label="Text style"
303
- (change)="handleSelect($event)">
309
+ (change)="handleSelect($event)"
310
+ >
304
311
  <option value="paragraph">Text</option>
305
312
  <option value="heading-1">Heading 1</option>
306
313
  <option value="heading-2">Heading 2</option>
@@ -312,7 +319,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
312
319
  [class]="selectClasses"
313
320
  [disabled]="disabled()"
314
321
  aria-label="Text alignment"
315
- (change)="handleSelect($event)">
322
+ (change)="handleSelect($event)"
323
+ >
316
324
  <option value="align-left">Left</option>
317
325
  <option value="align-center">Center</option>
318
326
  <option value="align-right">Right</option>
@@ -323,7 +331,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
323
331
  data-slot="editor-separator"
324
332
  class="mx-1 h-6 w-px shrink-0 bg-border"
325
333
  role="separator"
326
- aria-orientation="vertical"></span>
334
+ aria-orientation="vertical"
335
+ ></span>
327
336
  }
328
337
  @case ('spacer') {
329
338
  <span data-slot="editor-spacer" class="min-w-2 flex-1"></span>
@@ -337,7 +346,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
337
346
  [attr.aria-label]="part.ariaLabel"
338
347
  [attr.title]="part.ariaLabel"
339
348
  (mousedown)="preserveSelection($event)"
340
- (click)="execute(part.command, $event)">
349
+ (click)="execute(part.command, $event)"
350
+ >
341
351
  @if (part.command === 'undo') {
342
352
  <svg
343
353
  aria-hidden="true"
@@ -347,7 +357,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
347
357
  stroke="currentColor"
348
358
  stroke-width="1.75"
349
359
  stroke-linecap="round"
350
- stroke-linejoin="round">
360
+ stroke-linejoin="round"
361
+ >
351
362
  <path d="M9 14 4 9l5-5" />
352
363
  <path d="M4 9h10a6 6 0 0 1 0 12h-2" />
353
364
  </svg>
@@ -360,7 +371,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImpor
360
371
  stroke="currentColor"
361
372
  stroke-width="1.75"
362
373
  stroke-linecap="round"
363
- stroke-linejoin="round">
374
+ stroke-linejoin="round"
375
+ >
364
376
  <path d="m15 14 5-5-5-5" />
365
377
  <path d="M20 9H10a6 6 0 0 0 0 12h2" />
366
378
  </svg>
@@ -398,14 +410,13 @@ class EditorButtonComponent {
398
410
  this.editor?.execute(command, 'toolbar', event);
399
411
  }
400
412
  preserveSelection = preserveEditorSelection;
401
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
402
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: EditorButtonComponent, isStandalone: true, selector: "button[EditorButton]", inputs: { command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "mousedown": "preserveSelection($event)", "click": "handleClick($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-button\"", "attr.title": "tooltip() || null", "attr.aria-pressed": "pressed() === null ? null : pressed()", "disabled": "disabled() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
413
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
414
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: EditorButtonComponent, isStandalone: true, selector: "button[EditorButton]", inputs: { command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "mousedown": "preserveSelection($event)", "click": "handleClick($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-button\"", "attr.title": "tooltip() || null", "attr.aria-pressed": "pressed() === null ? null : pressed()", "disabled": "disabled() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
403
415
  }
404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorButtonComponent, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorButtonComponent, decorators: [{
405
417
  type: Component,
406
418
  args: [{
407
419
  selector: 'button[EditorButton]',
408
- changeDetection: ChangeDetectionStrategy.OnPush,
409
420
  host: {
410
421
  '[class]': 'classes()',
411
422
  '[attr.data-slot]': '"editor-button"',
@@ -424,14 +435,13 @@ class EditorSeparatorComponent {
424
435
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
425
436
  classes = computed(() => cn('mx-1 h-6 w-px shrink-0 bg-border', this.class()), /* @ts-ignore */
426
437
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
427
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
428
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: EditorSeparatorComponent, isStandalone: true, selector: "EditorSeparator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator", "aria-orientation": "vertical" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-separator\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
438
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
439
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: EditorSeparatorComponent, isStandalone: true, selector: "EditorSeparator", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator", "aria-orientation": "vertical" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-separator\"" } }, ngImport: i0, template: '', isInline: true });
429
440
  }
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorSeparatorComponent, decorators: [{
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorSeparatorComponent, decorators: [{
431
442
  type: Component,
432
443
  args: [{
433
444
  selector: 'EditorSeparator',
434
- changeDetection: ChangeDetectionStrategy.OnPush,
435
445
  host: {
436
446
  '[class]': 'classes()',
437
447
  '[attr.data-slot]': '"editor-separator"',
@@ -446,14 +456,13 @@ class EditorSpacerComponent {
446
456
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
447
457
  classes = computed(() => cn('min-w-2 flex-1', this.class()), /* @ts-ignore */
448
458
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
449
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
450
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: EditorSpacerComponent, isStandalone: true, selector: "EditorSpacer", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor-spacer\"" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
459
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
460
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: EditorSpacerComponent, isStandalone: true, selector: "EditorSpacer", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"editor-spacer\"" } }, ngImport: i0, template: '', isInline: true });
451
461
  }
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorSpacerComponent, decorators: [{
462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorSpacerComponent, decorators: [{
453
463
  type: Component,
454
464
  args: [{
455
465
  selector: 'EditorSpacer',
456
- changeDetection: ChangeDetectionStrategy.OnPush,
457
466
  host: {
458
467
  '[class]': 'classes()',
459
468
  '[attr.data-slot]': '"editor-spacer"',
@@ -494,7 +503,8 @@ class EditorContentComponent {
494
503
  this.editor?.unregisterContent(this);
495
504
  }
496
505
  writeValue(value) {
497
- this.el.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, value ?? '') ?? '';
506
+ this.el.nativeElement.innerHTML =
507
+ this.sanitizer.sanitize(SecurityContext.HTML, value ?? '') ?? '';
498
508
  // Read back after assignment: the browser normalizes markup, so the
499
509
  // DOM-normalized form is the canonical value for change comparisons.
500
510
  this.lastKnownValue = this.el.nativeElement.innerHTML;
@@ -630,20 +640,19 @@ class EditorContentComponent {
630
640
  return null;
631
641
  }
632
642
  }
633
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
634
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.3", type: EditorContentComponent, isStandalone: true, selector: "EditorContent", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "handleInput()", "blur": "handleBlur()", "keydown": "handleKeydown($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-content\"", "attr.contenteditable": "disabled() ? \"false\" : \"true\"", "attr.role": "\"textbox\"", "attr.aria-multiline": "\"true\"", "attr.aria-label": "ariaLabel()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.data-empty": "empty() ? \"true\" : null", "attr.data-placeholder": "placeholder()", "attr.tabindex": "disabled() ? null : \"0\"" } }, providers: [
643
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
644
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: EditorContentComponent, isStandalone: true, selector: "EditorContent", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalidInput: { classPropertyName: "invalidInput", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "handleInput()", "blur": "handleBlur()", "keydown": "handleKeydown($event)" }, properties: { "class": "classes()", "attr.data-slot": "\"editor-content\"", "attr.contenteditable": "disabled() ? \"false\" : \"true\"", "attr.role": "\"textbox\"", "attr.aria-multiline": "\"true\"", "attr.aria-label": "ariaLabel()", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-invalid": "invalid() ? \"true\" : null", "attr.data-disabled": "disabled() ? \"true\" : null", "attr.data-empty": "empty() ? \"true\" : null", "attr.data-placeholder": "placeholder()", "attr.tabindex": "disabled() ? null : \"0\"" } }, providers: [
635
645
  {
636
646
  provide: NG_VALUE_ACCESSOR,
637
647
  useExisting: forwardRef(() => EditorContentComponent),
638
648
  multi: true,
639
649
  },
640
- ], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
650
+ ], ngImport: i0, template: `<ng-content />`, isInline: true });
641
651
  }
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.3", ngImport: i0, type: EditorContentComponent, decorators: [{
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: EditorContentComponent, decorators: [{
643
653
  type: Component,
644
654
  args: [{
645
655
  selector: 'EditorContent',
646
- changeDetection: ChangeDetectionStrategy.OnPush,
647
656
  providers: [
648
657
  {
649
658
  provide: NG_VALUE_ACCESSOR,