create-nextjs-cms 0.5.23 → 0.5.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/index.js +11 -0
  2. package/package.json +6 -8
  3. package/templates/default/components/NewPage.tsx +2 -2
  4. package/templates/default/components/ProgressBar.tsx +46 -22
  5. package/templates/default/components/form/DateRangeFormInput.tsx +8 -6
  6. package/templates/default/components/form/helpers/_section-hot-reload.js +1 -1
  7. package/templates/default/components/form/inputs/DateFormInput.tsx +82 -34
  8. package/templates/default/components/form/inputs/MultipleSelectFormInput.tsx +40 -107
  9. package/templates/default/components/form/inputs/RichTextFormInput.tsx +2 -0
  10. package/templates/default/components/form/inputs/TagsFormInput.tsx +115 -26
  11. package/templates/default/components/form/inputs/TextFormInput.tsx +1 -1
  12. package/templates/default/components/multi-select.tsx +1144 -0
  13. package/templates/default/components/ui/badge.tsx +16 -12
  14. package/templates/default/components/ui/button.tsx +35 -30
  15. package/templates/default/components/ui/calendar.tsx +145 -47
  16. package/templates/default/components/ui/command.tsx +184 -0
  17. package/templates/default/components/ui/dialog.tsx +143 -0
  18. package/templates/default/components/ui/popover.tsx +39 -22
  19. package/templates/default/components/ui/progress.tsx +31 -0
  20. package/templates/default/components/ui/select.tsx +150 -149
  21. package/templates/default/components/ui/separator.tsx +28 -0
  22. package/templates/default/components.json +8 -3
  23. package/templates/default/{postinstall.js → lib/postinstall.js} +1 -1
  24. package/templates/default/lib/utils.ts +6 -0
  25. package/templates/default/{proxy.ts → middleware.ts} +3 -2
  26. package/templates/default/next-env.d.ts +1 -1
  27. package/templates/default/package.json +41 -53
  28. package/templates/default/public/tinymce/CHANGELOG.md +155 -0
  29. package/templates/default/public/tinymce/README.md +12 -12
  30. package/templates/default/public/tinymce/bower.json +1 -1
  31. package/templates/default/public/tinymce/composer.json +2 -2
  32. package/templates/default/public/tinymce/icons/default/icons.js +40 -32
  33. package/templates/default/public/tinymce/icons/default/icons.min.js +1 -1
  34. package/templates/default/public/tinymce/license.md +7 -4
  35. package/templates/default/public/tinymce/models/dom/model.js +36 -50
  36. package/templates/default/public/tinymce/models/dom/model.min.js +1 -1
  37. package/templates/default/public/tinymce/notices.txt +2 -2
  38. package/templates/default/public/tinymce/package.json +2 -2
  39. package/templates/default/public/tinymce/plugins/accordion/plugin.js +45 -21
  40. package/templates/default/public/tinymce/plugins/accordion/plugin.min.js +1 -1
  41. package/templates/default/public/tinymce/plugins/advlist/plugin.js +8 -6
  42. package/templates/default/public/tinymce/plugins/advlist/plugin.min.js +1 -1
  43. package/templates/default/public/tinymce/plugins/anchor/plugin.js +1 -1
  44. package/templates/default/public/tinymce/plugins/autolink/plugin.js +3 -6
  45. package/templates/default/public/tinymce/plugins/autolink/plugin.min.js +1 -1
  46. package/templates/default/public/tinymce/plugins/autoresize/plugin.js +4 -6
  47. package/templates/default/public/tinymce/plugins/autoresize/plugin.min.js +1 -1
  48. package/templates/default/public/tinymce/plugins/autosave/plugin.js +4 -7
  49. package/templates/default/public/tinymce/plugins/autosave/plugin.min.js +1 -1
  50. package/templates/default/public/tinymce/plugins/charmap/plugin.js +8 -8
  51. package/templates/default/public/tinymce/plugins/charmap/plugin.min.js +1 -1
  52. package/templates/default/public/tinymce/plugins/code/plugin.js +3 -2
  53. package/templates/default/public/tinymce/plugins/code/plugin.min.js +1 -1
  54. package/templates/default/public/tinymce/plugins/codesample/plugin.js +11 -10
  55. package/templates/default/public/tinymce/plugins/codesample/plugin.min.js +2 -2
  56. package/templates/default/public/tinymce/plugins/directionality/plugin.js +9 -11
  57. package/templates/default/public/tinymce/plugins/directionality/plugin.min.js +1 -1
  58. package/templates/default/public/tinymce/plugins/emoticons/plugin.js +7 -7
  59. package/templates/default/public/tinymce/plugins/emoticons/plugin.min.js +1 -1
  60. package/templates/default/public/tinymce/plugins/fullscreen/plugin.js +11 -13
  61. package/templates/default/public/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  62. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/bg-BG.js +93 -0
  63. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fr-FR.js +93 -0
  64. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/he-IL.js +93 -0
  65. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hu-HU.js +93 -0
  66. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ko-KR.js +93 -0
  67. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/nb-NO.js +93 -0
  68. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-BR.js +93 -0
  69. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-PT.js +93 -0
  70. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sl-SI.js +93 -0
  71. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sv-SE.js +93 -0
  72. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/th-TH.js +93 -0
  73. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-CN.js +87 -0
  74. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-TW.js +93 -0
  75. package/templates/default/public/tinymce/plugins/help/plugin.js +15 -17
  76. package/templates/default/public/tinymce/plugins/help/plugin.min.js +1 -1
  77. package/templates/default/public/tinymce/plugins/image/plugin.js +34 -32
  78. package/templates/default/public/tinymce/plugins/image/plugin.min.js +1 -1
  79. package/templates/default/public/tinymce/plugins/importcss/plugin.js +4 -6
  80. package/templates/default/public/tinymce/plugins/importcss/plugin.min.js +1 -1
  81. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.js +4 -3
  82. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  83. package/templates/default/public/tinymce/plugins/link/plugin.js +170 -38
  84. package/templates/default/public/tinymce/plugins/link/plugin.min.js +1 -1
  85. package/templates/default/public/tinymce/plugins/lists/plugin.js +111 -2053
  86. package/templates/default/public/tinymce/plugins/lists/plugin.min.js +1 -1
  87. package/templates/default/public/tinymce/plugins/media/plugin.js +15 -23
  88. package/templates/default/public/tinymce/plugins/media/plugin.min.js +1 -1
  89. package/templates/default/public/tinymce/plugins/nonbreaking/plugin.js +1 -1
  90. package/templates/default/public/tinymce/plugins/pagebreak/plugin.js +1 -1
  91. package/templates/default/public/tinymce/plugins/preview/plugin.js +88 -10
  92. package/templates/default/public/tinymce/plugins/preview/plugin.min.js +1 -1
  93. package/templates/default/public/tinymce/plugins/quickbars/plugin.js +9 -9
  94. package/templates/default/public/tinymce/plugins/quickbars/plugin.min.js +1 -1
  95. package/templates/default/public/tinymce/plugins/save/plugin.js +1 -1
  96. package/templates/default/public/tinymce/plugins/searchreplace/plugin.js +10 -13
  97. package/templates/default/public/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  98. package/templates/default/public/tinymce/plugins/table/plugin.js +13 -24
  99. package/templates/default/public/tinymce/plugins/table/plugin.min.js +1 -1
  100. package/templates/default/public/tinymce/plugins/visualblocks/plugin.js +1 -1
  101. package/templates/default/public/tinymce/plugins/visualchars/plugin.js +9 -10
  102. package/templates/default/public/tinymce/plugins/visualchars/plugin.min.js +1 -1
  103. package/templates/default/public/tinymce/plugins/wordcount/plugin.js +1 -1
  104. package/templates/default/public/tinymce/skins/content/dark/content.min.ts +3 -0
  105. package/templates/default/public/tinymce/skins/content/dark/content.ts +3 -0
  106. package/templates/default/public/tinymce/skins/content/default/content.min.ts +3 -0
  107. package/templates/default/public/tinymce/skins/content/default/content.ts +3 -0
  108. package/templates/default/public/tinymce/skins/content/document/content.min.ts +3 -0
  109. package/templates/default/public/tinymce/skins/content/document/content.ts +3 -0
  110. package/templates/default/public/tinymce/skins/content/tinymce-5/content.min.ts +3 -0
  111. package/templates/default/public/tinymce/skins/content/tinymce-5/content.ts +3 -0
  112. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.min.ts +3 -0
  113. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.ts +3 -0
  114. package/templates/default/public/tinymce/skins/content/writer/content.min.ts +3 -0
  115. package/templates/default/public/tinymce/skins/content/writer/content.ts +3 -0
  116. package/templates/default/public/tinymce/skins/ui/oxide/content.css +144 -0
  117. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.css +144 -0
  118. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.js +1 -1
  119. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  120. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.ts +116 -0
  121. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.ts +116 -0
  122. package/templates/default/public/tinymce/skins/ui/oxide/content.js +1 -1
  123. package/templates/default/public/tinymce/skins/ui/oxide/content.min.css +1 -1
  124. package/templates/default/public/tinymce/skins/ui/oxide/content.min.ts +116 -0
  125. package/templates/default/public/tinymce/skins/ui/oxide/content.ts +116 -0
  126. package/templates/default/public/tinymce/skins/ui/oxide/skin.css +923 -449
  127. package/templates/default/public/tinymce/skins/ui/oxide/skin.js +1 -1
  128. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.css +1 -1
  129. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.ts +507 -0
  130. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.min.ts +9 -0
  131. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.ts +9 -0
  132. package/templates/default/public/tinymce/skins/ui/oxide/skin.ts +507 -0
  133. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.css +144 -0
  134. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.css +144 -0
  135. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
  136. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  137. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.ts +116 -0
  138. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.ts +116 -0
  139. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.js +1 -1
  140. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  141. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.ts +116 -0
  142. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.ts +116 -0
  143. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.css +926 -452
  144. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.js +1 -1
  145. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  146. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.ts +507 -0
  147. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.ts +9 -0
  148. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.ts +9 -0
  149. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.ts +507 -0
  150. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.css +144 -0
  151. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.css +144 -0
  152. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
  153. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  154. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.ts +116 -0
  155. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.ts +116 -0
  156. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.js +1 -1
  157. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  158. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.ts +116 -0
  159. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.ts +116 -0
  160. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.css +924 -450
  161. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.js +1 -1
  162. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  163. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.ts +508 -0
  164. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.ts +9 -0
  165. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.ts +9 -0
  166. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.ts +508 -0
  167. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.css +144 -0
  168. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.css +144 -0
  169. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
  170. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  171. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.ts +116 -0
  172. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.ts +116 -0
  173. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
  174. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  175. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.ts +116 -0
  176. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.ts +116 -0
  177. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.css +925 -451
  178. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
  179. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  180. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.ts +508 -0
  181. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.ts +9 -0
  182. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.ts +9 -0
  183. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.ts +508 -0
  184. package/templates/default/public/tinymce/themes/silver/theme.js +543 -593
  185. package/templates/default/public/tinymce/themes/silver/theme.min.js +1 -1
  186. package/templates/default/public/tinymce/tinymce.d.ts +559 -496
  187. package/templates/default/public/tinymce/tinymce.js +6788 -3964
  188. package/templates/default/public/tinymce/tinymce.min.js +3 -4
  189. package/templates/default/styles/globals.css +132 -107
  190. package/templates/default/tsconfig.json +45 -45
  191. package/templates/default/.prettierrc.json +0 -19
  192. package/templates/default/eslint.config.mjs +0 -38
