@flogeez/angular-tiptap-editor 3.1.5 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,319 @@
1
+ /**
2
+ * A wrapper class that holds a reference to a registered editor component.
3
+ * It provides direct, type-safe facade methods to interact with the editor
4
+ * and execute formatting/utility commands without needing to manage the raw
5
+ * TipTap editor instance directly.
6
+ */
7
+ export class AteEditorRef {
8
+ constructor(id, getEditorInstance, commandsService) {
9
+ this.id = id;
10
+ this.getEditorInstance = getEditorInstance;
11
+ this.commandsService = commandsService;
12
+ }
13
+ /** Get the raw TipTap Editor instance. */
14
+ get editor() {
15
+ return this.getEditorInstance();
16
+ }
17
+ /** Get the current editor state snapshot. */
18
+ get state() {
19
+ return this.commandsService.editorState();
20
+ }
21
+ /** Get the reactive editor state as a Signal. */
22
+ get stateSignal() {
23
+ return this.commandsService.editorState;
24
+ }
25
+ /** Execute a generic command by name. */
26
+ execute(command, ...args) {
27
+ const editor = this.editor;
28
+ if (editor) {
29
+ this.commandsService.execute(editor, command, ...args);
30
+ }
31
+ }
32
+ // ============================================
33
+ // Facade Formatting Commands
34
+ // ============================================
35
+ toggleBold() {
36
+ const editor = this.editor;
37
+ if (editor) {
38
+ this.commandsService.toggleBold(editor);
39
+ }
40
+ }
41
+ toggleItalic() {
42
+ const editor = this.editor;
43
+ if (editor) {
44
+ this.commandsService.toggleItalic(editor);
45
+ }
46
+ }
47
+ toggleStrike() {
48
+ const editor = this.editor;
49
+ if (editor) {
50
+ this.commandsService.toggleStrike(editor);
51
+ }
52
+ }
53
+ toggleCode() {
54
+ const editor = this.editor;
55
+ if (editor) {
56
+ this.commandsService.toggleCode(editor);
57
+ }
58
+ }
59
+ toggleCodeBlock() {
60
+ const editor = this.editor;
61
+ if (editor) {
62
+ this.commandsService.toggleCodeBlock(editor);
63
+ }
64
+ }
65
+ toggleUnderline() {
66
+ const editor = this.editor;
67
+ if (editor) {
68
+ this.commandsService.toggleUnderline(editor);
69
+ }
70
+ }
71
+ toggleSuperscript() {
72
+ const editor = this.editor;
73
+ if (editor) {
74
+ this.commandsService.toggleSuperscript(editor);
75
+ }
76
+ }
77
+ toggleSubscript() {
78
+ const editor = this.editor;
79
+ if (editor) {
80
+ this.commandsService.toggleSubscript(editor);
81
+ }
82
+ }
83
+ toggleHeading(level) {
84
+ const editor = this.editor;
85
+ if (editor) {
86
+ this.commandsService.toggleHeading(editor, level);
87
+ }
88
+ }
89
+ toggleBulletList() {
90
+ const editor = this.editor;
91
+ if (editor) {
92
+ this.commandsService.toggleBulletList(editor);
93
+ }
94
+ }
95
+ toggleOrderedList() {
96
+ const editor = this.editor;
97
+ if (editor) {
98
+ this.commandsService.toggleOrderedList(editor);
99
+ }
100
+ }
101
+ toggleBlockquote() {
102
+ const editor = this.editor;
103
+ if (editor) {
104
+ this.commandsService.toggleBlockquote(editor);
105
+ }
106
+ }
107
+ setTextAlign(alignment) {
108
+ const editor = this.editor;
109
+ if (editor) {
110
+ this.commandsService.setTextAlign(editor, alignment);
111
+ }
112
+ }
113
+ insertHorizontalRule() {
114
+ const editor = this.editor;
115
+ if (editor) {
116
+ this.commandsService.insertHorizontalRule(editor);
117
+ }
118
+ }
119
+ insertImage(options) {
120
+ const editor = this.editor;
121
+ if (editor) {
122
+ this.commandsService.insertImage(editor, options);
123
+ }
124
+ }
125
+ uploadImage(file, options) {
126
+ const editor = this.editor;
127
+ if (editor) {
128
+ this.commandsService.uploadImage(editor, file, options);
129
+ }
130
+ }
131
+ toggleHighlight(color) {
132
+ const editor = this.editor;
133
+ if (editor) {
134
+ this.commandsService.toggleHighlight(editor, color);
135
+ }
136
+ }
137
+ undo() {
138
+ const editor = this.editor;
139
+ if (editor) {
140
+ this.commandsService.undo(editor);
141
+ }
142
+ }
143
+ redo() {
144
+ const editor = this.editor;
145
+ if (editor) {
146
+ this.commandsService.redo(editor);
147
+ }
148
+ }
149
+ // ============================================
150
+ // Table Commands
151
+ // ============================================
152
+ insertTable(rows, cols) {
153
+ const editor = this.editor;
154
+ if (editor) {
155
+ this.commandsService.insertTable(editor, rows, cols);
156
+ }
157
+ }
158
+ addColumnBefore() {
159
+ const editor = this.editor;
160
+ if (editor) {
161
+ this.commandsService.addColumnBefore(editor);
162
+ }
163
+ }
164
+ addColumnAfter() {
165
+ const editor = this.editor;
166
+ if (editor) {
167
+ this.commandsService.addColumnAfter(editor);
168
+ }
169
+ }
170
+ deleteColumn() {
171
+ const editor = this.editor;
172
+ if (editor) {
173
+ this.commandsService.deleteColumn(editor);
174
+ }
175
+ }
176
+ addRowBefore() {
177
+ const editor = this.editor;
178
+ if (editor) {
179
+ this.commandsService.addRowBefore(editor);
180
+ }
181
+ }
182
+ addRowAfter() {
183
+ const editor = this.editor;
184
+ if (editor) {
185
+ this.commandsService.addRowAfter(editor);
186
+ }
187
+ }
188
+ deleteRow() {
189
+ const editor = this.editor;
190
+ if (editor) {
191
+ this.commandsService.deleteRow(editor);
192
+ }
193
+ }
194
+ deleteTable() {
195
+ const editor = this.editor;
196
+ if (editor) {
197
+ this.commandsService.deleteTable(editor);
198
+ }
199
+ }
200
+ mergeCells() {
201
+ const editor = this.editor;
202
+ if (editor) {
203
+ this.commandsService.mergeCells(editor);
204
+ }
205
+ }
206
+ splitCell() {
207
+ const editor = this.editor;
208
+ if (editor) {
209
+ this.commandsService.splitCell(editor);
210
+ }
211
+ }
212
+ toggleHeaderColumn() {
213
+ const editor = this.editor;
214
+ if (editor) {
215
+ this.commandsService.toggleHeaderColumn(editor);
216
+ }
217
+ }
218
+ toggleHeaderRow() {
219
+ const editor = this.editor;
220
+ if (editor) {
221
+ this.commandsService.toggleHeaderRow(editor);
222
+ }
223
+ }
224
+ // ============================================
225
+ // Color Picker & Link Commands
226
+ // ============================================
227
+ applyColor(color, selectionOnly, closeMenu) {
228
+ const editor = this.editor;
229
+ if (editor) {
230
+ this.commandsService.execute(editor, "applyColor", color, selectionOnly, closeMenu);
231
+ }
232
+ }
233
+ applyHighlight(color, selectionOnly, closeMenu) {
234
+ const editor = this.editor;
235
+ if (editor) {
236
+ this.commandsService.execute(editor, "applyHighlight", color, selectionOnly, closeMenu);
237
+ }
238
+ }
239
+ unsetColor(selectionOnly) {
240
+ const editor = this.editor;
241
+ if (editor) {
242
+ this.commandsService.execute(editor, "unsetColor", selectionOnly);
243
+ }
244
+ }
245
+ unsetHighlight(selectionOnly) {
246
+ const editor = this.editor;
247
+ if (editor) {
248
+ this.commandsService.execute(editor, "unsetHighlight", selectionOnly);
249
+ }
250
+ }
251
+ toggleLink(event) {
252
+ const editor = this.editor;
253
+ if (editor) {
254
+ this.commandsService.execute(editor, "toggleLink", event);
255
+ }
256
+ }
257
+ unsetLink() {
258
+ const editor = this.editor;
259
+ if (editor) {
260
+ this.commandsService.execute(editor, "unsetLink");
261
+ }
262
+ }
263
+ toggleColorPicker(mode, event) {
264
+ const editor = this.editor;
265
+ if (editor) {
266
+ this.commandsService.execute(editor, "toggleColorPicker", mode, event);
267
+ }
268
+ }
269
+ // ============================================
270
+ // General Controls & Content
271
+ // ============================================
272
+ clearContent() {
273
+ const editor = this.editor;
274
+ if (editor) {
275
+ this.commandsService.clearContent(editor);
276
+ }
277
+ }
278
+ setContent(content, emitUpdate = true) {
279
+ const editor = this.editor;
280
+ if (editor) {
281
+ this.commandsService.setContent(editor, content, emitUpdate);
282
+ }
283
+ }
284
+ getContent(format) {
285
+ const editor = this.editor;
286
+ return editor ? this.commandsService.getContent(editor, format) : "";
287
+ }
288
+ getHTML() {
289
+ const editor = this.editor;
290
+ return editor ? editor.getHTML() : "";
291
+ }
292
+ getJSON() {
293
+ const editor = this.editor;
294
+ return editor ? editor.getJSON() : undefined;
295
+ }
296
+ getText() {
297
+ const editor = this.editor;
298
+ return editor ? editor.getText() : "";
299
+ }
300
+ async exportAs(format, method, options) {
301
+ const editor = this.editor;
302
+ if (editor) {
303
+ await this.commandsService.exportAs(editor, format, method, options);
304
+ }
305
+ }
306
+ focus() {
307
+ const editor = this.editor;
308
+ if (editor) {
309
+ this.commandsService.focus(editor);
310
+ }
311
+ }
312
+ blur() {
313
+ const editor = this.editor;
314
+ if (editor) {
315
+ this.commandsService.blur(editor);
316
+ }
317
+ }
318
+ }
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWVkaXRvci1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9tb2RlbHMvYXRlLWVkaXRvci1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNrQixFQUFVLEVBQ1QsaUJBQXNDLEVBQ3ZDLGVBQXlDO1FBRnpDLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtJQUN4RCxDQUFDO0lBRUosMENBQTBDO0lBQzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsT0FBTyxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQWU7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsK0NBQStDO0lBQy9DLDZCQUE2QjtJQUM3QiwrQ0FBK0M7SUFFL0MsVUFBVTtRQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUMxRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUEsQ0FBQztJQUM3RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQUEsSUFB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QUNYLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFBQSxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFBQSxDQUFDO0lBQ2xELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFZGl0b3IsIEpTT05Db250ZW50IH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuaW1wb3J0IHsgQXRlRWRpdG9yQ29tbWFuZHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2F0ZS1lZGl0b3ItY29tbWFuZHMuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlRWRpdG9yU3RhdGVTbmFwc2hvdCB9IGZyb20gXCIuL2F0ZS1lZGl0b3Itc3RhdGUubW9kZWxcIjtcbmltcG9ydCB7IEF0ZUltYWdlVXBsb2FkT3B0aW9ucyB9IGZyb20gXCIuL2F0ZS1pbWFnZS5tb2RlbFwiO1xuaW1wb3J0IHsgQXRlRXhwb3J0Rm9ybWF0LCBBdGVFeHBvcnRPcHRpb25zIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2F0ZS1leHBvcnQuc2VydmljZVwiO1xuXG4vKipcbiAqIEEgd3JhcHBlciBjbGFzcyB0aGF0IGhvbGRzIGEgcmVmZXJlbmNlIHRvIGEgcmVnaXN0ZXJlZCBlZGl0b3IgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgZGlyZWN0LCB0eXBlLXNhZmUgZmFjYWRlIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZWRpdG9yXG4gKiBhbmQgZXhlY3V0ZSBmb3JtYXR0aW5nL3V0aWxpdHkgY29tbWFuZHMgd2l0aG91dCBuZWVkaW5nIHRvIG1hbmFnZSB0aGUgcmF3XG4gKiBUaXBUYXAgZWRpdG9yIGluc3RhbmNlIGRpcmVjdGx5LlxuICovXG5leHBvcnQgY2xhc3MgQXRlRWRpdG9yUmVmIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBnZXRFZGl0b3JJbnN0YW5jZTogKCkgPT4gRWRpdG9yIHwgbnVsbCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tbWFuZHNTZXJ2aWNlOiBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKiBHZXQgdGhlIHJhdyBUaXBUYXAgRWRpdG9yIGluc3RhbmNlLiAqL1xuICBnZXQgZWRpdG9yKCk6IEVkaXRvciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldEVkaXRvckluc3RhbmNlKCk7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGVkaXRvciBzdGF0ZSBzbmFwc2hvdC4gKi9cbiAgZ2V0IHN0YXRlKCk6IEF0ZUVkaXRvclN0YXRlU25hcHNob3Qge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmRzU2VydmljZS5lZGl0b3JTdGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgcmVhY3RpdmUgZWRpdG9yIHN0YXRlIGFzIGEgU2lnbmFsLiAqL1xuICBnZXQgc3RhdGVTaWduYWwoKTogU2lnbmFsPEF0ZUVkaXRvclN0YXRlU25hcHNob3Q+IHtcbiAgICByZXR1cm4gdGhpcy5jb21tYW5kc1NlcnZpY2UuZWRpdG9yU3RhdGU7XG4gIH1cblxuICAvKiogRXhlY3V0ZSBhIGdlbmVyaWMgY29tbWFuZCBieSBuYW1lLiAqL1xuICBleGVjdXRlKGNvbW1hbmQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy5jb21tYW5kc1NlcnZpY2UuZXhlY3V0ZShlZGl0b3IsIGNvbW1hbmQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEZhY2FkZSBGb3JtYXR0aW5nIENvbW1hbmRzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdG9nZ2xlQm9sZCgpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudG9nZ2xlQm9sZChlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZUl0YWxpYygpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudG9nZ2xlSXRhbGljKGVkaXRvcik7fVxuICB9XG5cbiAgdG9nZ2xlU3RyaWtlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVTdHJpa2UoZWRpdG9yKTt9XG4gIH1cblxuICB0b2dnbGVDb2RlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVDb2RlKGVkaXRvcik7fVxuICB9XG5cbiAgdG9nZ2xlQ29kZUJsb2NrKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVDb2RlQmxvY2soZWRpdG9yKTt9XG4gIH1cblxuICB0b2dnbGVVbmRlcmxpbmUoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLnRvZ2dsZVVuZGVybGluZShlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZVN1cGVyc2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVTdXBlcnNjcmlwdChlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZVN1YnNjcmlwdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudG9nZ2xlU3Vic2NyaXB0KGVkaXRvcik7fVxuICB9XG5cbiAgdG9nZ2xlSGVhZGluZyhsZXZlbDogMSB8IDIgfCAzKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLnRvZ2dsZUhlYWRpbmcoZWRpdG9yLCBsZXZlbCk7fVxuICB9XG5cbiAgdG9nZ2xlQnVsbGV0TGlzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudG9nZ2xlQnVsbGV0TGlzdChlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZU9yZGVyZWRMaXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVPcmRlcmVkTGlzdChlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZUJsb2NrcXVvdGUoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLnRvZ2dsZUJsb2NrcXVvdGUoZWRpdG9yKTt9XG4gIH1cblxuICBzZXRUZXh0QWxpZ24oYWxpZ25tZW50OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgfCBcImp1c3RpZnlcIik6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5zZXRUZXh0QWxpZ24oZWRpdG9yLCBhbGlnbm1lbnQpO31cbiAgfVxuXG4gIGluc2VydEhvcml6b250YWxSdWxlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5pbnNlcnRIb3Jpem9udGFsUnVsZShlZGl0b3IpO31cbiAgfVxuXG4gIGluc2VydEltYWdlKG9wdGlvbnM6IEF0ZUltYWdlVXBsb2FkT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5pbnNlcnRJbWFnZShlZGl0b3IsIG9wdGlvbnMpO31cbiAgfVxuXG4gIHVwbG9hZEltYWdlKGZpbGU6IEZpbGUsIG9wdGlvbnM/OiBBdGVJbWFnZVVwbG9hZE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudXBsb2FkSW1hZ2UoZWRpdG9yLCBmaWxlLCBvcHRpb25zKTt9XG4gIH1cblxuICB0b2dnbGVIaWdobGlnaHQoY29sb3I6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVIaWdobGlnaHQoZWRpdG9yLCBjb2xvcik7fVxuICB9XG5cbiAgdW5kbygpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudW5kbyhlZGl0b3IpO31cbiAgfVxuXG4gIHJlZG8oKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLnJlZG8oZWRpdG9yKTt9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBUYWJsZSBDb21tYW5kc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGluc2VydFRhYmxlKHJvd3M/OiBudW1iZXIsIGNvbHM/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UuaW5zZXJ0VGFibGUoZWRpdG9yLCByb3dzLCBjb2xzKTt9XG4gIH1cblxuICBhZGRDb2x1bW5CZWZvcmUoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLmFkZENvbHVtbkJlZm9yZShlZGl0b3IpO31cbiAgfVxuXG4gIGFkZENvbHVtbkFmdGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5hZGRDb2x1bW5BZnRlcihlZGl0b3IpO31cbiAgfVxuXG4gIGRlbGV0ZUNvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UuZGVsZXRlQ29sdW1uKGVkaXRvcik7fVxuICB9XG5cbiAgYWRkUm93QmVmb3JlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5hZGRSb3dCZWZvcmUoZWRpdG9yKTt9XG4gIH1cblxuICBhZGRSb3dBZnRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UuYWRkUm93QWZ0ZXIoZWRpdG9yKTt9XG4gIH1cblxuICBkZWxldGVSb3coKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLmRlbGV0ZVJvdyhlZGl0b3IpO31cbiAgfVxuXG4gIGRlbGV0ZVRhYmxlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5kZWxldGVUYWJsZShlZGl0b3IpO31cbiAgfVxuXG4gIG1lcmdlQ2VsbHMoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLm1lcmdlQ2VsbHMoZWRpdG9yKTt9XG4gIH1cblxuICBzcGxpdENlbGwoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLnNwbGl0Q2VsbChlZGl0b3IpO31cbiAgfVxuXG4gIHRvZ2dsZUhlYWRlckNvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UudG9nZ2xlSGVhZGVyQ29sdW1uKGVkaXRvcik7fVxuICB9XG5cbiAgdG9nZ2xlSGVhZGVyUm93KCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS50b2dnbGVIZWFkZXJSb3coZWRpdG9yKTt9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb2xvciBQaWNrZXIgJiBMaW5rIENvbW1hbmRzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgYXBwbHlDb2xvcihjb2xvcjogc3RyaW5nLCBzZWxlY3Rpb25Pbmx5PzogYm9vbGVhbiwgY2xvc2VNZW51PzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIHRoaXMuY29tbWFuZHNTZXJ2aWNlLmV4ZWN1dGUoZWRpdG9yLCBcImFwcGx5Q29sb3JcIiwgY29sb3IsIHNlbGVjdGlvbk9ubHksIGNsb3NlTWVudSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlIaWdobGlnaHQoY29sb3I6IHN0cmluZywgc2VsZWN0aW9uT25seT86IGJvb2xlYW4sIGNsb3NlTWVudT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzU2VydmljZS5leGVjdXRlKGVkaXRvciwgXCJhcHBseUhpZ2hsaWdodFwiLCBjb2xvciwgc2VsZWN0aW9uT25seSwgY2xvc2VNZW51KTtcbiAgICB9XG4gIH1cblxuICB1bnNldENvbG9yKHNlbGVjdGlvbk9ubHk/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgdGhpcy5jb21tYW5kc1NlcnZpY2UuZXhlY3V0ZShlZGl0b3IsIFwidW5zZXRDb2xvclwiLCBzZWxlY3Rpb25Pbmx5KTtcbiAgICB9XG4gIH1cblxuICB1bnNldEhpZ2hsaWdodChzZWxlY3Rpb25Pbmx5PzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIHRoaXMuY29tbWFuZHNTZXJ2aWNlLmV4ZWN1dGUoZWRpdG9yLCBcInVuc2V0SGlnaGxpZ2h0XCIsIHNlbGVjdGlvbk9ubHkpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUxpbmsoZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIHRoaXMuY29tbWFuZHNTZXJ2aWNlLmV4ZWN1dGUoZWRpdG9yLCBcInRvZ2dsZUxpbmtcIiwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHVuc2V0TGluaygpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzU2VydmljZS5leGVjdXRlKGVkaXRvciwgXCJ1bnNldExpbmtcIik7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQ29sb3JQaWNrZXIobW9kZTogXCJ0ZXh0XCIgfCBcImhpZ2hsaWdodFwiLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzU2VydmljZS5leGVjdXRlKGVkaXRvciwgXCJ0b2dnbGVDb2xvclBpY2tlclwiLCBtb2RlLCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gR2VuZXJhbCBDb250cm9scyAmIENvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBjbGVhckNvbnRlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLmNsZWFyQ29udGVudChlZGl0b3IpO31cbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudDogc3RyaW5nLCBlbWl0VXBkYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgIGlmIChlZGl0b3IpIHt0aGlzLmNvbW1hbmRzU2VydmljZS5zZXRDb250ZW50KGVkaXRvciwgY29udGVudCwgZW1pdFVwZGF0ZSk7fVxuICB9XG5cbiAgZ2V0Q29udGVudChmb3JtYXQ6IEF0ZUV4cG9ydEZvcm1hdCk6IHN0cmluZyB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgcmV0dXJuIGVkaXRvciA/IHRoaXMuY29tbWFuZHNTZXJ2aWNlLmdldENvbnRlbnQoZWRpdG9yLCBmb3JtYXQpIDogXCJcIjtcbiAgfVxuXG4gIGdldEhUTUwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICByZXR1cm4gZWRpdG9yID8gZWRpdG9yLmdldEhUTUwoKSA6IFwiXCI7XG4gIH1cblxuICBnZXRKU09OKCk6IEpTT05Db250ZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICByZXR1cm4gZWRpdG9yID8gZWRpdG9yLmdldEpTT04oKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICByZXR1cm4gZWRpdG9yID8gZWRpdG9yLmdldFRleHQoKSA6IFwiXCI7XG4gIH1cblxuICBhc3luYyBleHBvcnRBcyhcbiAgICBmb3JtYXQ6IEF0ZUV4cG9ydEZvcm1hdCxcbiAgICBtZXRob2Q6IFwiY2xpcGJvYXJkXCIgfCBcImRvd25sb2FkXCIsXG4gICAgb3B0aW9ucz86IEF0ZUV4cG9ydE9wdGlvbnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgYXdhaXQgdGhpcy5jb21tYW5kc1NlcnZpY2UuZXhwb3J0QXMoZWRpdG9yLCBmb3JtYXQsIG1ldGhvZCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgaWYgKGVkaXRvcikge3RoaXMuY29tbWFuZHNTZXJ2aWNlLmZvY3VzKGVkaXRvcik7fVxuICB9XG5cbiAgYmx1cigpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICBpZiAoZWRpdG9yKSB7dGhpcy5jb21tYW5kc1NlcnZpY2UuYmx1cihlZGl0b3IpO31cbiAgfVxufVxuIl19
@@ -0,0 +1,94 @@
1
+ import { Injectable, signal, computed } from "@angular/core";
2
+ import { AteEditorRef } from "../models/ate-editor-ref";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * A root-level registry service to register, unregister, and manage active editor instances.
6
+ * This service is provided in 'root' and can be injected anywhere in the application.
7
+ */
8
+ export class AteEditorRegistry {
9
+ constructor() {
10
+ // Map of registered editors
11
+ this._editors = signal(new Map());
12
+ this.editors = this._editors.asReadonly();
13
+ // Active (last focused or last registered) editor ID
14
+ this._activeEditorId = signal(null);
15
+ this.activeEditorId = this._activeEditorId.asReadonly();
16
+ // List of all active editor IDs reactively
17
+ this.editorIds = computed(() => Array.from(this._editors().keys()));
18
+ // Active AteEditorRef reactively
19
+ this.activeEditor = computed(() => {
20
+ const activeId = this._activeEditorId();
21
+ if (!activeId) {
22
+ return null;
23
+ }
24
+ return this._editors().get(activeId) || null;
25
+ });
26
+ }
27
+ static { this.counter = 0; }
28
+ /**
29
+ * Register an editor instance.
30
+ * Returns the final registered ID.
31
+ */
32
+ register(id, getEditor, commandsService) {
33
+ const finalId = id || `ate-editor-${++AteEditorRegistry.counter}`;
34
+ const editorRef = new AteEditorRef(finalId, getEditor, commandsService);
35
+ this._editors.update(map => {
36
+ const newMap = new Map(map);
37
+ newMap.set(finalId, editorRef);
38
+ return newMap;
39
+ });
40
+ // If there is no active editor, make this one active
41
+ if (!this._activeEditorId()) {
42
+ this._activeEditorId.set(finalId);
43
+ }
44
+ return finalId;
45
+ }
46
+ /**
47
+ * Unregister an editor instance by ID.
48
+ */
49
+ unregister(id) {
50
+ this._editors.update(map => {
51
+ const newMap = new Map(map);
52
+ newMap.delete(id);
53
+ return newMap;
54
+ });
55
+ // If the active editor is the one being unregistered, find a fallback
56
+ if (this._activeEditorId() === id) {
57
+ const remainingIds = this.editorIds();
58
+ if (remainingIds.length > 0) {
59
+ // Set active to the last registered one remaining
60
+ this._activeEditorId.set(remainingIds[remainingIds.length - 1]);
61
+ }
62
+ else {
63
+ this._activeEditorId.set(null);
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Mark an editor as active (usually on focus).
69
+ */
70
+ setActive(id) {
71
+ if (this._editors().has(id)) {
72
+ this._activeEditorId.set(id);
73
+ }
74
+ }
75
+ /**
76
+ * Retrieve an editor reference by ID, or the active editor if ID is not specified.
77
+ */
78
+ get(id) {
79
+ if (id) {
80
+ return this._editors().get(id);
81
+ }
82
+ const activeId = this._activeEditorId();
83
+ return activeId ? this._editors().get(activeId) : undefined;
84
+ }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteEditorRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteEditorRegistry, providedIn: "root" }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteEditorRegistry, decorators: [{
89
+ type: Injectable,
90
+ args: [{
91
+ providedIn: "root",
92
+ }]
93
+ }] });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWVkaXRvci1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvc2VydmljZXMvYXRlLWVkaXRvci1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR3hEOzs7R0FHRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFNRSw0QkFBNEI7UUFDWCxhQUFRLEdBQUcsTUFBTSxDQUE0QixJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEUsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFOUMscURBQXFEO1FBQ3BDLG9CQUFlLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUN0RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFNUQsMkNBQTJDO1FBQ2xDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhFLGlDQUFpQztRQUN4QixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0tBcUVKO2FBekZnQixZQUFPLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFzQjNCOzs7T0FHRztJQUNILFFBQVEsQ0FDTixFQUFzQixFQUN0QixTQUE4QixFQUM5QixlQUF5QztRQUV6QyxNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksY0FBYyxFQUFFLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsRUFBVTtRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsRUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEVBQVc7UUFDYixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5RCxDQUFDOytHQXpGVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JSZWYgfSBmcm9tIFwiLi4vbW9kZWxzL2F0ZS1lZGl0b3ItcmVmXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi9hdGUtZWRpdG9yLWNvbW1hbmRzLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBBIHJvb3QtbGV2ZWwgcmVnaXN0cnkgc2VydmljZSB0byByZWdpc3RlciwgdW5yZWdpc3RlciwgYW5kIG1hbmFnZSBhY3RpdmUgZWRpdG9yIGluc3RhbmNlcy5cbiAqIFRoaXMgc2VydmljZSBpcyBwcm92aWRlZCBpbiAncm9vdCcgYW5kIGNhbiBiZSBpbmplY3RlZCBhbnl3aGVyZSBpbiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEF0ZUVkaXRvclJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgY291bnRlciA9IDA7XG5cbiAgLy8gTWFwIG9mIHJlZ2lzdGVyZWQgZWRpdG9yc1xuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0b3JzID0gc2lnbmFsPE1hcDxzdHJpbmcsIEF0ZUVkaXRvclJlZj4+KG5ldyBNYXAoKSk7XG4gIHJlYWRvbmx5IGVkaXRvcnMgPSB0aGlzLl9lZGl0b3JzLmFzUmVhZG9ubHkoKTtcblxuICAvLyBBY3RpdmUgKGxhc3QgZm9jdXNlZCBvciBsYXN0IHJlZ2lzdGVyZWQpIGVkaXRvciBJRFxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVFZGl0b3JJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgYWN0aXZlRWRpdG9ySWQgPSB0aGlzLl9hY3RpdmVFZGl0b3JJZC5hc1JlYWRvbmx5KCk7XG5cbiAgLy8gTGlzdCBvZiBhbGwgYWN0aXZlIGVkaXRvciBJRHMgcmVhY3RpdmVseVxuICByZWFkb25seSBlZGl0b3JJZHMgPSBjb21wdXRlZCgoKSA9PiBBcnJheS5mcm9tKHRoaXMuX2VkaXRvcnMoKS5rZXlzKCkpKTtcblxuICAvLyBBY3RpdmUgQXRlRWRpdG9yUmVmIHJlYWN0aXZlbHlcbiAgcmVhZG9ubHkgYWN0aXZlRWRpdG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5fYWN0aXZlRWRpdG9ySWQoKTtcbiAgICBpZiAoIWFjdGl2ZUlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvcnMoKS5nZXQoYWN0aXZlSWQpIHx8IG51bGw7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBlZGl0b3IgaW5zdGFuY2UuXG4gICAqIFJldHVybnMgdGhlIGZpbmFsIHJlZ2lzdGVyZWQgSUQuXG4gICAqL1xuICByZWdpc3RlcihcbiAgICBpZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGdldEVkaXRvcjogKCkgPT4gRWRpdG9yIHwgbnVsbCxcbiAgICBjb21tYW5kc1NlcnZpY2U6IEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbmFsSWQgPSBpZCB8fCBgYXRlLWVkaXRvci0keysrQXRlRWRpdG9yUmVnaXN0cnkuY291bnRlcn1gO1xuICAgIGNvbnN0IGVkaXRvclJlZiA9IG5ldyBBdGVFZGl0b3JSZWYoZmluYWxJZCwgZ2V0RWRpdG9yLCBjb21tYW5kc1NlcnZpY2UpO1xuXG4gICAgdGhpcy5fZWRpdG9ycy51cGRhdGUobWFwID0+IHtcbiAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgIG5ld01hcC5zZXQoZmluYWxJZCwgZWRpdG9yUmVmKTtcbiAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgfSk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBubyBhY3RpdmUgZWRpdG9yLCBtYWtlIHRoaXMgb25lIGFjdGl2ZVxuICAgIGlmICghdGhpcy5fYWN0aXZlRWRpdG9ySWQoKSkge1xuICAgICAgdGhpcy5fYWN0aXZlRWRpdG9ySWQuc2V0KGZpbmFsSWQpO1xuICAgIH1cblxuICAgIHJldHVybiBmaW5hbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXIgYW4gZWRpdG9yIGluc3RhbmNlIGJ5IElELlxuICAgKi9cbiAgdW5yZWdpc3RlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9ycy51cGRhdGUobWFwID0+IHtcbiAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgIG5ld01hcC5kZWxldGUoaWQpO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcblxuICAgIC8vIElmIHRoZSBhY3RpdmUgZWRpdG9yIGlzIHRoZSBvbmUgYmVpbmcgdW5yZWdpc3RlcmVkLCBmaW5kIGEgZmFsbGJhY2tcbiAgICBpZiAodGhpcy5fYWN0aXZlRWRpdG9ySWQoKSA9PT0gaWQpIHtcbiAgICAgIGNvbnN0IHJlbWFpbmluZ0lkcyA9IHRoaXMuZWRpdG9ySWRzKCk7XG4gICAgICBpZiAocmVtYWluaW5nSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gU2V0IGFjdGl2ZSB0byB0aGUgbGFzdCByZWdpc3RlcmVkIG9uZSByZW1haW5pbmdcbiAgICAgICAgdGhpcy5fYWN0aXZlRWRpdG9ySWQuc2V0KHJlbWFpbmluZ0lkc1tyZW1haW5pbmdJZHMubGVuZ3RoIC0gMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWRpdG9ySWQuc2V0KG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIGFuIGVkaXRvciBhcyBhY3RpdmUgKHVzdWFsbHkgb24gZm9jdXMpLlxuICAgKi9cbiAgc2V0QWN0aXZlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZWRpdG9ycygpLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZUVkaXRvcklkLnNldChpZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFuIGVkaXRvciByZWZlcmVuY2UgYnkgSUQsIG9yIHRoZSBhY3RpdmUgZWRpdG9yIGlmIElEIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqL1xuICBnZXQoaWQ/OiBzdHJpbmcpOiBBdGVFZGl0b3JSZWYgfCB1bmRlZmluZWQge1xuICAgIGlmIChpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvcnMoKS5nZXQoaWQpO1xuICAgIH1cbiAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuX2FjdGl2ZUVkaXRvcklkKCk7XG4gICAgcmV0dXJuIGFjdGl2ZUlkID8gdGhpcy5fZWRpdG9ycygpLmdldChhY3RpdmVJZCkgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -14,6 +14,8 @@ export * from "./lib/services/ate-image.service";
14
14
  export * from "./lib/services/ate-color-picker.service";
15
15
  export * from "./lib/services/ate-link.service";
16
16
  export * from "./lib/services/ate-export.service";
17
+ export * from "./lib/services/ate-editor-registry.service";
18
+ export * from "./lib/models/ate-editor-ref";
17
19
  // State & Calculators (Essential for custom plugins)
18
20
  export * from "./lib/models/ate-editor-state.model";
19
21
  export * from "./lib/extensions/calculators/ate-discovery.calculator";
@@ -38,4 +40,4 @@ export { AteAngularNodeView } from "./lib/node-view/ate-angular-node-view";
38
40
  export { AteNodeViewRenderer } from "./lib/node-view/ate-node-view.renderer";
39
41
  export { createAngularComponentExtension } from "./lib/node-view/ate-node-view.factory";
40
42
  export { registerAngularComponent } from "./lib/node-view/ate-register-angular-component";
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDRCQUE0QjtBQUM1QixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsYUFBYTtBQUNiLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxXQUFXO0FBQ1gsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQscURBQXFEO0FBQ3JELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsbURBQW1ELENBQUM7QUFFbEUseUNBQXlDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCx5QkFBeUI7QUFDekIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELHVDQUF1QztBQUN2QyxjQUFjLHdDQUF3QyxDQUFDO0FBS3ZELCtCQUErQjtBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGlwdGFwLWVkaXRvclxuICovXG5cbi8vIE1haW4gY29tcG9uZW50ICYgUHJvdmlkZXJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2VkaXRvci9hbmd1bGFyLXRpcHRhcC1lZGl0b3IuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvYXRlLWVkaXRvci5wcm92aWRlclwiO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy9hdGUtbm9vcC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kaXJlY3RpdmVzL2F0ZS10b29sdGlwLmRpcmVjdGl2ZVwiO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1pMThuLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtZWRpdG9yLWNvbW1hbmRzLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtaW1hZ2Uuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1jb2xvci1waWNrZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1saW5rLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtZXhwb3J0LnNlcnZpY2VcIjtcblxuLy8gU3RhdGUgJiBDYWxjdWxhdG9ycyAoRXNzZW50aWFsIGZvciBjdXN0b20gcGx1Z2lucylcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWVkaXRvci1zdGF0ZS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLWRpc2NvdmVyeS5jYWxjdWxhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtaW1hZ2UuY2FsY3VsYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLW1hcmtzLmNhbGN1bGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1zZWxlY3Rpb24uY2FsY3VsYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLXN0cnVjdHVyZS5jYWxjdWxhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtdGFibGUuY2FsY3VsYXRvclwiO1xuXG4vLyBUeXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgY29uZmlndXJhdGlvblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtdG9vbGJhci5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtaW1hZ2UubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWJ1YmJsZS1tZW51Lm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1lZGl0b3ItY29uZmlnLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1zbGFzaC1jb21tYW5kLm1vZGVsXCI7XG5cbi8vIERlZmF1bHQgY29uZmlndXJhdGlvbnNcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWcvYXRlLWVkaXRvci5jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWcvYXRlLWdsb2JhbC1jb25maWcudG9rZW5cIjtcblxuLy8gVXRpbGl0eSBmdW5jdGlvbnMgZm9yIHNsYXNoIGNvbW1hbmRzXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F0ZS1zbGFzaC1jb21tYW5kcy5jb25maWdcIjtcblxuLy8gVHJhbnNsYXRpb25zXG5leHBvcnQgdHlwZSB7IFN1cHBvcnRlZExvY2FsZSB9IGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbi8vIEFuZ3VsYXIgTm9kZVZpZXcgSW50ZWdyYXRpb25cbmV4cG9ydCB7IEF0ZUFuZ3VsYXJOb2RlVmlldyB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLWFuZ3VsYXItbm9kZS12aWV3XCI7XG5leHBvcnQgeyBBdGVOb2RlVmlld1JlbmRlcmVyIH0gZnJvbSBcIi4vbGliL25vZGUtdmlldy9hdGUtbm9kZS12aWV3LnJlbmRlcmVyXCI7XG5leHBvcnQgeyBjcmVhdGVBbmd1bGFyQ29tcG9uZW50RXh0ZW5zaW9uIH0gZnJvbSBcIi4vbGliL25vZGUtdmlldy9hdGUtbm9kZS12aWV3LmZhY3RvcnlcIjtcbmV4cG9ydCB7IHJlZ2lzdGVyQW5ndWxhckNvbXBvbmVudCB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLXJlZ2lzdGVyLWFuZ3VsYXItY29tcG9uZW50XCI7XG5cbi8vIE5vZGUgVmlldyBUeXBlcyAtIEF0ZUFuZ3VsYXJOb2RlIGlzIHRoZSBwcmltYXJ5IHB1YmxpYyB0eXBlXG5leHBvcnQgdHlwZSB7IEF0ZUFuZ3VsYXJOb2RlIH0gZnJvbSBcIi4vbGliL21vZGVscy9hdGUtZWRpdG9yLWNvbmZpZy5tb2RlbFwiO1xuLy8gQWR2YW5jZWQ6IExvdy1sZXZlbCBvcHRpb25zIGZvciBmdWxsIGNvbnRyb2wgb3ZlciBub2RlIHJlZ2lzdHJhdGlvblxuZXhwb3J0IHR5cGUge1xuICBSZWdpc3RlckFuZ3VsYXJDb21wb25lbnRPcHRpb25zLFxuICBBdGVDb21wb25lbnRSZW5kZXJPcHRpb25zLFxufSBmcm9tIFwiLi9saWIvbm9kZS12aWV3L2F0ZS1ub2RlLXZpZXcubW9kZWxzXCI7XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDRCQUE0QjtBQUM1QixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsYUFBYTtBQUNiLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxXQUFXO0FBQ1gsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLHFEQUFxRDtBQUNyRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLHlDQUF5QztBQUN6QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFFckQseUJBQXlCO0FBQ3pCLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCx1Q0FBdUM7QUFDdkMsY0FBYyx3Q0FBd0MsQ0FBQztBQUt2RCwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRpcHRhcC1lZGl0b3JcbiAqL1xuXG4vLyBNYWluIGNvbXBvbmVudCAmIFByb3ZpZGVyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9lZGl0b3IvYW5ndWxhci10aXB0YXAtZWRpdG9yLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2F0ZS1lZGl0b3IucHJvdmlkZXJcIjtcblxuLy8gRGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZXMvYXRlLW5vb3AtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy9hdGUtdG9vbHRpcC5kaXJlY3RpdmVcIjtcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWltYWdlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtY29sb3ItcGlja2VyLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtbGluay5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWV4cG9ydC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWVkaXRvci1yZWdpc3RyeS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1lZGl0b3ItcmVmXCI7XG5cbi8vIFN0YXRlICYgQ2FsY3VsYXRvcnMgKEVzc2VudGlhbCBmb3IgY3VzdG9tIHBsdWdpbnMpXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1lZGl0b3Itc3RhdGUubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1kaXNjb3ZlcnkuY2FsY3VsYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLWltYWdlLmNhbGN1bGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1tYXJrcy5jYWxjdWxhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtc2VsZWN0aW9uLmNhbGN1bGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1zdHJ1Y3R1cmUuY2FsY3VsYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLXRhYmxlLmNhbGN1bGF0b3JcIjtcblxuLy8gVHlwZXMgYW5kIGludGVyZmFjZXMgZm9yIGNvbmZpZ3VyYXRpb25cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWltYWdlLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1idWJibGUtbWVudS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtZWRpdG9yLWNvbmZpZy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtc2xhc2gtY29tbWFuZC5tb2RlbFwiO1xuXG4vLyBEZWZhdWx0IGNvbmZpZ3VyYXRpb25zXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F0ZS1lZGl0b3IuY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F0ZS1nbG9iYWwtY29uZmlnLnRva2VuXCI7XG5cbi8vIFV0aWxpdHkgZnVuY3Rpb25zIGZvciBzbGFzaCBjb21tYW5kc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbmZpZy9hdGUtc2xhc2gtY29tbWFuZHMuY29uZmlnXCI7XG5cbi8vIFRyYW5zbGF0aW9uc1xuZXhwb3J0IHR5cGUgeyBTdXBwb3J0ZWRMb2NhbGUgfSBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWkxOG4uc2VydmljZVwiO1xuXG4vLyBBbmd1bGFyIE5vZGVWaWV3IEludGVncmF0aW9uXG5leHBvcnQgeyBBdGVBbmd1bGFyTm9kZVZpZXcgfSBmcm9tIFwiLi9saWIvbm9kZS12aWV3L2F0ZS1hbmd1bGFyLW5vZGUtdmlld1wiO1xuZXhwb3J0IHsgQXRlTm9kZVZpZXdSZW5kZXJlciB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLW5vZGUtdmlldy5yZW5kZXJlclwiO1xuZXhwb3J0IHsgY3JlYXRlQW5ndWxhckNvbXBvbmVudEV4dGVuc2lvbiB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLW5vZGUtdmlldy5mYWN0b3J5XCI7XG5leHBvcnQgeyByZWdpc3RlckFuZ3VsYXJDb21wb25lbnQgfSBmcm9tIFwiLi9saWIvbm9kZS12aWV3L2F0ZS1yZWdpc3Rlci1hbmd1bGFyLWNvbXBvbmVudFwiO1xuXG4vLyBOb2RlIFZpZXcgVHlwZXMgLSBBdGVBbmd1bGFyTm9kZSBpcyB0aGUgcHJpbWFyeSBwdWJsaWMgdHlwZVxuZXhwb3J0IHR5cGUgeyBBdGVBbmd1bGFyTm9kZSB9IGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWVkaXRvci1jb25maWcubW9kZWxcIjtcbi8vIEFkdmFuY2VkOiBMb3ctbGV2ZWwgb3B0aW9ucyBmb3IgZnVsbCBjb250cm9sIG92ZXIgbm9kZSByZWdpc3RyYXRpb25cbmV4cG9ydCB0eXBlIHtcbiAgUmVnaXN0ZXJBbmd1bGFyQ29tcG9uZW50T3B0aW9ucyxcbiAgQXRlQ29tcG9uZW50UmVuZGVyT3B0aW9ucyxcbn0gZnJvbSBcIi4vbGliL25vZGUtdmlldy9hdGUtbm9kZS12aWV3Lm1vZGVsc1wiO1xuIl19