@sciflow/editor-start 0.0.1-beta → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -2
- package/THIRD_PARTY_LICENSES +9 -0
- package/bin/extract-translations.mjs +54 -0
- package/dist/bundle/sciflow-editor.css +1 -1
- package/dist/bundle/sciflow-editor.js +10590 -15324
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/lib/citation-source-adapter.d.ts +22 -2
- package/dist/lib/citation-source-adapter.d.ts.map +1 -1
- package/dist/lib/citation-source-adapter.js +104 -48
- package/dist/lib/drag-preview.d.ts +13 -0
- package/dist/lib/drag-preview.d.ts.map +1 -0
- package/dist/lib/drag-preview.js +43 -0
- package/dist/lib/editor-element.d.ts +30 -4
- package/dist/lib/editor-element.d.ts.map +1 -1
- package/dist/lib/editor-element.js +131 -30
- package/dist/lib/format-bar.d.ts +26 -2
- package/dist/lib/format-bar.d.ts.map +1 -1
- package/dist/lib/format-bar.js +369 -56
- package/dist/lib/ghost-cursor.d.ts +10 -0
- package/dist/lib/ghost-cursor.d.ts.map +1 -0
- package/dist/lib/ghost-cursor.js +59 -0
- package/dist/lib/icons-generated.d.ts +14 -0
- package/dist/lib/icons-generated.d.ts.map +1 -0
- package/dist/lib/icons-generated.js +60 -0
- package/dist/lib/outline.d.ts +18 -10
- package/dist/lib/outline.d.ts.map +1 -1
- package/dist/lib/outline.js +184 -28
- package/dist/lib/reference-list.d.ts +10 -2
- package/dist/lib/reference-list.d.ts.map +1 -1
- package/dist/lib/reference-list.js +47 -9
- package/dist/lib/selection-editor.d.ts +83 -5
- package/dist/lib/selection-editor.d.ts.map +1 -1
- package/dist/lib/selection-editor.js +1225 -147
- package/dist/lib/selection-transform-registry.d.ts +16 -0
- package/dist/lib/selection-transform-registry.d.ts.map +1 -0
- package/dist/lib/selection-transform-registry.js +24 -0
- package/dist/lib/selection-ui-renderer.d.ts +22 -0
- package/dist/lib/selection-ui-renderer.d.ts.map +1 -0
- package/dist/lib/selection-ui-renderer.js +244 -0
- package/dist/lib/selection-widget-host.d.ts +67 -0
- package/dist/lib/selection-widget-host.d.ts.map +1 -0
- package/dist/lib/selection-widget-host.js +151 -0
- package/dist/lib/selection-widget-registry.d.ts +16 -0
- package/dist/lib/selection-widget-registry.d.ts.map +1 -0
- package/dist/lib/selection-widget-registry.js +30 -0
- package/dist/lib/test-fixtures/soak-documents.d.ts +13 -0
- package/dist/lib/test-fixtures/soak-documents.d.ts.map +1 -0
- package/dist/lib/test-fixtures/soak-documents.js +69 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +22 -13
- package/dist/demo/demo.js +0 -56
- package/dist/demo/index.html +0 -169
- package/dist/lib/citation-drop.d.ts +0 -25
- package/dist/lib/citation-drop.d.ts.map +0 -1
- package/dist/lib/citation-drop.js +0 -53
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
import { __decorate } from "tslib";
|
|
27
27
|
import { css, html, unsafeCSS, LitElement } from 'lit';
|
|
28
28
|
import { customElement, property } from 'lit/decorators.js';
|
|
29
|
-
import { Editor, SourceField, citationFeature, figureFeature, headingFeature, markFormattingFeature, tableFeature, } from '@sciflow/editor-core';
|
|
29
|
+
import { Editor, SourceField, setLocale, citationFeature, crossReferenceFeature, figureFeature, footnoteFeature, headingFeature, hyperlinkFeature, markFormattingFeature, mathFeature, paragraphFeature, tableFeature, } from '@sciflow/editor-core';
|
|
30
30
|
import { manuscript as manuscriptSchema } from '@sciflow/schema-prosemirror';
|
|
31
31
|
import editorStyles from './editor-element.css?inline';
|
|
32
|
+
import { ghostCursorFeature } from './ghost-cursor.js';
|
|
32
33
|
import { applyThemeStylesToRoot, subscribeToSciFlowTheme } from './theme.js';
|
|
33
34
|
/**
|
|
34
35
|
* Custom element that owns a SciFlow editor instance.
|
|
@@ -73,6 +74,25 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
73
74
|
this.headingText = 'Moby-Dick: A Study in Obsession';
|
|
74
75
|
/** Paragraph text used when no initial content is provided. */
|
|
75
76
|
this.placeholder = 'Introduce Ishmael and the enigmatic Captain Ahab…';
|
|
77
|
+
/**
|
|
78
|
+
* Max-width of the ProseMirror content area.
|
|
79
|
+
* Approximates page-like text columns at 11pt:
|
|
80
|
+
* - 'narrow': narrow column (~52 characters per line)
|
|
81
|
+
* - 'wide': normal column (~82 characters per line)
|
|
82
|
+
* Styles are applied to the shadow DOM.
|
|
83
|
+
*/
|
|
84
|
+
this.editorWidth = 'wide';
|
|
85
|
+
/**
|
|
86
|
+
* UI locale for all editor components and command metadata.
|
|
87
|
+
* Setting this attribute calls `setLocale()` and triggers a
|
|
88
|
+
* `sciflow-locale-change` event so all components re-render.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```html
|
|
92
|
+
* <sciflow-editor locale="de"></sciflow-editor>
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
this.locale = null;
|
|
76
96
|
this.view = null;
|
|
77
97
|
this.pendingOps = [];
|
|
78
98
|
this.pendingOpsFromTransform = false;
|
|
@@ -80,6 +100,7 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
80
100
|
this.deferInitializationForDoc = false;
|
|
81
101
|
this.shadowStyleElements = [];
|
|
82
102
|
this.themeStyleElements = [];
|
|
103
|
+
this._hostDragoverBound = null;
|
|
83
104
|
}
|
|
84
105
|
get shadowStyles() {
|
|
85
106
|
return this._shadowStyles;
|
|
@@ -102,6 +123,14 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
102
123
|
get document() {
|
|
103
124
|
return this.editor?.getDocument() ?? null;
|
|
104
125
|
}
|
|
126
|
+
/** Get the current references (bibliography) stored with the document. */
|
|
127
|
+
get references() {
|
|
128
|
+
return this.editor?.getReferences() ?? [];
|
|
129
|
+
}
|
|
130
|
+
/** Get the merged selection UI schema (Draft-07 + _ui_*), when available. */
|
|
131
|
+
getSelectionUiSchema() {
|
|
132
|
+
return this.editor?.getSelectionUiSchema?.();
|
|
133
|
+
}
|
|
105
134
|
/** Get position utilities for coordinate mapping. */
|
|
106
135
|
get positions() {
|
|
107
136
|
return {
|
|
@@ -138,23 +167,25 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
138
167
|
}
|
|
139
168
|
connectedCallback() {
|
|
140
169
|
super.connectedCallback();
|
|
170
|
+
if (this.locale) {
|
|
171
|
+
setLocale(this.locale);
|
|
172
|
+
}
|
|
173
|
+
this._hostDragoverBound = (e) => {
|
|
174
|
+
if (!e.dataTransfer?.types || !this.contains(e.target))
|
|
175
|
+
return;
|
|
176
|
+
const types = Array.from(e.dataTransfer.types);
|
|
177
|
+
const allow = types.includes('application/x-sciflow-reference') ||
|
|
178
|
+
types.includes('application/x-sciflow-cross-reference');
|
|
179
|
+
if (!allow)
|
|
180
|
+
return;
|
|
181
|
+
e.preventDefault();
|
|
182
|
+
e.dataTransfer.dropEffect = 'copy';
|
|
183
|
+
};
|
|
184
|
+
this.addEventListener('dragover', this._hostDragoverBound, { capture: true });
|
|
141
185
|
this.themeUnsub = subscribeToSciFlowTheme((cssTexts) => {
|
|
142
186
|
this.themeStyleElements = applyThemeStylesToRoot(this.renderRoot, this.themeStyleElements, cssTexts);
|
|
143
187
|
this.applyShadowStyles();
|
|
144
188
|
});
|
|
145
|
-
queueMicrotask(() => {
|
|
146
|
-
this.debugTestLog('connected microtask', { hasEditor: !!this.editor });
|
|
147
|
-
if (this.editor) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
try {
|
|
151
|
-
const initialDoc = this.resolveInitialDoc();
|
|
152
|
-
this.dispatchEditorChange(initialDoc.toJSON(), [], []);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
// Ignore errors during eager ready dispatch; initialization will retry in firstUpdated.
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
189
|
}
|
|
159
190
|
/**
|
|
160
191
|
* React to property changes coming from the host application.
|
|
@@ -173,10 +204,16 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
173
204
|
if (changedProperties.has('shadowStyles') && !this._shadowStylesAppliedExternally) {
|
|
174
205
|
this.applyShadowStyles();
|
|
175
206
|
}
|
|
207
|
+
if (changedProperties.has('editorWidth')) {
|
|
208
|
+
this.applyShadowStyles();
|
|
209
|
+
}
|
|
176
210
|
// Reset flag for next update
|
|
177
211
|
if (changedProperties.has('shadowStyles')) {
|
|
178
212
|
this._shadowStylesAppliedExternally = false;
|
|
179
213
|
}
|
|
214
|
+
if (changedProperties.has('locale') && this.locale) {
|
|
215
|
+
setLocale(this.locale);
|
|
216
|
+
}
|
|
180
217
|
if (changedProperties.has('doc')) {
|
|
181
218
|
this.applyDocUpdate();
|
|
182
219
|
}
|
|
@@ -186,6 +223,10 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
186
223
|
* Other frameworks should execute the same logic in their unmount hook.
|
|
187
224
|
*/
|
|
188
225
|
disconnectedCallback() {
|
|
226
|
+
if (this._hostDragoverBound) {
|
|
227
|
+
this.removeEventListener('dragover', this._hostDragoverBound, { capture: true });
|
|
228
|
+
this._hostDragoverBound = null;
|
|
229
|
+
}
|
|
189
230
|
super.disconnectedCallback();
|
|
190
231
|
this.themeUnsub?.();
|
|
191
232
|
this.themeUnsub = undefined;
|
|
@@ -215,7 +256,19 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
215
256
|
* Resolves a mount point, creates the editor instance, and wires listeners.
|
|
216
257
|
*/
|
|
217
258
|
getDefaultFeatures() {
|
|
218
|
-
return [
|
|
259
|
+
return [
|
|
260
|
+
citationFeature,
|
|
261
|
+
crossReferenceFeature,
|
|
262
|
+
footnoteFeature,
|
|
263
|
+
hyperlinkFeature,
|
|
264
|
+
markFormattingFeature,
|
|
265
|
+
paragraphFeature,
|
|
266
|
+
headingFeature,
|
|
267
|
+
figureFeature,
|
|
268
|
+
tableFeature,
|
|
269
|
+
mathFeature,
|
|
270
|
+
ghostCursorFeature,
|
|
271
|
+
];
|
|
219
272
|
}
|
|
220
273
|
getActiveFeatures() {
|
|
221
274
|
return this.features ?? this.getDefaultFeatures();
|
|
@@ -224,13 +277,11 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
224
277
|
return this.doc === null && this.initialContent === null;
|
|
225
278
|
}
|
|
226
279
|
async initializeView() {
|
|
227
|
-
this.debugTestLog('initializeView invoked');
|
|
228
280
|
if (this.view) {
|
|
229
281
|
return;
|
|
230
282
|
}
|
|
231
283
|
const mountPoint = this.renderRoot.querySelector('.editor');
|
|
232
284
|
if (!mountPoint) {
|
|
233
|
-
this.debugTestLog('initializeView: mount point missing');
|
|
234
285
|
return;
|
|
235
286
|
}
|
|
236
287
|
const initialDoc = this.resolveInitialDoc();
|
|
@@ -263,11 +314,7 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
263
314
|
this.editor = editor;
|
|
264
315
|
editor.mount(mountPoint);
|
|
265
316
|
this.view = editor.getView();
|
|
266
|
-
this.debugTestLog('editor mounted', { hasView: !!this.view });
|
|
267
|
-
const runner = editor.getCommands();
|
|
268
|
-
this.debugTestLog('command keys', runner ? Object.keys(runner.commands) : null);
|
|
269
317
|
this.docUnsub = editor.onDoc((doc) => {
|
|
270
|
-
this.debugTestLog('dispatching editor-change', { ops: this.pendingOps.length });
|
|
271
318
|
const files = editor.getFiles();
|
|
272
319
|
this.dispatchEditorChange(doc, this.pendingOps, files);
|
|
273
320
|
this.pendingOps = [];
|
|
@@ -277,6 +324,7 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
277
324
|
this.dispatchSelectionChange(selection);
|
|
278
325
|
});
|
|
279
326
|
this.validationUnsub = editor.onValidation(() => undefined);
|
|
327
|
+
this.dispatchEditorChange(initialDoc.toJSON(), [], editor.getFiles());
|
|
280
328
|
this.dispatchEditorReady();
|
|
281
329
|
this.initialSelection = undefined;
|
|
282
330
|
}
|
|
@@ -294,6 +342,9 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
294
342
|
if (!update) {
|
|
295
343
|
return;
|
|
296
344
|
}
|
|
345
|
+
if (this.isNoopSyncUpdate(update)) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
297
348
|
this.pendingOps = [];
|
|
298
349
|
this.pendingOpsFromTransform = false;
|
|
299
350
|
this.editor.updateFromSync(update);
|
|
@@ -366,6 +417,46 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
366
417
|
}
|
|
367
418
|
return { doc: input };
|
|
368
419
|
}
|
|
420
|
+
isNoopSyncUpdate(update) {
|
|
421
|
+
const editor = this.editor;
|
|
422
|
+
if (!editor) {
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
if (update.doc !== undefined && !this.deepEqualsJSON(update.doc, editor.getDoc())) {
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
if (update.selection !== undefined) {
|
|
429
|
+
const current = editor.getSelection();
|
|
430
|
+
if (!current) {
|
|
431
|
+
return false;
|
|
432
|
+
}
|
|
433
|
+
if (update.selection.anchor !== current.anchor || update.selection.head !== current.head) {
|
|
434
|
+
return false;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
if (update.version !== undefined && update.version !== editor.getVersion()) {
|
|
438
|
+
return false;
|
|
439
|
+
}
|
|
440
|
+
if (update.files !== undefined && !this.deepEqualsJSON(update.files, editor.getFiles())) {
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
if (update.references !== undefined &&
|
|
444
|
+
!this.deepEqualsJSON(update.references, editor.getReferences())) {
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
return true;
|
|
448
|
+
}
|
|
449
|
+
deepEqualsJSON(left, right) {
|
|
450
|
+
if (left === right) {
|
|
451
|
+
return true;
|
|
452
|
+
}
|
|
453
|
+
try {
|
|
454
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
369
460
|
/**
|
|
370
461
|
* Determine which document should be loaded on startup.
|
|
371
462
|
* Preference order: externally supplied JSON, provided PM node, fallback.
|
|
@@ -482,7 +573,6 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
482
573
|
* Applications can listen and update their stores or routing state.
|
|
483
574
|
*/
|
|
484
575
|
dispatchEditorChange(doc, operations, files) {
|
|
485
|
-
this.debugTestLog('editor-change event', { doc, operations });
|
|
486
576
|
this.dispatchEvent(new CustomEvent('editor-change', {
|
|
487
577
|
detail: { doc, operations, files, references: this.editor?.getReferences() ?? [] },
|
|
488
578
|
bubbles: true,
|
|
@@ -601,6 +691,10 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
601
691
|
}
|
|
602
692
|
this.shadowStyleElements = [];
|
|
603
693
|
const cssTexts = this.normalizeShadowStyles(this.shadowStyles);
|
|
694
|
+
const widthCss = this.getEditorWidthStyles();
|
|
695
|
+
if (widthCss) {
|
|
696
|
+
cssTexts.push(widthCss);
|
|
697
|
+
}
|
|
604
698
|
if (cssTexts.length === 0) {
|
|
605
699
|
return;
|
|
606
700
|
}
|
|
@@ -611,6 +705,15 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
611
705
|
this.shadowStyleElements.push(styleEl);
|
|
612
706
|
}
|
|
613
707
|
}
|
|
708
|
+
getEditorWidthStyles() {
|
|
709
|
+
const isNarrow = this.editorWidth === 'narrow';
|
|
710
|
+
return `.ProseMirror {
|
|
711
|
+
font-size: 11pt;
|
|
712
|
+
max-width: ${isNarrow ? '52ch' : '82ch'};
|
|
713
|
+
margin-left: auto;
|
|
714
|
+
margin-right: auto;
|
|
715
|
+
}`;
|
|
716
|
+
}
|
|
614
717
|
normalizeShadowStyles(styles) {
|
|
615
718
|
if (!styles) {
|
|
616
719
|
return [];
|
|
@@ -648,14 +751,6 @@ let SciFlowEditorElement = class SciFlowEditorElement extends LitElement {
|
|
|
648
751
|
return null;
|
|
649
752
|
}
|
|
650
753
|
}
|
|
651
|
-
debugTestLog(message, payload) {
|
|
652
|
-
const isDebug = (typeof process !== 'undefined' && process.env?.DEBUG_TESTS === 'true') ||
|
|
653
|
-
(typeof import.meta !== 'undefined' && import.meta.env?.DEBUG_TESTS === 'true');
|
|
654
|
-
if (!isDebug) {
|
|
655
|
-
return;
|
|
656
|
-
}
|
|
657
|
-
console.log('[sciflow-editor]', message, payload ?? '');
|
|
658
|
-
}
|
|
659
754
|
};
|
|
660
755
|
__decorate([
|
|
661
756
|
property({ attribute: false })
|
|
@@ -675,6 +770,12 @@ __decorate([
|
|
|
675
770
|
__decorate([
|
|
676
771
|
property({ type: String })
|
|
677
772
|
], SciFlowEditorElement.prototype, "placeholder", void 0);
|
|
773
|
+
__decorate([
|
|
774
|
+
property({ type: String })
|
|
775
|
+
], SciFlowEditorElement.prototype, "editorWidth", void 0);
|
|
776
|
+
__decorate([
|
|
777
|
+
property({ type: String, reflect: true })
|
|
778
|
+
], SciFlowEditorElement.prototype, "locale", void 0);
|
|
678
779
|
SciFlowEditorElement = __decorate([
|
|
679
780
|
customElement('sciflow-editor')
|
|
680
781
|
], SciFlowEditorElement);
|
package/dist/lib/format-bar.d.ts
CHANGED
|
@@ -36,11 +36,15 @@ export declare class SciFlowFormatBarElement extends LitElement {
|
|
|
36
36
|
/** ID reference to resolve an editor instance declaratively. */
|
|
37
37
|
for?: string;
|
|
38
38
|
private selectionVersion;
|
|
39
|
+
private styleMenuOpen;
|
|
40
|
+
private insertMenuOpen;
|
|
39
41
|
private resolvedEditor;
|
|
40
42
|
private selectionListener?;
|
|
41
43
|
private readyListener?;
|
|
44
|
+
private localeListener?;
|
|
42
45
|
private themeUnsub?;
|
|
43
46
|
private themeStyleElements;
|
|
47
|
+
private outsideClickHandler?;
|
|
44
48
|
static styles: import("lit").CSSResult;
|
|
45
49
|
/** Subscribe to editor events once the toolbar attaches to the DOM. */
|
|
46
50
|
connectedCallback(): void;
|
|
@@ -56,6 +60,20 @@ export declare class SciFlowFormatBarElement extends LitElement {
|
|
|
56
60
|
* command runner so the UI stays in sync with the currently loaded features.
|
|
57
61
|
*/
|
|
58
62
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
63
|
+
private renderStyleDropdown;
|
|
64
|
+
private toggleStyleMenu;
|
|
65
|
+
private selectStyle;
|
|
66
|
+
private isBlockquoteActive;
|
|
67
|
+
private canUseCommand;
|
|
68
|
+
private renderInsertDropdown;
|
|
69
|
+
private toggleInsertMenu;
|
|
70
|
+
private executeInsertCommand;
|
|
71
|
+
private installOutsideClickHandler;
|
|
72
|
+
private removeOutsideClickHandler;
|
|
73
|
+
/**
|
|
74
|
+
* Render fixed toolbar commands that are not driven by metadata groups.
|
|
75
|
+
*/
|
|
76
|
+
private renderFixedCommandButton;
|
|
59
77
|
/**
|
|
60
78
|
* Find the target editor element and attach listeners for selection changes.
|
|
61
79
|
* This mirrors the wiring a framework component would perform in `useEffect`.
|
|
@@ -66,8 +84,6 @@ export declare class SciFlowFormatBarElement extends LitElement {
|
|
|
66
84
|
private detachEditorListeners;
|
|
67
85
|
/** Convenience getter mirroring `editor.getCommands()`. */
|
|
68
86
|
private getCommandRunner;
|
|
69
|
-
/** Interpret the block-style dropdown and trigger the relevant commands. */
|
|
70
|
-
private handleStyleChange;
|
|
71
87
|
/** Apply a specific heading level after ensuring the editor can handle it. */
|
|
72
88
|
private handleSetHeading;
|
|
73
89
|
/** Reset the current block back to a paragraph. */
|
|
@@ -76,9 +92,17 @@ export declare class SciFlowFormatBarElement extends LitElement {
|
|
|
76
92
|
private getActiveBlockStyle;
|
|
77
93
|
/** Check if a style option can be executed against the current editor state. */
|
|
78
94
|
private canUseStyleOption;
|
|
95
|
+
/** True if the current selection is inside a table (cell or header). */
|
|
96
|
+
private isSelectionInTable;
|
|
97
|
+
/**
|
|
98
|
+
* Render table commands split into logical sub-groups (columns, rows,
|
|
99
|
+
* merge/split, header toggles, navigation/delete) separated visually.
|
|
100
|
+
*/
|
|
101
|
+
private renderTableSubGroups;
|
|
79
102
|
/**
|
|
80
103
|
* Render a set of command buttons that share the same metadata group.
|
|
81
104
|
* Groups are sorted by each command's declared order so feature authors control layout.
|
|
105
|
+
* When onlyCommandNames is set, only those commands in the group are rendered.
|
|
82
106
|
*/
|
|
83
107
|
private renderCommandGroup;
|
|
84
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-bar.d.ts","sourceRoot":"","sources":["../../src/lib/format-bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAa,UAAU,
|
|
1
|
+
{"version":3,"file":"format-bar.d.ts","sourceRoot":"","sources":["../../src/lib/format-bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAa,UAAU,EAAsB,MAAM,KAAK,CAAC;AAOhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoChE;;;;;;;;;;;GAWG;AACH,qBACa,uBAAwB,SAAQ,UAAU;IACrD,oFAAoF;IAEpF,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IAE3C,gEAAgE;IAEhE,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,mBAAmB,CAAC,CAA0B;IAEtD,OAAgB,MAAM,0BAAmC;IAEzD,uEAAuE;IAC9D,iBAAiB,IAAI,IAAI;IAoBlC,qDAAqD;IAC5C,oBAAoB,IAAI,IAAI;IAYrC;;;OAGG;cACgB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMjF;;;OAGG;cACgB,MAAM;IAwCzB,OAAO,CAAC,mBAAmB;IAyD3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,oBAAoB;IAuD5B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,yBAAyB;IAWjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2ChC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,aAAa;IAkBrB,+DAA+D;IAC/D,OAAO,CAAC,qBAAqB;IAc7B,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB;IAQxB,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB;IA6BxB,mDAAmD;IACnD,OAAO,CAAC,kBAAkB;IA6B1B,yEAAyE;IACzE,OAAO,CAAC,mBAAmB;IA6C3B,gFAAgF;IAChF,OAAO,CAAC,iBAAiB;IAmBzB,wEAAwE;IACxE,OAAO,CAAC,kBAAkB;IAmB1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA2BzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,uBAAuB,CAAC;KAC9C;CACF"}
|