@@ -23,120 +23,6 @@ interface PathBookmark {
23
23
  forward?: boolean;
24
24
  }
25
25
  type Bookmark = StringPathBookmark | RangeBookmark | IdBookmark | IndexBookmark | PathBookmark;
26
- type NormalizedEvent<E, T = any> = E & {
27
- readonly type: string;
28
- readonly target: T;
29
- readonly isDefaultPrevented: () => boolean;
30
- readonly preventDefault: () => void;
31
- readonly isPropagationStopped: () => boolean;
32
- readonly stopPropagation: () => void;
33
- readonly isImmediatePropagationStopped: () => boolean;
34
- readonly stopImmediatePropagation: () => void;
35
- };
36
- type MappedEvent<T extends {}, K extends string> = K extends keyof T ? T[K] : any;
37
- interface NativeEventMap {
38
- beforepaste: Event;
39
- blur: FocusEvent;
40
- beforeinput: InputEvent;
41
- click: MouseEvent;
42
- compositionend: Event;
43
- compositionstart: Event;
44
- compositionupdate: Event;
45
- contextmenu: PointerEvent;
46
- copy: ClipboardEvent;
47
- cut: ClipboardEvent;
48
- dblclick: MouseEvent;
49
- drag: DragEvent;
50
- dragdrop: DragEvent;
51
- dragend: DragEvent;
52
- draggesture: DragEvent;
53
- dragover: DragEvent;
54
- dragstart: DragEvent;
55
- drop: DragEvent;
56
- focus: FocusEvent;
57
- focusin: FocusEvent;
58
- focusout: FocusEvent;
59
- input: InputEvent;
60
- keydown: KeyboardEvent;
61
- keypress: KeyboardEvent;
62
- keyup: KeyboardEvent;
63
- mousedown: MouseEvent;
64
- mouseenter: MouseEvent;
65
- mouseleave: MouseEvent;
66
- mousemove: MouseEvent;
67
- mouseout: MouseEvent;
68
- mouseover: MouseEvent;
69
- mouseup: MouseEvent;
70
- paste: ClipboardEvent;
71
- selectionchange: Event;
72
- submit: Event;
73
- touchend: TouchEvent;
74
- touchmove: TouchEvent;
75
- touchstart: TouchEvent;
76
- touchcancel: TouchEvent;
77
- wheel: WheelEvent;
78
- }
79
- type EditorEvent<T> = NormalizedEvent<T>;
80
- interface EventDispatcherSettings {
81
- scope?: any;
82
- toggleEvent?: (name: string, state: boolean) => void | boolean;
83
- beforeFire?: <T>(args: EditorEvent<T>) => void;
84
- }
85
- interface EventDispatcherConstructor<T extends {}> {
86
- readonly prototype: EventDispatcher<T>;
87
- new (settings?: EventDispatcherSettings): EventDispatcher<T>;
88
- isNative: (name: string) => boolean;
89
- }
90
- declare class EventDispatcher<T extends {}> {
91
- static isNative(name: string): boolean;
92
- private readonly settings;
93
- private readonly scope;
94
- private readonly toggleEvent;
95
- private bindings;
96
- constructor(settings?: EventDispatcherSettings);
97
- fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
98
- dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
99
- on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void | boolean), prepend?: boolean, extra?: {}): this;
100
- off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
101
- once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
102
- has(name: string): boolean;
103
- }
104
- type UndoLevelType = 'fragmented' | 'complete';
105
- interface BaseUndoLevel {
106
- type: UndoLevelType;
107
- bookmark: Bookmark | null;
108
- beforeBookmark: Bookmark | null;
109
- }
110
- interface FragmentedUndoLevel extends BaseUndoLevel {
111
- type: 'fragmented';
112
- fragments: string[];
113
- content: '';
114
- }
115
- interface CompleteUndoLevel extends BaseUndoLevel {
116
- type: 'complete';
117
- fragments: null;
118
- content: string;
119
- }
120
- type NewUndoLevel = CompleteUndoLevel | FragmentedUndoLevel;
121
- type UndoLevel = NewUndoLevel & {
122
- bookmark: Bookmark;
123
- };
124
- interface UndoManager {
125
- data: UndoLevel[];
126
- typing: boolean;
127
- add: (level?: Partial<UndoLevel>, event?: EditorEvent<any>) => UndoLevel | null;
128
- dispatchChange: () => void;
129
- beforeChange: () => void;
130
- undo: () => UndoLevel | undefined;
131
- redo: () => UndoLevel | undefined;
132
- clear: () => void;
133
- reset: () => void;
134
- hasUndo: () => boolean;
135
- hasRedo: () => boolean;
136
- transact: (callback: () => void) => UndoLevel | null;
137
- ignore: (callback: () => void) => void;
138
- extra: (callback1: () => void, callback2: () => void) => void;
139
- }
140
26
  type SchemaType = 'html4' | 'html5' | 'html5-strict';
