@phuong-tran-redoc/document-engine-angular 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts
ADDED
|
@@ -0,0 +1,1698 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges, Type, Injector, ElementRef, AfterViewInit, Renderer2, ChangeDetectorRef, AfterContentInit, QueryList } from '@angular/core';
|
|
3
|
+
import { IndentOptions, DynamicFieldOptions, DynamicFieldCategory as DynamicFieldCategory$1, RestrictedEditingOptions, Color, TextCaseType, ListStyleType, DynamicFieldItem as DynamicFieldItem$1 } from '@phuong-tran-redoc/document-engine-core';
|
|
4
|
+
import { BlockquoteOptions } from '@tiptap/extension-blockquote';
|
|
5
|
+
import { BoldOptions } from '@tiptap/extension-bold';
|
|
6
|
+
import { CodeOptions } from '@tiptap/extension-code';
|
|
7
|
+
import { CodeBlockOptions } from '@tiptap/extension-code-block';
|
|
8
|
+
import { HeadingOptions } from '@tiptap/extension-heading';
|
|
9
|
+
import { ImageOptions } from '@tiptap/extension-image';
|
|
10
|
+
import { ItalicOptions } from '@tiptap/extension-italic';
|
|
11
|
+
import { LinkOptions } from '@tiptap/extension-link';
|
|
12
|
+
import { StrikeOptions } from '@tiptap/extension-strike';
|
|
13
|
+
import { SubscriptExtensionOptions } from '@tiptap/extension-subscript';
|
|
14
|
+
import { SuperscriptExtensionOptions } from '@tiptap/extension-superscript';
|
|
15
|
+
import { TableKitOptions } from '@tiptap/extension-table';
|
|
16
|
+
import { TextAlignOptions } from '@tiptap/extension-text-align';
|
|
17
|
+
import { TextStyleKitOptions } from '@tiptap/extension-text-style';
|
|
18
|
+
import { UnderlineOptions } from '@tiptap/extension-underline';
|
|
19
|
+
import { UndoRedoOptions, PlaceholderOptions, CharacterCountOptions } from '@tiptap/extensions';
|
|
20
|
+
import { Editor, Content, EditorEvents, Extension } from '@tiptap/core';
|
|
21
|
+
export { Editor } from '@tiptap/core';
|
|
22
|
+
import { BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu';
|
|
23
|
+
import * as _angular_forms from '@angular/forms';
|
|
24
|
+
import { ControlValueAccessor, ValidatorFn, FormControl } from '@angular/forms';
|
|
25
|
+
import { FloatingMenuPluginProps } from '@tiptap/extension-floating-menu';
|
|
26
|
+
import { Placement } from '@floating-ui/dom';
|
|
27
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
28
|
+
import * as rxjs from 'rxjs';
|
|
29
|
+
|
|
30
|
+
interface TemplateItem {
|
|
31
|
+
title: string;
|
|
32
|
+
data: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
type ButtonType = 'icon-button' | 'select-button';
|
|
37
|
+
type SelectOption = {
|
|
38
|
+
value: string;
|
|
39
|
+
label: string;
|
|
40
|
+
};
|
|
41
|
+
type IconButton = {
|
|
42
|
+
type: 'icon-button';
|
|
43
|
+
id: string;
|
|
44
|
+
icon: string;
|
|
45
|
+
label?: string;
|
|
46
|
+
callback: () => void;
|
|
47
|
+
};
|
|
48
|
+
type SelectButton = {
|
|
49
|
+
type: 'select-button';
|
|
50
|
+
id: string;
|
|
51
|
+
label: string;
|
|
52
|
+
options: SelectOption[];
|
|
53
|
+
callback: () => void;
|
|
54
|
+
};
|
|
55
|
+
type ToolbarButton = IconButton | SelectButton;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Định nghĩa cấu hình đầy đủ cho DocumentEngineKit (Factory của bạn).
|
|
59
|
+
* Hầu hết các tùy chọn đều là:
|
|
60
|
+
* - `false` hoặc `undefined`: Để tắt extension.
|
|
61
|
+
* - `true`: Để bật với cài đặt mặc định.
|
|
62
|
+
* - `object`: Để bật và cung cấp cấu hình tùy chỉnh.
|
|
63
|
+
*/
|
|
64
|
+
interface DocumentEngineConfig {
|
|
65
|
+
/**
|
|
66
|
+
* If set to false, the undo-redo extension will not be registered
|
|
67
|
+
* @example undoRedo: false
|
|
68
|
+
*/
|
|
69
|
+
undoRedo: Partial<UndoRedoOptions> | boolean;
|
|
70
|
+
/**
|
|
71
|
+
* If set to false, the bold extension will not be registered
|
|
72
|
+
* @example bold: false
|
|
73
|
+
*/
|
|
74
|
+
bold: Partial<BoldOptions> | boolean;
|
|
75
|
+
/**
|
|
76
|
+
* If set to false, the italic extension will not be registered
|
|
77
|
+
* @example italic: false
|
|
78
|
+
*/
|
|
79
|
+
italic: Partial<ItalicOptions> | boolean;
|
|
80
|
+
/**
|
|
81
|
+
* If set to false, the underline extension will not be registered
|
|
82
|
+
* @example underline: false
|
|
83
|
+
*/
|
|
84
|
+
underline: Partial<UnderlineOptions> | boolean;
|
|
85
|
+
/**
|
|
86
|
+
* If set to false, the strike extension will not be registered
|
|
87
|
+
* @example strike: false
|
|
88
|
+
*/
|
|
89
|
+
strike: Partial<StrikeOptions> | boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Cấu hình cho @tiptap/extension-subscript
|
|
92
|
+
* @default false
|
|
93
|
+
*/
|
|
94
|
+
subscript?: Partial<SubscriptExtensionOptions> | boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Cấu hình cho @tiptap/extension-superscript
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
99
|
+
superscript?: Partial<SuperscriptExtensionOptions> | boolean;
|
|
100
|
+
/**
|
|
101
|
+
* If set to false, the code extension will not be registered
|
|
102
|
+
* @example code: false
|
|
103
|
+
*/
|
|
104
|
+
code: Partial<CodeOptions> | boolean;
|
|
105
|
+
/**
|
|
106
|
+
* If set to false, the link extension will not be registered
|
|
107
|
+
* @example link: false
|
|
108
|
+
*/
|
|
109
|
+
link: Partial<LinkOptions> | boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Cấu hình cho NotumHeading (custom, thay thế cho heading gốc)
|
|
112
|
+
* @default {}
|
|
113
|
+
*/
|
|
114
|
+
heading?: Partial<HeadingOptions> | boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Hiển thị Font Size trong toolbar
|
|
117
|
+
* @default true
|
|
118
|
+
*/
|
|
119
|
+
fontSize?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Hiển thị Line Height trong toolbar
|
|
122
|
+
* @default true
|
|
123
|
+
*/
|
|
124
|
+
lineHeight?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Cấu hình cho TextCase (custom)
|
|
127
|
+
* @default true
|
|
128
|
+
*/
|
|
129
|
+
textCase?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Cấu hình cho @tiptap/extension-text-align
|
|
132
|
+
* @default { types: ['paragraph', 'heading'] }
|
|
133
|
+
*/
|
|
134
|
+
textAlign?: Partial<TextAlignOptions> | boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Cấu hình cho Indent (custom)
|
|
137
|
+
* @default {}
|
|
138
|
+
*/
|
|
139
|
+
indent?: Partial<IndentOptions> | boolean;
|
|
140
|
+
/**
|
|
141
|
+
* If set to false, the list extension will not be registered
|
|
142
|
+
* @example list: false
|
|
143
|
+
*/
|
|
144
|
+
list: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Cấu hình cho @tiptap/extension-text-style (TextStyleKit)
|
|
147
|
+
* @default false
|
|
148
|
+
*/
|
|
149
|
+
textStyleKit?: Partial<TextStyleKitOptions> | boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Cấu hình cho ResetFormat (custom)
|
|
152
|
+
* @default false
|
|
153
|
+
*/
|
|
154
|
+
resetFormat?: boolean;
|
|
155
|
+
/**
|
|
156
|
+
* If set to false, the codeBlock extension will not be registered
|
|
157
|
+
* @example codeBlock: false
|
|
158
|
+
*/
|
|
159
|
+
codeBlock: Partial<CodeBlockOptions> | boolean;
|
|
160
|
+
/**
|
|
161
|
+
* If set to false, the blockquote extension will not be registered
|
|
162
|
+
* @example blockquote: false
|
|
163
|
+
*/
|
|
164
|
+
blockquote: Partial<BlockquoteOptions> | boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Cấu hình cho @tiptap/extension-image
|
|
167
|
+
* @default {}
|
|
168
|
+
*/
|
|
169
|
+
image?: Partial<ImageOptions> | boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Cấu hình cho @tiptap/extension-table (StyledTableKit)
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
174
|
+
tables?: Partial<TableKitOptions> | boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Cấu hình cho Special Characters (custom)
|
|
177
|
+
* @default false
|
|
178
|
+
*/
|
|
179
|
+
specialCharacters?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Cấu hình cho PageBreak (custom)
|
|
182
|
+
* @default true
|
|
183
|
+
*/
|
|
184
|
+
pageBreak?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Cấu hình cho @tiptap/extension-placeholder
|
|
187
|
+
* @default { placeholder: 'Type something...' }
|
|
188
|
+
*/
|
|
189
|
+
placeholder?: Partial<PlaceholderOptions> | boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Danh sách templates
|
|
192
|
+
* Được sử dụng để hiển thị trong bubble menu
|
|
193
|
+
*/
|
|
194
|
+
templates?: TemplateItem[];
|
|
195
|
+
/**
|
|
196
|
+
* Cấu hình cho DynamicField (custom)
|
|
197
|
+
* @default true
|
|
198
|
+
*/
|
|
199
|
+
dynamicField?: Partial<DynamicFieldOptions> | boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Danh sách categories cho dynamic fields
|
|
202
|
+
* Được sử dụng để hiển thị trong bubble menu
|
|
203
|
+
*/
|
|
204
|
+
dynamicFieldsCategories?: DynamicFieldCategory$1[];
|
|
205
|
+
/**
|
|
206
|
+
* Cấu hình cho RestrictedEditing (custom)
|
|
207
|
+
* @default { initialMode: 'standard' }
|
|
208
|
+
*/
|
|
209
|
+
restrictedEditing?: Partial<RestrictedEditingOptions> | boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Cấu hình cho ClearContent (custom)
|
|
212
|
+
* @default true
|
|
213
|
+
*/
|
|
214
|
+
clearContent?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Cấu hình cho Markdown download (toolbar feature)
|
|
217
|
+
* @default true
|
|
218
|
+
*/
|
|
219
|
+
markdown?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Hiển thị toolbar
|
|
222
|
+
* @default true
|
|
223
|
+
*/
|
|
224
|
+
showToolbar?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Cho phép chỉnh sửa editor
|
|
227
|
+
* @default true
|
|
228
|
+
*/
|
|
229
|
+
editable?: boolean;
|
|
230
|
+
/**
|
|
231
|
+
* Hiển thị footer (chứa character count và các component khác)
|
|
232
|
+
* @default false
|
|
233
|
+
*/
|
|
234
|
+
showFooter?: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* Cấu hình cho @tiptap/extension-character-count
|
|
237
|
+
* Footer phải được bật để hiển thị character count
|
|
238
|
+
* @default false (Thường được bật/tắt bởi client)
|
|
239
|
+
*/
|
|
240
|
+
characterCount?: Partial<CharacterCountOptions> | boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Hiển thị button print
|
|
243
|
+
* @default false
|
|
244
|
+
*/
|
|
245
|
+
showPrintButton?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
* Custom toolbar buttons
|
|
248
|
+
* Allows clients to define custom actions/buttons in the toolbar
|
|
249
|
+
* @default undefined
|
|
250
|
+
*/
|
|
251
|
+
customToolbarButtons?: ToolbarButton[];
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* EditorCapabilities class
|
|
256
|
+
* Pre-calculates all capability checks from DocumentEngineConfig
|
|
257
|
+
* to avoid repeated function calls in UI components
|
|
258
|
+
*/
|
|
259
|
+
declare class EditorCapabilities {
|
|
260
|
+
readonly hasHistory: boolean;
|
|
261
|
+
readonly hasBold: boolean;
|
|
262
|
+
readonly hasItalic: boolean;
|
|
263
|
+
readonly hasUnderline: boolean;
|
|
264
|
+
readonly hasStrike: boolean;
|
|
265
|
+
readonly basicInline: boolean;
|
|
266
|
+
readonly hasSubscript: boolean;
|
|
267
|
+
readonly hasSuperscript: boolean;
|
|
268
|
+
readonly hasCode: boolean;
|
|
269
|
+
readonly hasLink: boolean;
|
|
270
|
+
readonly advancedInline: boolean;
|
|
271
|
+
readonly hasHeading: boolean;
|
|
272
|
+
readonly hasFontSize: boolean;
|
|
273
|
+
readonly hasLineHeight: boolean;
|
|
274
|
+
readonly hasTextCase: boolean;
|
|
275
|
+
readonly hasTextProperty: boolean;
|
|
276
|
+
readonly hasTextAlign: boolean;
|
|
277
|
+
readonly hasIndent: boolean;
|
|
278
|
+
readonly hasLists: boolean;
|
|
279
|
+
readonly hasAlignmentLayout: boolean;
|
|
280
|
+
readonly hasColors: boolean;
|
|
281
|
+
readonly hasResetFormat: boolean;
|
|
282
|
+
readonly hasFormatUtilities: boolean;
|
|
283
|
+
readonly hasCodeBlock: boolean;
|
|
284
|
+
readonly hasBlockquote: boolean;
|
|
285
|
+
readonly hasBlockTypes: boolean;
|
|
286
|
+
readonly hasImages: boolean;
|
|
287
|
+
readonly hasTable: boolean;
|
|
288
|
+
readonly hasSpecialChars: boolean;
|
|
289
|
+
readonly hasPageBreak: boolean;
|
|
290
|
+
readonly hasInsertObject: boolean;
|
|
291
|
+
readonly hasTemplates: boolean;
|
|
292
|
+
readonly hasDynamicFields: boolean;
|
|
293
|
+
readonly hasEditableRegion: boolean;
|
|
294
|
+
readonly hasBusinessFeatures: boolean;
|
|
295
|
+
readonly hasClearContent: boolean;
|
|
296
|
+
readonly hasMarkdown: boolean;
|
|
297
|
+
readonly hasActions: boolean;
|
|
298
|
+
readonly hasFooter: boolean;
|
|
299
|
+
readonly hasPrintButton: boolean;
|
|
300
|
+
constructor(config: Partial<DocumentEngineConfig>);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Document Editor Component
|
|
305
|
+
* High-level wrapper that encapsulates TiptapEditor and DocumentEngineKit
|
|
306
|
+
* Provides a simple API for consumers without exposing internal dependencies
|
|
307
|
+
*
|
|
308
|
+
* Usage:
|
|
309
|
+
* <document-engine-editor
|
|
310
|
+
* #editor
|
|
311
|
+
* [config]="editorConfig"
|
|
312
|
+
*
|
|
313
|
+
* (editorReady)="editor = docEditor.editor"
|
|
314
|
+
* >
|
|
315
|
+
* <tiptap-editor
|
|
316
|
+
* [editor]="docEditor.editor"
|
|
317
|
+
* [(ngModel)]="content"
|
|
318
|
+
* ></tiptap-editor>
|
|
319
|
+
* </document-engine-editor>
|
|
320
|
+
*/
|
|
321
|
+
declare class DocumentEditorComponent implements OnInit, OnChanges, OnDestroy {
|
|
322
|
+
private readonly ngZone;
|
|
323
|
+
config?: Partial<DocumentEngineConfig>;
|
|
324
|
+
editorReady: EventEmitter<Editor>;
|
|
325
|
+
editor: Editor;
|
|
326
|
+
get mergedConfig(): Partial<DocumentEngineConfig>;
|
|
327
|
+
private _mergedConfig?;
|
|
328
|
+
capabilities: EditorCapabilities;
|
|
329
|
+
private updateCapabilities;
|
|
330
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
331
|
+
ngOnInit(): void;
|
|
332
|
+
ngOnDestroy(): void;
|
|
333
|
+
private initializeEditor;
|
|
334
|
+
/**
|
|
335
|
+
* Get merged config with all extensions enabled by default
|
|
336
|
+
* User config will override defaults
|
|
337
|
+
*/
|
|
338
|
+
private getMergedConfig;
|
|
339
|
+
/**
|
|
340
|
+
* Merge two config objects, preferring userConfig values when provided
|
|
341
|
+
*/
|
|
342
|
+
private mergeConfig;
|
|
343
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DocumentEditorComponent, never>;
|
|
344
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DocumentEditorComponent, "document-engine-editor", never, { "config": { "alias": "config"; "required": false; }; }, { "editorReady": "editorReady"; }, never, ["*"], true, never>;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
type BubbleTarget = {
|
|
348
|
+
kind: 'mark';
|
|
349
|
+
name: string | string[];
|
|
350
|
+
allowEmptySelection?: boolean;
|
|
351
|
+
requireFocus?: boolean;
|
|
352
|
+
extraPredicate?: (editor: Editor) => boolean;
|
|
353
|
+
} | {
|
|
354
|
+
kind: 'node';
|
|
355
|
+
name: string | string[];
|
|
356
|
+
allowEmptySelection?: boolean;
|
|
357
|
+
requireFocus?: boolean;
|
|
358
|
+
extraPredicate?: (editor: Editor) => boolean;
|
|
359
|
+
};
|
|
360
|
+
type BubbleMenuProps = Omit<BubbleMenuPluginProps, 'editor' | 'element' | 'pluginKey' | 'shouldShow' | 'getReferencedVirtualElement'> & {
|
|
361
|
+
pluginKey: string;
|
|
362
|
+
mountTo?: string | null;
|
|
363
|
+
};
|
|
364
|
+
/**
|
|
365
|
+
* Interface that bubble view components must implement
|
|
366
|
+
*/
|
|
367
|
+
interface BubbleMenuViewContent<TAttrs = Record<string, unknown>> {
|
|
368
|
+
/**
|
|
369
|
+
* Called when view becomes active
|
|
370
|
+
*
|
|
371
|
+
* @param attrs - Attributes from the active mark/node
|
|
372
|
+
*
|
|
373
|
+
* Use this to:
|
|
374
|
+
* - Initialize form controls with attribute values
|
|
375
|
+
* - Set up initial state
|
|
376
|
+
*/
|
|
377
|
+
onActivate?(attrs: TAttrs): void;
|
|
378
|
+
/**
|
|
379
|
+
* Called when view becomes inactive (before navigation away or close)
|
|
380
|
+
*
|
|
381
|
+
* Use this to:
|
|
382
|
+
* - Clean up subscriptions
|
|
383
|
+
* - Cancel pending operations
|
|
384
|
+
*/
|
|
385
|
+
onDeactivate?(): void;
|
|
386
|
+
/**
|
|
387
|
+
* Navigate to another view by ID
|
|
388
|
+
* Views decide their own navigation logic
|
|
389
|
+
*
|
|
390
|
+
* @param viewId - The ID of the view to navigate to
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* // In main view: navigate to edit
|
|
394
|
+
* this.navigateTo?.('edit');
|
|
395
|
+
*/
|
|
396
|
+
navigateTo?(viewId: string): void;
|
|
397
|
+
/**
|
|
398
|
+
* Navigate back to previous view
|
|
399
|
+
* Each view decides where "back" goes
|
|
400
|
+
*
|
|
401
|
+
* @param viewId - Optional view ID to go back to. If not provided, closes the bubble
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* // In edit view: go back to main
|
|
405
|
+
* this.goBack?.('main');
|
|
406
|
+
*
|
|
407
|
+
* // Or close if no previous view
|
|
408
|
+
* this.close?.();
|
|
409
|
+
*/
|
|
410
|
+
goBack?(viewId?: string): void;
|
|
411
|
+
/**
|
|
412
|
+
* Close the entire bubble menu
|
|
413
|
+
*
|
|
414
|
+
* @example
|
|
415
|
+
* this.close?.();
|
|
416
|
+
*/
|
|
417
|
+
close?(): void;
|
|
418
|
+
/**
|
|
419
|
+
* Editor instance (injected by wrapper)
|
|
420
|
+
*/
|
|
421
|
+
editor?: Editor;
|
|
422
|
+
/**
|
|
423
|
+
* Current view ID (injected by wrapper)
|
|
424
|
+
*/
|
|
425
|
+
viewId?: string;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Configuration for a single view within the bubble menu
|
|
429
|
+
*/
|
|
430
|
+
interface BubbleMenuViewConfig<TAttrs = Record<string, unknown>> {
|
|
431
|
+
/**
|
|
432
|
+
* Unique identifier for this view
|
|
433
|
+
* Used for navigation: navigateTo('viewId')
|
|
434
|
+
*/
|
|
435
|
+
id: string;
|
|
436
|
+
/**
|
|
437
|
+
* The Angular component to render for this view
|
|
438
|
+
*/
|
|
439
|
+
component: Type<BubbleMenuViewContent<TAttrs>>;
|
|
440
|
+
/**
|
|
441
|
+
* Condition to determine if this view should be shown when bubble activates
|
|
442
|
+
*
|
|
443
|
+
* @param attrs - The attributes from the active mark/node
|
|
444
|
+
* @returns true if this view should be shown
|
|
445
|
+
*
|
|
446
|
+
* @example
|
|
447
|
+
* showWhen: (attrs) => !!attrs.href // Show if link exists
|
|
448
|
+
* showWhen: (attrs) => attrs.colspan > 1 // Show if cell spans multiple columns
|
|
449
|
+
*/
|
|
450
|
+
showWhen?: (attrs: TAttrs) => boolean;
|
|
451
|
+
/**
|
|
452
|
+
* Should this view be shown when bubble is force-opened?
|
|
453
|
+
* (e.g., via toolbar button when no selection exists)
|
|
454
|
+
*
|
|
455
|
+
* @default false
|
|
456
|
+
*/
|
|
457
|
+
showOnForceOpen?: boolean;
|
|
458
|
+
/**
|
|
459
|
+
* Is this the default/fallback view?
|
|
460
|
+
* Shown when no other view's showWhen condition matches
|
|
461
|
+
*
|
|
462
|
+
* @default false
|
|
463
|
+
*/
|
|
464
|
+
isDefault?: boolean;
|
|
465
|
+
/**
|
|
466
|
+
* Optional label for debugging/logging
|
|
467
|
+
*/
|
|
468
|
+
label?: string;
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Configuration for the multi-view bubble menu wrapper
|
|
472
|
+
*/
|
|
473
|
+
interface EditorBubbleMenuConfig {
|
|
474
|
+
/**
|
|
475
|
+
* The target mark or node to track
|
|
476
|
+
*/
|
|
477
|
+
target: BubbleTarget;
|
|
478
|
+
/**
|
|
479
|
+
* Array of view configurations
|
|
480
|
+
* Order matters: first matching view is selected
|
|
481
|
+
*/
|
|
482
|
+
views: BubbleMenuViewConfig[];
|
|
483
|
+
/**
|
|
484
|
+
* Optional Floating UI options for positioning and behavior
|
|
485
|
+
*/
|
|
486
|
+
props?: BubbleMenuProps;
|
|
487
|
+
}
|
|
488
|
+
interface ToolbarBubbleMenuConfig {
|
|
489
|
+
/**
|
|
490
|
+
* Unique plugin key for this bubble menu instance
|
|
491
|
+
*/
|
|
492
|
+
pluginKey: string;
|
|
493
|
+
/**
|
|
494
|
+
* Array of view configurations
|
|
495
|
+
* Order matters: first matching view is selected
|
|
496
|
+
*/
|
|
497
|
+
views: BubbleMenuViewConfig[];
|
|
498
|
+
/**
|
|
499
|
+
* Optional width for the bubble menu
|
|
500
|
+
*/
|
|
501
|
+
width?: string;
|
|
502
|
+
/**
|
|
503
|
+
* Optional max width for the bubble menu
|
|
504
|
+
*/
|
|
505
|
+
maxWidth?: string;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
declare class TiptapBubbleMenuDirective implements OnInit, OnDestroy {
|
|
509
|
+
private elRef;
|
|
510
|
+
props: BubbleMenuProps;
|
|
511
|
+
editor: Editor;
|
|
512
|
+
mountTo?: BubbleMenuPluginProps['getReferencedVirtualElement'];
|
|
513
|
+
shouldShow?: BubbleMenuPluginProps['shouldShow'];
|
|
514
|
+
ngOnInit(): void;
|
|
515
|
+
ngOnDestroy(): void;
|
|
516
|
+
preventDefault(event: MouseEvent): void;
|
|
517
|
+
private getFloatingUiOptions;
|
|
518
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TiptapBubbleMenuDirective, never>;
|
|
519
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TiptapBubbleMenuDirective, "tiptap-bubble-menu[editor], [tiptapBubbleMenu][editor]", never, { "props": { "alias": "props"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "mountTo": { "alias": "mountTo"; "required": false; }; "shouldShow": { "alias": "shouldShow"; "required": false; }; }, {}, never, never, true, never>;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
declare function shouldShowFnFactory(params: {
|
|
523
|
+
editor: Editor;
|
|
524
|
+
target: BubbleTarget;
|
|
525
|
+
forceOpen: () => boolean;
|
|
526
|
+
}): () => boolean;
|
|
527
|
+
declare function selectionChangeHandler(params: {
|
|
528
|
+
editor: Editor;
|
|
529
|
+
target: BubbleTarget;
|
|
530
|
+
onActive: (attrs: Record<string, unknown>) => void;
|
|
531
|
+
onInactive: () => void;
|
|
532
|
+
listenOnUpdate?: boolean;
|
|
533
|
+
}): () => void;
|
|
534
|
+
|
|
535
|
+
type OutsideHandler = (e: Event) => void;
|
|
536
|
+
declare class EventManager {
|
|
537
|
+
private document;
|
|
538
|
+
private keyToEscapeListener;
|
|
539
|
+
private keyToOutsideListener;
|
|
540
|
+
isAttached(key: string): boolean;
|
|
541
|
+
attach(key: string, hostElement: HTMLElement, cb: (key: string) => void, anchorElement?: HTMLElement): void;
|
|
542
|
+
detach(key: string): void;
|
|
543
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EventManager, never>;
|
|
544
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<EventManager>;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* Service to manage focus trapping within an element
|
|
549
|
+
* Traps keyboard focus inside a container element for accessibility
|
|
550
|
+
*/
|
|
551
|
+
declare class FocusTrapService {
|
|
552
|
+
private document;
|
|
553
|
+
private activeTraps;
|
|
554
|
+
/**
|
|
555
|
+
* Attach focus trap to an element
|
|
556
|
+
* @param element The container element to trap focus within
|
|
557
|
+
* @param autoFocus Whether to automatically focus the first focusable element
|
|
558
|
+
*/
|
|
559
|
+
attach(element: HTMLElement, autoFocus?: boolean): void;
|
|
560
|
+
/**
|
|
561
|
+
* Detach focus trap from an element
|
|
562
|
+
* @param element The element to remove focus trap from
|
|
563
|
+
*/
|
|
564
|
+
detach(element: HTMLElement): void;
|
|
565
|
+
/**
|
|
566
|
+
* Detach all active focus traps
|
|
567
|
+
*/
|
|
568
|
+
detachAll(): void;
|
|
569
|
+
/**
|
|
570
|
+
* Re-attach focus trap to an element (useful when content changes)
|
|
571
|
+
* @param element The element to re-attach focus trap to
|
|
572
|
+
* @param autoFocus Whether to automatically focus the first focusable element
|
|
573
|
+
*/
|
|
574
|
+
reattach(element: HTMLElement, autoFocus?: boolean): void;
|
|
575
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FocusTrapService, never>;
|
|
576
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FocusTrapService>;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
declare class AngularRenderer<C, P> {
|
|
580
|
+
private applicationRef;
|
|
581
|
+
private componentRef;
|
|
582
|
+
constructor(ViewComponent: Type<C>, injector: Injector, props: Partial<P>);
|
|
583
|
+
get instance(): C;
|
|
584
|
+
get elementRef(): ElementRef;
|
|
585
|
+
get dom(): HTMLElement;
|
|
586
|
+
updateProps<T extends P>(props: Partial<T>): void;
|
|
587
|
+
updateAttributes(attributes: Record<string, string>): void;
|
|
588
|
+
detectChanges(): void;
|
|
589
|
+
destroy(): void;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
declare class TiptapDraggableDirective {
|
|
593
|
+
draggable: boolean;
|
|
594
|
+
handle: string;
|
|
595
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TiptapDraggableDirective, never>;
|
|
596
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TiptapDraggableDirective, "[tiptapDraggable]", never, {}, {}, never, never, true, never>;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
declare class TiptapEditorDirective implements OnInit, AfterViewInit, ControlValueAccessor {
|
|
600
|
+
protected elRef: ElementRef<HTMLElement>;
|
|
601
|
+
protected renderer: Renderer2;
|
|
602
|
+
protected changeDetectorRef: ChangeDetectorRef;
|
|
603
|
+
private _editor?;
|
|
604
|
+
private initialEditableState?;
|
|
605
|
+
set editor(editor: Editor);
|
|
606
|
+
get editor(): Editor;
|
|
607
|
+
outputFormat: 'json' | 'html';
|
|
608
|
+
protected onChange: (value: Content) => void;
|
|
609
|
+
protected onTouched: () => void;
|
|
610
|
+
writeValue(value: Content): void;
|
|
611
|
+
registerOnChange(fn: () => void): void;
|
|
612
|
+
registerOnTouched(fn: () => void): void;
|
|
613
|
+
setDisabledState(isDisabled: boolean): void;
|
|
614
|
+
protected handleChange: ({ editor, transaction }: EditorEvents["transaction"]) => void;
|
|
615
|
+
ngOnInit(): void;
|
|
616
|
+
ngAfterViewInit(): void;
|
|
617
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TiptapEditorDirective, never>;
|
|
618
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TiptapEditorDirective, "tiptap[editor], [tiptap][editor], tiptap-editor[editor], [tiptapEditor][editor]", never, { "editor": { "alias": "editor"; "required": false; }; "outputFormat": { "alias": "outputFormat"; "required": false; }; }, {}, never, never, true, never>;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
declare class TiptapFloatingMenuDirective implements OnInit, OnDestroy {
|
|
622
|
+
private elRef;
|
|
623
|
+
constructor(elRef: ElementRef<HTMLElement>);
|
|
624
|
+
pluginKey: FloatingMenuPluginProps['pluginKey'];
|
|
625
|
+
editor: Editor;
|
|
626
|
+
options: FloatingMenuPluginProps['options'];
|
|
627
|
+
shouldShow?: FloatingMenuPluginProps['shouldShow'];
|
|
628
|
+
ngOnInit(): void;
|
|
629
|
+
ngOnDestroy(): void;
|
|
630
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TiptapFloatingMenuDirective, never>;
|
|
631
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TiptapFloatingMenuDirective, "tiptap-floating-menu[editor], [tiptapFloatingMenu][editor]", never, { "pluginKey": { "alias": "pluginKey"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "options": { "alias": "options"; "required": false; }; "shouldShow": { "alias": "shouldShow"; "required": false; }; }, {}, never, never, true, never>;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* Directive for positioning a popover/dropdown relative to a trigger element using floating-ui
|
|
636
|
+
* Handles positioning, visibility, and cleanup automatically
|
|
637
|
+
*
|
|
638
|
+
* Usage:
|
|
639
|
+
* <button #trigger>Open</button>
|
|
640
|
+
* <div [popover]="trigger" [isOpen]="isOpen">
|
|
641
|
+
* Content
|
|
642
|
+
* </div>
|
|
643
|
+
*/
|
|
644
|
+
declare class PopoverDirective implements OnChanges, AfterViewInit, OnDestroy {
|
|
645
|
+
private elRef;
|
|
646
|
+
private cdr;
|
|
647
|
+
/**
|
|
648
|
+
* The trigger element reference (ElementRef or HTMLElement)
|
|
649
|
+
*/
|
|
650
|
+
popover: ElementRef<HTMLElement> | HTMLElement;
|
|
651
|
+
/**
|
|
652
|
+
* Whether the popover is open
|
|
653
|
+
*/
|
|
654
|
+
isOpen: boolean;
|
|
655
|
+
/**
|
|
656
|
+
* Placement of the popover relative to trigger
|
|
657
|
+
*/
|
|
658
|
+
placement: Placement;
|
|
659
|
+
/**
|
|
660
|
+
* Offset from trigger
|
|
661
|
+
*/
|
|
662
|
+
offset: number;
|
|
663
|
+
/**
|
|
664
|
+
* Padding for flip/shift middleware
|
|
665
|
+
*/
|
|
666
|
+
padding: number;
|
|
667
|
+
private cleanupAutoUpdate?;
|
|
668
|
+
isPositioned: boolean;
|
|
669
|
+
private viewInitialized;
|
|
670
|
+
private retryCount;
|
|
671
|
+
private readonly maxRetries;
|
|
672
|
+
ngAfterViewInit(): void;
|
|
673
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
674
|
+
ngOnDestroy(): void;
|
|
675
|
+
private updateVisibility;
|
|
676
|
+
private setupFloating;
|
|
677
|
+
private _setupFloatingInternal;
|
|
678
|
+
private cleanup;
|
|
679
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PopoverDirective, never>;
|
|
680
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverDirective, "[popover]", never, { "popover": { "alias": "popover"; "required": true; }; "isOpen": { "alias": "isOpen"; "required": true; }; "placement": { "alias": "placement"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; }, {}, never, never, true, never>;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
declare const DocumentEngineKit: Extension<DocumentEngineConfig, any>;
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Custom button directive matching React button component styles
|
|
687
|
+
* Supports variants: default, destructive, outline, secondary, ghost, link
|
|
688
|
+
* Supports sizes: default, sm, lg, icon, icon-sm, icon-lg
|
|
689
|
+
*
|
|
690
|
+
* Usage:
|
|
691
|
+
* - <button documentEngineButton>Text</button> - secondary variant, default size
|
|
692
|
+
* - <button documentEngineButton="filled">Text</button> - default variant (primary)
|
|
693
|
+
* - <button documentEngineButton variant="outline">Text</button> - outline variant
|
|
694
|
+
* - <button documentEngineButton variant="icon" size="icon-sm">Icon</button> - icon button
|
|
695
|
+
*/
|
|
696
|
+
declare class ButtonDirective {
|
|
697
|
+
variant: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
698
|
+
size: 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
|
|
699
|
+
get buttonClasses(): string;
|
|
700
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonDirective, never>;
|
|
701
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ButtonDirective, "button[documentEngineButton]", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
declare class IconComponent implements OnChanges {
|
|
705
|
+
name: string;
|
|
706
|
+
private cdr;
|
|
707
|
+
private elementRef;
|
|
708
|
+
private iconRegistry;
|
|
709
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
710
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
711
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "document-engine-icon", never, { "name": { "alias": "name"; "required": false; }; }, {}, never, never, true, never>;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* Icon registry service for managing SVG icons
|
|
716
|
+
* Similar to Angular Material's MatIconRegistry
|
|
717
|
+
*/
|
|
718
|
+
declare class IconRegistryService {
|
|
719
|
+
private sanitizer;
|
|
720
|
+
private icons;
|
|
721
|
+
constructor();
|
|
722
|
+
/**
|
|
723
|
+
* Register a new icon with its SVG content
|
|
724
|
+
*/
|
|
725
|
+
registerIcon(name: string, svgContent: string): void;
|
|
726
|
+
/**
|
|
727
|
+
* Get icon SVG content by name
|
|
728
|
+
* Returns SafeHtml for use in templates with [innerHTML]
|
|
729
|
+
*/
|
|
730
|
+
getIcon(name: string): SafeHtml;
|
|
731
|
+
/**
|
|
732
|
+
* Get raw icon SVG string by name
|
|
733
|
+
* Returns string for direct DOM manipulation
|
|
734
|
+
*/
|
|
735
|
+
getIconString(name: string): string;
|
|
736
|
+
/**
|
|
737
|
+
* Register default icons used in the application
|
|
738
|
+
*/
|
|
739
|
+
private registerDefaultIcons;
|
|
740
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconRegistryService, never>;
|
|
741
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IconRegistryService>;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
declare const DEFAULT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect></svg>";
|
|
745
|
+
declare const CHECK = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"100%\" height=\"100%\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"/></svg>";
|
|
746
|
+
declare const UNDO = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z\"/></svg>";
|
|
747
|
+
declare const REDO = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z\"/></svg>";
|
|
748
|
+
declare const FORMAT_SIZE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M560-160v-520H360v-120h520v120H680v520H560Zm-360 0v-320H80v-120h360v120H320v320H200Z\"/></svg>";
|
|
749
|
+
declare const ARROW_DROP_DOWN = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M480-360 280-560h400L480-360Z\"/></svg>";
|
|
750
|
+
declare const FORMAT_LINE_SPACING = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M240-160 80-320l56-56 64 62v-332l-64 62-56-56 160-160 160 160-56 56-64-62v332l64-62 56 56-160 160Zm240-40v-80h400v80H480Zm0-240v-80h400v80H480Zm0-240v-80h400v80H480Z\"/></svg>";
|
|
751
|
+
declare const MATCH_CASE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z\"/></svg>";
|
|
752
|
+
declare const FORMAT_CLEAR = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"m528-546-93-93-121-121h486v120H568l-40 94ZM792-56 460-388l-80 188H249l119-280L56-792l56-56 736 736-56 56Z\"/></svg>";
|
|
753
|
+
declare const FORMAT_COLOR_TEXT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M80 0v-160h800V0H80Zm140-280 210-560h100l210 560h-96l-50-144H368l-52 144h-96Zm176-224h168l-82-232h-4l-82 232Z\"/></svg>";
|
|
754
|
+
declare const FORMAT_COLOR_FILL = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m247-904 57-56 343 343q23 23 23 57t-23 57L457-313q-23 23-57 23t-57-23L153-503q-23-23-23-57t23-57l190-191-96-96Zm153 153L209-560h382L400-751Zm360 471q-33 0-56.5-23.5T680-360q0-21 12.5-45t27.5-45q9-12 19-25t21-25q11 12 21 25t19 25q15 21 27.5 45t12.5 45q0 33-23.5 56.5T760-280ZM80 0v-160h800V0H80Z\"/></svg>";
|
|
755
|
+
declare const FORMAT_BOLD = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M272-200v-560h221q65 0 120 40t55 111q0 51-23 78.5T602-491q25 11 55.5 41t30.5 90q0 89-65 124.5T501-200H272Zm121-112h104q48 0 58.5-24.5T566-372q0-11-10.5-35.5T494-432H393v120Zm0-228h93q33 0 48-17t15-38q0-24-17-39t-44-15h-95v109Z\"/></svg>";
|
|
756
|
+
declare const FORMAT_ITALIC = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z\"/></svg>";
|
|
757
|
+
declare const FORMAT_UNDERLINE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M200-120v-80h560v80H200Zm280-160q-101 0-157-63t-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63Z\"/></svg>";
|
|
758
|
+
declare const FORMAT_STRIKETHROUGH = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M80-400v-80h800v80H80Zm340-160v-120H200v-120h560v120H540v120H420Zm0 400v-160h120v160H420Z\"/></svg>";
|
|
759
|
+
declare const SUBSCRIPT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z\"/></svg>";
|
|
760
|
+
declare const SUPERSCRIPT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z\"/></svg>";
|
|
761
|
+
declare const CODE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M320-240 80-480l240-240 57 57-184 184 183 183-56 56Zm320 0-57-57 184-184-183-183 56-56 240 240-240 240Z\"/></svg>";
|
|
762
|
+
declare const FORMAT_ALIGN_LEFT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Z\"/></svg>";
|
|
763
|
+
declare const FORMAT_ALIGN_CENTER = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-80h720v80H120Zm160-160v-80h400v80H280ZM120-440v-80h720v80H120Zm160-160v-80h400v80H280ZM120-760v-80h720v80H120Z\"/></svg>";
|
|
764
|
+
declare const FORMAT_ALIGN_RIGHT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-760v-80h720v80H120Zm240 160v-80h480v80H360ZM120-440v-80h720v80H120Zm240 160v-80h480v80H360ZM120-120v-80h720v80H120Z\"/></svg>";
|
|
765
|
+
declare const FORMAT_ALIGN_JUSTIFY = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Z\"/></svg>";
|
|
766
|
+
declare const FORMAT_INDENT_DECREASE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z\"/></svg>";
|
|
767
|
+
declare const FORMAT_INDENT_INCREASE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z\"/></svg>";
|
|
768
|
+
declare const FORMAT_LIST_BULLETED = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z\"/></svg>";
|
|
769
|
+
declare const FORMAT_LIST_NUMBERED = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z\"/></svg>";
|
|
770
|
+
declare const FORMAT_QUOTE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m228-240 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T458-480L320-240h-92Zm360 0 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T818-480L680-240h-92ZM320-500q25 0 42.5-17.5T380-560q0-25-17.5-42.5T320-620q-25 0-42.5 17.5T260-560q0 25 17.5 42.5T320-500Zm360 0q25 0 42.5-17.5T740-560q0-25-17.5-42.5T680-620q-25 0-42.5 17.5T620-560q0 25 17.5 42.5T680-500Zm0-60Zm-360 0Z\"/></svg>";
|
|
771
|
+
declare const TABLE_ROWS = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M760-200v-120H200v120h560Zm0-200v-160H200v160h560Zm0-240v-120H200v120h560ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z\"/></svg>";
|
|
772
|
+
declare const LINK = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M440-280H280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h160v80H280q-50 0-85 35t-35 85q0 50 35 85t85 35h160v80ZM320-440v-80h320v80H320Zm200 160v-80h160q50 0 85-35t35-85q0-50-35-85t-85-35H520v-80h160q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H520Z\"/></svg>";
|
|
773
|
+
declare const LINK_OFF = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m770-302-60-62q40-11 65-42.5t25-73.5q0-50-35-85t-85-35H520v-80h160q83 0 141.5 58.5T880-480q0 57-29.5 105T770-302ZM634-440l-80-80h86v80h-6ZM792-56 56-792l56-56 736 736-56 56ZM440-280H280q-83 0-141.5-58.5T80-480q0-69 42-123t108-71l74 74h-24q-50 0-85 35t-35 85q0 50 35 85t85 35h160v80ZM320-440v-80h65l79 80H320Z\"/></svg>";
|
|
774
|
+
declare const SPECIAL_CHARACTER = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-120v-120h200q-84-45-132-125t-48-175q0-142 99-241t241-99q142 0 241 99t99 241q0 95-48 175T640-240h200v120H520v-204q78-14 129-75t51-141q0-92-64-156t-156-64q-92 0-156 64t-64 156q0 80 51 141t129 75v204H120Z\"/></svg>";
|
|
775
|
+
declare const CLEAR_ALL = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M120-280v-80h560v80H120Zm80-160v-80h560v80H200Zm80-160v-80h560v80H280Z\"/></svg>";
|
|
776
|
+
declare const INSERT_PAGE_BREAK = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Zm-80-440v-280q0-33 23.5-56.5T240-880h320l240 240v120h-80v-80H520v-200H240v280h-80Zm200 160v-80h240v80H360Zm320 0v-80h240v80H680Zm-640 0v-80h240v80H40Zm440-160Zm0 240Z\"/></svg>";
|
|
777
|
+
declare const MARKDOWN = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m640-360 120-120-42-43-48 48v-125h-60v125l-48-48-42 43 120 120ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Zm60-120h60v-180h40v120h60v-120h40v180h60v-200q0-17-11.5-28.5T440-600H260q-17 0-28.5 11.5T220-560v200Z\"/></svg>";
|
|
778
|
+
declare const DYNAMIC_FORM = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M160-520q-33 0-56.5-23.5T80-600v-120q0-33 23.5-56.5T160-800h360v280H160Zm0-80h280v-120H160v120Zm0 440q-33 0-56.5-23.5T80-240v-120q0-33 23.5-56.5T160-440h440v280H160Zm0-80h360v-120H160v120Zm520 80v-360h-80v-280h280l-80 200h80L680-160ZM190-270h60v-60h-60v60Zm0-360h60v-60h-60v60Zm-30 30v-120 120Zm0 360v-120 120Z\"/></svg>";
|
|
779
|
+
declare const PHOTO = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z\"/></svg>";
|
|
780
|
+
declare const PRINT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M640-640v-120H320v120h-80v-200h480v200h-80Zm-480 80h640-640Zm560 100q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320Zm80 80H240v-160H80v-240q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v240H720v160Zm80-240v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160h80v-80h480v80h80Z\"/></svg>";
|
|
781
|
+
declare const ARCHIVE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m480-240 160-160-56-56-64 64v-168h-80v168l-64-64-56 56 160 160ZM200-640v440h560v-440H200Zm0 520q-33 0-56.5-23.5T120-200v-499q0-14 4.5-27t13.5-24l50-61q11-14 27.5-21.5T250-840h460q18 0 34.5 7.5T772-811l50 61q9 11 13.5 24t4.5 27v499q0 33-23.5 56.5T760-120H200Zm16-600h528l-34-40H250l-34 40Zm264 300Z\"/></svg>";
|
|
782
|
+
declare const EDIT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z\"/></svg>";
|
|
783
|
+
declare const SETTINGS = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z\"/></svg>";
|
|
784
|
+
declare const SEARCH = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\"/></svg>";
|
|
785
|
+
declare const SEARCH_OFF = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M280-80q-83 0-141.5-58.5T80-280q0-83 58.5-141.5T280-480q83 0 141.5 58.5T480-280q0 83-58.5 141.5T280-80Zm544-40L568-376q-12-13-25.5-26.5T516-428q38-24 61-64t23-88q0-75-52.5-127.5T420-760q-75 0-127.5 52.5T240-580q0 6 .5 11.5T242-557q-18 2-39.5 8T164-535q-2-11-3-22t-1-23q0-109 75.5-184.5T420-840q109 0 184.5 75.5T680-580q0 43-13.5 81.5T629-428l251 252-56 56Zm-615-61 71-71 70 71 29-28-71-71 71-71-28-28-71 71-71-71-28 28 71 71-71 71 28 28Z\"/></svg>";
|
|
786
|
+
declare const DESCRIPTION = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M320-240h320v-80H320v80Zm0-160h320v-80H320v80ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z\"/></svg>";
|
|
787
|
+
declare const CLOSE = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\"/></svg>";
|
|
788
|
+
declare const VERTICAL_ALIGN_TOP = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M160-760v-80h640v80H160Zm280 640v-408L336-424l-56-56 200-200 200 200-56 56-104-104v408h-80Z\"/></svg>";
|
|
789
|
+
declare const VERTICAL_ALIGN_CENTER = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M440-80v-168l-64 64-56-56 160-160 160 160-56 56-64-64v168h-80ZM160-440v-80h640v80H160Zm320-120L320-720l56-56 64 64v-168h80v168l64-64 56 56-160 160Z\"/></svg>";
|
|
790
|
+
declare const VERTICAL_ALIGN_BOTTOM = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\"><path d=\"M160-120v-80h640v80H160Zm320-160L280-480l56-56 104 104v-408h80v408l104-104 56 56-200 200Z\"/></svg>";
|
|
791
|
+
declare const RESTRICT_EDIT = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <g transform=\"translate(10 10) scale(0.8) translate(-10 -10)\">\n <path d=\"M6.25 16a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5zm0-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 1 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1 0-1.5zm6-5a.75.75 0 1 1 0 1.5H.75a.75.75 0 0 1 0-1.5zm.25 5.5a3.5 3.5 0 0 1 3.143 1.959.75.75 0 0 1-1.36.636A2 2 0 0 0 13.5 10v2H19a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1v-2l.005-.192A3.5 3.5 0 0 1 15.5 6.5m0 7.5a.5.5 0 0 0-.492.41L15 14.5v2a.5.5 0 0 0 .992.09L16 16.5v-2a.5.5 0 0 0-.5-.5\">\n </path>\n </g>\n</svg>\n";
|
|
792
|
+
declare const TABLE_CELL_PROPERTY = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"m11.105 18-.17 1H2.5A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1h15A1.5 1.5 0 0 1 19 2.5v9.975l-.85-.124-.15-.302V8h-5v4h.021l-.172.351-1.916.28-.151.027c-.287.063-.54.182-.755.341L8 13v5zM2 12h5V8H2zm10-4H8v4h4zM2 2v5h5V2zm0 16h5v-5H2zM13 7h5V2h-5zM8 2v5h4V2z\" opacity=\".6\"></path>\n <path d=\"m15.5 11.5 1.323 2.68 2.957.43-2.14 2.085.505 2.946L15.5 18.25l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43zM13 6a1 1 0 0 1 1 1v3.172a2 2 0 0 0-.293.443l-.858 1.736-1.916.28-.151.027A1.98 1.98 0 0 0 9.315 14H7a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm-1 2H8v4h4z\"></path>\n</svg>\n";
|
|
793
|
+
declare const TABLE_COLUMN = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1M2 2v16h16V2z\" opacity=\".6\"></path>\n <path d=\"M18 7v1H2V7zm0 5v1H2v-1z\" opacity=\".6\"></path>\n <path d=\"M14 1v18a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1m-2 1H8v4h4zm0 6H8v4h4zm0 6H8v4h4z\"></path>\n</svg>\n";
|
|
794
|
+
declare const TABLE_MERGE_CELL = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1M2 2v16h16V2z\" opacity=\".6\"></path>\n <path d=\"M7 2h1v16H7zm5 0h1v7h-1zm6 5v1H2V7zM8 12v1H2v-1z\" opacity=\".6\"></path>\n <path d=\"M7 7h12a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1m1 2v9h10V9z\"></path>\n</svg>\n";
|
|
795
|
+
declare const TABLE_PROPERTY = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M8 2v5h4V2h1v5h5v1h-5v4h.021l-.172.351-1.916.28-.151.027c-.287.063-.54.182-.755.341L8 13v5H7v-5H2v-1h5V8H2V7h5V2zm4 6H8v4h4z\" opacity=\".6\"></path>\n <path d=\"m15.5 11.5 1.323 2.68 2.957.43-2.14 2.085.505 2.946L15.5 18.25l-2.645 1.39.505-2.945-2.14-2.086 2.957-.43zM17 1a2 2 0 0 1 2 2v9.475l-.85-.124-.857-1.736a2 2 0 0 0-.292-.44L17 3H3v14h7.808l.402.392L10.935 19H3a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2z\"></path>\n</svg>\n";
|
|
796
|
+
declare const TABLE_ROW = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1M2 2v16h16V2z\" opacity=\".6\"></path>\n <path d=\"M7 2h1v16H7zm5 0h1v16h-1z\" opacity=\".6\"></path>\n <path d=\"M1 6h18a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1m1 2v4h4V8zm6 0v4h4V8zm6 0v4h4V8z\"></path>\n</svg>\n";
|
|
797
|
+
|
|
798
|
+
declare class ColorPickerComponent {
|
|
799
|
+
colorPalette: Color[];
|
|
800
|
+
usedColors: Color[];
|
|
801
|
+
activeColor: Color | null;
|
|
802
|
+
colorSelected: EventEmitter<Color>;
|
|
803
|
+
colorRemoved: EventEmitter<void>;
|
|
804
|
+
customColor: string | null;
|
|
805
|
+
trackByColorValue: (_: number, c: Color) => string;
|
|
806
|
+
isActive(color: Color): boolean;
|
|
807
|
+
selectCustomColor(): void;
|
|
808
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ColorPickerComponent, never>;
|
|
809
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColorPickerComponent, "document-engine-color-picker", never, { "colorPalette": { "alias": "colorPalette"; "required": false; }; "usedColors": { "alias": "usedColors"; "required": false; }; "activeColor": { "alias": "activeColor"; "required": false; }; }, { "colorSelected": "colorSelected"; "colorRemoved": "colorRemoved"; }, never, never, true, never>;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* Directive for select label content
|
|
814
|
+
* Must be used within document-engine-select component when labelMode="static"
|
|
815
|
+
*
|
|
816
|
+
* Usage:
|
|
817
|
+
* <document-engine-select labelMode="static">
|
|
818
|
+
* <div documentEngineSelectLabel>
|
|
819
|
+
* <document-engine-icon name="format_size"></document-engine-icon>
|
|
820
|
+
* <span>Font Size</span>
|
|
821
|
+
* </div>
|
|
822
|
+
* <button documentEngineSelectOption value="14px">14px</button>
|
|
823
|
+
* </document-engine-select>
|
|
824
|
+
*/
|
|
825
|
+
declare class SelectLabelDirective {
|
|
826
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectLabelDirective, never>;
|
|
827
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SelectLabelDirective, "[documentEngineSelectLabel]", never, {}, {}, never, never, true, never>;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
interface ISelectParent {
|
|
831
|
+
value: string | null;
|
|
832
|
+
selectOption(option: unknown): void;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
/**
|
|
836
|
+
* Directive for select options
|
|
837
|
+
* Must be used within document-engine-select component
|
|
838
|
+
*
|
|
839
|
+
* Usage:
|
|
840
|
+
* <button documentEngineSelectOption value="option1">Option 1</button>
|
|
841
|
+
*/
|
|
842
|
+
declare class SelectOptionDirective {
|
|
843
|
+
readonly elementRef: ElementRef<any>;
|
|
844
|
+
readonly select: ISelectParent | null;
|
|
845
|
+
value: string | null;
|
|
846
|
+
label?: string;
|
|
847
|
+
disabled: boolean;
|
|
848
|
+
onClick(event: Event): void;
|
|
849
|
+
getLabel(): string;
|
|
850
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectOptionDirective, never>;
|
|
851
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SelectOptionDirective, "[documentEngineSelectOption]", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
/**
|
|
855
|
+
* Select component with floating dropdown using @floating-ui/dom
|
|
856
|
+
*
|
|
857
|
+
* Usage:
|
|
858
|
+
* <document-engine-select [(value)]="selectedValue" placeholder="Select...">
|
|
859
|
+
* <button documentEngineSelectOption value="option1">Option 1</button>
|
|
860
|
+
* <button documentEngineSelectOption value="option2">Option 2</button>
|
|
861
|
+
* </document-engine-select>
|
|
862
|
+
*/
|
|
863
|
+
declare class SelectComponent implements AfterContentInit, OnChanges, OnDestroy, ISelectParent {
|
|
864
|
+
private readonly cdr;
|
|
865
|
+
value: string | null;
|
|
866
|
+
disabled: boolean;
|
|
867
|
+
labelMode: 'static' | 'activeOption';
|
|
868
|
+
variant: 'default' | 'outline';
|
|
869
|
+
valueChange: EventEmitter<string | null>;
|
|
870
|
+
triggerRef: ElementRef<HTMLElement>;
|
|
871
|
+
dropdownRef: ElementRef<HTMLElement>;
|
|
872
|
+
labelDirectives: QueryList<SelectLabelDirective>;
|
|
873
|
+
options: QueryList<SelectOptionDirective>;
|
|
874
|
+
isOpen: boolean;
|
|
875
|
+
selectedLabel: string | null;
|
|
876
|
+
private cleanupAutoUpdate?;
|
|
877
|
+
private documentClickListener?;
|
|
878
|
+
private destroy;
|
|
879
|
+
private contentInitialized;
|
|
880
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
881
|
+
ngAfterContentInit(): void;
|
|
882
|
+
ngOnDestroy(): void;
|
|
883
|
+
toggle(): void;
|
|
884
|
+
open(): void;
|
|
885
|
+
close(): void;
|
|
886
|
+
selectOption(option: SelectOptionDirective): void;
|
|
887
|
+
private setupFloating;
|
|
888
|
+
private cleanup;
|
|
889
|
+
private addDocumentClickListener;
|
|
890
|
+
private removeDocumentClickListener;
|
|
891
|
+
onClick(event: Event): void;
|
|
892
|
+
/**
|
|
893
|
+
* Check if should use static label (directive)
|
|
894
|
+
* Falls back to activeOption if static mode but no label directive provided
|
|
895
|
+
*/
|
|
896
|
+
get useStaticLabel(): boolean;
|
|
897
|
+
/**
|
|
898
|
+
* Check if label directive exists
|
|
899
|
+
*/
|
|
900
|
+
get hasLabelDirective(): boolean;
|
|
901
|
+
private updateSelectedLabel;
|
|
902
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
903
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "document-engine-select", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "labelMode": { "alias": "labelMode"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, { "valueChange": "valueChange"; }, ["labelDirectives", "options"], ["[documentEngineSelectLabel]", "*"], true, never>;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
interface ToolbarState {
|
|
907
|
+
isReadOnly: boolean;
|
|
908
|
+
canUndo: boolean;
|
|
909
|
+
canRedo: boolean;
|
|
910
|
+
canResetFormat: boolean;
|
|
911
|
+
canToggleBold: boolean;
|
|
912
|
+
canToggleItalic: boolean;
|
|
913
|
+
canToggleUnderline: boolean;
|
|
914
|
+
canToggleStrike: boolean;
|
|
915
|
+
canToggleSubscript: boolean;
|
|
916
|
+
canToggleSuperscript: boolean;
|
|
917
|
+
canToggleCode: boolean;
|
|
918
|
+
canToggleLink: boolean;
|
|
919
|
+
canDecreaseIndent: boolean;
|
|
920
|
+
canIncreaseIndent: boolean;
|
|
921
|
+
canToggleBulletList: boolean;
|
|
922
|
+
canToggleBlockquote: boolean;
|
|
923
|
+
canInsertPageBreak: boolean;
|
|
924
|
+
canToggleEditableRegion: boolean;
|
|
925
|
+
canClearContent: boolean;
|
|
926
|
+
}
|
|
927
|
+
declare const DEFAULT_TOOLBAR_STATE: ToolbarState;
|
|
928
|
+
declare function buildToolbarState(editor: Editor, config?: Partial<DocumentEngineConfig>): ToolbarState;
|
|
929
|
+
|
|
930
|
+
/**
|
|
931
|
+
* Toolbar component for document editor
|
|
932
|
+
* Provides toolbar controls for editor actions
|
|
933
|
+
*/
|
|
934
|
+
declare class ToolbarComponent implements OnInit, OnDestroy {
|
|
935
|
+
private readonly cdr;
|
|
936
|
+
private readonly toolbarService;
|
|
937
|
+
editor: Editor;
|
|
938
|
+
capabilities: EditorCapabilities;
|
|
939
|
+
config?: Partial<DocumentEngineConfig>;
|
|
940
|
+
readonly action: i0.EventEmitter<string>;
|
|
941
|
+
activeFontSize: string | null;
|
|
942
|
+
activeLineHeight: string | null;
|
|
943
|
+
activeHeading: number | null;
|
|
944
|
+
activeTextAlign: string | null;
|
|
945
|
+
activeTextAlignIcon: string;
|
|
946
|
+
toolbarState: ToolbarState;
|
|
947
|
+
readonly fontSizeOptions: {
|
|
948
|
+
value: string;
|
|
949
|
+
label: string;
|
|
950
|
+
}[];
|
|
951
|
+
readonly lineHeightOptions: ({
|
|
952
|
+
value: null;
|
|
953
|
+
label: string;
|
|
954
|
+
} | {
|
|
955
|
+
value: string;
|
|
956
|
+
label: string;
|
|
957
|
+
})[];
|
|
958
|
+
readonly textCaseOptions: {
|
|
959
|
+
value: TextCaseType;
|
|
960
|
+
label: string;
|
|
961
|
+
}[];
|
|
962
|
+
readonly headingOptions: ({
|
|
963
|
+
value: null;
|
|
964
|
+
label: string;
|
|
965
|
+
class: string;
|
|
966
|
+
} | {
|
|
967
|
+
value: number;
|
|
968
|
+
label: string;
|
|
969
|
+
class: string;
|
|
970
|
+
})[];
|
|
971
|
+
readonly textAlignOptions: {
|
|
972
|
+
value: string;
|
|
973
|
+
label: string;
|
|
974
|
+
icon: string;
|
|
975
|
+
}[];
|
|
976
|
+
readonly listStyleOptions: {
|
|
977
|
+
value: ListStyleType;
|
|
978
|
+
label: string;
|
|
979
|
+
example: string;
|
|
980
|
+
}[];
|
|
981
|
+
private colorBubbleMenu;
|
|
982
|
+
private linkBubbleWrapper;
|
|
983
|
+
private imageBubbleMenu;
|
|
984
|
+
private specialCharsBubbleMenu;
|
|
985
|
+
private dynamicFieldsBubbleMenu;
|
|
986
|
+
private templateBubbleMenu;
|
|
987
|
+
private tableCreateBubbleMenu;
|
|
988
|
+
readonly colorBubbleConfig: ToolbarBubbleMenuConfig;
|
|
989
|
+
readonly linkBubbleConfig: EditorBubbleMenuConfig;
|
|
990
|
+
readonly tableBubbleConfig: EditorBubbleMenuConfig;
|
|
991
|
+
readonly imageBubbleConfig: ToolbarBubbleMenuConfig;
|
|
992
|
+
readonly specialCharsBubbleConfig: ToolbarBubbleMenuConfig;
|
|
993
|
+
readonly dynamicFieldsBubbleConfig: ToolbarBubbleMenuConfig;
|
|
994
|
+
readonly templateBubbleConfig: ToolbarBubbleMenuConfig;
|
|
995
|
+
readonly tableCreateBubbleConfig: ToolbarBubbleMenuConfig;
|
|
996
|
+
private throttleUpdateToolbarState;
|
|
997
|
+
private updateToolbarState;
|
|
998
|
+
ngOnInit(): void;
|
|
999
|
+
ngOnDestroy(): void;
|
|
1000
|
+
runAndEmit(actionName: string, chain: () => void): void;
|
|
1001
|
+
setFontSize(size: string | null): void;
|
|
1002
|
+
setLineHeight(lineHeight: string | null): void;
|
|
1003
|
+
setHeading(level: string | null): void;
|
|
1004
|
+
setTextAlign(align: string | null): void;
|
|
1005
|
+
setListStyle(listStyleType: ListStyleType): void;
|
|
1006
|
+
openColorBubble(event: MouseEvent, type: 'text' | 'fill'): void;
|
|
1007
|
+
toggleLink(): void;
|
|
1008
|
+
insertImage(event: MouseEvent): void;
|
|
1009
|
+
openSpecialCharsBubble(event: MouseEvent): void;
|
|
1010
|
+
openDynamicFieldsBubble(event: MouseEvent): void;
|
|
1011
|
+
openTemplateBubble(event: MouseEvent): void;
|
|
1012
|
+
openCreateTableBubble(event: MouseEvent): void;
|
|
1013
|
+
trackByValue(index: number, item: {
|
|
1014
|
+
value: unknown;
|
|
1015
|
+
}): unknown;
|
|
1016
|
+
trackByIndex(index: number): number;
|
|
1017
|
+
get customToolbarButtons(): ToolbarButton[];
|
|
1018
|
+
handleCustomIconButton(button: ToolbarButton): void;
|
|
1019
|
+
handleCustomSelectButton(button: ToolbarButton, value: string): void;
|
|
1020
|
+
printValue(): void;
|
|
1021
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
|
|
1022
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "document-engine-toolbar", never, { "editor": { "alias": "editor"; "required": false; }; "capabilities": { "alias": "capabilities"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "action": "action"; }, never, never, true, never>;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* Service to handle toolbar action emissions
|
|
1027
|
+
*/
|
|
1028
|
+
declare class ToolbarService implements OnDestroy {
|
|
1029
|
+
private readonly actionSubject;
|
|
1030
|
+
readonly action$: rxjs.Observable<{
|
|
1031
|
+
actionName: string;
|
|
1032
|
+
value?: unknown;
|
|
1033
|
+
}>;
|
|
1034
|
+
readonly action: EventEmitter<string>;
|
|
1035
|
+
/**
|
|
1036
|
+
* Emit an action
|
|
1037
|
+
*/
|
|
1038
|
+
emit(actionName: string, value?: unknown): void;
|
|
1039
|
+
ngOnDestroy(): void;
|
|
1040
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarService, never>;
|
|
1041
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ToolbarService>;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
/**
|
|
1045
|
+
* Footer component for document editor
|
|
1046
|
+
* Container for footer components like character count
|
|
1047
|
+
*/
|
|
1048
|
+
declare class FooterComponent {
|
|
1049
|
+
editor: Editor;
|
|
1050
|
+
config?: Partial<DocumentEngineConfig>;
|
|
1051
|
+
hasCharacterCount(): boolean;
|
|
1052
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FooterComponent, never>;
|
|
1053
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FooterComponent, "document-engine-footer", never, { "editor": { "alias": "editor"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
/**
|
|
1057
|
+
* Character Count component for document editor footer
|
|
1058
|
+
* Displays character/word count with optional limit and color coding
|
|
1059
|
+
*/
|
|
1060
|
+
declare class CharacterCountComponent implements OnInit, OnDestroy {
|
|
1061
|
+
private readonly cdr;
|
|
1062
|
+
editor: Editor;
|
|
1063
|
+
config?: Partial<DocumentEngineConfig>;
|
|
1064
|
+
mode: 'characters' | 'words';
|
|
1065
|
+
count: number;
|
|
1066
|
+
limit: number | null;
|
|
1067
|
+
private updateCount;
|
|
1068
|
+
ngOnInit(): void;
|
|
1069
|
+
ngOnDestroy(): void;
|
|
1070
|
+
isNearLimit(): boolean;
|
|
1071
|
+
isOverLimit(): boolean;
|
|
1072
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CharacterCountComponent, never>;
|
|
1073
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CharacterCountComponent, "document-engine-character-count", never, { "editor": { "alias": "editor"; "required": false; }; "config": { "alias": "config"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* Input directive matching shadcn Input component styles
|
|
1078
|
+
* Supports all standard input attributes and types
|
|
1079
|
+
*
|
|
1080
|
+
* Usage:
|
|
1081
|
+
* <input documentEngineInput type="text" placeholder="Enter text" />
|
|
1082
|
+
* <input documentEngineInput type="email" class="custom-class" />
|
|
1083
|
+
*/
|
|
1084
|
+
declare class InputDirective {
|
|
1085
|
+
class: string;
|
|
1086
|
+
get inputClasses(): string;
|
|
1087
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputDirective, never>;
|
|
1088
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<InputDirective, "input[documentEngineInput]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
/**
|
|
1092
|
+
* Label directive for form fields
|
|
1093
|
+
*
|
|
1094
|
+
* Usage:
|
|
1095
|
+
* <label documentEngineLabel for="input-id">Label text</label>
|
|
1096
|
+
*/
|
|
1097
|
+
declare class LabelDirective {
|
|
1098
|
+
class: string;
|
|
1099
|
+
get labelClasses(): string;
|
|
1100
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LabelDirective, never>;
|
|
1101
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LabelDirective, "label[documentEngineLabel]", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/**
|
|
1105
|
+
* Error message component for form validation
|
|
1106
|
+
*
|
|
1107
|
+
* Usage:
|
|
1108
|
+
* <document-engine-error-message *ngIf="control.hasError('required')">
|
|
1109
|
+
* This field is required
|
|
1110
|
+
* </document-engine-error-message>
|
|
1111
|
+
*/
|
|
1112
|
+
declare class ErrorMessageComponent {
|
|
1113
|
+
class: string;
|
|
1114
|
+
get errorClasses(): string;
|
|
1115
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ErrorMessageComponent, never>;
|
|
1116
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ErrorMessageComponent, "document-engine-error-message", never, { "class": { "alias": "class"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
/**
|
|
1120
|
+
* Toggle button option directive
|
|
1121
|
+
*/
|
|
1122
|
+
declare class ToggleOptionDirective {
|
|
1123
|
+
value: string;
|
|
1124
|
+
disabled: boolean;
|
|
1125
|
+
isActive: boolean;
|
|
1126
|
+
onClick(): void;
|
|
1127
|
+
selected: EventEmitter<string>;
|
|
1128
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToggleOptionDirective, never>;
|
|
1129
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToggleOptionDirective, "button[documentEngineToggleOption]", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1130
|
+
}
|
|
1131
|
+
/**
|
|
1132
|
+
* Toggle button group component
|
|
1133
|
+
* Similar to mat-button-toggle-group
|
|
1134
|
+
*
|
|
1135
|
+
* Usage:
|
|
1136
|
+
* <document-engine-toggle-group [(value)]="alignment">
|
|
1137
|
+
* <button documentEngineToggleOption value="left"><document-engine-icon name="format_align_left"></document-engine-icon></button>
|
|
1138
|
+
* <button documentEngineToggleOption value="center"><document-engine-icon name="format_align_center"></document-engine-icon></button>
|
|
1139
|
+
* </document-engine-toggle-group>
|
|
1140
|
+
*/
|
|
1141
|
+
declare class ToggleGroupComponent {
|
|
1142
|
+
value: string | null;
|
|
1143
|
+
disabled: boolean;
|
|
1144
|
+
valueChange: EventEmitter<string | null>;
|
|
1145
|
+
options: QueryList<ToggleOptionDirective>;
|
|
1146
|
+
ngAfterContentInit(): void;
|
|
1147
|
+
ngOnChanges(): void;
|
|
1148
|
+
private updateActiveStates;
|
|
1149
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToggleGroupComponent, never>;
|
|
1150
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToggleGroupComponent, "document-engine-toggle-group", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; }, ["options"], ["*"], true, never>;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
/**
|
|
1154
|
+
* Checkbox component
|
|
1155
|
+
* Works with ngModel and reactive forms
|
|
1156
|
+
*
|
|
1157
|
+
* Usage:
|
|
1158
|
+
* <document-engine-checkbox [(ngModel)]="checked">Label text</document-engine-checkbox>
|
|
1159
|
+
*/
|
|
1160
|
+
declare class CheckboxComponent implements ControlValueAccessor {
|
|
1161
|
+
disabled: boolean;
|
|
1162
|
+
checked: boolean;
|
|
1163
|
+
checkedChange: EventEmitter<boolean>;
|
|
1164
|
+
hostClass: boolean;
|
|
1165
|
+
private onChange;
|
|
1166
|
+
private onTouched;
|
|
1167
|
+
onCheckboxChange(event: Event): void;
|
|
1168
|
+
writeValue(value: boolean): void;
|
|
1169
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
1170
|
+
registerOnTouched(fn: () => void): void;
|
|
1171
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1172
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
1173
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "document-engine-checkbox", never, { "disabled": { "alias": "disabled"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, ["*"], true, never>;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
/**
|
|
1177
|
+
* Dynamic Field interface
|
|
1178
|
+
*/
|
|
1179
|
+
interface DynamicFieldItem {
|
|
1180
|
+
id: string;
|
|
1181
|
+
label: string;
|
|
1182
|
+
description?: string;
|
|
1183
|
+
}
|
|
1184
|
+
interface DynamicFieldCategory {
|
|
1185
|
+
key: string;
|
|
1186
|
+
label: string;
|
|
1187
|
+
description?: string;
|
|
1188
|
+
fields: DynamicFieldItem[];
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
1192
|
+
|
|
1193
|
+
declare const urlValidator: ValidatorFn;
|
|
1194
|
+
|
|
1195
|
+
interface LinkAttrs$2 {
|
|
1196
|
+
href?: string;
|
|
1197
|
+
target?: string;
|
|
1198
|
+
rel?: string;
|
|
1199
|
+
}
|
|
1200
|
+
/**
|
|
1201
|
+
* Main view for link bubble menu
|
|
1202
|
+
* Shows when an existing link is selected
|
|
1203
|
+
* Provides navigation to edit and properties views
|
|
1204
|
+
*/
|
|
1205
|
+
declare class LinkMainViewComponent implements BubbleMenuViewContent<LinkAttrs$2> {
|
|
1206
|
+
private cdr;
|
|
1207
|
+
editor?: Editor;
|
|
1208
|
+
currentUrl: string;
|
|
1209
|
+
close?: () => void;
|
|
1210
|
+
navigateTo?: (viewId: string) => void;
|
|
1211
|
+
constructor(cdr: ChangeDetectorRef);
|
|
1212
|
+
onActivate(attrs: LinkAttrs$2): void;
|
|
1213
|
+
editLink(): void;
|
|
1214
|
+
openProperties(): void;
|
|
1215
|
+
removeLink(): void;
|
|
1216
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LinkMainViewComponent, never>;
|
|
1217
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LinkMainViewComponent, "document-engine-link-main-view", never, {}, {}, never, never, true, never>;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
interface LinkAttrs$1 {
|
|
1221
|
+
href?: string;
|
|
1222
|
+
target?: string;
|
|
1223
|
+
rel?: string;
|
|
1224
|
+
}
|
|
1225
|
+
/**
|
|
1226
|
+
* Edit view for link bubble menu
|
|
1227
|
+
* Shows when creating a new link or editing an existing one
|
|
1228
|
+
* Provides URL input, display text input, and quick link shortcuts
|
|
1229
|
+
*/
|
|
1230
|
+
declare class LinkEditViewComponent implements BubbleMenuViewContent<LinkAttrs$1> {
|
|
1231
|
+
private fb;
|
|
1232
|
+
private cdr;
|
|
1233
|
+
editor?: Editor;
|
|
1234
|
+
position?: {
|
|
1235
|
+
from: number;
|
|
1236
|
+
to: number;
|
|
1237
|
+
};
|
|
1238
|
+
goBack?: (viewId?: string) => void;
|
|
1239
|
+
close?: () => void;
|
|
1240
|
+
linkForm: _angular_forms.FormGroup<{
|
|
1241
|
+
url: FormControl<string | null>;
|
|
1242
|
+
displayText: FormControl<string | null>;
|
|
1243
|
+
}>;
|
|
1244
|
+
isNewLink: boolean;
|
|
1245
|
+
linkShortcuts: {
|
|
1246
|
+
label: string;
|
|
1247
|
+
url: string;
|
|
1248
|
+
}[];
|
|
1249
|
+
onActivate(attrs: LinkAttrs$1): void;
|
|
1250
|
+
applyShortcut(url: string): void;
|
|
1251
|
+
canApply(): boolean;
|
|
1252
|
+
applyLink(): void;
|
|
1253
|
+
cancel(): void;
|
|
1254
|
+
private normalizeUrl;
|
|
1255
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LinkEditViewComponent, never>;
|
|
1256
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LinkEditViewComponent, "document-engine-link-edit-view", never, {}, {}, never, never, true, never>;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
interface LinkAttrs {
|
|
1260
|
+
href?: string;
|
|
1261
|
+
target?: string;
|
|
1262
|
+
rel?: string;
|
|
1263
|
+
}
|
|
1264
|
+
/**
|
|
1265
|
+
* Properties view for link bubble menu
|
|
1266
|
+
* Shows link properties like target and rel attributes
|
|
1267
|
+
* Allows user to configure SEO and security settings
|
|
1268
|
+
*/
|
|
1269
|
+
declare class LinkPropertiesViewComponent implements BubbleMenuViewContent<LinkAttrs> {
|
|
1270
|
+
private cdr;
|
|
1271
|
+
editor?: Editor;
|
|
1272
|
+
goBack?: (viewId?: string) => void;
|
|
1273
|
+
newTabControl: FormControl<boolean | null>;
|
|
1274
|
+
noFollowControl: FormControl<boolean | null>;
|
|
1275
|
+
noOpenerControl: FormControl<boolean | null>;
|
|
1276
|
+
noReferrerControl: FormControl<boolean | null>;
|
|
1277
|
+
private currentHref;
|
|
1278
|
+
constructor(cdr: ChangeDetectorRef);
|
|
1279
|
+
onActivate(attrs: LinkAttrs): void;
|
|
1280
|
+
saveProperties(): void;
|
|
1281
|
+
cancel(): void;
|
|
1282
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LinkPropertiesViewComponent, never>;
|
|
1283
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LinkPropertiesViewComponent, "document-engine-link-properties-view", never, {}, {}, never, never, true, never>;
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* Color picker view for bubble menu
|
|
1288
|
+
* Shows color palette for text and background colors
|
|
1289
|
+
*/
|
|
1290
|
+
declare class ColorPickerViewComponent implements BubbleMenuViewContent<Record<string, unknown>> {
|
|
1291
|
+
editor?: Editor;
|
|
1292
|
+
colorType: 'text' | 'fill';
|
|
1293
|
+
usedColors: Color[];
|
|
1294
|
+
activeColor: Color | null;
|
|
1295
|
+
close?: () => void;
|
|
1296
|
+
goBack?: (viewId?: string) => void;
|
|
1297
|
+
navigateTo?: (viewId: string) => void;
|
|
1298
|
+
colorPalette: Color[];
|
|
1299
|
+
onActivate(attrs: Record<string, unknown>): void;
|
|
1300
|
+
applyColor(color: Color | null): void;
|
|
1301
|
+
removeColor(): void;
|
|
1302
|
+
private getActiveColor;
|
|
1303
|
+
private collectUsedColors;
|
|
1304
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ColorPickerViewComponent, never>;
|
|
1305
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColorPickerViewComponent, "document-engine-color-picker-view", never, {}, {}, never, never, true, never>;
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
/**
|
|
1309
|
+
* Temporary image insert view for bubble menu
|
|
1310
|
+
* Provides URL input for inserting images via link
|
|
1311
|
+
* This is a temporary solution until full upload flow is implemented
|
|
1312
|
+
*/
|
|
1313
|
+
declare class ImageInsertViewComponent implements BubbleMenuViewContent<Record<string, unknown>> {
|
|
1314
|
+
private fb;
|
|
1315
|
+
private cdr;
|
|
1316
|
+
editor?: Editor;
|
|
1317
|
+
close?: () => void;
|
|
1318
|
+
goBack?: (viewId?: string) => void;
|
|
1319
|
+
imageForm: _angular_forms.FormGroup<{
|
|
1320
|
+
url: _angular_forms.FormControl<string | null>;
|
|
1321
|
+
alt: _angular_forms.FormControl<string | null>;
|
|
1322
|
+
}>;
|
|
1323
|
+
onActivate(): void;
|
|
1324
|
+
canInsert(): boolean;
|
|
1325
|
+
insertImage(): void;
|
|
1326
|
+
cancel(): void;
|
|
1327
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ImageInsertViewComponent, never>;
|
|
1328
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ImageInsertViewComponent, "document-engine-image-insert-view", never, {}, {}, never, never, true, never>;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
interface SpecialCharacter {
|
|
1332
|
+
char: string;
|
|
1333
|
+
name: string;
|
|
1334
|
+
code?: string;
|
|
1335
|
+
}
|
|
1336
|
+
declare const CharacterCategory: {
|
|
1337
|
+
readonly ALL: "all";
|
|
1338
|
+
readonly CURRENCY: "currency";
|
|
1339
|
+
readonly MATH: "math";
|
|
1340
|
+
readonly ARROWS: "arrows";
|
|
1341
|
+
readonly SYMBOLS: "symbols";
|
|
1342
|
+
readonly PUNCTUATION: "punctuation";
|
|
1343
|
+
};
|
|
1344
|
+
type CharacterCategory = (typeof CharacterCategory)[keyof typeof CharacterCategory];
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* Special characters view for bubble menu
|
|
1348
|
+
* Shows categorized special characters for insertion
|
|
1349
|
+
*/
|
|
1350
|
+
declare class SpecialCharactersViewComponent implements BubbleMenuViewContent<Record<string, unknown>>, OnDestroy {
|
|
1351
|
+
private cdr;
|
|
1352
|
+
editor?: Editor;
|
|
1353
|
+
close?: () => void;
|
|
1354
|
+
goBack?: (viewId?: string) => void;
|
|
1355
|
+
navigateTo?: (viewId: string) => void;
|
|
1356
|
+
selectedCategory: (typeof CharacterCategory)[keyof typeof CharacterCategory];
|
|
1357
|
+
charButtons: QueryList<ElementRef<HTMLButtonElement>>;
|
|
1358
|
+
readonly GRID_COLUMNS = 6;
|
|
1359
|
+
private rafId;
|
|
1360
|
+
private pendingKey;
|
|
1361
|
+
get currentCharacters(): SpecialCharacter[];
|
|
1362
|
+
currencyChars: SpecialCharacter[];
|
|
1363
|
+
mathChars: SpecialCharacter[];
|
|
1364
|
+
arrowChars: SpecialCharacter[];
|
|
1365
|
+
symbolChars: SpecialCharacter[];
|
|
1366
|
+
punctuationChars: SpecialCharacter[];
|
|
1367
|
+
onActivate(): void;
|
|
1368
|
+
insertCharacter(char: string): void;
|
|
1369
|
+
onGridKeydown(event: KeyboardEvent): void;
|
|
1370
|
+
private handleNavigation;
|
|
1371
|
+
ngOnDestroy(): void;
|
|
1372
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpecialCharactersViewComponent, never>;
|
|
1373
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpecialCharactersViewComponent, "document-engine-special-characters-view", never, {}, {}, never, never, true, never>;
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
/**
|
|
1377
|
+
* Dynamic fields view for bubble menu
|
|
1378
|
+
* Shows categorized dynamic fields for insertion into the editor
|
|
1379
|
+
*/
|
|
1380
|
+
declare class DynamicFieldsViewComponent implements BubbleMenuViewContent<Record<string, unknown>>, OnInit, OnDestroy {
|
|
1381
|
+
private cdr;
|
|
1382
|
+
editor?: Editor;
|
|
1383
|
+
close?: () => void;
|
|
1384
|
+
goBack?: (viewId?: string) => void;
|
|
1385
|
+
navigateTo?: (viewId: string) => void;
|
|
1386
|
+
searchQuery: string;
|
|
1387
|
+
originalFields: DynamicFieldItem$1[];
|
|
1388
|
+
originalCategories: DynamicFieldCategory$1[];
|
|
1389
|
+
searchControl: FormControl<string | null>;
|
|
1390
|
+
private destroy$;
|
|
1391
|
+
onActivate(attrs: Record<string, unknown>): void;
|
|
1392
|
+
ngOnInit(): void;
|
|
1393
|
+
ngOnDestroy(): void;
|
|
1394
|
+
/**
|
|
1395
|
+
* Getter that filters categories and fields based on search query
|
|
1396
|
+
*/
|
|
1397
|
+
get filteredCategories(): DynamicFieldCategory$1[];
|
|
1398
|
+
/**
|
|
1399
|
+
* Insert a dynamic field into the editor
|
|
1400
|
+
*/
|
|
1401
|
+
insertDynamicField(field: DynamicFieldItem$1): void;
|
|
1402
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldsViewComponent, never>;
|
|
1403
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldsViewComponent, "document-engine-dynamic-fields-view", never, {}, {}, never, never, true, never>;
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
/**
|
|
1407
|
+
* Template view for bubble menu
|
|
1408
|
+
* Shows templates for insertion into the editor
|
|
1409
|
+
* Replaces entire editor content with selected template
|
|
1410
|
+
*/
|
|
1411
|
+
declare class TemplateViewComponent implements BubbleMenuViewContent<Record<string, unknown>>, OnInit, OnDestroy {
|
|
1412
|
+
private cdr;
|
|
1413
|
+
editor?: Editor;
|
|
1414
|
+
close?: () => void;
|
|
1415
|
+
goBack?: (viewId?: string) => void;
|
|
1416
|
+
navigateTo?: (viewId: string) => void;
|
|
1417
|
+
searchQuery: string;
|
|
1418
|
+
originalTemplates: TemplateItem[];
|
|
1419
|
+
searchControl: FormControl<string | null>;
|
|
1420
|
+
private destroy$;
|
|
1421
|
+
onActivate(attrs: Record<string, unknown>): void;
|
|
1422
|
+
ngOnInit(): void;
|
|
1423
|
+
ngOnDestroy(): void;
|
|
1424
|
+
/**
|
|
1425
|
+
* Getter that filters templates based on search query
|
|
1426
|
+
*/
|
|
1427
|
+
get filteredTemplates(): TemplateItem[];
|
|
1428
|
+
/**
|
|
1429
|
+
* Insert a template into the editor, replacing entire content
|
|
1430
|
+
*/
|
|
1431
|
+
insertTemplate(template: TemplateItem): void;
|
|
1432
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateViewComponent, never>;
|
|
1433
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TemplateViewComponent, "document-engine-template-view", never, {}, {}, never, never, true, never>;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* Main view for table bubble menu
|
|
1438
|
+
* Shows table manipulation controls (rows, columns, cells)
|
|
1439
|
+
* Provides navigation to cell and table styling views
|
|
1440
|
+
*/
|
|
1441
|
+
declare class TableMainViewComponent implements BubbleMenuViewContent {
|
|
1442
|
+
editor?: Editor;
|
|
1443
|
+
navigateTo?: (viewId: string) => void;
|
|
1444
|
+
close?: () => void;
|
|
1445
|
+
colAction: string | null;
|
|
1446
|
+
rowAction: string | null;
|
|
1447
|
+
cellAction: string | null;
|
|
1448
|
+
get canMerge(): boolean;
|
|
1449
|
+
get canSplit(): boolean;
|
|
1450
|
+
handleColAction(action: string | null): void;
|
|
1451
|
+
handleRowAction(action: string | null): void;
|
|
1452
|
+
handleCellAction(action: string | null): void;
|
|
1453
|
+
setSelection(selection: 'column' | 'row'): void;
|
|
1454
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableMainViewComponent, never>;
|
|
1455
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableMainViewComponent, "document-engine-table-main-view", never, {}, {}, never, never, true, never>;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
interface TableCreateViewData {
|
|
1459
|
+
rows?: number;
|
|
1460
|
+
cols?: number;
|
|
1461
|
+
header?: boolean;
|
|
1462
|
+
}
|
|
1463
|
+
/**
|
|
1464
|
+
* Table creation view for bubble menu
|
|
1465
|
+
* Allows users to configure table dimensions and header row
|
|
1466
|
+
*/
|
|
1467
|
+
declare class TableCreateViewComponent implements BubbleMenuViewContent<TableCreateViewData> {
|
|
1468
|
+
private readonly fb;
|
|
1469
|
+
private readonly cdr;
|
|
1470
|
+
editor?: Editor;
|
|
1471
|
+
close?: () => void;
|
|
1472
|
+
goBack?: (viewId?: string) => void;
|
|
1473
|
+
navigateTo?: (viewId: string) => void;
|
|
1474
|
+
readonly MAX_GRID_ROWS = 100;
|
|
1475
|
+
readonly MAX_GRID_COLS = 10;
|
|
1476
|
+
readonly GRID_ROW = 10;
|
|
1477
|
+
readonly GRID_COL = 10;
|
|
1478
|
+
gridRows: number[];
|
|
1479
|
+
gridCols: number[];
|
|
1480
|
+
hoveredRows: number;
|
|
1481
|
+
hoveredCols: number;
|
|
1482
|
+
frozenRows: number | null;
|
|
1483
|
+
frozenCols: number | null;
|
|
1484
|
+
form: _angular_forms.FormGroup<{
|
|
1485
|
+
rows: _angular_forms.FormControl<number>;
|
|
1486
|
+
cols: _angular_forms.FormControl<number>;
|
|
1487
|
+
header: _angular_forms.FormControl<boolean>;
|
|
1488
|
+
}>;
|
|
1489
|
+
onActivate(attrs: TableCreateViewData): void;
|
|
1490
|
+
isBoxSelected(row: number, col: number): boolean;
|
|
1491
|
+
onBoxHover(row: number, col: number): void;
|
|
1492
|
+
onBoxClick(row: number, col: number): void;
|
|
1493
|
+
onGridMouseEnter(): void;
|
|
1494
|
+
onGridMouseLeave(): void;
|
|
1495
|
+
onInsertFromForm(): void;
|
|
1496
|
+
private clamp;
|
|
1497
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableCreateViewComponent, never>;
|
|
1498
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableCreateViewComponent, "document-engine-table-create-view", never, {}, {}, never, never, true, never>;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
/**
|
|
1502
|
+
* Table style view for table bubble menu
|
|
1503
|
+
* Allows styling the entire table (borders, background, dimensions, alignment)
|
|
1504
|
+
*/
|
|
1505
|
+
declare class TableStyleViewComponent implements BubbleMenuViewContent {
|
|
1506
|
+
private cdr;
|
|
1507
|
+
borderColorTrigger: ElementRef<HTMLElement>;
|
|
1508
|
+
bgColorTrigger: ElementRef<HTMLElement>;
|
|
1509
|
+
editor?: Editor;
|
|
1510
|
+
goBack?: (viewId?: string) => void;
|
|
1511
|
+
borderStyle: 'solid' | 'double' | 'dashed' | 'dotted' | 'none' | null;
|
|
1512
|
+
borderColor: string | null;
|
|
1513
|
+
borderWidth: string | null;
|
|
1514
|
+
tableBg: string | null;
|
|
1515
|
+
showColorPicker: 'border' | 'bg' | null;
|
|
1516
|
+
colorPalette: Color[];
|
|
1517
|
+
private documentClickListener?;
|
|
1518
|
+
get borderColorObj(): Color | null;
|
|
1519
|
+
get tableBgObj(): Color | null;
|
|
1520
|
+
onActivate(): void;
|
|
1521
|
+
toggleColorPicker(type: 'border' | 'bg'): void;
|
|
1522
|
+
closeColorPicker(): void;
|
|
1523
|
+
private addDocumentClickListener;
|
|
1524
|
+
private removeDocumentClickListener;
|
|
1525
|
+
onBorderColorSelected(color: Color): void;
|
|
1526
|
+
onBorderColorRemoved(): void;
|
|
1527
|
+
onTableBgSelected(color: Color): void;
|
|
1528
|
+
onTableBgRemoved(): void;
|
|
1529
|
+
onBorderWidthChange(): void;
|
|
1530
|
+
onSave(): void;
|
|
1531
|
+
cancel(): void;
|
|
1532
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableStyleViewComponent, never>;
|
|
1533
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableStyleViewComponent, "document-engine-table-style-view", never, {}, {}, never, never, true, never>;
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* Cell style view for table bubble menu
|
|
1538
|
+
* Allows styling individual table cells (borders, background, alignment)
|
|
1539
|
+
*/
|
|
1540
|
+
declare class TableCellStyleViewComponent implements BubbleMenuViewContent {
|
|
1541
|
+
private cdr;
|
|
1542
|
+
borderColorTrigger: ElementRef<HTMLElement>;
|
|
1543
|
+
bgColorTrigger: ElementRef<HTMLElement>;
|
|
1544
|
+
editor?: Editor;
|
|
1545
|
+
goBack?: (viewId?: string) => void;
|
|
1546
|
+
borderStyle: 'solid' | 'dashed' | 'dotted' | 'none' | null;
|
|
1547
|
+
borderColor: string | null;
|
|
1548
|
+
borderWidth: string | null;
|
|
1549
|
+
backgroundColor: string | null;
|
|
1550
|
+
textAlign: 'left' | 'center' | 'right' | 'justify' | null;
|
|
1551
|
+
vAlign: 'top' | 'middle' | 'bottom' | null;
|
|
1552
|
+
showColorPicker: 'border' | 'bg' | null;
|
|
1553
|
+
colorPalette: Color[];
|
|
1554
|
+
private documentClickListener?;
|
|
1555
|
+
get borderColorObj(): Color | null;
|
|
1556
|
+
get backgroundColorObj(): Color | null;
|
|
1557
|
+
onActivate(): void;
|
|
1558
|
+
toggleColorPicker(type: 'border' | 'bg'): void;
|
|
1559
|
+
closeColorPicker(): void;
|
|
1560
|
+
private addDocumentClickListener;
|
|
1561
|
+
private removeDocumentClickListener;
|
|
1562
|
+
onBorderColorSelected(color: Color): void;
|
|
1563
|
+
onBorderColorRemoved(): void;
|
|
1564
|
+
onBackgroundColorSelected(color: Color): void;
|
|
1565
|
+
onBackgroundColorRemoved(): void;
|
|
1566
|
+
onBorderWidthChange(): void;
|
|
1567
|
+
onSave(): void;
|
|
1568
|
+
cancel(): void;
|
|
1569
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableCellStyleViewComponent, never>;
|
|
1570
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableCellStyleViewComponent, "document-engine-table-cell-style-view", never, {}, {}, never, never, true, never>;
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
/**
|
|
1574
|
+
* A bubble menu wrapper specifically for toolbar buttons
|
|
1575
|
+
* Unlike the regular bubble menu, this one is positioned relative to toolbar buttons
|
|
1576
|
+
* and doesn't depend on text selection in the editor
|
|
1577
|
+
*/
|
|
1578
|
+
declare class ToolbarBubbleMenuComponent implements AfterViewInit, OnDestroy {
|
|
1579
|
+
editor: Editor;
|
|
1580
|
+
config: ToolbarBubbleMenuConfig;
|
|
1581
|
+
private cdr;
|
|
1582
|
+
private eventManager;
|
|
1583
|
+
private focusTrap;
|
|
1584
|
+
private bubbleElement;
|
|
1585
|
+
private viewContainer;
|
|
1586
|
+
private currentViewRef;
|
|
1587
|
+
private currentViewId;
|
|
1588
|
+
private currentAttributes;
|
|
1589
|
+
isVisible: boolean;
|
|
1590
|
+
ngAfterViewInit(): void;
|
|
1591
|
+
ngOnDestroy(): void;
|
|
1592
|
+
isActive(type: 'text' | 'fill'): boolean;
|
|
1593
|
+
toggleBubble(targetElement: HTMLElement, attrs?: Record<string, unknown>, viewId?: string): void;
|
|
1594
|
+
/**
|
|
1595
|
+
* Show the bubble menu positioned relative to a target element (toolbar button)
|
|
1596
|
+
*/
|
|
1597
|
+
showBubble(targetElement: HTMLElement, attrs?: Record<string, unknown>, viewId?: string): void;
|
|
1598
|
+
/**
|
|
1599
|
+
* Hide the bubble menu
|
|
1600
|
+
*/
|
|
1601
|
+
hideBubble(): void;
|
|
1602
|
+
private selectInitialView;
|
|
1603
|
+
private showView;
|
|
1604
|
+
private createView;
|
|
1605
|
+
private activateView;
|
|
1606
|
+
private deactivateView;
|
|
1607
|
+
private destroyCurrentView;
|
|
1608
|
+
private handleNavigateTo;
|
|
1609
|
+
private handleGoBack;
|
|
1610
|
+
private findViewConfig;
|
|
1611
|
+
private positionBubble;
|
|
1612
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarBubbleMenuComponent, never>;
|
|
1613
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarBubbleMenuComponent, "document-engine-toolbar-bubble-menu", never, { "editor": { "alias": "editor"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
declare class EditorBubbleMenuComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
1617
|
+
editor: Editor;
|
|
1618
|
+
config: EditorBubbleMenuConfig;
|
|
1619
|
+
private viewContainer;
|
|
1620
|
+
private bubbleElement;
|
|
1621
|
+
private cdr;
|
|
1622
|
+
private document;
|
|
1623
|
+
private focusTrap;
|
|
1624
|
+
private currentViewRef;
|
|
1625
|
+
private currentViewId;
|
|
1626
|
+
private currentAttributes;
|
|
1627
|
+
private cleanupSelection;
|
|
1628
|
+
private shouldShowImpl;
|
|
1629
|
+
private keyToSignal;
|
|
1630
|
+
private forceOpen;
|
|
1631
|
+
private documentClickHandler;
|
|
1632
|
+
shouldShowFn: () => boolean;
|
|
1633
|
+
get mountTo(): (() => HTMLElement | null) | undefined;
|
|
1634
|
+
ngOnInit(): void;
|
|
1635
|
+
ngAfterViewInit(): void;
|
|
1636
|
+
ngOnDestroy(): void;
|
|
1637
|
+
private addDocumentClickHandler;
|
|
1638
|
+
/**
|
|
1639
|
+
* Public method to force open the bubble menu
|
|
1640
|
+
*/
|
|
1641
|
+
showBubble(): void;
|
|
1642
|
+
/**
|
|
1643
|
+
* Handle close request from view
|
|
1644
|
+
*/
|
|
1645
|
+
hideBubble(): void;
|
|
1646
|
+
/**
|
|
1647
|
+
* Handle when target mark/node becomes active
|
|
1648
|
+
*/
|
|
1649
|
+
private handleActivate;
|
|
1650
|
+
/**
|
|
1651
|
+
* Handle when target mark/node becomes inactive
|
|
1652
|
+
*/
|
|
1653
|
+
private handleDeactivate;
|
|
1654
|
+
/**
|
|
1655
|
+
* Select which view should be shown initially
|
|
1656
|
+
*/
|
|
1657
|
+
private selectInitialView;
|
|
1658
|
+
/**
|
|
1659
|
+
* Show a specific view by ID
|
|
1660
|
+
*/
|
|
1661
|
+
private showView;
|
|
1662
|
+
/**
|
|
1663
|
+
* Create a view component
|
|
1664
|
+
*/
|
|
1665
|
+
private createView;
|
|
1666
|
+
/**
|
|
1667
|
+
* Activate a view (call onActivate)
|
|
1668
|
+
*/
|
|
1669
|
+
private activateView;
|
|
1670
|
+
/**
|
|
1671
|
+
* Deactivate a view (call onDeactivate)
|
|
1672
|
+
*/
|
|
1673
|
+
private deactivateView;
|
|
1674
|
+
/**
|
|
1675
|
+
* Destroy current view
|
|
1676
|
+
*/
|
|
1677
|
+
private destroyCurrentView;
|
|
1678
|
+
/**
|
|
1679
|
+
* Handle navigation request from view
|
|
1680
|
+
*/
|
|
1681
|
+
private handleNavigateTo;
|
|
1682
|
+
/**
|
|
1683
|
+
* Handle go back request from view
|
|
1684
|
+
*/
|
|
1685
|
+
private handleGoBack;
|
|
1686
|
+
/**
|
|
1687
|
+
* Find view config by ID
|
|
1688
|
+
*/
|
|
1689
|
+
private findViewConfig;
|
|
1690
|
+
signalFor(key: string): {
|
|
1691
|
+
value: boolean;
|
|
1692
|
+
};
|
|
1693
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EditorBubbleMenuComponent, never>;
|
|
1694
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EditorBubbleMenuComponent, "document-engine-editor-bubble-menu", never, { "editor": { "alias": "editor"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
export { ARCHIVE, ARROW_DROP_DOWN, AngularRenderer, ButtonDirective, CHECK, CLEAR_ALL, CLOSE, CODE, CharacterCountComponent, CheckboxComponent, ColorPickerComponent, ColorPickerViewComponent, DEFAULT, DEFAULT_TOOLBAR_STATE, DESCRIPTION, DYNAMIC_FORM, DocumentEditorComponent, DocumentEngineKit, DynamicFieldsViewComponent, EDIT, EditorBubbleMenuComponent, EditorCapabilities, ErrorMessageComponent, EventManager, FORMAT_ALIGN_CENTER, FORMAT_ALIGN_JUSTIFY, FORMAT_ALIGN_LEFT, FORMAT_ALIGN_RIGHT, FORMAT_BOLD, FORMAT_CLEAR, FORMAT_COLOR_FILL, FORMAT_COLOR_TEXT, FORMAT_INDENT_DECREASE, FORMAT_INDENT_INCREASE, FORMAT_ITALIC, FORMAT_LINE_SPACING, FORMAT_LIST_BULLETED, FORMAT_LIST_NUMBERED, FORMAT_QUOTE, FORMAT_SIZE, FORMAT_STRIKETHROUGH, FORMAT_UNDERLINE, FocusTrapService, FooterComponent, INSERT_PAGE_BREAK, IconComponent, IconRegistryService, ImageInsertViewComponent, InputDirective, LINK, LINK_OFF, LabelDirective, LinkEditViewComponent, LinkMainViewComponent, LinkPropertiesViewComponent, MARKDOWN, MATCH_CASE, PHOTO, PRINT, PopoverDirective, REDO, RESTRICT_EDIT, SEARCH, SEARCH_OFF, SETTINGS, SPECIAL_CHARACTER, SUBSCRIPT, SUPERSCRIPT, SelectComponent, SelectLabelDirective, SelectOptionDirective, SpecialCharactersViewComponent, TABLE_CELL_PROPERTY, TABLE_COLUMN, TABLE_MERGE_CELL, TABLE_PROPERTY, TABLE_ROW, TABLE_ROWS, TableCellStyleViewComponent, TableCreateViewComponent, TableMainViewComponent, TableStyleViewComponent, TemplateViewComponent, TiptapBubbleMenuDirective, TiptapDraggableDirective, TiptapEditorDirective, TiptapFloatingMenuDirective, ToggleGroupComponent, ToggleOptionDirective, ToolbarBubbleMenuComponent, ToolbarComponent, ToolbarService, UNDO, VERTICAL_ALIGN_BOTTOM, VERTICAL_ALIGN_CENTER, VERTICAL_ALIGN_TOP, buildToolbarState, selectionChangeHandler, shouldShowFnFactory, urlValidator };
|
|
1698
|
+
export type { BubbleMenuProps, BubbleMenuViewConfig, BubbleMenuViewContent, BubbleTarget, ButtonType, DocumentEngineConfig, DynamicFieldCategory, DynamicFieldItem, EditorBubbleMenuConfig, HeadingLevel, IconButton, OutsideHandler, SelectButton, SelectOption, TableCreateViewData, TemplateItem, ToolbarBubbleMenuConfig, ToolbarButton, ToolbarState };
|