@acorex/components 22.3.25 → 22.4.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,12 +1,24 @@
1
1
  import * as polytype from 'polytype';
2
- import * as i0 from '@angular/core';
2
+ import * as _angular_core from '@angular/core';
3
3
  import { ElementRef } from '@angular/core';
4
- import { MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
4
+ import { AXStyleColorType, MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
5
+ import * as _acorex_cdk_wysiwyg from '@acorex/cdk/wysiwyg';
6
+ import { AXWysiwyg, AXWysiwygTextAlign, AXWysiwygHeadingLevel } from '@acorex/cdk/wysiwyg';
7
+ import { AXComboBoxItem, AXComboBoxValue } from '@acorex/components/combo-box';
8
+
9
+ type AXWysiwygMode = 'compact' | 'normal';
10
+ interface AXWysiwygButtonConfig {
11
+ text?: string;
12
+ icon?: string;
13
+ tooltip?: string;
14
+ look?: 'solid' | 'fill' | 'outline' | 'flat' | 'blank' | 'none';
15
+ color?: AXStyleColorType;
16
+ }
5
17
 
6
18
  declare const AXWysiwygContainerComponent_base: polytype.Polytype.ClusteredConstructor<[{
7
19
  new (): MXInputBaseValueComponent<string>;
8
- ɵfac: i0.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
9
- ɵprov: i0.ɵɵInjectableDeclaration<any>;
20
+ ɵfac: _angular_core.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
21
+ ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
10
22
  }, typeof MXLookComponent]>;
11
23
  /**
12
24
  * A container component for WYSIWYG (What You See Is What You Get) editor functionality.
@@ -18,23 +30,27 @@ declare class AXWysiwygContainerComponent extends AXWysiwygContainerComponent_ba
18
30
  * Specifies the placeholder text.
19
31
  *
20
32
  */
21
- placeHolder: i0.InputSignal<string>;
33
+ placeHolder: _angular_core.InputSignal<string>;
22
34
  /**
23
35
  * Specifies the initial editor height in number of text lines.
24
36
  *
25
37
  */
26
- initialLine: i0.InputSignal<number>;
27
- private readonly wysiwygService;
38
+ initialLine: _angular_core.InputSignal<number>;
39
+ /**
40
+ * Toolbar layout: `compact` groups block types and insert actions in a dropdown; `normal` shows all tools inline.
41
+ */
42
+ mode: _angular_core.InputSignal<AXWysiwygMode>;
43
+ private readonly wysiwyg;
44
+ private readonly context;
28
45
  private readonly platformId;
29
46
  private readonly destroyRef;
30
- private readonly container;
47
+ private readonly translation;
48
+ private readonly view;
31
49
  private readonly toolbar;
32
- private readonly wysiwyg;
33
50
  private lastCommittedHtml;
34
- private applyingExternal;
35
51
  private alive;
36
52
  private changeHandlerTimer;
37
- private tooltipObserver;
53
+ private readonly syncToolbarMode;
38
54
  /**
39
55
  * Focuses the component.
40
56
  *
@@ -55,22 +71,12 @@ declare class AXWysiwygContainerComponent extends AXWysiwygContainerComponent_ba
55
71
  /** @ignore */
56
72
  protected internalValueChanged(value: string): void;
57
73
  private initEditor;
58
- private readonly onTextChange;
59
- private readonly onSelectionChange;
60
74
  private scheduleCommit;
61
75
  private publishHtml;
62
76
  private syncEditorFromValue;
63
- private watchTooltip;
64
- private readonly onTooltipTrigger;
65
- /**
66
- * Quill anchors the link/video popover to the caret and lets it spill out of the
67
- * editor. Keep it fully inside the writing area so it does not cover the toolbar
68
- * or get clipped at the field edge.
69
- */
70
- private clampTooltip;
71
77
  private syncEditable;
72
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygContainerComponent, never>;
73
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygContainerComponent, "ax-wysiwyg-container", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "initialLine": { "alias": "initialLine"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, ["container", "toolbar"], ["*", "ax-validation-rule"], true, never>;
78
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygContainerComponent, never>;
79
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygContainerComponent, "ax-wysiwyg-container", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "initialLine": { "alias": "initialLine"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, ["view", "toolbar"], ["*", "ax-validation-rule"], true, never>;
74
80
  }
75
81
 
76
82
  /**
@@ -79,7 +85,7 @@ declare class AXWysiwygContainerComponent extends AXWysiwygContainerComponent_ba
79
85
  * @category Components
80
86
  */
81
87
  declare class AXWysiwygToolbarComponent {
82
- toolbar: i0.Signal<ElementRef<HTMLDivElement>>;
88
+ toolbar: _angular_core.Signal<ElementRef<HTMLDivElement>>;
83
89
  private readonly host;
84
90
  private readonly renderer;
85
91
  private readonly platformId;
@@ -102,70 +108,332 @@ declare class AXWysiwygToolbarComponent {
102
108
  private keepPickerInViewport;
103
109
  private clearPickerOffset;
104
110
  private teardownPickerOverlay;
105
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygToolbarComponent, never>;
106
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygToolbarComponent, "ax-wysiwyg-toolbar", never, {}, {}, never, ["ax-prefix", "*", "ax-suffix"], true, never>;
111
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygToolbarComponent, never>;
112
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygToolbarComponent, "ax-wysiwyg-toolbar", never, {}, {}, never, ["ax-prefix", "*", "ax-suffix"], true, never>;
113
+ }
114
+
115
+ declare class AXWysiwygContext {
116
+ readonly disabled: _angular_core.WritableSignal<boolean>;
117
+ readonly readonly: _angular_core.WritableSignal<boolean>;
118
+ readonly mode: _angular_core.WritableSignal<AXWysiwygMode>;
119
+ readonly compact: _angular_core.Signal<boolean>;
120
+ readonly interactionDisabled: _angular_core.Signal<boolean>;
121
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygContext, never>;
122
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
107
123
  }
108
124
 
125
+ type AXWysiwygAlignmentButtonKey = 'left' | 'center' | 'right' | 'justify';
109
126
  /**
110
- * Alignment controls for the WYSIWYG toolbar.
127
+ * Text alignment controls for the WYSIWYG toolbar.
111
128
  * @category Components
112
129
  */
113
130
  declare class AXWysiwygAlignmentComponent {
114
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygAlignmentComponent, never>;
115
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygAlignmentComponent, "ax-wysiwyg-alignment", never, {}, {}, never, never, true, never>;
116
- }
117
-
118
- declare class WysiwygService {
119
- selectedColor: i0.WritableSignal<string>;
120
- selectedBackgroundColor: i0.WritableSignal<string>;
121
- static ɵfac: i0.ɵɵFactoryDeclaration<WysiwygService, never>;
122
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
131
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygAlignmentButtonKey, false | AXWysiwygButtonConfig>>>;
132
+ protected readonly wysiwyg: AXWysiwyg;
133
+ protected readonly context: AXWysiwygContext;
134
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
135
+ protected readonly i18n: {
136
+ readonly placeholder: "@acorex:wysiwyg.placeholder";
137
+ readonly menu: {
138
+ readonly blockType: "@acorex:wysiwyg.menu.block-type";
139
+ readonly insert: "@acorex:wysiwyg.menu.insert";
140
+ readonly align: "@acorex:wysiwyg.menu.align";
141
+ };
142
+ readonly tools: {
143
+ readonly undo: "@acorex:wysiwyg.tools.undo";
144
+ readonly redo: "@acorex:wysiwyg.tools.redo";
145
+ readonly bold: "@acorex:wysiwyg.tools.bold";
146
+ readonly italic: "@acorex:wysiwyg.tools.italic";
147
+ readonly underline: "@acorex:wysiwyg.tools.underline";
148
+ readonly strike: "@acorex:wysiwyg.tools.strike";
149
+ readonly code: "@acorex:wysiwyg.tools.code";
150
+ readonly codeBlock: "@acorex:wysiwyg.tools.code-block";
151
+ readonly link: "@acorex:wysiwyg.tools.link";
152
+ readonly image: "@acorex:wysiwyg.tools.image";
153
+ readonly video: "@acorex:wysiwyg.tools.video";
154
+ readonly bulletList: "@acorex:wysiwyg.tools.bullet-list";
155
+ readonly orderedList: "@acorex:wysiwyg.tools.ordered-list";
156
+ readonly rtl: "@acorex:wysiwyg.tools.rtl";
157
+ readonly textColor: "@acorex:wysiwyg.tools.text-color";
158
+ readonly highlight: "@acorex:wysiwyg.tools.highlight";
159
+ readonly paragraph: "@acorex:wysiwyg.tools.paragraph";
160
+ readonly alignLeft: "@acorex:wysiwyg.tools.align-left";
161
+ readonly alignCenter: "@acorex:wysiwyg.tools.align-center";
162
+ readonly alignRight: "@acorex:wysiwyg.tools.align-right";
163
+ readonly alignJustify: "@acorex:wysiwyg.tools.align-justify";
164
+ };
165
+ readonly blocks: {
166
+ readonly paragraph: "@acorex:wysiwyg.blocks.paragraph";
167
+ readonly blockquote: "@acorex:wysiwyg.blocks.blockquote";
168
+ readonly codeBlock: "@acorex:wysiwyg.blocks.code-block";
169
+ readonly bulletList: "@acorex:wysiwyg.blocks.bullet-list";
170
+ readonly orderedList: "@acorex:wysiwyg.blocks.ordered-list";
171
+ readonly image: "@acorex:wysiwyg.blocks.image";
172
+ readonly video: "@acorex:wysiwyg.blocks.video";
173
+ readonly heading: (level: number) => string;
174
+ };
175
+ readonly fontSize: {
176
+ readonly placeholder: "@acorex:wysiwyg.font-size.placeholder";
177
+ readonly small: "@acorex:wysiwyg.font-size.small";
178
+ readonly normal: "@acorex:wysiwyg.font-size.normal";
179
+ readonly large: "@acorex:wysiwyg.font-size.large";
180
+ readonly huge: "@acorex:wysiwyg.font-size.huge";
181
+ };
182
+ readonly insert: {
183
+ readonly linkUrl: "@acorex:wysiwyg.insert.link-url";
184
+ readonly imageUrl: "@acorex:wysiwyg.insert.image-url";
185
+ readonly videoUrl: "@acorex:wysiwyg.insert.video-url";
186
+ readonly apply: "@acorex:wysiwyg.insert.apply";
187
+ readonly remove: "@acorex:wysiwyg.insert.remove";
188
+ readonly insert: "@acorex:wysiwyg.insert.insert";
189
+ };
190
+ };
191
+ protected readonly alignButtons: _angular_core.Signal<{
192
+ align: AXWysiwygTextAlign;
193
+ config: AXWysiwygButtonConfig;
194
+ }[]>;
195
+ protected readonly activeAlignIcon: _angular_core.Signal<string>;
196
+ protected isAlignActive(align: AXWysiwygTextAlign): boolean;
197
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygAlignmentComponent, never>;
198
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygAlignmentComponent, "ax-wysiwyg-alignment", never, { "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
123
199
  }
124
200
 
201
+ type AXWysiwygColorsButtonKey = 'textColor' | 'highlight';
125
202
  /**
126
203
  * Text and highlight color controls for the WYSIWYG toolbar.
127
204
  * @category Components
128
205
  */
129
206
  declare class AXWysiwygColorsComponent {
130
- protected readonly wysiwygService: WysiwygService;
131
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygColorsComponent, never>;
132
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygColorsComponent, "ax-wysiwyg-colors", never, {}, {}, never, never, true, never>;
207
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygColorsButtonKey, false | AXWysiwygButtonConfig>>>;
208
+ protected readonly clearLabel = "@acorex:common.general.clear";
209
+ protected readonly wysiwyg: AXWysiwyg;
210
+ protected readonly context: AXWysiwygContext;
211
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
212
+ protected readonly textColorButton: _angular_core.Signal<AXWysiwygButtonConfig>;
213
+ protected readonly highlightButton: _angular_core.Signal<AXWysiwygButtonConfig>;
214
+ protected readonly draftTextColor: _angular_core.WritableSignal<string>;
215
+ protected readonly draftHighlightColor: _angular_core.WritableSignal<string>;
216
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygColorsComponent, never>;
217
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygColorsComponent, "ax-wysiwyg-colors", never, { "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
133
218
  }
134
219
 
220
+ type AXWysiwygFontStyleButtonKey = 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'codeBlock';
221
+ type AXWysiwygBlockMenuItemKey = 'paragraph' | 'blockquote' | 'codeBlock' | 'bulletList' | 'orderedList' | 'image' | 'video' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6';
135
222
  /**
136
223
  * Font style, size, and heading controls for the WYSIWYG toolbar.
137
224
  * @category Components
138
225
  */
139
226
  declare class AXWysiwygFontStyleComponent {
140
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygFontStyleComponent, never>;
141
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygFontStyleComponent, "ax-wysiwyg-font-style", never, {}, {}, never, never, true, never>;
227
+ headingLevels: _angular_core.InputSignal<AXWysiwygHeadingLevel[]>;
228
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygFontStyleButtonKey, false | AXWysiwygButtonConfig>>>;
229
+ menuItems: _angular_core.InputSignal<Partial<Record<AXWysiwygBlockMenuItemKey, false | AXWysiwygButtonConfig>>>;
230
+ protected readonly wysiwyg: AXWysiwyg;
231
+ protected readonly context: AXWysiwygContext;
232
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
233
+ protected readonly i18n: {
234
+ readonly placeholder: "@acorex:wysiwyg.placeholder";
235
+ readonly menu: {
236
+ readonly blockType: "@acorex:wysiwyg.menu.block-type";
237
+ readonly insert: "@acorex:wysiwyg.menu.insert";
238
+ readonly align: "@acorex:wysiwyg.menu.align";
239
+ };
240
+ readonly tools: {
241
+ readonly undo: "@acorex:wysiwyg.tools.undo";
242
+ readonly redo: "@acorex:wysiwyg.tools.redo";
243
+ readonly bold: "@acorex:wysiwyg.tools.bold";
244
+ readonly italic: "@acorex:wysiwyg.tools.italic";
245
+ readonly underline: "@acorex:wysiwyg.tools.underline";
246
+ readonly strike: "@acorex:wysiwyg.tools.strike";
247
+ readonly code: "@acorex:wysiwyg.tools.code";
248
+ readonly codeBlock: "@acorex:wysiwyg.tools.code-block";
249
+ readonly link: "@acorex:wysiwyg.tools.link";
250
+ readonly image: "@acorex:wysiwyg.tools.image";
251
+ readonly video: "@acorex:wysiwyg.tools.video";
252
+ readonly bulletList: "@acorex:wysiwyg.tools.bullet-list";
253
+ readonly orderedList: "@acorex:wysiwyg.tools.ordered-list";
254
+ readonly rtl: "@acorex:wysiwyg.tools.rtl";
255
+ readonly textColor: "@acorex:wysiwyg.tools.text-color";
256
+ readonly highlight: "@acorex:wysiwyg.tools.highlight";
257
+ readonly paragraph: "@acorex:wysiwyg.tools.paragraph";
258
+ readonly alignLeft: "@acorex:wysiwyg.tools.align-left";
259
+ readonly alignCenter: "@acorex:wysiwyg.tools.align-center";
260
+ readonly alignRight: "@acorex:wysiwyg.tools.align-right";
261
+ readonly alignJustify: "@acorex:wysiwyg.tools.align-justify";
262
+ };
263
+ readonly blocks: {
264
+ readonly paragraph: "@acorex:wysiwyg.blocks.paragraph";
265
+ readonly blockquote: "@acorex:wysiwyg.blocks.blockquote";
266
+ readonly codeBlock: "@acorex:wysiwyg.blocks.code-block";
267
+ readonly bulletList: "@acorex:wysiwyg.blocks.bullet-list";
268
+ readonly orderedList: "@acorex:wysiwyg.blocks.ordered-list";
269
+ readonly image: "@acorex:wysiwyg.blocks.image";
270
+ readonly video: "@acorex:wysiwyg.blocks.video";
271
+ readonly heading: (level: number) => string;
272
+ };
273
+ readonly fontSize: {
274
+ readonly placeholder: "@acorex:wysiwyg.font-size.placeholder";
275
+ readonly small: "@acorex:wysiwyg.font-size.small";
276
+ readonly normal: "@acorex:wysiwyg.font-size.normal";
277
+ readonly large: "@acorex:wysiwyg.font-size.large";
278
+ readonly huge: "@acorex:wysiwyg.font-size.huge";
279
+ };
280
+ readonly insert: {
281
+ readonly linkUrl: "@acorex:wysiwyg.insert.link-url";
282
+ readonly imageUrl: "@acorex:wysiwyg.insert.image-url";
283
+ readonly videoUrl: "@acorex:wysiwyg.insert.video-url";
284
+ readonly apply: "@acorex:wysiwyg.insert.apply";
285
+ readonly remove: "@acorex:wysiwyg.insert.remove";
286
+ readonly insert: "@acorex:wysiwyg.insert.insert";
287
+ };
288
+ };
289
+ private readonly insertPopover;
290
+ protected readonly insertUrl: _angular_core.WritableSignal<string>;
291
+ protected readonly insertKind: _angular_core.WritableSignal<"video" | "image">;
292
+ protected readonly boldButton: _angular_core.Signal<AXWysiwygButtonConfig>;
293
+ protected readonly italicButton: _angular_core.Signal<AXWysiwygButtonConfig>;
294
+ protected readonly underlineButton: _angular_core.Signal<AXWysiwygButtonConfig>;
295
+ protected readonly strikeButton: _angular_core.Signal<AXWysiwygButtonConfig>;
296
+ protected readonly codeButton: _angular_core.Signal<AXWysiwygButtonConfig>;
297
+ protected readonly codeBlockButton: _angular_core.Signal<AXWysiwygButtonConfig>;
298
+ protected readonly paragraphMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
299
+ protected readonly blockquoteMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
300
+ protected readonly codeBlockMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
301
+ protected readonly bulletListMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
302
+ protected readonly orderedListMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
303
+ protected readonly imageMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
304
+ protected readonly videoMenuItem: _angular_core.Signal<AXWysiwygButtonConfig>;
305
+ protected readonly headingButtons: _angular_core.Signal<{
306
+ level: AXWysiwygHeadingLevel;
307
+ label: string;
308
+ menuKey: AXWysiwygBlockMenuItemKey;
309
+ config: AXWysiwygButtonConfig;
310
+ }[]>;
311
+ protected readonly fontSizeItems: _angular_core.Signal<AXComboBoxItem[]>;
312
+ protected readonly fontSizeComboValue: _angular_core.Signal<"normal" | _acorex_cdk_wysiwyg.AXWysiwygFontSizeToken>;
313
+ protected readonly blockLabelSource: _angular_core.Signal<string>;
314
+ protected readonly blockLabel: _angular_core.Signal<string>;
315
+ protected readonly insertPlaceholderSource: _angular_core.Signal<"@acorex:wysiwyg.insert.image-url" | "@acorex:wysiwyg.insert.video-url">;
316
+ protected readonly insertPlaceholder: _angular_core.Signal<string>;
317
+ protected isHeadingActive(level: AXWysiwygHeadingLevel): boolean;
318
+ protected isParagraphActive(): boolean;
319
+ protected onFontSizeComboChange(value: AXComboBoxValue): void;
320
+ protected beginInsert(kind: 'image' | 'video'): void;
321
+ protected applyInsert(): void;
322
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygFontStyleComponent, never>;
323
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygFontStyleComponent, "ax-wysiwyg-font-style", never, { "headingLevels": { "alias": "headingLevels"; "required": false; "isSignal": true; }; "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
142
324
  }
143
325
 
326
+ type AXWysiwygHistoryButtonKey = 'undo' | 'redo';
144
327
  /**
145
328
  * Undo and redo controls for the WYSIWYG toolbar.
146
329
  * @category Components
147
330
  */
148
331
  declare class AXWysiwygHistoryComponent {
149
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygHistoryComponent, never>;
150
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygHistoryComponent, "ax-wysiwyg-history", never, {}, {}, never, never, true, never>;
332
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygHistoryButtonKey, false | AXWysiwygButtonConfig>>>;
333
+ protected readonly wysiwyg: AXWysiwyg;
334
+ protected readonly context: AXWysiwygContext;
335
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
336
+ protected readonly undoButton: _angular_core.Signal<AXWysiwygButtonConfig>;
337
+ protected readonly redoButton: _angular_core.Signal<AXWysiwygButtonConfig>;
338
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygHistoryComponent, never>;
339
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygHistoryComponent, "ax-wysiwyg-history", never, { "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
151
340
  }
152
341
 
342
+ type AXWysiwygInsertButtonKey = 'link' | 'image' | 'video';
153
343
  /**
154
- * Image, video, and link controls for the WYSIWYG toolbar.
344
+ * Link, image, and video insertion controls for the WYSIWYG toolbar.
155
345
  * @category Components
156
346
  */
157
347
  declare class AXWysiwygInsertComponent {
158
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygInsertComponent, never>;
159
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygInsertComponent, "ax-wysiwyg-insert", never, {}, {}, never, never, true, never>;
348
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygInsertButtonKey, false | AXWysiwygButtonConfig>>>;
349
+ protected readonly i18n: {
350
+ readonly placeholder: "@acorex:wysiwyg.placeholder";
351
+ readonly menu: {
352
+ readonly blockType: "@acorex:wysiwyg.menu.block-type";
353
+ readonly insert: "@acorex:wysiwyg.menu.insert";
354
+ readonly align: "@acorex:wysiwyg.menu.align";
355
+ };
356
+ readonly tools: {
357
+ readonly undo: "@acorex:wysiwyg.tools.undo";
358
+ readonly redo: "@acorex:wysiwyg.tools.redo";
359
+ readonly bold: "@acorex:wysiwyg.tools.bold";
360
+ readonly italic: "@acorex:wysiwyg.tools.italic";
361
+ readonly underline: "@acorex:wysiwyg.tools.underline";
362
+ readonly strike: "@acorex:wysiwyg.tools.strike";
363
+ readonly code: "@acorex:wysiwyg.tools.code";
364
+ readonly codeBlock: "@acorex:wysiwyg.tools.code-block";
365
+ readonly link: "@acorex:wysiwyg.tools.link";
366
+ readonly image: "@acorex:wysiwyg.tools.image";
367
+ readonly video: "@acorex:wysiwyg.tools.video";
368
+ readonly bulletList: "@acorex:wysiwyg.tools.bullet-list";
369
+ readonly orderedList: "@acorex:wysiwyg.tools.ordered-list";
370
+ readonly rtl: "@acorex:wysiwyg.tools.rtl";
371
+ readonly textColor: "@acorex:wysiwyg.tools.text-color";
372
+ readonly highlight: "@acorex:wysiwyg.tools.highlight";
373
+ readonly paragraph: "@acorex:wysiwyg.tools.paragraph";
374
+ readonly alignLeft: "@acorex:wysiwyg.tools.align-left";
375
+ readonly alignCenter: "@acorex:wysiwyg.tools.align-center";
376
+ readonly alignRight: "@acorex:wysiwyg.tools.align-right";
377
+ readonly alignJustify: "@acorex:wysiwyg.tools.align-justify";
378
+ };
379
+ readonly blocks: {
380
+ readonly paragraph: "@acorex:wysiwyg.blocks.paragraph";
381
+ readonly blockquote: "@acorex:wysiwyg.blocks.blockquote";
382
+ readonly codeBlock: "@acorex:wysiwyg.blocks.code-block";
383
+ readonly bulletList: "@acorex:wysiwyg.blocks.bullet-list";
384
+ readonly orderedList: "@acorex:wysiwyg.blocks.ordered-list";
385
+ readonly image: "@acorex:wysiwyg.blocks.image";
386
+ readonly video: "@acorex:wysiwyg.blocks.video";
387
+ readonly heading: (level: number) => string;
388
+ };
389
+ readonly fontSize: {
390
+ readonly placeholder: "@acorex:wysiwyg.font-size.placeholder";
391
+ readonly small: "@acorex:wysiwyg.font-size.small";
392
+ readonly normal: "@acorex:wysiwyg.font-size.normal";
393
+ readonly large: "@acorex:wysiwyg.font-size.large";
394
+ readonly huge: "@acorex:wysiwyg.font-size.huge";
395
+ };
396
+ readonly insert: {
397
+ readonly linkUrl: "@acorex:wysiwyg.insert.link-url";
398
+ readonly imageUrl: "@acorex:wysiwyg.insert.image-url";
399
+ readonly videoUrl: "@acorex:wysiwyg.insert.video-url";
400
+ readonly apply: "@acorex:wysiwyg.insert.apply";
401
+ readonly remove: "@acorex:wysiwyg.insert.remove";
402
+ readonly insert: "@acorex:wysiwyg.insert.insert";
403
+ };
404
+ };
405
+ protected readonly wysiwyg: AXWysiwyg;
406
+ protected readonly context: AXWysiwygContext;
407
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
408
+ protected readonly linkButton: _angular_core.Signal<AXWysiwygButtonConfig>;
409
+ protected readonly imageButton: _angular_core.Signal<AXWysiwygButtonConfig>;
410
+ protected readonly videoButton: _angular_core.Signal<AXWysiwygButtonConfig>;
411
+ protected readonly linkUrl: _angular_core.WritableSignal<string>;
412
+ protected readonly imageUrl: _angular_core.WritableSignal<string>;
413
+ protected readonly videoUrl: _angular_core.WritableSignal<string>;
414
+ protected applyLink(): void;
415
+ protected removeLink(): void;
416
+ protected applyImage(): void;
417
+ protected applyVideo(): void;
418
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygInsertComponent, never>;
419
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygInsertComponent, "ax-wysiwyg-insert", never, { "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
160
420
  }
161
421
 
422
+ type AXWysiwygListButtonKey = 'bulletList' | 'orderedList' | 'rtl';
162
423
  /**
163
424
  * List and text-direction controls for the WYSIWYG toolbar.
164
425
  * @category Components
165
426
  */
166
427
  declare class AXWysiwygListComponent {
167
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygListComponent, never>;
168
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygListComponent, "ax-wysiwyg-list", never, {}, {}, never, never, true, never>;
428
+ buttons: _angular_core.InputSignal<Partial<Record<AXWysiwygListButtonKey, false | AXWysiwygButtonConfig>>>;
429
+ protected readonly wysiwyg: AXWysiwyg;
430
+ protected readonly context: AXWysiwygContext;
431
+ protected readonly state: _angular_core.WritableSignal<_acorex_cdk_wysiwyg.AXWysiwygState>;
432
+ protected readonly bulletButton: _angular_core.Signal<AXWysiwygButtonConfig>;
433
+ protected readonly orderedButton: _angular_core.Signal<AXWysiwygButtonConfig>;
434
+ protected readonly rtlButton: _angular_core.Signal<AXWysiwygButtonConfig>;
435
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygListComponent, never>;
436
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygListComponent, "ax-wysiwyg-list", never, { "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
169
437
  }
170
438
 
171
439
  /**
@@ -173,15 +441,73 @@ declare class AXWysiwygListComponent {
173
441
  * @category Components
174
442
  */
175
443
  declare class AXWysiwygViewComponent {
176
- editor: i0.Signal<ElementRef<HTMLDivElement>>;
177
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygViewComponent, never>;
178
- static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygViewComponent, "ax-wysiwyg-view", never, {}, {}, never, never, true, never>;
444
+ editor: _angular_core.Signal<ElementRef<HTMLDivElement>>;
445
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygViewComponent, never>;
446
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXWysiwygViewComponent, "ax-wysiwyg-view", never, {}, {}, never, never, true, never>;
179
447
  }
180
448
 
181
449
  declare class AXWysiwygModule {
182
- static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygModule, never>;
183
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXWysiwygModule, never, [typeof AXWysiwygContainerComponent, typeof AXWysiwygViewComponent, typeof AXWysiwygAlignmentComponent, typeof AXWysiwygColorsComponent, typeof AXWysiwygFontStyleComponent, typeof AXWysiwygHistoryComponent, typeof AXWysiwygInsertComponent, typeof AXWysiwygListComponent, typeof AXWysiwygToolbarComponent], [typeof AXWysiwygContainerComponent, typeof AXWysiwygViewComponent, typeof AXWysiwygAlignmentComponent, typeof AXWysiwygColorsComponent, typeof AXWysiwygFontStyleComponent, typeof AXWysiwygHistoryComponent, typeof AXWysiwygInsertComponent, typeof AXWysiwygListComponent, typeof AXWysiwygToolbarComponent]>;
184
- static ɵinj: i0.ɵɵInjectorDeclaration<AXWysiwygModule>;
450
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXWysiwygModule, never>;
451
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXWysiwygModule, never, [typeof AXWysiwygContainerComponent, typeof AXWysiwygViewComponent, typeof AXWysiwygAlignmentComponent, typeof AXWysiwygColorsComponent, typeof AXWysiwygFontStyleComponent, typeof AXWysiwygHistoryComponent, typeof AXWysiwygInsertComponent, typeof AXWysiwygListComponent, typeof AXWysiwygToolbarComponent], [typeof AXWysiwygContainerComponent, typeof AXWysiwygViewComponent, typeof AXWysiwygAlignmentComponent, typeof AXWysiwygColorsComponent, typeof AXWysiwygFontStyleComponent, typeof AXWysiwygHistoryComponent, typeof AXWysiwygInsertComponent, typeof AXWysiwygListComponent, typeof AXWysiwygToolbarComponent]>;
452
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXWysiwygModule>;
185
453
  }
186
454
 
187
- export { AXWysiwygAlignmentComponent, AXWysiwygColorsComponent, AXWysiwygContainerComponent, AXWysiwygFontStyleComponent, AXWysiwygHistoryComponent, AXWysiwygInsertComponent, AXWysiwygListComponent, AXWysiwygModule, AXWysiwygToolbarComponent, AXWysiwygViewComponent };
455
+ declare const AX_WYSIWYG_I18N: {
456
+ readonly placeholder: "@acorex:wysiwyg.placeholder";
457
+ readonly menu: {
458
+ readonly blockType: "@acorex:wysiwyg.menu.block-type";
459
+ readonly insert: "@acorex:wysiwyg.menu.insert";
460
+ readonly align: "@acorex:wysiwyg.menu.align";
461
+ };
462
+ readonly tools: {
463
+ readonly undo: "@acorex:wysiwyg.tools.undo";
464
+ readonly redo: "@acorex:wysiwyg.tools.redo";
465
+ readonly bold: "@acorex:wysiwyg.tools.bold";
466
+ readonly italic: "@acorex:wysiwyg.tools.italic";
467
+ readonly underline: "@acorex:wysiwyg.tools.underline";
468
+ readonly strike: "@acorex:wysiwyg.tools.strike";
469
+ readonly code: "@acorex:wysiwyg.tools.code";
470
+ readonly codeBlock: "@acorex:wysiwyg.tools.code-block";
471
+ readonly link: "@acorex:wysiwyg.tools.link";
472
+ readonly image: "@acorex:wysiwyg.tools.image";
473
+ readonly video: "@acorex:wysiwyg.tools.video";
474
+ readonly bulletList: "@acorex:wysiwyg.tools.bullet-list";
475
+ readonly orderedList: "@acorex:wysiwyg.tools.ordered-list";
476
+ readonly rtl: "@acorex:wysiwyg.tools.rtl";
477
+ readonly textColor: "@acorex:wysiwyg.tools.text-color";
478
+ readonly highlight: "@acorex:wysiwyg.tools.highlight";
479
+ readonly paragraph: "@acorex:wysiwyg.tools.paragraph";
480
+ readonly alignLeft: "@acorex:wysiwyg.tools.align-left";
481
+ readonly alignCenter: "@acorex:wysiwyg.tools.align-center";
482
+ readonly alignRight: "@acorex:wysiwyg.tools.align-right";
483
+ readonly alignJustify: "@acorex:wysiwyg.tools.align-justify";
484
+ };
485
+ readonly blocks: {
486
+ readonly paragraph: "@acorex:wysiwyg.blocks.paragraph";
487
+ readonly blockquote: "@acorex:wysiwyg.blocks.blockquote";
488
+ readonly codeBlock: "@acorex:wysiwyg.blocks.code-block";
489
+ readonly bulletList: "@acorex:wysiwyg.blocks.bullet-list";
490
+ readonly orderedList: "@acorex:wysiwyg.blocks.ordered-list";
491
+ readonly image: "@acorex:wysiwyg.blocks.image";
492
+ readonly video: "@acorex:wysiwyg.blocks.video";
493
+ readonly heading: (level: number) => string;
494
+ };
495
+ readonly fontSize: {
496
+ readonly placeholder: "@acorex:wysiwyg.font-size.placeholder";
497
+ readonly small: "@acorex:wysiwyg.font-size.small";
498
+ readonly normal: "@acorex:wysiwyg.font-size.normal";
499
+ readonly large: "@acorex:wysiwyg.font-size.large";
500
+ readonly huge: "@acorex:wysiwyg.font-size.huge";
501
+ };
502
+ readonly insert: {
503
+ readonly linkUrl: "@acorex:wysiwyg.insert.link-url";
504
+ readonly imageUrl: "@acorex:wysiwyg.insert.image-url";
505
+ readonly videoUrl: "@acorex:wysiwyg.insert.video-url";
506
+ readonly apply: "@acorex:wysiwyg.insert.apply";
507
+ readonly remove: "@acorex:wysiwyg.insert.remove";
508
+ readonly insert: "@acorex:wysiwyg.insert.insert";
509
+ };
510
+ };
511
+
512
+ export { AXWysiwygAlignmentComponent, AXWysiwygColorsComponent, AXWysiwygContainerComponent, AXWysiwygFontStyleComponent, AXWysiwygHistoryComponent, AXWysiwygInsertComponent, AXWysiwygListComponent, AXWysiwygModule, AXWysiwygToolbarComponent, AXWysiwygViewComponent, AX_WYSIWYG_I18N };
513
+ export type { AXWysiwygAlignmentButtonKey, AXWysiwygBlockMenuItemKey, AXWysiwygColorsButtonKey, AXWysiwygFontStyleButtonKey, AXWysiwygHistoryButtonKey, AXWysiwygInsertButtonKey, AXWysiwygListButtonKey, AXWysiwygMode };