141
27
  interface ElementSettings {
142
28
  block_elements?: string;
@@ -205,6 +91,7 @@ interface CustomElementSpec {
205
91
  attributes?: string[];
206
92
  children?: string[];
207
93
  padEmpty?: boolean;
94
+ componentUrl?: string;
208
95
  }
209
96
  interface Schema {
210
97
  type: SchemaType;
@@ -225,6 +112,7 @@ interface Schema {
225
112
  getWhitespaceElements: () => SchemaMap;
226
113
  getTransparentElements: () => SchemaMap;
227
114
  getSpecialElements: () => SchemaRegExpMap;
115
+ getComponentUrls: () => Record<string, string>;
228
116
  isValidChild: (name: string, child: string) => boolean;
229
117
  isValid: (name: string, attr?: string) => boolean;
230
118
  isBlock: (name: string) => boolean;
@@ -276,36 +164,6 @@ declare class AstNode {
276
164
  isEmpty(elements: SchemaMap, whitespace?: SchemaMap, predicate?: (node: AstNode) => boolean): boolean;
277
165
  walk(prev?: boolean): AstNode | null | undefined;
278
166
  }
279
- type Content = string | AstNode;
280
- type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
281
- interface GetContentArgs {
282
- format: ContentFormat;
283
- get: boolean;
284
- getInner: boolean;
285
- no_events?: boolean;
286
- save?: boolean;
287
- source_view?: boolean;
288
- [key: string]: any;
289
- }
290
- interface SetContentArgs {
291
- format: string;
292
- set: boolean;
293
- content: Content;
294
- no_events?: boolean;
295
- no_selection?: boolean;
296
- paste?: boolean;
297
- load?: boolean;
298
- initial?: boolean;
299
- [key: string]: any;
300
- }
301
- interface GetSelectionContentArgs extends GetContentArgs {
302
- selection?: boolean;
303
- contextual?: boolean;
304
- }
305
- interface SetSelectionContentArgs extends SetContentArgs {
306
- content: string;
307
- selection?: boolean;
308
- }
309
167
  interface BlobInfoData {
310
168
  id?: string;
311
169
  name?: string;
@@ -329,116 +187,381 @@ interface BlobCache {
329
187
  (o: BlobInfoData): BlobInfo;
330
188
  (id: string, blob: Blob, base64: string, name?: string, filename?: string): BlobInfo;
331
189
  };
332
- add: (blobInfo: BlobInfo) => void;
333
- get: (id: string) => BlobInfo | undefined;
334
- getByUri: (blobUri: string) => BlobInfo | undefined;
335
- getByData: (base64: string, type: string) => BlobInfo | undefined;
336
- findFirst: (predicate: (blobInfo: BlobInfo) => boolean) => BlobInfo | undefined;
337
- removeByUri: (blobUri: string) => void;
338
- destroy: () => void;
339
- }
340
- interface BlobInfoImagePair {
341
- image: HTMLImageElement;
342
- blobInfo: BlobInfo;
343
- }
344
- declare class NodeChange {
345
- private readonly editor;
346
- private lastPath;
347
- constructor(editor: Editor);
348
- nodeChanged(args?: Record<string, any>): void;
349
- private isSameElementPath;
350
- }
351
- interface SelectionOverrides {
352
- showCaret: (direction: number, node: HTMLElement, before: boolean, scrollIntoView?: boolean) => Range | null;
353
- showBlockCaretContainer: (blockCaretContainer: HTMLElement) => void;
354
- hideFakeCaret: () => void;
355
- destroy: () => void;
356
- }
357
- interface Quirks {
358
- refreshContentEditable(): void;
359
- isHidden(): boolean;
360
- }
361
- type DecoratorData = Record<string, any>;
362
- type Decorator = (uid: string, data: DecoratorData) => {
363
- attributes?: {};
364
- classes?: string[];
365
- };
366
- type AnnotationListener = (state: boolean, name: string, data?: {
367
- uid: string;
368
- nodes: any[];
369
- }) => void;
370
- type AnnotationListenerApi = AnnotationListener;
371
- interface AnnotatorSettings {
372
- decorate: Decorator;
373
- persistent?: boolean;
374
- }
375
- interface Annotator {
376
- register: (name: string, settings: AnnotatorSettings) => void;
377
- annotate: (name: string, data: DecoratorData) => void;
378
- annotationChanged: (name: string, f: AnnotationListenerApi) => void;
379
- remove: (name: string) => void;
380
- removeAll: (name: string) => void;
381
- getAll: (name: string) => Record<string, Element[]>;
382
- }
383
- interface IsEmptyOptions {
384
- readonly skipBogus?: boolean;
385
- readonly includeZwsp?: boolean;
386
- readonly checkRootAsContent?: boolean;
387
- readonly isContent?: (node: Node) => boolean;
388
- }
389
- interface GeomRect {
390
- readonly x: number;
391
- readonly y: number;
392
- readonly w: number;
393
- readonly h: number;
394
- }
395
- interface Rect {
396
- inflate: (rect: GeomRect, w: number, h: number) => GeomRect;
397
- relativePosition: (rect: GeomRect, targetRect: GeomRect, rel: string) => GeomRect;
398
- findBestRelativePosition: (rect: GeomRect, targetRect: GeomRect, constrainRect: GeomRect, rels: string[]) => string | null;
399
- intersect: (rect: GeomRect, cropRect: GeomRect) => GeomRect | null;
400
- clamp: (rect: GeomRect, clampRect: GeomRect, fixedSize?: boolean) => GeomRect;
401
- create: (x: number, y: number, w: number, h: number) => GeomRect;
402
- fromClientRect: (clientRect: DOMRect) => GeomRect;
403
- }
404
- interface NotificationManagerImpl {
405
- open: (spec: NotificationSpec, closeCallback: () => void, hasEditorFocus: () => boolean) => NotificationApi;
406
- close: <T extends NotificationApi>(notification: T) => void;
407
- getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
408
- }
409
- interface NotificationSpec {
410
- type?: 'info' | 'warning' | 'error' | 'success';
411
- text: string;
412
- icon?: string;
413
- progressBar?: boolean;
414
- timeout?: number;
415
- }
416
- interface NotificationApi {
417
- close: () => void;
418
- progressBar: {
419
- value: (percent: number) => void;
190
+ add: (blobInfo: BlobInfo) => void;
191
+ get: (id: string) => BlobInfo | undefined;
192
+ getByUri: (blobUri: string) => BlobInfo | undefined;
193
+ getByData: (base64: string, type: string) => BlobInfo | undefined;
194
+ findFirst: (predicate: (blobInfo: BlobInfo) => boolean) => BlobInfo | undefined;
195
+ removeByUri: (blobUri: string) => void;
196
+ destroy: () => void;
197
+ }
198
+ interface NotificationManagerImpl {
199
+ open: (spec: NotificationSpec, closeCallback: () => void, hasEditorFocus: () => boolean) => NotificationApi;
200
+ close: <T extends NotificationApi>(notification: T) => void;
201
+ getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
202
+ }
203
+ interface NotificationSpec {
204
+ type?: 'info' | 'warning' | 'error' | 'success';
205
+ text: string;
206
+ icon?: string;
207
+ progressBar?: boolean;
208
+ timeout?: number;
209
+ }
210
+ interface NotificationApi {
211
+ close: () => void;
212
+ progressBar: {
213
+ value: (percent: number) => void;
214
+ };
215
+ text: (text: string) => void;
216
+ reposition: () => void;
217
+ getEl: () => HTMLElement;
218
+ settings: NotificationSpec;
219
+ }
220
+ interface NotificationManager {
221
+ open: (spec: NotificationSpec) => NotificationApi;
222
+ close: () => void;
223
+ getNotifications: () => NotificationApi[];
224
+ }
225
+ interface UploadFailure {
226
+ message: string;
227
+ remove?: boolean;
228
+ }
229
+ type ProgressFn = (percent: number) => void;
230
+ interface UploadFileData {
231
+ url: string;
232
+ fileName: string;
233
+ }
234
+ type UploadHandler<T extends UploadFileData | string = string> = (blobInfo: BlobInfo, progress: ProgressFn) => Promise<T>;
235
+ interface UploadResult$2 {
236
+ url: string;
237
+ blobInfo: BlobInfo;
238
+ status: boolean;
239
+ error?: UploadFailure;
240
+ }
241
+ interface IsEmptyOptions {
242
+ readonly skipBogus?: boolean;
243
+ readonly includeZwsp?: boolean;
244
+ readonly checkRootAsContent?: boolean;
245
+ readonly isContent?: (node: Node) => boolean;
246
+ }
247
+ interface GeomRect {
248
+ readonly x: number;
249
+ readonly y: number;
250
+ readonly w: number;
251
+ readonly h: number;
252
+ }
253
+ interface Rect {
254
+ inflate: (rect: GeomRect, w: number, h: number) => GeomRect;
255
+ relativePosition: (rect: GeomRect, targetRect: GeomRect, rel: string) => GeomRect;
256
+ findBestRelativePosition: (rect: GeomRect, targetRect: GeomRect, constrainRect: GeomRect, rels: string[]) => string | null;
257
+ intersect: (rect: GeomRect, cropRect: GeomRect) => GeomRect | null;
258
+ clamp: (rect: GeomRect, clampRect: GeomRect, fixedSize?: boolean) => GeomRect;
259
+ create: (x: number, y: number, w: number, h: number) => GeomRect;
260
+ fromClientRect: (clientRect: DOMRect) => GeomRect;
261
+ }
262
+ type StyleMap = Record<string, string | number>;
263
+ interface StylesSettings {
264
+ allow_script_urls?: boolean;
265
+ allow_svg_data_urls?: boolean;
266
+ url_converter?: URLConverter;
267
+ url_converter_scope?: any;
268
+ }
269
+ interface Styles {
270
+ parse: (css: string | undefined) => Record<string, string>;
271
+ serialize: (styles: StyleMap, elementName?: string) => string;
272
+ }
273
+ type NormalizedEvent<E, T = any> = E & {
274
+ readonly type: string;
275
+ readonly target: T;
276
+ readonly isDefaultPrevented: () => boolean;
277
+ readonly preventDefault: () => void;
278
+ readonly isPropagationStopped: () => boolean;
279
+ readonly stopPropagation: () => void;
280
+ readonly isImmediatePropagationStopped: () => boolean;
281
+ readonly stopImmediatePropagation: () => void;
282
+ };
283
+ type MappedEvent<T extends {}, K extends string> = K extends keyof T ? T[K] : any;
284
+ interface NativeEventMap {
285
+ beforepaste: Event;
286
+ blur: FocusEvent;
287
+ beforeinput: InputEvent;
288
+ click: MouseEvent;
289
+ compositionend: Event;
290
+ compositionstart: Event;
291
+ compositionupdate: Event;
292
+ contextmenu: PointerEvent;
293
+ copy: ClipboardEvent;
294
+ cut: ClipboardEvent;
295
+ dblclick: MouseEvent;
296
+ drag: DragEvent;
297
+ dragdrop: DragEvent;
298
+ dragend: DragEvent;
299
+ draggesture: DragEvent;
300
+ dragover: DragEvent;
301
+ dragstart: DragEvent;
302
+ drop: DragEvent;
303
+ focus: FocusEvent;
304
+ focusin: FocusEvent;
305
+ focusout: FocusEvent;
306
+ input: InputEvent;
307
+ keydown: KeyboardEvent;
308
+ keypress: KeyboardEvent;
309
+ keyup: KeyboardEvent;
310
+ mousedown: MouseEvent;
311
+ mouseenter: MouseEvent;
312
+ mouseleave: MouseEvent;
313
+ mousemove: MouseEvent;
314
+ mouseout: MouseEvent;
315
+ mouseover: MouseEvent;
316
+ mouseup: MouseEvent;
317
+ paste: ClipboardEvent;
318
+ selectionchange: Event;
319
+ submit: Event;
320
+ touchend: TouchEvent;
321
+ touchmove: TouchEvent;
322
+ touchstart: TouchEvent;
323
+ touchcancel: TouchEvent;
324
+ wheel: WheelEvent;
325
+ }
326
+ type EditorEvent<T> = NormalizedEvent<T>;
327
+ interface EventDispatcherSettings {
328
+ scope?: any;
329
+ toggleEvent?: (name: string, state: boolean) => void | boolean;
330
+ beforeFire?: <T>(args: EditorEvent<T>) => void;
331
+ }
332
+ interface EventDispatcherConstructor<T extends {}> {
333
+ readonly prototype: EventDispatcher<T>;
334
+ new (settings?: EventDispatcherSettings): EventDispatcher<T>;
335
+ isNative: (name: string) => boolean;
336
+ }
337
+ declare class EventDispatcher<T extends {}> {
338
+ static isNative(name: string): boolean;
339
+ private readonly settings;
340
+ private readonly scope;
341
+ private readonly toggleEvent;
342
+ private bindings;
343
+ constructor(settings?: EventDispatcherSettings);
344
+ fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
345
+ dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
346
+ on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void | boolean), prepend?: boolean, extra?: {}): this;
347
+ off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
348
+ once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
349
+ has(name: string): boolean;
350
+ }
351
+ type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void | boolean;
352
+ type EventUtilsEvent<T> = NormalizedEvent<T> & {
353
+ metaKey: boolean;
354
+ };
355
+ interface Callback$1<T> {
356
+ func: EventUtilsCallback<T>;
357
+ scope: any;
358
+ }
359
+ interface CallbackList<T> extends Array<Callback$1<T>> {
360
+ fakeName: string | false;
361
+ capture: boolean;
362
+ nativeHandler: EventListener;
363
+ }
364
+ interface EventUtilsConstructor {
365
+ readonly prototype: EventUtils;
366
+ new (): EventUtils;
367
+ Event: EventUtils;
368
+ }
369
+ declare class EventUtils {
370
+ static Event: EventUtils;
371
+ domLoaded: boolean;
372
+ events: Record<number, Record<string, CallbackList<any>>>;
373
+ private readonly expando;
374
+ private hasFocusIn;
375
+ private count;
376
+ constructor();
377
+ bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
378
+ bind<T = any>(target: any, names: string, callback: EventUtilsCallback<T>, scope?: any): EventUtilsCallback<T>;
379
+ unbind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
380
+ unbind<T = any>(target: any, names: string, callback?: EventUtilsCallback<T>): this;
381
+ unbind(target: any): this;
382
+ fire(target: any, name: string, args?: {}): this;
383
+ dispatch(target: any, name: string, args?: {}): this;
384
+ clean(target: any): this;
385
+ destroy(): void;
386
+ cancel<T>(e: EventUtilsEvent<T>): boolean;
387
+ private executeHandlers;
388
+ }
389
+ interface StyleSheetLoaderSettings {
390
+ maxLoadTime?: number;
391
+ contentCssCors?: boolean;
392
+ crossOrigin?: (url: string) => string | undefined;
393
+ referrerPolicy?: ReferrerPolicy;
394
+ }
395
+ interface StyleSheetLoader {
396
+ load: (url: string) => Promise<void>;
397
+ loadRawCss: (key: string, css: string) => void;
398
+ loadAll: (urls: string[]) => Promise<string[]>;
399
+ unload: (url: string) => void;
400
+ unloadRawCss: (key: string) => void;
401
+ unloadAll: (urls: string[]) => void;
402
+ _setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
403
+ _setContentCssCors: (contentCssCors: boolean) => void;
404
+ _setCrossOrigin: (crossOrigin: (url: string) => string | undefined) => void;
405
+ }
406
+ interface SetAttribEvent {
407
+ attrElm: HTMLElement;
408
+ attrName: string;
409
+ attrValue: string | boolean | number | null;
410
+ }
411
+ interface DOMUtilsSettings {
412
+ schema: Schema;
413
+ url_converter: URLConverter;
414
+ url_converter_scope: any;
415
+ ownEvents: boolean;
416
+ keep_values: boolean;
417
+ update_styles: boolean;
418
+ root_element: HTMLElement | null;
419
+ collect: boolean;
420
+ onSetAttrib: (event: SetAttribEvent) => void;
421
+ contentCssCors: boolean;
422
+ referrerPolicy: ReferrerPolicy;
423
+ crossOrigin: (url: string, resourceType: 'script' | 'stylesheet') => string | undefined;
424
+ }
425
+ type Target = Node | Window;
426
+ type RunArguments<T extends Node = Node> = string | T | Array<string | T> | null;
427
+ type BoundEvent = [
428
+ Target,
429
+ string,
430
+ EventUtilsCallback<any>,
431
+ any
432
+ ];
433
+ type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
434
+ type RunResult<T, R> = T extends Array<any> ? R[] : false | R;
435
+ interface DOMUtils {
436
+ doc: Document;
437
+ settings: Partial<DOMUtilsSettings>;
438
+ win: Window;
439
+ files: Record<string, boolean>;
440
+ stdMode: boolean;
441
+ boxModel: boolean;
442
+ styleSheetLoader: StyleSheetLoader;
443
+ boundEvents: BoundEvent[];
444
+ styles: Styles;
445
+ schema: Schema;
446
+ events: EventUtils;
447
+ root: Node | null;
448
+ isBlock: {
449
+ (node: Node | null): node is HTMLElement;
450
+ (node: string): boolean;
451
+ };
452
+ clone: (node: Node, deep: boolean) => Node;
453
+ getRoot: () => HTMLElement;
454
+ getViewPort: (argWin?: Window) => GeomRect;
455
+ getRect: (elm: string | HTMLElement) => GeomRect;
456
+ getSize: (elm: string | HTMLElement) => {
457
+ w: number;
458
+ h: number;
459
+ };
460
+ getParent: {
461
+ <K extends keyof HTMLElementTagNameMap>(node: string | Node | null, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
462
+ <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node): T | null;
463
+ (node: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node): Node | null;
464
+ };
465
+ getParents: {
466
+ <K extends keyof HTMLElementTagNameMap>(elm: string | HTMLElementTagNameMap[K] | null, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
467
+ <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node, collect?: boolean): T[];
468
+ (elm: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node, collect?: boolean): Node[];
469
+ };
470
+ get: {
471
+ <T extends Node>(elm: T): T;
472
+ (elm: string): HTMLElement | null;
473
+ };
474
+ getNext: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
475
+ getPrev: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
476
+ select: {
477
+ <K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
478
+ <T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
479
+ };
480
+ is: {
481
+ <T extends Element>(elm: Node | Node[] | null, selector: string): elm is T;
482
+ (elm: Node | Node[] | null, selector: string): boolean;
483
+ };
484
+ add: (parentElm: RunArguments, name: string | Element, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null, create?: boolean) => HTMLElement;
485
+ create: {
486
+ <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElementTagNameMap[K];
487
+ (name: string, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElement;
488
+ };
489
+ createHTML: (name: string, attrs?: Record<string, string | null>, html?: string) => string;
490
+ createFragment: (html?: string) => DocumentFragment;
491
+ remove: {
492
+ <T extends Node>(node: T | T[], keepChildren?: boolean): typeof node extends Array<any> ? T[] : T;
493
+ <T extends Node>(node: string, keepChildren?: boolean): T | false;
494
+ };
495
+ getStyle: {
496
+ (elm: Element, name: string, computed: true): string;
497
+ (elm: string | Element | null, name: string, computed?: boolean): string | undefined;
498
+ };
499
+ setStyle: (elm: string | Element | Element[], name: string, value: string | number | null) => void;
500
+ setStyles: (elm: string | Element | Element[], stylesArg: StyleMap) => void;
501
+ removeAllAttribs: (e: RunArguments<Element>) => void;
502
+ setAttrib: (elm: RunArguments<Element>, name: string, value: string | boolean | number | null) => void;
503
+ setAttribs: (elm: RunArguments<Element>, attrs: Record<string, string | boolean | number | null>) => void;
504
+ getAttrib: (elm: string | Element | null, name: string, defaultVal?: string) => string;
505
+ getAttribs: (elm: string | Element) => NamedNodeMap | Attr[];
506
+ getPos: (elm: string | Element, rootElm?: Node) => {
507
+ x: number;
508
+ y: number;
509
+ };
510
+ parseStyle: (cssText: string) => Record<string, string>;
511
+ serializeStyle: (stylesArg: StyleMap, name?: string) => string;
512
+ addStyle: (cssText: string) => void;
513
+ loadCSS: (url: string) => void;
514
+ hasClass: (elm: string | Element, cls: string) => boolean;
515
+ addClass: (elm: RunArguments<Element>, cls: string) => void;
516
+ removeClass: (elm: RunArguments<Element>, cls: string) => void;
517
+ toggleClass: (elm: RunArguments<Element>, cls: string, state?: boolean) => void;
518
+ show: (elm: string | Node | Node[]) => void;
519
+ hide: (elm: string | Node | Node[]) => void;
520
+ isHidden: (elm: string | Node) => boolean;
521
+ uniqueId: (prefix?: string) => string;
522
+ setHTML: (elm: RunArguments<Element>, html: string) => void;
523
+ getOuterHTML: (elm: string | Node) => string;
524
+ setOuterHTML: (elm: string | Node | Node[], html: string) => void;
525
+ decode: (text: string) => string;
526
+ encode: (text: string) => string;
527
+ insertAfter: {
528
+ <T extends Node>(node: T | T[], reference: string | Node): T;
529
+ <T extends Node>(node: RunArguments<T>, reference: string | Node): RunResult<typeof node, T>;
530
+ };
531
+ replace: {
532
+ <T extends Node>(newElm: Node, oldElm: T | T[], keepChildren?: boolean): T;
533
+ <T extends Node>(newElm: Node, oldElm: RunArguments<T>, keepChildren?: boolean): false | T;
420
534
  };
421
- text: (text: string) => void;
422
- reposition: () => void;
423
- getEl: () => HTMLElement;
424
- settings: NotificationSpec;
425
- }
426
- interface NotificationManager {
427
- open: (spec: NotificationSpec) => NotificationApi;
428
- close: () => void;
429
- getNotifications: () => NotificationApi[];
430
- }
431
- interface UploadFailure {
432
- message: string;
433
- remove?: boolean;
434
- }
435
- type ProgressFn = (percent: number) => void;
436
- type UploadHandler = (blobInfo: BlobInfo, progress: ProgressFn) => Promise<string>;
437
- interface UploadResult$2 {
438
- url: string;
439
- blobInfo: BlobInfo;
440
- status: boolean;
441
- error?: UploadFailure;
535
+ rename: {
536
+ <K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
537
+ (elm: Element, name: string): Element;
538
+ };
539
+ findCommonAncestor: (a: Node, b: Node) => Node | null;
540
+ run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): typeof elm extends Array<any> ? R[] : R;
541
+ run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): RunResult<typeof elm, R>;
542
+ isEmpty: (node: Node, elements?: Record<string, any>, options?: IsEmptyOptions) => boolean;
543
+ createRng: () => Range;
544
+ nodeIndex: (node: Node, normalized?: boolean) => number;
545
+ split: {
546
+ <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T | undefined;
547
+ <T extends Node>(parentElm: Node, splitElm: T): T | undefined;
548
+ };
549
+ bind: {
550
+ <K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
551
+ <K extends string>(target: Target[], name: K, func: Callback<K>, scope?: any): Callback<K>[];
552
+ };
553
+ unbind: {
554
+ <K extends string>(target: Target, name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils;
555
+ <K extends string>(target: Target[], name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils[];
556
+ };
557
+ fire: (target: Node | Window, name: string, evt?: {}) => EventUtils;
558
+ dispatch: (target: Node | Window, name: string, evt?: {}) => EventUtils;
559
+ getContentEditable: (node: Node) => string | null;
560
+ getContentEditableParent: (node: Node) => string | null;
561
+ isEditable: (node: Node | null | undefined) => boolean;
562
+ destroy: () => void;
563
+ isChildOf: (node: Node, parent: Node) => boolean;
564
+ dumpRng: (r: Range) => string;
442
565
  }
443
566
  type BlockPatternTrigger = 'enter' | 'space';
444
567
  interface RawPattern {
@@ -556,6 +679,10 @@ type CustomEditorSpec = CustomEditorOldSpec | CustomEditorNewSpec;
556
679
  interface DropZoneSpec extends FormComponentWithLabelSpec {
557
680
  type: 'dropzone';
558
681
  context?: string;
682
+ dropAreaLabel?: string;
683
+ buttonLabel?: string;
684
+ allowedFileTypes?: string;
685
+ allowedFileExtensions?: string[];
559
686
  }
560
687
  interface GridSpec {
561
688
  type: 'grid';
@@ -650,6 +777,7 @@ interface TextAreaSpec extends FormComponentWithLabelSpec {
650
777
  maximized?: boolean;
651
778
  enabled?: boolean;
652
779
  context?: string;
780
+ spellcheck?: boolean;
653
781
  }
654
782
  interface BaseToolbarButtonSpec<I extends BaseToolbarButtonInstanceApi> {
655
783
  enabled?: boolean;
@@ -879,6 +1007,7 @@ type ColumnTypes$1 = number | 'auto';
879
1007
  interface ToolbarSplitButtonSpec {
880
1008
  type?: 'splitbutton';
881
1009
  tooltip?: string;
1010
+ chevronTooltip?: string;
882
1011
  icon?: string;
883
1012
  text?: string;
884
1013
  select?: SelectPredicate;
@@ -1450,6 +1579,42 @@ interface RemoveInlineFormat extends Inline, CommonRemoveFormat<RemoveInlineForm
1450
1579
  }
1451
1580
  interface RemoveSelectorFormat extends Selector, CommonRemoveFormat<RemoveSelectorFormat> {
1452
1581
  }
1582
+ type UndoLevelType = 'fragmented' | 'complete';
1583
+ interface BaseUndoLevel {
1584
+ type: UndoLevelType;
1585
+ bookmark: Bookmark | null;
1586
+ beforeBookmark: Bookmark | null;
1587
+ }
1588
+ interface FragmentedUndoLevel extends BaseUndoLevel {
1589
+ type: 'fragmented';
1590
+ fragments: string[];
1591
+ content: '';
1592
+ }
1593
+ interface CompleteUndoLevel extends BaseUndoLevel {
1594
+ type: 'complete';
1595
+ fragments: null;
1596
+ content: string;
1597
+ }
1598
+ type NewUndoLevel = CompleteUndoLevel | FragmentedUndoLevel;
1599
+ type UndoLevel = NewUndoLevel & {
1600
+ bookmark: Bookmark;
1601
+ };
1602
+ interface UndoManager {
1603
+ data: UndoLevel[];
1604
+ typing: boolean;
1605
+ add: (level?: Partial<UndoLevel>, event?: EditorEvent<unknown>) => UndoLevel | null;
1606
+ dispatchChange: () => void;
1607
+ beforeChange: () => void;
1608
+ undo: () => UndoLevel | undefined;
1609
+ redo: () => UndoLevel | undefined;
1610
+ clear: () => void;
1611
+ reset: () => void;
1612
+ hasUndo: () => boolean;
1613
+ hasRedo: () => boolean;
1614
+ transact: (callback: () => void) => UndoLevel | null;
1615
+ ignore: (callback: () => void) => void;
1616
+ extra: (callback1: () => void, callback2: () => void) => void;
1617
+ }
1453
1618
  interface Filter<C extends Function> {
1454
1619
  name: string;
1455
1620
  callbacks: C[];
@@ -1471,6 +1636,7 @@ interface DomParserSettings {
1471
1636
  allow_html_data_urls?: boolean;
1472
1637
  allow_svg_data_urls?: boolean;
1473
1638
  allow_conditional_comments?: boolean;
1639
+ allow_html_in_comments?: boolean;
1474
1640
  allow_html_in_named_anchor?: boolean;
1475
1641
  allow_script_urls?: boolean;
1476
1642
  allow_unsafe_link_target?: boolean;
@@ -1504,21 +1670,6 @@ interface DomParser {
1504
1670
  removeNodeFilter: (name: string, callback?: ParserFilterCallback) => void;
1505
1671
  parse: (html: string, args?: ParserArgs) => AstNode;
1506
1672
  }
1507
- interface StyleSheetLoaderSettings {
1508
- maxLoadTime?: number;
1509
- contentCssCors?: boolean;
1510
- referrerPolicy?: ReferrerPolicy;
1511
- }
1512
- interface StyleSheetLoader {
1513
- load: (url: string) => Promise<void>;
1514
- loadRawCss: (key: string, css: string) => void;
1515
- loadAll: (urls: string[]) => Promise<string[]>;
1516
- unload: (url: string) => void;
1517
- unloadRawCss: (key: string) => void;
1518
- unloadAll: (urls: string[]) => void;
1519
- _setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
1520
- _setContentCssCors: (contentCssCors: boolean) => void;
1521
- }
1522
1673
  type Registry = Registry$1;
1523
1674
  interface EditorUiApi {
1524
1675
  show: () => void;
@@ -1622,7 +1773,7 @@ interface ChangeEvent {
1622
1773
  lastLevel: UndoLevel | undefined;
1623
1774
  }
1624
1775
  interface AddUndoEvent extends ChangeEvent {
1625
- originalEvent: Event | undefined;
1776
+ originalEvent: EditorEvent<unknown> | undefined;
1626
1777
  }
1627
1778
  interface UndoRedoEvent {
1628
1779
  level: UndoLevel;
@@ -1885,6 +2036,10 @@ type ThemeInitFunc = (editor: Editor, elm: HTMLElement) => {
1885
2036
  iframeHeight?: number;
1886
2037
  api?: EditorUiApi;
1887
2038
  };
2039
+ interface DocumentsFileTypes {
2040
+ readonly mimeType: string;
2041
+ readonly extensions: Array<string>;
2042
+ }
1888
2043
  type SetupCallback = (editor: Editor) => void;
1889
2044
  type FilePickerCallback = (callback: (value: string, meta?: Record<string, any>) => void, value: string, meta: Record<string, any>) => void;
1890
2045
  type FilePickerValidationStatus = 'valid' | 'unknown' | 'invalid' | 'none';
@@ -1906,6 +2061,7 @@ interface ToolbarGroup {
1906
2061
  }
1907
2062
  type ToolbarMode = 'floating' | 'sliding' | 'scrolling' | 'wrap';
1908
2063
  type ToolbarLocation = 'top' | 'bottom' | 'auto';
2064
+ type CrossOrigin = (url: string, resourceType: 'script' | 'stylesheet') => 'anonymous' | 'use-credentials' | undefined;
1909
2065
  interface BaseEditorOptions {
1910
2066
  a11y_advanced_options?: boolean;
1911
2067
  add_form_submit_trigger?: boolean;
@@ -1970,6 +2126,7 @@ interface BaseEditorOptions {
1970
2126
  extended_mathml_elements?: string[];
1971
2127
  extended_valid_elements?: string;
1972
2128
  event_root?: string;
2129
+ fetch_users?: (userIds: string[]) => Promise<ExpectedUser[]>;
1973
2130
  file_picker_callback?: FilePickerCallback;
1974
2131
  file_picker_types?: string;
1975
2132
  file_picker_validator_handler?: FilePickerValidationCallback;
@@ -2020,6 +2177,7 @@ interface BaseEditorOptions {
2020
2177
  language_load?: boolean;
2021
2178
  language_url?: string;
2022
2179
  line_height_formats?: string;
2180
+ list_max_depth?: number;
2023
2181
  max_height?: number;
2024
2182
  max_width?: number;
2025
2183
  menu?: Record<string, {
@@ -2056,6 +2214,7 @@ interface BaseEditorOptions {
2056
2214
  protect?: RegExp[];
2057
2215
  readonly?: boolean;
2058
2216
  referrer_policy?: ReferrerPolicy;
2217
+ crossorigin?: CrossOrigin;
2059
2218
  relative_urls?: boolean;
2060
2219
  remove_script_host?: boolean;
2061
2220
  remove_trailing_brs?: boolean;
@@ -2078,6 +2237,7 @@ interface BaseEditorOptions {
2078
2237
  style_formats_merge?: boolean;
2079
2238
  submit_patch?: boolean;
2080
2239
  suffix?: string;
2240
+ user_id?: string;
2081
2241
  table_tab_navigation?: boolean;
2082
2242
  target?: HTMLElement;
2083
2243
  text_patterns?: RawPattern[] | false;
@@ -2151,6 +2311,7 @@ interface EditorOptions extends NormalizedEditorOptions {
2151
2311
  content_css: string[];
2152
2312
  contextmenu: string[];
2153
2313
  convert_unsafe_embeds: boolean;
2314
+ crossorigin: CrossOrigin;
2154
2315
  custom_colors: boolean;
2155
2316
  default_font_stack: string[];
2156
2317
  document_base_url: string;
@@ -2211,220 +2372,118 @@ interface EditorOptions extends NormalizedEditorOptions {
2211
2372
  toolbar_sticky_offset: number;
2212
2373
  text_patterns: Pattern[];
2213
2374
  text_patterns_lookup: DynamicPatternsLookup;
2375
+ user_id: string;
2214
2376
  visual: boolean;
2215
2377
  visual_anchor_class: string;
2216
2378
  visual_table_class: string;
2217
2379
  width: number | string;
2218
2380
  xss_sanitization: boolean;
2219
2381
  disabled: boolean;
2382
+ documents_file_types: DocumentsFileTypes[];
2220
2383
  }
2221
- type StyleMap = Record<string, string | number>;
2222
- interface StylesSettings {
2223
- allow_script_urls?: boolean;
2224
- allow_svg_data_urls?: boolean;
2225
- url_converter?: URLConverter;
2226
- url_converter_scope?: any;
2384
+ type Content = string | AstNode;
2385
+ type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
2386
+ interface GetContentArgs {
2387
+ format: ContentFormat;
2388
+ get: boolean;
2389
+ getInner: boolean;
2390
+ no_events?: boolean;
2391
+ save?: boolean;
2392
+ source_view?: boolean;
2393
+ indent?: boolean;
2394
+ entity_encoding?: EntityEncoding;
2395
+ [key: string]: any;
2227
2396
  }
2228
- interface Styles {
2229
- parse: (css: string | undefined) => Record<string, string>;
2230
- serialize: (styles: StyleMap, elementName?: string) => string;
2397
+ interface SetContentArgs {
2398
+ format: string;
2399
+ set: boolean;
2400
+ content: Content;
2401
+ no_events?: boolean;
2402
+ no_selection?: boolean;
2403
+ paste?: boolean;
2404
+ load?: boolean;
2405
+ initial?: boolean;
2406
+ [key: string]: any;
2407
+ }
2408
+ interface GetSelectionContentArgs extends GetContentArgs {
2409
+ selection?: boolean;
2410
+ contextual?: boolean;
2411
+ }
2412
+ interface SetSelectionContentArgs extends SetContentArgs {
2413
+ content: string;
2414
+ selection?: boolean;
2415
+ }
2416
+ interface BlobInfoImagePair {
2417
+ image: HTMLImageElement;
2418
+ blobInfo: BlobInfo;
2419
+ }
2420
+ interface UrlObject {
2421
+ prefix: string;
2422
+ resource: string;
2423
+ suffix: string;
2424
+ }
2425
+ type WaitState = 'added' | 'loaded';
2426
+ type AddOnConstructor<T> = (editor: Editor, url: string) => T;
2427
+ interface AddOnManager<T> {
2428
+ items: AddOnConstructor<T>[];
2429
+ urls: Record<string, string>;
2430
+ lookup: Record<string, {
2431
+ instance: AddOnConstructor<T>;
2432
+ }>;
2433
+ get: (name: string) => AddOnConstructor<T> | undefined;
2434
+ requireLangPack: (name: string, languages?: string) => void;
2435
+ add: (id: string, addOn: AddOnConstructor<T>) => AddOnConstructor<T>;
2436
+ remove: (name: string) => void;
2437
+ createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
2438
+ load: (name: string, addOnUrl: string | UrlObject) => Promise<void>;
2439
+ waitFor: (name: string, state?: WaitState) => Promise<void>;
2231
2440
  }
2232
- type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void | boolean;
2233
- type EventUtilsEvent<T> = NormalizedEvent<T> & {
2234
- metaKey: boolean;
2235
- };
2236
- interface Callback$1<T> {
2237
- func: EventUtilsCallback<T>;
2238
- scope: any;
2441
+ type LicenseKeyManagerAddon = AddOnConstructor<LicenseKeyManager>;
2442
+ interface ValidateData {
2443
+ plugin?: string;
2444
+ [key: string]: any;
2239
2445
  }
2240
- interface CallbackList<T> extends Array<Callback$1<T>> {
2241
- fakeName: string | false;
2242
- capture: boolean;
2243
- nativeHandler: EventListener;
2446
+ interface LicenseKeyManager {
2447
+ readonly validate: (data: ValidateData) => Promise<boolean>;
2244
2448
  }
2245
- interface EventUtilsConstructor {
2246
- readonly prototype: EventUtils;
2247
- new (): EventUtils;
2248
- Event: EventUtils;
2449
+ declare class NodeChange {
2450
+ private readonly editor;
2451
+ private lastPath;
2452
+ constructor(editor: Editor);
2453
+ nodeChanged(args?: Record<string, any>): void;
2454
+ private isSameElementPath;
2249
2455
  }
2250
- declare class EventUtils {
2251
- static Event: EventUtils;
2252
- domLoaded: boolean;
2253
- events: Record<number, Record<string, CallbackList<any>>>;
2254
- private readonly expando;
2255
- private hasFocusIn;
2256
- private count;
2257
- constructor();
2258
- bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
2259
- bind<T = any>(target: any, names: string, callback: EventUtilsCallback<T>, scope?: any): EventUtilsCallback<T>;
2260
- unbind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
2261
- unbind<T = any>(target: any, names: string, callback?: EventUtilsCallback<T>): this;
2262
- unbind(target: any): this;
2263
- fire(target: any, name: string, args?: {}): this;
2264
- dispatch(target: any, name: string, args?: {}): this;
2265
- clean(target: any): this;
2266
- destroy(): void;
2267
- cancel<T>(e: EventUtilsEvent<T>): boolean;
2268
- private executeHandlers;
2456
+ interface SelectionOverrides {
2457
+ showCaret: (direction: number, node: HTMLElement, before: boolean, scrollIntoView?: boolean) => Range | null;
2458
+ showBlockCaretContainer: (blockCaretContainer: HTMLElement) => void;
2459
+ hideFakeCaret: () => void;
2460
+ destroy: () => void;
2269
2461
  }
2270
- interface SetAttribEvent {
2271
- attrElm: HTMLElement;
2272
- attrName: string;
2273
- attrValue: string | boolean | number | null;
2462
+ interface Quirks {
2463
+ refreshContentEditable(): void;
2464
+ isHidden(): boolean;
2274
2465
  }
2275
- interface DOMUtilsSettings {
2276
- schema: Schema;
2277
- url_converter: URLConverter;
2278
- url_converter_scope: any;
2279
- ownEvents: boolean;
2280
- keep_values: boolean;
2281
- update_styles: boolean;
2282
- root_element: HTMLElement | null;
2283
- collect: boolean;
2284
- onSetAttrib: (event: SetAttribEvent) => void;
2285
- contentCssCors: boolean;
2286
- referrerPolicy: ReferrerPolicy;
2466
+ type DecoratorData = Record<string, any>;
2467
+ type Decorator = (uid: string, data: DecoratorData) => {
2468
+ attributes?: {};
2469
+ classes?: string[];
2470
+ };
2471
+ type AnnotationListener = (state: boolean, name: string, data?: {
2472
+ uid: string;
2473
+ nodes: any[];
2474
+ }) => void;
2475
+ type AnnotationListenerApi = AnnotationListener;
2476
+ interface AnnotatorSettings {
2477
+ decorate: Decorator;
2478
+ persistent?: boolean;
2287
2479
  }
2288
- type Target = Node | Window;
2289
- type RunArguments<T extends Node = Node> = string | T | Array<string | T> | null;
2290
- type BoundEvent = [
2291
- Target,
2292
- string,
2293
- EventUtilsCallback<any>,
2294
- any
2295
- ];
2296
- type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
2297
- type RunResult<T, R> = T extends Array<any> ? R[] : false | R;
2298
- interface DOMUtils {
2299
- doc: Document;
2300
- settings: Partial<DOMUtilsSettings>;
2301
- win: Window;
2302
- files: Record<string, boolean>;
2303
- stdMode: boolean;
2304
- boxModel: boolean;
2305
- styleSheetLoader: StyleSheetLoader;
2306
- boundEvents: BoundEvent[];
2307
- styles: Styles;
2308
- schema: Schema;
2309
- events: EventUtils;
2310
- root: Node | null;
2311
- isBlock: {
2312
- (node: Node | null): node is HTMLElement;
2313
- (node: string): boolean;
2314
- };
2315
- clone: (node: Node, deep: boolean) => Node;
2316
- getRoot: () => HTMLElement;
2317
- getViewPort: (argWin?: Window) => GeomRect;
2318
- getRect: (elm: string | HTMLElement) => GeomRect;
2319
- getSize: (elm: string | HTMLElement) => {
2320
- w: number;
2321
- h: number;
2322
- };
2323
- getParent: {
2324
- <K extends keyof HTMLElementTagNameMap>(node: string | Node | null, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
2325
- <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node): T | null;
2326
- (node: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node): Node | null;
2327
- };
2328
- getParents: {
2329
- <K extends keyof HTMLElementTagNameMap>(elm: string | HTMLElementTagNameMap[K] | null, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
2330
- <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node, collect?: boolean): T[];
2331
- (elm: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node, collect?: boolean): Node[];
2332
- };
2333
- get: {
2334
- <T extends Node>(elm: T): T;
2335
- (elm: string): HTMLElement | null;
2336
- };
2337
- getNext: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
2338
- getPrev: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
2339
- select: {
2340
- <K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
2341
- <T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
2342
- };
2343
- is: {
2344
- <T extends Element>(elm: Node | Node[] | null, selector: string): elm is T;
2345
- (elm: Node | Node[] | null, selector: string): boolean;
2346
- };
2347
- add: (parentElm: RunArguments, name: string | Element, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null, create?: boolean) => HTMLElement;
2348
- create: {
2349
- <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElementTagNameMap[K];
2350
- (name: string, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElement;
2351
- };
2352
- createHTML: (name: string, attrs?: Record<string, string | null>, html?: string) => string;
2353
- createFragment: (html?: string) => DocumentFragment;
2354
- remove: {
2355
- <T extends Node>(node: T | T[], keepChildren?: boolean): typeof node extends Array<any> ? T[] : T;
2356
- <T extends Node>(node: string, keepChildren?: boolean): T | false;
2357
- };
2358
- getStyle: {
2359
- (elm: Element, name: string, computed: true): string;
2360
- (elm: string | Element | null, name: string, computed?: boolean): string | undefined;
2361
- };
2362
- setStyle: (elm: string | Element | Element[], name: string, value: string | number | null) => void;
2363
- setStyles: (elm: string | Element | Element[], stylesArg: StyleMap) => void;
2364
- removeAllAttribs: (e: RunArguments<Element>) => void;
2365
- setAttrib: (elm: RunArguments<Element>, name: string, value: string | boolean | number | null) => void;
2366
- setAttribs: (elm: RunArguments<Element>, attrs: Record<string, string | boolean | number | null>) => void;
2367
- getAttrib: (elm: string | Element | null, name: string, defaultVal?: string) => string;
2368
- getAttribs: (elm: string | Element) => NamedNodeMap | Attr[];
2369
- getPos: (elm: string | Element, rootElm?: Node) => {
2370
- x: number;
2371
- y: number;
2372
- };
2373
- parseStyle: (cssText: string) => Record<string, string>;
2374
- serializeStyle: (stylesArg: StyleMap, name?: string) => string;
2375
- addStyle: (cssText: string) => void;
2376
- loadCSS: (url: string) => void;
2377
- hasClass: (elm: string | Element, cls: string) => boolean;
2378
- addClass: (elm: RunArguments<Element>, cls: string) => void;
2379
- removeClass: (elm: RunArguments<Element>, cls: string) => void;
2380
- toggleClass: (elm: RunArguments<Element>, cls: string, state?: boolean) => void;
2381
- show: (elm: string | Node | Node[]) => void;
2382
- hide: (elm: string | Node | Node[]) => void;
2383
- isHidden: (elm: string | Node) => boolean;
2384
- uniqueId: (prefix?: string) => string;
2385
- setHTML: (elm: RunArguments<Element>, html: string) => void;
2386
- getOuterHTML: (elm: string | Node) => string;
2387
- setOuterHTML: (elm: string | Node | Node[], html: string) => void;
2388
- decode: (text: string) => string;
2389
- encode: (text: string) => string;
2390
- insertAfter: {
2391
- <T extends Node>(node: T | T[], reference: string | Node): T;
2392
- <T extends Node>(node: RunArguments<T>, reference: string | Node): RunResult<typeof node, T>;
2393
- };
2394
- replace: {
2395
- <T extends Node>(newElm: Node, oldElm: T | T[], keepChildren?: boolean): T;
2396
- <T extends Node>(newElm: Node, oldElm: RunArguments<T>, keepChildren?: boolean): false | T;
2397
- };
2398
- rename: {
2399
- <K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
2400
- (elm: Element, name: string): Element;
2401
- };
2402
- findCommonAncestor: (a: Node, b: Node) => Node | null;
2403
- run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): typeof elm extends Array<any> ? R[] : R;
2404
- run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): RunResult<typeof elm, R>;
2405
- isEmpty: (node: Node, elements?: Record<string, any>, options?: IsEmptyOptions) => boolean;
2406
- createRng: () => Range;
2407
- nodeIndex: (node: Node, normalized?: boolean) => number;
2408
- split: {
2409
- <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T | undefined;
2410
- <T extends Node>(parentElm: Node, splitElm: T): T | undefined;
2411
- };
2412
- bind: {
2413
- <K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
2414
- <K extends string>(target: Target[], name: K, func: Callback<K>, scope?: any): Callback<K>[];
2415
- };
2416
- unbind: {
2417
- <K extends string>(target: Target, name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils;
2418
- <K extends string>(target: Target[], name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils[];
2419
- };
2420
- fire: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2421
- dispatch: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2422
- getContentEditable: (node: Node) => string | null;
2423
- getContentEditableParent: (node: Node) => string | null;
2424
- isEditable: (node: Node | null | undefined) => boolean;
2425
- destroy: () => void;
2426
- isChildOf: (node: Node, parent: Node) => boolean;
2427
- dumpRng: (r: Range) => string;
2480
+ interface Annotator {
2481
+ register: (name: string, settings: AnnotatorSettings) => void;
2482
+ annotate: (name: string, data: DecoratorData) => void;
2483
+ annotationChanged: (name: string, f: AnnotationListenerApi) => void;
2484
+ remove: (name: string) => void;
2485
+ removeAll: (name: string) => void;
2486
+ getAll: (name: string) => Record<string, Element[]>;
2428
2487
  }
2429
2488
  interface ClientRect {
2430
2489
  left: number;
@@ -2480,6 +2539,10 @@ interface DomSerializerSettings extends DomParserSettings, WriterSettings, Schem
2480
2539
  url_converter?: URLConverter;
2481
2540
  url_converter_scope?: {};
2482
2541
  }
2542
+ interface DomSerializerArgs extends ParserArgs {
2543
+ indent?: HtmlSerializerSettings['indent'];
2544
+ entity_encoding?: HtmlSerializerSettings['entity_encoding'];
2545
+ }
2483
2546
  interface DomSerializerImpl {
2484
2547
  schema: Schema;
2485
2548
  addNodeFilter: (name: string, callback: ParserFilterCallback) => void;
@@ -2492,7 +2555,7 @@ interface DomSerializerImpl {
2492
2555
  (node: Element, parserArgs: {
2493
2556
  format: 'tree';
2494
2557
  } & ParserArgs): AstNode;
2495
- (node: Element, parserArgs?: ParserArgs): string;
2558
+ (node: Element, domSerializerArgs?: DomSerializerArgs): string;
2496
2559
  };
2497
2560
  addRules: (rules: string) => void;
2498
2561
  setRules: (rules: string) => void;
@@ -2556,8 +2619,8 @@ interface EditorSelection {
2556
2619
  type: 'word';
2557
2620
  }) => void;
2558
2621
  }
2559
- type EditorCommandCallback<S> = (this: S, ui: boolean, value: any) => void;
2560
- type EditorCommandsCallback = (command: string, ui: boolean, value?: any) => void;
2622
+ type EditorCommandCallback<S> = (this: S, ui: boolean, value: any, args?: ExecCommandArgs) => void;
2623
+ type EditorCommandsCallback = (command: string, ui: boolean, value?: any, args?: ExecCommandArgs) => void;
2561
2624
  interface Commands {
2562
2625
  state: Record<string, (command: string) => boolean>;
2563
2626
  exec: Record<string, EditorCommandsCallback>;
@@ -2581,6 +2644,7 @@ declare class EditorCommands {
2581
2644
  addCommands(commandList: Record<string, EditorCommandsCallback>): void;
2582
2645
  addCommand<S>(command: string, callback: EditorCommandCallback<S>, scope: S): void;
2583
2646
  addCommand(command: string, callback: EditorCommandCallback<Editor>): void;
2647
+ removeCommand(command: string, type?: 'exec' | 'state' | 'value'): void;
2584
2648
  queryCommandSupported(command: string): boolean;
2585
2649
  addQueryStateHandler<S>(command: string, callback: (this: S) => boolean, scope: S): void;
2586
2650
  addQueryStateHandler(command: string, callback: (this: Editor) => boolean): void;
@@ -2684,6 +2748,7 @@ interface EditorManager extends Observable<EditorManagerEventMap> {
2684
2748
  documentBaseURL: string;
2685
2749
  i18n: I18n;
2686
2750
  suffix: string;
2751
+ pageUid: string;
2687
2752
  add(this: EditorManager, editor: Editor): Editor;
2688
2753
  addI18n: (code: string, item: Record<string, string>) => void;
2689
2754
  createEditor(this: EditorManager, id: string, options: RawEditorOptions): Editor;
@@ -2700,6 +2765,7 @@ interface EditorManager extends Observable<EditorManagerEventMap> {
2700
2765
  translate: (text: Untranslated) => TranslatedString;
2701
2766
  triggerSave: () => void;
2702
2767
  _setBaseUrl(this: EditorManager, baseUrl: string): void;
2768
+ _addLicenseKeyManager(this: EditorManager, addOn: LicenseKeyManagerAddon): void;
2703
2769
  }
2704
2770
  interface EditorObservable extends Observable<EditorEventMap> {
2705
2771
  bindPendingEventDelegates(this: Editor): void;
@@ -2877,9 +2943,9 @@ interface EditorConstructor {
2877
2943
  new (id: string, options: RawEditorOptions, editorManager: EditorManager): Editor;
2878
2944
  }
2879
2945
  declare class Editor implements EditorObservable {
2880
- documentBaseUrl: string;
2881
2946
  baseUri: URI;
2882
2947
  id: string;
2948
+ editorUid: string;
2883
2949
  plugins: Record<string, Plugin>;
2884
2950
  documentBaseURI: URI;
2885
2951
  baseURI: URI;
@@ -2889,6 +2955,7 @@ declare class Editor implements EditorObservable {
2889
2955
  mode: EditorMode;
2890
2956
  options: Options;
2891
2957
  editorUpload: EditorUpload;
2958
+ userLookup: UserLookup;
2892
2959
  shortcuts: Shortcuts;
2893
2960
  loadedCSS: Record<string, any>;
2894
2961
  editorCommands: EditorCommands;
@@ -2934,6 +3001,7 @@ declare class Editor implements EditorObservable {
2934
3001
  model: Model;
2935
3002
  undoManager: UndoManager;
2936
3003
  windowManager: WindowManager;
3004
+ licenseKeyManager: LicenseKeyManager;
2937
3005
  _beforeUnload: (() => void) | undefined;
2938
3006
  _eventDispatcher: EventDispatcher<NativeEventMap> | undefined;
2939
3007
  _nodeChangeDispatcher: NodeChange;
@@ -2979,11 +3047,9 @@ declare class Editor implements EditorObservable {
2979
3047
  hide(): void;
2980
3048
  isHidden(): boolean;
2981
3049
  setProgressState(state: boolean, time?: number): void;
2982
- load(args?: Partial<SetContentArgs>): string;
3050
+ load(args?: Partial<SetContentArgs>): void;
2983
3051
  save(args?: Partial<GetContentArgs>): string;
2984
- setContent(content: string, args?: Partial<SetContentArgs>): string;
2985
- setContent(content: AstNode, args?: Partial<SetContentArgs>): AstNode;
2986
- setContent(content: Content, args?: Partial<SetContentArgs>): Content;
3052
+ setContent(content: string | AstNode, args?: Partial<SetContentArgs>): void;
2987
3053
  getContent(args: {
2988
3054
  format: 'tree';
2989
3055
  } & Partial<GetContentArgs>): AstNode;
@@ -3007,26 +3073,20 @@ declare class Editor implements EditorObservable {
3007
3073
  uploadImages(): Promise<UploadResult$1[]>;
3008
3074
  _scanForImages(): Promise<BlobInfoImagePair[]>;
3009
3075
  }
3010
- interface UrlObject {
3011
- prefix: string;
3012
- resource: string;
3013
- suffix: string;
3076
+ type UserId = string;
3077
+ interface User {
3078
+ id: UserId;
3079
+ name: string;
3080
+ avatar: string;
3081
+ custom?: Record<string, any>;
3014
3082
  }
3015
- type WaitState = 'added' | 'loaded';
3016
- type AddOnConstructor<T> = (editor: Editor, url: string) => T;
3017
- interface AddOnManager<T> {
3018
- items: AddOnConstructor<T>[];
3019
- urls: Record<string, string>;
3020
- lookup: Record<string, {
3021
- instance: AddOnConstructor<T>;
3022
- }>;
3023
- get: (name: string) => AddOnConstructor<T> | undefined;
3024
- requireLangPack: (name: string, languages?: string) => void;
3025
- add: (id: string, addOn: AddOnConstructor<T>) => AddOnConstructor<T>;
3026
- remove: (name: string) => void;
3027
- createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
3028
- load: (name: string, addOnUrl: string | UrlObject) => Promise<void>;
3029
- waitFor: (name: string, state?: WaitState) => Promise<void>;
3083
+ interface ExpectedUser {
3084
+ id: UserId;
3085
+ [key: string]: any;
3086
+ }
3087
+ interface UserLookup {
3088
+ userId: UserId;
3089
+ fetchUsers: (userIds: UserId[]) => Record<UserId, Promise<User>>;
3030
3090
  }
3031
3091
  interface RangeUtils {
3032
3092
  walk: (rng: Range, callback: (nodes: Node[]) => void) => void;
@@ -3038,6 +3098,7 @@ interface RangeUtils {
3038
3098
  }
3039
3099
  interface ScriptLoaderSettings {
3040
3100
  referrerPolicy?: ReferrerPolicy;
3101
+ crossOrigin?: (url: string) => string | undefined;
3041
3102
  }
3042
3103
  interface ScriptLoaderConstructor {
3043
3104
  readonly prototype: ScriptLoader;
@@ -3054,6 +3115,7 @@ declare class ScriptLoader {
3054
3115
  private loading;
3055
3116
  constructor(settings?: ScriptLoaderSettings);
3056
3117
  _setReferrerPolicy(referrerPolicy: ReferrerPolicy): void;
3118
+ _setCrossOrigin(crossOrigin: (url: string) => string | undefined): void;
3057
3119
  loadScript(url: string): Promise<void>;
3058
3120
  isDone(url: string): boolean;
3059
3121
  markDone(url: string): void;
@@ -3062,6 +3124,7 @@ declare class ScriptLoader {
3062
3124
  remove(url: string): void;
3063
3125
  loadQueue(): Promise<void>;
3064
3126
  loadScripts(scripts: string[]): Promise<void>;
3127
+ getScriptAttributes(url: string): Record<string, string>;
3065
3128
  }
3066
3129
  type TextProcessCallback = (node: Text, offset: number, text: string) => number;
3067
3130
  interface Spot {
@@ -3347,4 +3410,4 @@ interface TinyMCE extends EditorManager {
3347
3410
  _addCacheSuffix: Tools['_addCacheSuffix'];
3348
3411
  }
3349
3412
  declare const tinymce: TinyMCE;
3350
- export { AddOnManager, Annotator, AstNode, Bookmark, BookmarkManager, ControlSelection, DOMUtils, Delay, DomParser, DomParserSettings, DomSerializer, DomSerializerSettings, DomTreeWalker, Editor, EditorCommands, EditorEvent, EditorManager, EditorModeApi, EditorObservable, EditorOptions, EditorSelection, Entities, Env, EventDispatcher, EventUtils, EventTypes_d as Events, FakeClipboard, FocusManager, Format_d as Formats, Formatter, GeomRect, HtmlSerializer, HtmlSerializerSettings, I18n, IconManager, Model, ModelManager, NotificationApi, NotificationManager, NotificationSpec, Observable, Plugin, PluginManager, RangeUtils, RawEditorOptions, Rect, Resource, Schema, SchemaSettings, ScriptLoader, Shortcuts, StyleSheetLoader, Styles, TextPatterns_d as TextPatterns, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, VK, WindowManager, Writer, WriterSettings, tinymce as default };
3413
+ export { AddOnManager, Annotator, AstNode, Bookmark, BookmarkManager, ControlSelection, DOMUtils, Delay, DomParser, DomParserSettings, DomSerializer, DomSerializerSettings, DomTreeWalker, Editor, EditorCommands, EditorEvent, EditorManager, EditorModeApi, EditorObservable, EditorOptions, EditorSelection, Entities, Env, EventDispatcher, EventUtils, EventTypes_d as Events, ExpectedUser, FakeClipboard, FocusManager, Format_d as Formats, Formatter, GeomRect, HtmlSerializer, HtmlSerializerSettings, I18n, IconManager, Model, ModelManager, NotificationApi, NotificationManager, NotificationSpec, Observable, Plugin, PluginManager, RangeUtils, RawEditorOptions, Rect, Resource, Schema, SchemaSettings, ScriptLoader, Shortcuts, StyleSheetLoader, Styles, TextPatterns_d as TextPatterns, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, User, VK, WindowManager, Writer, WriterSettings, tinymce as default };