oasis-editor 0.0.12 → 0.0.14
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/dist/{OasisEditorApp-DsSNl4Fj.js → OasisEditorApp-BtRbOf8l.js} +249 -19
- package/dist/app/controllers/useEditorLayout.d.ts +2 -1
- package/dist/assets/{importDocxWorker-CtcRQ7NG.js → importDocxWorker-cjz15bhS.js} +1 -1
- package/dist/core/commands/builtinCommands.d.ts +1 -1
- package/dist/core/commands/publicCommandTypes.d.ts +5 -0
- package/dist/core/editorState.d.ts +1 -0
- package/dist/core/model/index.d.ts +1 -0
- package/dist/core/model/types/document.d.ts +7 -0
- package/dist/core/model/types/documentComments.d.ts +50 -0
- package/dist/export/docx/commentsXml.d.ts +34 -0
- package/dist/export/docx/docxTypes.d.ts +7 -0
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/i18n/locales/pt-BR.d.ts +4 -0
- package/dist/import/docx/comments.d.ts +12 -0
- package/dist/import/docx/commentsXml.d.ts +14 -0
- package/dist/import/docx/runs/types.d.ts +10 -0
- package/dist/import/docx/runs.d.ts +5 -1
- package/dist/{index-BUOuw27s.js → index-4CDpujGG.js} +541 -117
- package/dist/index.d.ts +1 -1
- package/dist/oasis-editor.css +1 -1
- package/dist/oasis-editor.js +1 -1
- package/dist/oasis-editor.umd.cjs +4 -4
- package/dist/plugins/internal/createEssentialsPlugin.d.ts +1 -0
- package/dist/ui/OasisEditorEditor.d.ts +2 -1
- package/dist/ui/app/buildEditorViewProps.d.ts +2 -1
- package/dist/ui/canvas/CanvasCommentGeometry.d.ts +13 -0
- package/dist/ui/components/CommentHighlightOverlay.d.ts +16 -0
- package/dist/ui/components/Toolbar/presets/builtinToolbarIds.d.ts +1 -0
- package/dist/ui/components/Toolbar/schema/items.d.ts +2 -0
- package/dist/ui/editorUiTypes.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1458,6 +1458,10 @@ const en = {
|
|
|
1458
1458
|
"toolbar.decreaseIndent": "Decrease indent (Shift+Tab)",
|
|
1459
1459
|
"toolbar.listFormat": "Change list numbering format",
|
|
1460
1460
|
"toolbar.listStartAt": "Start numbering at",
|
|
1461
|
+
"toolbar.specialIndent": "Special Indent",
|
|
1462
|
+
"toolbar.specialIndentNone": "None",
|
|
1463
|
+
"toolbar.specialIndentFirstLine": "First Line",
|
|
1464
|
+
"toolbar.specialIndentHanging": "Hanging",
|
|
1461
1465
|
"toolbar.formatDecimal": "1, 2, 3",
|
|
1462
1466
|
"toolbar.formatLowerLetter": "a, b, c",
|
|
1463
1467
|
"toolbar.formatUpperLetter": "A, B, C",
|
|
@@ -1850,6 +1854,10 @@ const ptBR = {
|
|
|
1850
1854
|
"toolbar.decreaseIndent": "Diminuir recuo (Shift+Tab)",
|
|
1851
1855
|
"toolbar.listFormat": "Alterar formato de numeração",
|
|
1852
1856
|
"toolbar.listStartAt": "Iniciar numeração em",
|
|
1857
|
+
"toolbar.specialIndent": "Recuo especial",
|
|
1858
|
+
"toolbar.specialIndentNone": "Nenhum",
|
|
1859
|
+
"toolbar.specialIndentFirstLine": "Primeira linha",
|
|
1860
|
+
"toolbar.specialIndentHanging": "Deslocamento",
|
|
1853
1861
|
"toolbar.formatDecimal": "1, 2, 3",
|
|
1854
1862
|
"toolbar.formatLowerLetter": "a, b, c",
|
|
1855
1863
|
"toolbar.formatUpperLetter": "A, B, C",
|
|
@@ -2214,14 +2222,14 @@ function t(key, params = []) {
|
|
|
2214
2222
|
return template2;
|
|
2215
2223
|
}
|
|
2216
2224
|
const oasisMarkBase64 = "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";
|
|
2217
|
-
var _tmpl$$
|
|
2225
|
+
var _tmpl$$R = /* @__PURE__ */ template(`<img alt aria-hidden=true>`);
|
|
2218
2226
|
const OASIS_MARK_DATA_URI = `data:image/webp;base64,${oasisMarkBase64}`;
|
|
2219
2227
|
const MARK_ASPECT = 3 / 4;
|
|
2220
2228
|
function OasisBrandMark(props) {
|
|
2221
2229
|
const height = () => props.height ?? 64;
|
|
2222
2230
|
const width = () => Math.round(height() * MARK_ASPECT);
|
|
2223
2231
|
return (() => {
|
|
2224
|
-
var _el$ = _tmpl$$
|
|
2232
|
+
var _el$ = _tmpl$$R();
|
|
2225
2233
|
setAttribute(_el$, "src", OASIS_MARK_DATA_URI);
|
|
2226
2234
|
setAttribute(_el$, "draggable", false);
|
|
2227
2235
|
createRenderEffect((_p$) => {
|
|
@@ -2238,7 +2246,7 @@ function OasisBrandMark(props) {
|
|
|
2238
2246
|
return _el$;
|
|
2239
2247
|
})();
|
|
2240
2248
|
}
|
|
2241
|
-
var _tmpl$$
|
|
2249
|
+
var _tmpl$$Q = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$x = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$l = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
|
|
2242
2250
|
function OasisEditorLoading(props) {
|
|
2243
2251
|
const variant = () => props.variant ?? "overlay";
|
|
2244
2252
|
const pct = () => {
|
|
@@ -2247,7 +2255,7 @@ function OasisEditorLoading(props) {
|
|
|
2247
2255
|
};
|
|
2248
2256
|
const isDone = () => (pct() ?? 0) >= 100;
|
|
2249
2257
|
return (() => {
|
|
2250
|
-
var _el$ = _tmpl$2$
|
|
2258
|
+
var _el$ = _tmpl$2$x(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
|
|
2251
2259
|
insert(_el$2, createComponent(OasisBrandMark, {
|
|
2252
2260
|
height: 40,
|
|
2253
2261
|
"class": "oasis-editor-loading-mark"
|
|
@@ -2258,10 +2266,10 @@ function OasisEditorLoading(props) {
|
|
|
2258
2266
|
return pct() != null;
|
|
2259
2267
|
},
|
|
2260
2268
|
get children() {
|
|
2261
|
-
var _el$6 = _tmpl$$
|
|
2269
|
+
var _el$6 = _tmpl$$Q();
|
|
2262
2270
|
insert(_el$6, (() => {
|
|
2263
2271
|
var _c$ = memo(() => !!isDone());
|
|
2264
|
-
return () => _c$() ? _tmpl$3$
|
|
2272
|
+
return () => _c$() ? _tmpl$3$l() : `${pct()}%`;
|
|
2265
2273
|
})());
|
|
2266
2274
|
return _el$6;
|
|
2267
2275
|
}
|
|
@@ -2310,7 +2318,7 @@ function OasisEditorAppLazy(props = {}) {
|
|
|
2310
2318
|
onCleanup(() => {
|
|
2311
2319
|
cancelled = true;
|
|
2312
2320
|
});
|
|
2313
|
-
import("./OasisEditorApp-
|
|
2321
|
+
import("./OasisEditorApp-BtRbOf8l.js").then((m) => {
|
|
2314
2322
|
cancelled = true;
|
|
2315
2323
|
setProgress(1);
|
|
2316
2324
|
setTimeout(() => setApp(() => m.OasisEditorApp), 180);
|
|
@@ -3423,11 +3431,17 @@ let nextTableRowId = 1;
|
|
|
3423
3431
|
let nextTableCellId = 1;
|
|
3424
3432
|
let nextFootnoteId = 1;
|
|
3425
3433
|
let nextBookmarkId = 1;
|
|
3434
|
+
let nextCommentId = 1;
|
|
3426
3435
|
function createEditorBookmarkId() {
|
|
3427
3436
|
const id = `bookmark:${nextBookmarkId}`;
|
|
3428
3437
|
nextBookmarkId += 1;
|
|
3429
3438
|
return id;
|
|
3430
3439
|
}
|
|
3440
|
+
function createEditorCommentId() {
|
|
3441
|
+
const id = `comment:${nextCommentId}`;
|
|
3442
|
+
nextCommentId += 1;
|
|
3443
|
+
return id;
|
|
3444
|
+
}
|
|
3431
3445
|
function createEditorRun(text = "") {
|
|
3432
3446
|
const run = {
|
|
3433
3447
|
id: `run:${nextRunId}`,
|
|
@@ -4271,6 +4285,7 @@ const OASIS_BUILTIN_COMMANDS = [
|
|
|
4271
4285
|
"setIndentRight",
|
|
4272
4286
|
"setIndentFirstLine",
|
|
4273
4287
|
"setIndentHanging",
|
|
4288
|
+
"setSpecialIndent",
|
|
4274
4289
|
"setParagraphShading",
|
|
4275
4290
|
"applyParagraphBorders",
|
|
4276
4291
|
"setLineHeight",
|
|
@@ -4341,10 +4356,12 @@ class MenuRegistry {
|
|
|
4341
4356
|
}
|
|
4342
4357
|
}
|
|
4343
4358
|
const defaultMenuRegistry = new MenuRegistry();
|
|
4344
|
-
var _tmpl$$
|
|
4345
|
-
const FootnoteIcon = () => _tmpl$$
|
|
4359
|
+
var _tmpl$$P = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$w = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25>`), _tmpl$3$k = /* @__PURE__ */ template(`<i>`);
|
|
4360
|
+
const FootnoteIcon = () => _tmpl$$P();
|
|
4361
|
+
const SpecialIndentFirstLineIcon = () => _tmpl$2$w();
|
|
4346
4362
|
const CUSTOM_ICONS = {
|
|
4347
|
-
footnote: FootnoteIcon
|
|
4363
|
+
footnote: FootnoteIcon,
|
|
4364
|
+
specialIndentFirstLine: SpecialIndentFirstLineIcon
|
|
4348
4365
|
};
|
|
4349
4366
|
function getCustomIcon(name) {
|
|
4350
4367
|
return name ? CUSTOM_ICONS[name] : void 0;
|
|
@@ -4356,9 +4373,9 @@ function ToolIcon(props) {
|
|
|
4356
4373
|
},
|
|
4357
4374
|
get fallback() {
|
|
4358
4375
|
return (() => {
|
|
4359
|
-
var _el$
|
|
4360
|
-
createRenderEffect(() => setAttribute(_el$
|
|
4361
|
-
return _el$
|
|
4376
|
+
var _el$3 = _tmpl$3$k();
|
|
4377
|
+
createRenderEffect(() => setAttribute(_el$3, "data-lucide", props.name));
|
|
4378
|
+
return _el$3;
|
|
4362
4379
|
})();
|
|
4363
4380
|
},
|
|
4364
4381
|
children: (render2) => render2()()
|
|
@@ -4685,7 +4702,7 @@ const defaultMenuItems = [
|
|
|
4685
4702
|
}
|
|
4686
4703
|
];
|
|
4687
4704
|
defaultMenuItems.forEach((item) => defaultMenuRegistry.register(item));
|
|
4688
|
-
var _tmpl$$
|
|
4705
|
+
var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-menubar-menu><div class=oasis-menubar-button role=menuitem aria-haspopup=true>`), _tmpl$4$e = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$d = /* @__PURE__ */ template(`<span class=oasis-menubar-item-icon aria-hidden=true>`), _tmpl$6$6 = /* @__PURE__ */ template(`<span class=oasis-menubar-shortcut>`), _tmpl$7$3 = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$8$2 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`), _tmpl$9$1 = /* @__PURE__ */ template(`<div class=oasis-menubar-item role=menuitem><span class=oasis-menubar-item-main><span>`);
|
|
4689
4706
|
function Menubar(props) {
|
|
4690
4707
|
const [activeMenu, setActiveMenu] = createSignal(null);
|
|
4691
4708
|
const menuItems = () => (props.registry ?? defaultMenuRegistry).getItems();
|
|
@@ -4752,7 +4769,7 @@ function Menubar(props) {
|
|
|
4752
4769
|
});
|
|
4753
4770
|
const topLevelItems = () => pruneTree(menuTree());
|
|
4754
4771
|
return (() => {
|
|
4755
|
-
var _el$ = _tmpl$$
|
|
4772
|
+
var _el$ = _tmpl$$O();
|
|
4756
4773
|
insert(_el$, createComponent(For, {
|
|
4757
4774
|
get each() {
|
|
4758
4775
|
return topLevelItems();
|
|
@@ -4778,7 +4795,7 @@ function Menubar(props) {
|
|
|
4778
4795
|
return activeMenu() === topLevel.id;
|
|
4779
4796
|
},
|
|
4780
4797
|
get children() {
|
|
4781
|
-
var _el$4 = _tmpl$2$
|
|
4798
|
+
var _el$4 = _tmpl$2$v();
|
|
4782
4799
|
insert(_el$4, createComponent(For, {
|
|
4783
4800
|
get each() {
|
|
4784
4801
|
return topLevel.children;
|
|
@@ -4817,7 +4834,7 @@ function MenuNode(props) {
|
|
|
4817
4834
|
} = props;
|
|
4818
4835
|
const isSeparator = (_a = node.item) == null ? void 0 : _a.separator;
|
|
4819
4836
|
if (isSeparator) {
|
|
4820
|
-
return _tmpl$4$
|
|
4837
|
+
return _tmpl$4$e();
|
|
4821
4838
|
}
|
|
4822
4839
|
const hasChildren = node.children.length > 0;
|
|
4823
4840
|
const [showSub, setShowSub] = createSignal(false);
|
|
@@ -4852,7 +4869,7 @@ function MenuNode(props) {
|
|
|
4852
4869
|
return icon();
|
|
4853
4870
|
},
|
|
4854
4871
|
get children() {
|
|
4855
|
-
var _el$8 = _tmpl$5$
|
|
4872
|
+
var _el$8 = _tmpl$5$d();
|
|
4856
4873
|
insert(_el$8, createComponent(ToolIcon, {
|
|
4857
4874
|
get name() {
|
|
4858
4875
|
return icon();
|
|
@@ -4905,10 +4922,10 @@ function MenuNode(props) {
|
|
|
4905
4922
|
})();
|
|
4906
4923
|
}
|
|
4907
4924
|
delegateEvents(["click"]);
|
|
4908
|
-
var _tmpl$$
|
|
4925
|
+
var _tmpl$$N = /* @__PURE__ */ template(`<div class=oasis-titlebar><div class=oasis-titlebar-left><div class=oasis-titlebar-menubar-slot>`);
|
|
4909
4926
|
function TitleBar(props) {
|
|
4910
4927
|
return (() => {
|
|
4911
|
-
var _el$ = _tmpl$$
|
|
4928
|
+
var _el$ = _tmpl$$N(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
4912
4929
|
insert(_el$3, () => props.children);
|
|
4913
4930
|
return _el$;
|
|
4914
4931
|
})();
|
|
@@ -16874,7 +16891,7 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
|
|
|
16874
16891
|
);
|
|
16875
16892
|
return rectFromBox(slot.left, slot.top, 1, slot.height || line.height);
|
|
16876
16893
|
}
|
|
16877
|
-
var _tmpl$$
|
|
16894
|
+
var _tmpl$$M = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$u = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$d = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
|
|
16878
16895
|
function OutlinePanel(props) {
|
|
16879
16896
|
const [collapsed, setCollapsed] = createSignal(props.defaultCollapsed ?? false);
|
|
16880
16897
|
const [items, setItems] = createSignal([]);
|
|
@@ -16948,7 +16965,7 @@ function OutlinePanel(props) {
|
|
|
16948
16965
|
return !collapsed();
|
|
16949
16966
|
},
|
|
16950
16967
|
get children() {
|
|
16951
|
-
var _el$3 = _tmpl$$
|
|
16968
|
+
var _el$3 = _tmpl$$M();
|
|
16952
16969
|
insert(_el$3, () => t("menu.view.outline") || "Outline");
|
|
16953
16970
|
return _el$3;
|
|
16954
16971
|
}
|
|
@@ -16959,14 +16976,14 @@ function OutlinePanel(props) {
|
|
|
16959
16976
|
return !collapsed();
|
|
16960
16977
|
},
|
|
16961
16978
|
get children() {
|
|
16962
|
-
var _el$6 = _tmpl$2$
|
|
16979
|
+
var _el$6 = _tmpl$2$u();
|
|
16963
16980
|
insert(_el$6, createComponent(Show, {
|
|
16964
16981
|
get when() {
|
|
16965
16982
|
return items().length > 0;
|
|
16966
16983
|
},
|
|
16967
16984
|
get fallback() {
|
|
16968
16985
|
return (() => {
|
|
16969
|
-
var _el$7 = _tmpl$4$
|
|
16986
|
+
var _el$7 = _tmpl$4$d();
|
|
16970
16987
|
insert(_el$7, () => t("outline.empty"));
|
|
16971
16988
|
return _el$7;
|
|
16972
16989
|
})();
|
|
@@ -16977,7 +16994,7 @@ function OutlinePanel(props) {
|
|
|
16977
16994
|
return items();
|
|
16978
16995
|
},
|
|
16979
16996
|
children: (item) => (() => {
|
|
16980
|
-
var _el$8 = _tmpl$5$
|
|
16997
|
+
var _el$8 = _tmpl$5$c();
|
|
16981
16998
|
_el$8.$$click = () => props.onNavigate(item.anchor);
|
|
16982
16999
|
insert(_el$8, () => item.text);
|
|
16983
17000
|
createRenderEffect((_p$) => {
|
|
@@ -17016,7 +17033,7 @@ function OutlinePanel(props) {
|
|
|
17016
17033
|
})();
|
|
17017
17034
|
}
|
|
17018
17035
|
delegateEvents(["click"]);
|
|
17019
|
-
var _tmpl$$
|
|
17036
|
+
var _tmpl$$L = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
|
|
17020
17037
|
function ToolbarOverflowManager(props) {
|
|
17021
17038
|
const [overflowCount, setOverflowCount] = createSignal(0);
|
|
17022
17039
|
const [menuOpen, setMenuOpen] = createSignal(false);
|
|
@@ -17159,7 +17176,7 @@ function ToolbarOverflowManager(props) {
|
|
|
17159
17176
|
};
|
|
17160
17177
|
};
|
|
17161
17178
|
return (() => {
|
|
17162
|
-
var _el$ = _tmpl$$
|
|
17179
|
+
var _el$ = _tmpl$$L(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$4.nextSibling;
|
|
17163
17180
|
var _ref$ = containerRef;
|
|
17164
17181
|
typeof _ref$ === "function" ? use(_ref$, _el$) : containerRef = _el$;
|
|
17165
17182
|
var _ref$2 = moreMeasureRef;
|
|
@@ -17171,7 +17188,7 @@ function ToolbarOverflowManager(props) {
|
|
|
17171
17188
|
return items();
|
|
17172
17189
|
},
|
|
17173
17190
|
children: (item) => (() => {
|
|
17174
|
-
var _el$7 = _tmpl$2$
|
|
17191
|
+
var _el$7 = _tmpl$2$t();
|
|
17175
17192
|
insert(_el$7, item);
|
|
17176
17193
|
return _el$7;
|
|
17177
17194
|
})()
|
|
@@ -17247,12 +17264,12 @@ function resolveLabel(item, api) {
|
|
|
17247
17264
|
if (item.labelKey) return api.t(item.labelKey);
|
|
17248
17265
|
return void 0;
|
|
17249
17266
|
}
|
|
17250
|
-
var _tmpl$$
|
|
17267
|
+
var _tmpl$$K = /* @__PURE__ */ template(`<span>`), _tmpl$2$s = /* @__PURE__ */ template(`<button type=button>`);
|
|
17251
17268
|
function Button$1(props) {
|
|
17252
17269
|
const [local, others] = splitProps(props, ["icon", "label", "active", "tooltip", "wide", "aria-label", "class", "classList"]);
|
|
17253
17270
|
const ariaLabel = () => local["aria-label"] || local.tooltip || local.label || "";
|
|
17254
17271
|
return (() => {
|
|
17255
|
-
var _el$ = _tmpl$2$
|
|
17272
|
+
var _el$ = _tmpl$2$s();
|
|
17256
17273
|
spread(_el$, mergeProps({
|
|
17257
17274
|
get ["class"]() {
|
|
17258
17275
|
return `oasis-editor-tool-button ${local.class || ""}`;
|
|
@@ -17288,7 +17305,7 @@ function Button$1(props) {
|
|
|
17288
17305
|
return local.label;
|
|
17289
17306
|
},
|
|
17290
17307
|
get children() {
|
|
17291
|
-
var _el$2 = _tmpl$$
|
|
17308
|
+
var _el$2 = _tmpl$$K();
|
|
17292
17309
|
insert(_el$2, () => local.label);
|
|
17293
17310
|
return _el$2;
|
|
17294
17311
|
}
|
|
@@ -17370,7 +17387,7 @@ function useDismiss(options) {
|
|
|
17370
17387
|
});
|
|
17371
17388
|
});
|
|
17372
17389
|
}
|
|
17373
|
-
var _tmpl$$
|
|
17390
|
+
var _tmpl$$J = /* @__PURE__ */ template(`<div>`);
|
|
17374
17391
|
function Popover(props) {
|
|
17375
17392
|
let anchorRef;
|
|
17376
17393
|
let panelRef;
|
|
@@ -17387,7 +17404,7 @@ function Popover(props) {
|
|
|
17387
17404
|
closeOnEscape: props.closeOnEscape
|
|
17388
17405
|
});
|
|
17389
17406
|
const panel = (portalled) => (() => {
|
|
17390
|
-
var _el$ = _tmpl$$
|
|
17407
|
+
var _el$ = _tmpl$$J();
|
|
17391
17408
|
addEventListener(_el$, "mouseleave", props.onPanelMouseLeave);
|
|
17392
17409
|
var _ref$ = panelRef;
|
|
17393
17410
|
typeof _ref$ === "function" ? use(_ref$, _el$) : panelRef = _el$;
|
|
@@ -17439,12 +17456,12 @@ function Popover(props) {
|
|
|
17439
17456
|
}
|
|
17440
17457
|
})];
|
|
17441
17458
|
}
|
|
17442
|
-
var _tmpl$$
|
|
17459
|
+
var _tmpl$$I = /* @__PURE__ */ template(`<div>`), _tmpl$2$r = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$h = /* @__PURE__ */ template(`<i>`), _tmpl$4$c = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$b = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$5 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
|
|
17443
17460
|
function Menu(props) {
|
|
17444
17461
|
const [open, setOpen] = createSignal(false);
|
|
17445
17462
|
const ariaLabel = () => props.tooltip || props.label || "";
|
|
17446
17463
|
return (() => {
|
|
17447
|
-
var _el$ = _tmpl$2$
|
|
17464
|
+
var _el$ = _tmpl$2$r();
|
|
17448
17465
|
insert(_el$, createComponent(Popover, {
|
|
17449
17466
|
get open() {
|
|
17450
17467
|
return open();
|
|
@@ -17477,7 +17494,7 @@ function Menu(props) {
|
|
|
17477
17494
|
return props.label;
|
|
17478
17495
|
},
|
|
17479
17496
|
get children() {
|
|
17480
|
-
var _el$5 = _tmpl$4$
|
|
17497
|
+
var _el$5 = _tmpl$4$c();
|
|
17481
17498
|
insert(_el$5, () => props.label);
|
|
17482
17499
|
return _el$5;
|
|
17483
17500
|
}
|
|
@@ -17487,7 +17504,7 @@ function Menu(props) {
|
|
|
17487
17504
|
return !props.hideChevron;
|
|
17488
17505
|
},
|
|
17489
17506
|
get children() {
|
|
17490
|
-
return _tmpl$5$
|
|
17507
|
+
return _tmpl$5$b();
|
|
17491
17508
|
}
|
|
17492
17509
|
}), null);
|
|
17493
17510
|
createRenderEffect((_p$) => {
|
|
@@ -17510,7 +17527,7 @@ function Menu(props) {
|
|
|
17510
17527
|
return _el$3;
|
|
17511
17528
|
})(),
|
|
17512
17529
|
get children() {
|
|
17513
|
-
var _el$2 = _tmpl$$
|
|
17530
|
+
var _el$2 = _tmpl$$I();
|
|
17514
17531
|
_el$2.$$click = (event) => {
|
|
17515
17532
|
const el = event.target;
|
|
17516
17533
|
if (el.closest("button") && !el.closest(".oasis-editor-tool-button-dropdown") && !el.closest(".oasis-editor-toolbar-list-options")) {
|
|
@@ -17525,7 +17542,7 @@ function Menu(props) {
|
|
|
17525
17542
|
})();
|
|
17526
17543
|
}
|
|
17527
17544
|
delegateEvents(["click"]);
|
|
17528
|
-
var _tmpl$$
|
|
17545
|
+
var _tmpl$$H = /* @__PURE__ */ template(`<select>`);
|
|
17529
17546
|
function Select(props) {
|
|
17530
17547
|
let selectRef;
|
|
17531
17548
|
const [local, others] = splitProps(props, ["wide", "small", "class", "tooltip", "aria-label", "value"]);
|
|
@@ -17541,7 +17558,7 @@ function Select(props) {
|
|
|
17541
17558
|
}
|
|
17542
17559
|
});
|
|
17543
17560
|
return (() => {
|
|
17544
|
-
var _el$ = _tmpl$$
|
|
17561
|
+
var _el$ = _tmpl$$H();
|
|
17545
17562
|
var _ref$ = selectRef;
|
|
17546
17563
|
typeof _ref$ === "function" ? use(_ref$, _el$) : selectRef = _el$;
|
|
17547
17564
|
spread(_el$, mergeProps({
|
|
@@ -17568,15 +17585,15 @@ function Select(props) {
|
|
|
17568
17585
|
return _el$;
|
|
17569
17586
|
})();
|
|
17570
17587
|
}
|
|
17571
|
-
var _tmpl$$
|
|
17588
|
+
var _tmpl$$G = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-separator>`);
|
|
17572
17589
|
function Separator(props) {
|
|
17573
17590
|
return (() => {
|
|
17574
|
-
var _el$ = _tmpl$$
|
|
17591
|
+
var _el$ = _tmpl$$G();
|
|
17575
17592
|
createRenderEffect((_$p) => setStyleProperty(_el$, "display", props.hidden ? "none" : void 0));
|
|
17576
17593
|
return _el$;
|
|
17577
17594
|
})();
|
|
17578
17595
|
}
|
|
17579
|
-
var _tmpl$$
|
|
17596
|
+
var _tmpl$$F = /* @__PURE__ */ template(`<div><button type=button class=oasis-editor-color-split-main></button><button type=button class=oasis-editor-color-split-menu-button aria-haspopup=menu><i data-lucide=chevron-down>`);
|
|
17580
17597
|
function SplitButton(props) {
|
|
17581
17598
|
return createComponent(Popover, {
|
|
17582
17599
|
get open() {
|
|
@@ -17595,7 +17612,7 @@ function SplitButton(props) {
|
|
|
17595
17612
|
return props.onPanelMouseLeave;
|
|
17596
17613
|
},
|
|
17597
17614
|
trigger: (api) => (() => {
|
|
17598
|
-
var _el$ = _tmpl$$
|
|
17615
|
+
var _el$ = _tmpl$$F(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
17599
17616
|
use((el) => api.ref(el), _el$);
|
|
17600
17617
|
_el$2.$$click = () => props.onMain();
|
|
17601
17618
|
insert(_el$2, () => props.mainContent);
|
|
@@ -17633,7 +17650,7 @@ function SplitButton(props) {
|
|
|
17633
17650
|
});
|
|
17634
17651
|
}
|
|
17635
17652
|
delegateEvents(["click"]);
|
|
17636
|
-
var _tmpl$$
|
|
17653
|
+
var _tmpl$$E = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$q = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$b = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$4 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
|
|
17637
17654
|
const normalizeColor = (value) => (value == null ? void 0 : value.trim().toLowerCase()) ?? "";
|
|
17638
17655
|
function ColorPicker(props) {
|
|
17639
17656
|
const [isOpen, setIsOpen] = createSignal(false);
|
|
@@ -17698,7 +17715,7 @@ function ColorPicker(props) {
|
|
|
17698
17715
|
return clearLabel();
|
|
17699
17716
|
},
|
|
17700
17717
|
get children() {
|
|
17701
|
-
var _el$ = _tmpl$2$
|
|
17718
|
+
var _el$ = _tmpl$2$q(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
|
|
17702
17719
|
_el$.$$click = () => applyColor(null);
|
|
17703
17720
|
insert(_el$2, createComponent(Show, {
|
|
17704
17721
|
get when() {
|
|
@@ -17708,7 +17725,7 @@ function ColorPicker(props) {
|
|
|
17708
17725
|
return _tmpl$8$1();
|
|
17709
17726
|
},
|
|
17710
17727
|
get children() {
|
|
17711
|
-
return _tmpl$$
|
|
17728
|
+
return _tmpl$$E();
|
|
17712
17729
|
}
|
|
17713
17730
|
}));
|
|
17714
17731
|
insert(_el$4, clearLabel);
|
|
@@ -17756,7 +17773,7 @@ function ColorPicker(props) {
|
|
|
17756
17773
|
}));
|
|
17757
17774
|
return _el$5;
|
|
17758
17775
|
})(), (() => {
|
|
17759
|
-
var _el$8 = _tmpl$4$
|
|
17776
|
+
var _el$8 = _tmpl$4$b(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
|
|
17760
17777
|
insert(_el$9, () => props.standardColorsLabel);
|
|
17761
17778
|
insert(_el$0, createComponent(For, {
|
|
17762
17779
|
get each() {
|
|
@@ -17793,7 +17810,7 @@ function ColorPicker(props) {
|
|
|
17793
17810
|
},
|
|
17794
17811
|
get children() {
|
|
17795
17812
|
return [(() => {
|
|
17796
|
-
var _el$1 = _tmpl$5$
|
|
17813
|
+
var _el$1 = _tmpl$5$a(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling;
|
|
17797
17814
|
_el$1.$$click = () => customColorInputRef == null ? void 0 : customColorInputRef.click();
|
|
17798
17815
|
insert(_el$11, () => props.moreColorsLabel);
|
|
17799
17816
|
createRenderEffect(() => setAttribute(_el$1, "data-testid", `${props.testId}-more-colors`));
|
|
@@ -17821,7 +17838,7 @@ function ColorPicker(props) {
|
|
|
17821
17838
|
});
|
|
17822
17839
|
}
|
|
17823
17840
|
delegateEvents(["click", "input"]);
|
|
17824
|
-
var _tmpl$$
|
|
17841
|
+
var _tmpl$$D = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$p = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
|
|
17825
17842
|
function GridPicker(props) {
|
|
17826
17843
|
const [isOpen, setIsOpen] = createSignal(false);
|
|
17827
17844
|
const [hover, setHover] = createSignal({
|
|
@@ -17907,7 +17924,7 @@ function GridPicker(props) {
|
|
|
17907
17924
|
col: 0
|
|
17908
17925
|
}),
|
|
17909
17926
|
trigger: (api) => (() => {
|
|
17910
|
-
var _el$4 = _tmpl$4$
|
|
17927
|
+
var _el$4 = _tmpl$4$a(), _el$5 = _el$4.firstChild;
|
|
17911
17928
|
_el$4.$$click = () => api.toggle();
|
|
17912
17929
|
use((el) => api.ref(el), _el$4);
|
|
17913
17930
|
createRenderEffect((_p$) => {
|
|
@@ -17929,11 +17946,11 @@ function GridPicker(props) {
|
|
|
17929
17946
|
})(),
|
|
17930
17947
|
get children() {
|
|
17931
17948
|
return [(() => {
|
|
17932
|
-
var _el$2 = _tmpl$$
|
|
17949
|
+
var _el$2 = _tmpl$$D();
|
|
17933
17950
|
insert(_el$2, statusLabel);
|
|
17934
17951
|
return _el$2;
|
|
17935
17952
|
})(), (() => {
|
|
17936
|
-
var _el$3 = _tmpl$2$
|
|
17953
|
+
var _el$3 = _tmpl$2$p();
|
|
17937
17954
|
insert(_el$3, createComponent(For, {
|
|
17938
17955
|
get each() {
|
|
17939
17956
|
return rows();
|
|
@@ -17943,7 +17960,7 @@ function GridPicker(props) {
|
|
|
17943
17960
|
return cols();
|
|
17944
17961
|
},
|
|
17945
17962
|
children: (c) => (() => {
|
|
17946
|
-
var _el$6 = _tmpl$5$
|
|
17963
|
+
var _el$6 = _tmpl$5$9();
|
|
17947
17964
|
_el$6.$$click = () => selectGridSize(r, c);
|
|
17948
17965
|
_el$6.$$mousedown = (event) => event.preventDefault();
|
|
17949
17966
|
_el$6.addEventListener("mouseenter", () => setHover({
|
|
@@ -18033,7 +18050,7 @@ const DEFAULT_PALETTE = {
|
|
|
18033
18050
|
standardColors: STANDARD_COLORS,
|
|
18034
18051
|
allowCustom: true
|
|
18035
18052
|
};
|
|
18036
|
-
var _tmpl$$
|
|
18053
|
+
var _tmpl$$C = /* @__PURE__ */ template(`<option value>`), _tmpl$2$o = /* @__PURE__ */ template(`<option>`);
|
|
18037
18054
|
function renderMenuContent(content, api) {
|
|
18038
18055
|
if (content.kind === "custom") {
|
|
18039
18056
|
return content.render(api);
|
|
@@ -18161,14 +18178,16 @@ function RenderSplit(props) {
|
|
|
18161
18178
|
get menuTestId() {
|
|
18162
18179
|
return memo(() => !!props.item.testId)() ? `${props.item.testId}-dropdown` : void 0;
|
|
18163
18180
|
},
|
|
18164
|
-
panelClass
|
|
18181
|
+
get panelClass() {
|
|
18182
|
+
return props.item.panelClass ?? "oasis-editor-color-menu";
|
|
18183
|
+
},
|
|
18165
18184
|
panelRole: "menu",
|
|
18166
18185
|
get mainContent() {
|
|
18167
|
-
return (() => {
|
|
18168
|
-
|
|
18169
|
-
|
|
18170
|
-
|
|
18171
|
-
})
|
|
18186
|
+
return memo(() => !!props.item.iconName)() ? createComponent(ToolIcon, {
|
|
18187
|
+
get name() {
|
|
18188
|
+
return props.item.iconName;
|
|
18189
|
+
}
|
|
18190
|
+
}) : [];
|
|
18172
18191
|
},
|
|
18173
18192
|
get children() {
|
|
18174
18193
|
return renderMenuContent(props.item.menu, props.api);
|
|
@@ -18204,19 +18223,19 @@ function RenderSelect(props) {
|
|
|
18204
18223
|
return props.item.placeholder !== void 0;
|
|
18205
18224
|
},
|
|
18206
18225
|
get children() {
|
|
18207
|
-
var _el$
|
|
18208
|
-
insert(_el
|
|
18209
|
-
return _el
|
|
18226
|
+
var _el$ = _tmpl$$C();
|
|
18227
|
+
insert(_el$, () => props.item.placeholder);
|
|
18228
|
+
return _el$;
|
|
18210
18229
|
}
|
|
18211
18230
|
}), createComponent(For, {
|
|
18212
18231
|
get each() {
|
|
18213
18232
|
return props.item.options(props.api);
|
|
18214
18233
|
},
|
|
18215
18234
|
children: (option) => (() => {
|
|
18216
|
-
var _el$
|
|
18217
|
-
insert(_el$
|
|
18218
|
-
createRenderEffect(() => _el$
|
|
18219
|
-
return _el$
|
|
18235
|
+
var _el$2 = _tmpl$2$o();
|
|
18236
|
+
insert(_el$2, () => option.label);
|
|
18237
|
+
createRenderEffect(() => _el$2.value = option.value);
|
|
18238
|
+
return _el$2;
|
|
18220
18239
|
})()
|
|
18221
18240
|
})];
|
|
18222
18241
|
}
|
|
@@ -18336,12 +18355,12 @@ function registerToolbarRenderer(type, component) {
|
|
|
18336
18355
|
function resolveRenderer(type) {
|
|
18337
18356
|
return TOOLBAR_RENDERERS[type] ?? customRenderers.get(type);
|
|
18338
18357
|
}
|
|
18339
|
-
var _tmpl$$
|
|
18358
|
+
var _tmpl$$B = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
|
|
18340
18359
|
function ToolbarItemRenderer(props) {
|
|
18341
18360
|
const binding = bindItem(props.item, props.api);
|
|
18342
18361
|
const component = () => resolveRenderer(props.item.type);
|
|
18343
18362
|
return (() => {
|
|
18344
|
-
var _el$ = _tmpl$$
|
|
18363
|
+
var _el$ = _tmpl$$B();
|
|
18345
18364
|
insert(_el$, createComponent(Show, {
|
|
18346
18365
|
get when() {
|
|
18347
18366
|
return component();
|
|
@@ -18467,7 +18486,7 @@ function buildRibbonGroups(items, tab) {
|
|
|
18467
18486
|
});
|
|
18468
18487
|
return Array.from(groups.values()).sort((a, b) => a.order - b.order);
|
|
18469
18488
|
}
|
|
18470
|
-
var _tmpl$$
|
|
18489
|
+
var _tmpl$$A = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-tabs role=tablist>`), _tmpl$2$n = /* @__PURE__ */ template(`<button type=button class=oasis-editor-ribbon-tab role=tab>`);
|
|
18471
18490
|
function RibbonTabs(props) {
|
|
18472
18491
|
const tabs = RIBBON_TAB_DEFINITIONS;
|
|
18473
18492
|
const moveTab = (current, delta) => {
|
|
@@ -18476,11 +18495,11 @@ function RibbonTabs(props) {
|
|
|
18476
18495
|
if (next) props.setActiveTab(next.id);
|
|
18477
18496
|
};
|
|
18478
18497
|
return (() => {
|
|
18479
|
-
var _el$ = _tmpl$$
|
|
18498
|
+
var _el$ = _tmpl$$A();
|
|
18480
18499
|
insert(_el$, createComponent(For, {
|
|
18481
18500
|
each: tabs,
|
|
18482
18501
|
children: (tab) => (() => {
|
|
18483
|
-
var _el$2 = _tmpl$2$
|
|
18502
|
+
var _el$2 = _tmpl$2$n();
|
|
18484
18503
|
_el$2.$$keydown = (event) => {
|
|
18485
18504
|
if (event.key === "ArrowRight") {
|
|
18486
18505
|
event.preventDefault();
|
|
@@ -18522,10 +18541,10 @@ function RibbonTabs(props) {
|
|
|
18522
18541
|
})();
|
|
18523
18542
|
}
|
|
18524
18543
|
delegateEvents(["click", "keydown"]);
|
|
18525
|
-
var _tmpl$$
|
|
18544
|
+
var _tmpl$$z = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-row>`);
|
|
18526
18545
|
function RibbonRow(props) {
|
|
18527
18546
|
return (() => {
|
|
18528
|
-
var _el$ = _tmpl$$
|
|
18547
|
+
var _el$ = _tmpl$$z();
|
|
18529
18548
|
insert(_el$, createComponent(For, {
|
|
18530
18549
|
get each() {
|
|
18531
18550
|
return props.items;
|
|
@@ -18540,10 +18559,10 @@ function RibbonRow(props) {
|
|
|
18540
18559
|
return _el$;
|
|
18541
18560
|
})();
|
|
18542
18561
|
}
|
|
18543
|
-
var _tmpl$$
|
|
18562
|
+
var _tmpl$$y = /* @__PURE__ */ template(`<section class=oasis-editor-ribbon-group><div class=oasis-editor-ribbon-group-rows></div><div class=oasis-editor-ribbon-group-label>`);
|
|
18544
18563
|
function RibbonGroup(props) {
|
|
18545
18564
|
return (() => {
|
|
18546
|
-
var _el$ = _tmpl$$
|
|
18565
|
+
var _el$ = _tmpl$$y(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
18547
18566
|
insert(_el$2, createComponent(RibbonRow, {
|
|
18548
18567
|
get items() {
|
|
18549
18568
|
return props.group.rows[1];
|
|
@@ -18573,11 +18592,11 @@ function RibbonGroup(props) {
|
|
|
18573
18592
|
return _el$;
|
|
18574
18593
|
})();
|
|
18575
18594
|
}
|
|
18576
|
-
var _tmpl$$
|
|
18595
|
+
var _tmpl$$x = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-panel role=tabpanel data-testid=editor-ribbon-panel>`);
|
|
18577
18596
|
function RibbonPanel(props) {
|
|
18578
18597
|
const groups = () => buildRibbonGroups(props.items(), props.activeTab());
|
|
18579
18598
|
return (() => {
|
|
18580
|
-
var _el$ = _tmpl$$
|
|
18599
|
+
var _el$ = _tmpl$$x();
|
|
18581
18600
|
insert(_el$, createComponent(For, {
|
|
18582
18601
|
get each() {
|
|
18583
18602
|
return groups();
|
|
@@ -18601,7 +18620,7 @@ function RibbonPanel(props) {
|
|
|
18601
18620
|
return _el$;
|
|
18602
18621
|
})();
|
|
18603
18622
|
}
|
|
18604
|
-
var _tmpl$$
|
|
18623
|
+
var _tmpl$$w = /* @__PURE__ */ template(`<section class=oasis-editor-toolbar>`), _tmpl$2$m = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-wrap-strip>`);
|
|
18605
18624
|
const shouldAllowNativeMouseDown = (target) => target instanceof Element && target.closest("select, input, textarea, label") !== null;
|
|
18606
18625
|
function Toolbar(props) {
|
|
18607
18626
|
const api = createToolbarApi(props.host);
|
|
@@ -18631,7 +18650,7 @@ function Toolbar(props) {
|
|
|
18631
18650
|
})
|
|
18632
18651
|
});
|
|
18633
18652
|
return (() => {
|
|
18634
|
-
var _el$ = _tmpl$$
|
|
18653
|
+
var _el$ = _tmpl$$w();
|
|
18635
18654
|
_el$.$$mousedown = (event) => {
|
|
18636
18655
|
if (shouldAllowNativeMouseDown(event.target)) {
|
|
18637
18656
|
return;
|
|
@@ -18652,7 +18671,7 @@ function Toolbar(props) {
|
|
|
18652
18671
|
return renderItems();
|
|
18653
18672
|
}
|
|
18654
18673
|
}) : (() => {
|
|
18655
|
-
var _el$2 = _tmpl$2$
|
|
18674
|
+
var _el$2 = _tmpl$2$m();
|
|
18656
18675
|
insert(_el$2, renderItems);
|
|
18657
18676
|
return _el$2;
|
|
18658
18677
|
})();
|
|
@@ -18981,10 +19000,10 @@ function createLayoutIdentityStabilizer() {
|
|
|
18981
19000
|
return { pages };
|
|
18982
19001
|
};
|
|
18983
19002
|
}
|
|
18984
|
-
var _tmpl$$
|
|
19003
|
+
var _tmpl$$v = /* @__PURE__ */ template(`<div class=oasis-editor-page-break style="display:flex;align-items:center;justify-content:center;margin:16px 0;position:relative;user-select:none"><div style="position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--oasis-toolbar-border, #e0e3e7)"></div><div style="background:var(--oasis-bg, #f6f8fb);padding:0 12px;color:var(--oasis-text-muted, #5f6368);font-size:12px;font-family:var(--oasis-font-ui, sans-serif);z-index:1">`);
|
|
18985
19004
|
function PageBreak(props) {
|
|
18986
19005
|
return (() => {
|
|
18987
|
-
var _el$ = _tmpl$$
|
|
19006
|
+
var _el$ = _tmpl$$v(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
18988
19007
|
insert(_el$3, () => t("metric.pageBreak") || "Page Break");
|
|
18989
19008
|
return _el$;
|
|
18990
19009
|
})();
|
|
@@ -19453,7 +19472,7 @@ function createCanvasPageRenderer(options) {
|
|
|
19453
19472
|
}
|
|
19454
19473
|
};
|
|
19455
19474
|
}
|
|
19456
|
-
var _tmpl$$
|
|
19475
|
+
var _tmpl$$u = /* @__PURE__ */ template(`<div class="oasis-editor-paper-stack oasis-editor-canvas-stack"style=position:relative>`), _tmpl$2$l = /* @__PURE__ */ template(`<div class=oasis-editor-canvas-page-slot style=position:relative>`), _tmpl$3$e = /* @__PURE__ */ template(`<div class=oasis-editor-paper data-renderer=canvas data-testid=editor-page style=position:relative;z-index:1><canvas>`);
|
|
19457
19476
|
const canvasTextMeasurer = {
|
|
19458
19477
|
composeMeasuredParagraphLines: (options) => domTextMeasurer.composeMeasuredParagraphLines(options),
|
|
19459
19478
|
resolveRenderedLineHeightPx: (styles, lineHeightMultiple) => domTextMeasurer.resolveRenderedLineHeightPx(styles, lineHeightMultiple)
|
|
@@ -19522,7 +19541,7 @@ function CanvasEditorSurface(props) {
|
|
|
19522
19541
|
return layout;
|
|
19523
19542
|
});
|
|
19524
19543
|
return (() => {
|
|
19525
|
-
var _el$ = _tmpl$$
|
|
19544
|
+
var _el$ = _tmpl$$u();
|
|
19526
19545
|
insert(_el$, createComponent(Index, {
|
|
19527
19546
|
get each() {
|
|
19528
19547
|
return documentLayout().pages;
|
|
@@ -19534,7 +19553,7 @@ function CanvasEditorSurface(props) {
|
|
|
19534
19553
|
// inserting an image that triggers re-pagination in a narrow viewport),
|
|
19535
19554
|
// causing "Failed to execute 'insertBefore'" errors.
|
|
19536
19555
|
(() => {
|
|
19537
|
-
var _el$2 = _tmpl$2$
|
|
19556
|
+
var _el$2 = _tmpl$2$l();
|
|
19538
19557
|
insert(_el$2, createComponent(Show, {
|
|
19539
19558
|
when: index > 0,
|
|
19540
19559
|
get children() {
|
|
@@ -19607,7 +19626,7 @@ function CanvasPage(props) {
|
|
|
19607
19626
|
});
|
|
19608
19627
|
onCleanup(() => renderer.dispose());
|
|
19609
19628
|
return (() => {
|
|
19610
|
-
var _el$3 = _tmpl$3$
|
|
19629
|
+
var _el$3 = _tmpl$3$e(), _el$4 = _el$3.firstChild;
|
|
19611
19630
|
addEventListener(_el$3, "dblclick", props.onSurfaceDblClick, true);
|
|
19612
19631
|
addEventListener(_el$3, "mousemove", props.onSurfaceMouseMove, true);
|
|
19613
19632
|
addEventListener(_el$3, "click", props.onSurfaceClick, true);
|
|
@@ -19944,7 +19963,7 @@ function computeRulerTicks(pageWidth, contentLeft, unit) {
|
|
|
19944
19963
|
pushSide(-1);
|
|
19945
19964
|
return ticks;
|
|
19946
19965
|
}
|
|
19947
|
-
var _tmpl$$
|
|
19966
|
+
var _tmpl$$t = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler data-testid=editor-horizontal-ruler role=presentation><div class=oasis-editor-horizontal-ruler-track><div class=oasis-editor-horizontal-ruler-page><div class=oasis-editor-horizontal-ruler-margin style=left:0px></div><div class=oasis-editor-horizontal-ruler-margin></div><div class=oasis-editor-horizontal-ruler-content></div><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-first-line"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-hanging"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-left-box"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-right-indent">`), _tmpl$2$k = /* @__PURE__ */ template(`<div>`), _tmpl$3$d = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler-label>`);
|
|
19948
19967
|
function getActivePageSettings(state) {
|
|
19949
19968
|
var _a;
|
|
19950
19969
|
const idx = getActiveSectionIndex(state);
|
|
@@ -20147,7 +20166,7 @@ function HorizontalRuler(props) {
|
|
|
20147
20166
|
}
|
|
20148
20167
|
};
|
|
20149
20168
|
return (() => {
|
|
20150
|
-
var _el$ = _tmpl$$
|
|
20169
|
+
var _el$ = _tmpl$$t(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling;
|
|
20151
20170
|
var _ref$ = pageRef;
|
|
20152
20171
|
typeof _ref$ === "function" ? use(_ref$, _el$3) : pageRef = _el$3;
|
|
20153
20172
|
insert(_el$3, createComponent(For, {
|
|
@@ -20155,7 +20174,7 @@ function HorizontalRuler(props) {
|
|
|
20155
20174
|
return ticks();
|
|
20156
20175
|
},
|
|
20157
20176
|
children: (tick) => [(() => {
|
|
20158
|
-
var _el$11 = _tmpl$2$
|
|
20177
|
+
var _el$11 = _tmpl$2$k();
|
|
20159
20178
|
createRenderEffect((_p$) => {
|
|
20160
20179
|
var _v$27 = `oasis-editor-horizontal-ruler-tick oasis-editor-horizontal-ruler-tick-${tick.kind}`, _v$28 = `${tick.x}px`;
|
|
20161
20180
|
_v$27 !== _p$.e && className(_el$11, _p$.e = _v$27);
|
|
@@ -20167,7 +20186,7 @@ function HorizontalRuler(props) {
|
|
|
20167
20186
|
});
|
|
20168
20187
|
return _el$11;
|
|
20169
20188
|
})(), memo(() => memo(() => !!tick.label)() && (() => {
|
|
20170
|
-
var _el$12 = _tmpl$3$
|
|
20189
|
+
var _el$12 = _tmpl$3$d();
|
|
20171
20190
|
insert(_el$12, () => tick.label);
|
|
20172
20191
|
createRenderEffect((_$p) => setStyleProperty(_el$12, "left", `${tick.x}px`));
|
|
20173
20192
|
return _el$12;
|
|
@@ -20244,10 +20263,10 @@ function HorizontalRuler(props) {
|
|
|
20244
20263
|
})();
|
|
20245
20264
|
}
|
|
20246
20265
|
delegateEvents(["pointerdown"]);
|
|
20247
|
-
var _tmpl$$
|
|
20266
|
+
var _tmpl$$s = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-caret>`);
|
|
20248
20267
|
function CaretOverlay(props) {
|
|
20249
20268
|
return (() => {
|
|
20250
|
-
var _el$ = _tmpl$$
|
|
20269
|
+
var _el$ = _tmpl$$s();
|
|
20251
20270
|
createRenderEffect((_p$) => {
|
|
20252
20271
|
var _v$ = !!props.active, _v$2 = {
|
|
20253
20272
|
left: `${props.left}px`,
|
|
@@ -20268,16 +20287,16 @@ function CaretOverlay(props) {
|
|
|
20268
20287
|
return _el$;
|
|
20269
20288
|
})();
|
|
20270
20289
|
}
|
|
20271
|
-
var _tmpl$$
|
|
20290
|
+
var _tmpl$$r = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-selection-overlay-root>`), _tmpl$2$j = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-selection-box data-testid=editor-selection-box>`);
|
|
20272
20291
|
function SelectionOverlay(props) {
|
|
20273
20292
|
return (() => {
|
|
20274
|
-
var _el$ = _tmpl$$
|
|
20293
|
+
var _el$ = _tmpl$$r();
|
|
20275
20294
|
insert(_el$, createComponent(Index, {
|
|
20276
20295
|
get each() {
|
|
20277
20296
|
return props.boxes;
|
|
20278
20297
|
},
|
|
20279
20298
|
children: (box) => (() => {
|
|
20280
|
-
var _el$2 = _tmpl$2$
|
|
20299
|
+
var _el$2 = _tmpl$2$j();
|
|
20281
20300
|
createRenderEffect((_p$) => {
|
|
20282
20301
|
var _v$ = `${box().left}px`, _v$2 = `${box().top}px`, _v$3 = `${box().width}px`, _v$4 = `${box().height}px`;
|
|
20283
20302
|
_v$ !== _p$.e && setStyleProperty(_el$2, "left", _p$.e = _v$);
|
|
@@ -20297,7 +20316,7 @@ function SelectionOverlay(props) {
|
|
|
20297
20316
|
return _el$;
|
|
20298
20317
|
})();
|
|
20299
20318
|
}
|
|
20300
|
-
var _tmpl$$
|
|
20319
|
+
var _tmpl$$q = /* @__PURE__ */ template(`<div class=oasis-editor-revision-overlay data-testid=editor-revision-overlay><div class=oasis-editor-revision-overlay-content><span class=oasis-editor-revision-overlay-author><strong>:</strong> </span><span class=oasis-editor-revision-overlay-date></span></div><div class=oasis-editor-revision-overlay-arrow>`);
|
|
20301
20320
|
function RevisionOverlay(props) {
|
|
20302
20321
|
const formattedDate = () => {
|
|
20303
20322
|
try {
|
|
@@ -20308,7 +20327,7 @@ function RevisionOverlay(props) {
|
|
|
20308
20327
|
};
|
|
20309
20328
|
const label = () => props.box.type === "insert" ? "Inserido por" : "ExcluÃdo por";
|
|
20310
20329
|
return (() => {
|
|
20311
|
-
var _el$ = _tmpl$$
|
|
20330
|
+
var _el$ = _tmpl$$q(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild;
|
|
20312
20331
|
_el$4.nextSibling;
|
|
20313
20332
|
var _el$7 = _el$3.nextSibling;
|
|
20314
20333
|
insert(_el$4, label, _el$5);
|
|
@@ -20326,6 +20345,111 @@ function RevisionOverlay(props) {
|
|
|
20326
20345
|
return _el$;
|
|
20327
20346
|
})();
|
|
20328
20347
|
}
|
|
20348
|
+
var _tmpl$$p = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-comment-overlay-root>`), _tmpl$2$i = /* @__PURE__ */ template(`<span class=oasis-editor-comment-highlight data-testid=editor-comment-highlight>`), _tmpl$3$c = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-date>`), _tmpl$4$9 = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-resolved>✓`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=oasis-editor-comment-popup data-testid=editor-comment-popup><div class=oasis-editor-comment-popup-header><span class=oasis-editor-comment-popup-author></span></div><div class=oasis-editor-comment-popup-body>`);
|
|
20349
|
+
function CommentHighlightOverlay(props) {
|
|
20350
|
+
const [activeCommentId, setActiveCommentId] = createSignal(null);
|
|
20351
|
+
const activeComment = createMemo(() => {
|
|
20352
|
+
const id = activeCommentId();
|
|
20353
|
+
if (!id) return null;
|
|
20354
|
+
return props.commentsById()[id] ?? null;
|
|
20355
|
+
});
|
|
20356
|
+
const popupAnchor = createMemo(() => {
|
|
20357
|
+
const id = activeCommentId();
|
|
20358
|
+
if (!id) return null;
|
|
20359
|
+
let best = null;
|
|
20360
|
+
for (const box of props.boxes()) {
|
|
20361
|
+
if (box.commentId !== id) continue;
|
|
20362
|
+
if (!best || box.top < best.top) best = box;
|
|
20363
|
+
}
|
|
20364
|
+
return best;
|
|
20365
|
+
});
|
|
20366
|
+
const formattedDate = (date) => {
|
|
20367
|
+
if (date === void 0) return "";
|
|
20368
|
+
try {
|
|
20369
|
+
return new Date(date).toLocaleString();
|
|
20370
|
+
} catch {
|
|
20371
|
+
return "";
|
|
20372
|
+
}
|
|
20373
|
+
};
|
|
20374
|
+
return (() => {
|
|
20375
|
+
var _el$ = _tmpl$$p();
|
|
20376
|
+
insert(_el$, createComponent(For, {
|
|
20377
|
+
get each() {
|
|
20378
|
+
return props.boxes();
|
|
20379
|
+
},
|
|
20380
|
+
children: (box) => (() => {
|
|
20381
|
+
var _el$2 = _tmpl$2$i();
|
|
20382
|
+
_el$2.$$click = () => setActiveCommentId(box.commentId);
|
|
20383
|
+
_el$2.addEventListener("mouseenter", () => setActiveCommentId(box.commentId));
|
|
20384
|
+
createRenderEffect((_p$) => {
|
|
20385
|
+
var _v$ = !!(activeCommentId() === box.commentId), _v$2 = box.commentId, _v$3 = `${box.left}px`, _v$4 = `${box.top}px`, _v$5 = `${box.width}px`, _v$6 = `${box.height}px`;
|
|
20386
|
+
_v$ !== _p$.e && _el$2.classList.toggle("oasis-editor-comment-highlight-active", _p$.e = _v$);
|
|
20387
|
+
_v$2 !== _p$.t && setAttribute(_el$2, "data-comment-id", _p$.t = _v$2);
|
|
20388
|
+
_v$3 !== _p$.a && setStyleProperty(_el$2, "left", _p$.a = _v$3);
|
|
20389
|
+
_v$4 !== _p$.o && setStyleProperty(_el$2, "top", _p$.o = _v$4);
|
|
20390
|
+
_v$5 !== _p$.i && setStyleProperty(_el$2, "width", _p$.i = _v$5);
|
|
20391
|
+
_v$6 !== _p$.n && setStyleProperty(_el$2, "height", _p$.n = _v$6);
|
|
20392
|
+
return _p$;
|
|
20393
|
+
}, {
|
|
20394
|
+
e: void 0,
|
|
20395
|
+
t: void 0,
|
|
20396
|
+
a: void 0,
|
|
20397
|
+
o: void 0,
|
|
20398
|
+
i: void 0,
|
|
20399
|
+
n: void 0
|
|
20400
|
+
});
|
|
20401
|
+
return _el$2;
|
|
20402
|
+
})()
|
|
20403
|
+
}), null);
|
|
20404
|
+
insert(_el$, createComponent(Show, {
|
|
20405
|
+
get when() {
|
|
20406
|
+
return memo(() => !!activeComment())() && popupAnchor();
|
|
20407
|
+
},
|
|
20408
|
+
get children() {
|
|
20409
|
+
return (() => {
|
|
20410
|
+
const comment = activeComment();
|
|
20411
|
+
const anchor = popupAnchor();
|
|
20412
|
+
return (() => {
|
|
20413
|
+
var _el$3 = _tmpl$5$8(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$8 = _el$4.nextSibling;
|
|
20414
|
+
_el$3.addEventListener("mouseleave", () => setActiveCommentId(null));
|
|
20415
|
+
insert(_el$5, () => comment.author || "—");
|
|
20416
|
+
insert(_el$4, createComponent(Show, {
|
|
20417
|
+
get when() {
|
|
20418
|
+
return comment.date !== void 0;
|
|
20419
|
+
},
|
|
20420
|
+
get children() {
|
|
20421
|
+
var _el$6 = _tmpl$3$c();
|
|
20422
|
+
insert(_el$6, () => formattedDate(comment.date));
|
|
20423
|
+
return _el$6;
|
|
20424
|
+
}
|
|
20425
|
+
}), null);
|
|
20426
|
+
insert(_el$4, createComponent(Show, {
|
|
20427
|
+
get when() {
|
|
20428
|
+
return comment.resolved;
|
|
20429
|
+
},
|
|
20430
|
+
get children() {
|
|
20431
|
+
return _tmpl$4$9();
|
|
20432
|
+
}
|
|
20433
|
+
}), null);
|
|
20434
|
+
insert(_el$8, () => comment.text);
|
|
20435
|
+
createRenderEffect((_p$) => {
|
|
20436
|
+
var _v$7 = `${anchor.left}px`, _v$8 = `${anchor.top + anchor.height + 6}px`;
|
|
20437
|
+
_v$7 !== _p$.e && setStyleProperty(_el$3, "left", _p$.e = _v$7);
|
|
20438
|
+
_v$8 !== _p$.t && setStyleProperty(_el$3, "top", _p$.t = _v$8);
|
|
20439
|
+
return _p$;
|
|
20440
|
+
}, {
|
|
20441
|
+
e: void 0,
|
|
20442
|
+
t: void 0
|
|
20443
|
+
});
|
|
20444
|
+
return _el$3;
|
|
20445
|
+
})();
|
|
20446
|
+
})();
|
|
20447
|
+
}
|
|
20448
|
+
}), null);
|
|
20449
|
+
return _el$;
|
|
20450
|
+
})();
|
|
20451
|
+
}
|
|
20452
|
+
delegateEvents(["click"]);
|
|
20329
20453
|
var _tmpl$$o = /* @__PURE__ */ template(`<div class=oasis-editor-floating-toolbar data-testid=editor-floating-table-toolbar><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group></div><div class=oasis-editor-toolbar-group>`);
|
|
20330
20454
|
function FloatingTableToolbar(props) {
|
|
20331
20455
|
const host = () => props.host();
|
|
@@ -31596,6 +31720,16 @@ function parseBookmarkMarker(element) {
|
|
|
31596
31720
|
...colLast !== void 0 && !Number.isNaN(colLast) ? { colLast } : {}
|
|
31597
31721
|
};
|
|
31598
31722
|
}
|
|
31723
|
+
function parseCommentMarker(element) {
|
|
31724
|
+
const docxId = getAttributeValue(element, "id");
|
|
31725
|
+
if (!docxId) {
|
|
31726
|
+
return void 0;
|
|
31727
|
+
}
|
|
31728
|
+
return {
|
|
31729
|
+
kind: element.localName === "commentRangeEnd" ? "end" : "start",
|
|
31730
|
+
docxId
|
|
31731
|
+
};
|
|
31732
|
+
}
|
|
31599
31733
|
async function parseRunElement(runElement, zip, relsMap, assets, parseNestedBlocks) {
|
|
31600
31734
|
const textParts = [];
|
|
31601
31735
|
let image;
|
|
@@ -31603,6 +31737,7 @@ async function parseRunElement(runElement, zip, relsMap, assets, parseNestedBloc
|
|
|
31603
31737
|
let sym;
|
|
31604
31738
|
let textLength = 0;
|
|
31605
31739
|
const innerBookmarks = [];
|
|
31740
|
+
const innerComments = [];
|
|
31606
31741
|
const pushText = (value) => {
|
|
31607
31742
|
textParts.push(value);
|
|
31608
31743
|
textLength += value.length;
|
|
@@ -31635,7 +31770,13 @@ async function parseRunElement(runElement, zip, relsMap, assets, parseNestedBloc
|
|
|
31635
31770
|
innerBookmarks.push({ offset: textLength, marker });
|
|
31636
31771
|
}
|
|
31637
31772
|
continue;
|
|
31638
|
-
} else if (element.localName === "
|
|
31773
|
+
} else if (element.localName === "commentRangeStart" || element.localName === "commentRangeEnd") {
|
|
31774
|
+
const marker = parseCommentMarker(element);
|
|
31775
|
+
if (marker) {
|
|
31776
|
+
innerComments.push({ offset: textLength, marker });
|
|
31777
|
+
}
|
|
31778
|
+
continue;
|
|
31779
|
+
} else if (element.localName === "proofErr" || element.localName === "commentReference" || element.localName === "permStart" || element.localName === "permEnd") {
|
|
31639
31780
|
continue;
|
|
31640
31781
|
} else if (element.localName === "cr") {
|
|
31641
31782
|
pushText("\n");
|
|
@@ -31686,6 +31827,7 @@ async function parseRunElement(runElement, zip, relsMap, assets, parseNestedBloc
|
|
|
31686
31827
|
image,
|
|
31687
31828
|
...textBox ? { textBox } : {},
|
|
31688
31829
|
...innerBookmarks.length > 0 ? { innerBookmarks } : {},
|
|
31830
|
+
...innerComments.length > 0 ? { innerComments } : {},
|
|
31689
31831
|
...sym ? { sym } : {}
|
|
31690
31832
|
};
|
|
31691
31833
|
}
|
|
@@ -31783,6 +31925,14 @@ async function parseRunsContainer(container, numberingMaps, zip, relsMap, assets
|
|
|
31783
31925
|
runs.push({ text: "", bookmark: marker });
|
|
31784
31926
|
continue;
|
|
31785
31927
|
}
|
|
31928
|
+
if (element.localName === "commentRangeStart" || element.localName === "commentRangeEnd") {
|
|
31929
|
+
const marker = parseCommentMarker(element);
|
|
31930
|
+
if (!marker) {
|
|
31931
|
+
continue;
|
|
31932
|
+
}
|
|
31933
|
+
runs.push({ text: "", comment: marker });
|
|
31934
|
+
continue;
|
|
31935
|
+
}
|
|
31786
31936
|
if (element.localName === "r") {
|
|
31787
31937
|
const runStyles = parseRunStyle(
|
|
31788
31938
|
getFirstChildByTagNameNS(element, WORD_NS, "rPr"),
|
|
@@ -31858,13 +32008,7 @@ async function parseRunsContainer(container, numberingMaps, zip, relsMap, assets
|
|
|
31858
32008
|
});
|
|
31859
32009
|
continue;
|
|
31860
32010
|
}
|
|
31861
|
-
const { text, image, textBox, innerBookmarks, sym } = await parseRunElement(
|
|
31862
|
-
element,
|
|
31863
|
-
zip,
|
|
31864
|
-
relsMap,
|
|
31865
|
-
assets,
|
|
31866
|
-
parseNestedBlocks
|
|
31867
|
-
);
|
|
32011
|
+
const { text, image, textBox, innerBookmarks, innerComments, sym } = await parseRunElement(element, zip, relsMap, assets, parseNestedBlocks);
|
|
31868
32012
|
let styles = runStyles;
|
|
31869
32013
|
if (sym && !(styles == null ? void 0 : styles.fontFamily)) {
|
|
31870
32014
|
(styles ?? (styles = {})).fontFamily = sym.font;
|
|
@@ -31872,14 +32016,25 @@ async function parseRunsContainer(container, numberingMaps, zip, relsMap, assets
|
|
|
31872
32016
|
if (inheritedLink) {
|
|
31873
32017
|
(styles ?? (styles = {})).link = inheritedLink;
|
|
31874
32018
|
}
|
|
31875
|
-
|
|
32019
|
+
const innerMarkers = [
|
|
32020
|
+
...(innerBookmarks ?? []).map((m) => ({
|
|
32021
|
+
offset: m.offset,
|
|
32022
|
+
run: { text: "", bookmark: m.marker }
|
|
32023
|
+
})),
|
|
32024
|
+
...(innerComments ?? []).map((m) => ({
|
|
32025
|
+
offset: m.offset,
|
|
32026
|
+
run: { text: "", comment: m.marker }
|
|
32027
|
+
}))
|
|
32028
|
+
];
|
|
32029
|
+
if (innerMarkers.length > 0 && !image && !textBox) {
|
|
32030
|
+
innerMarkers.sort((a, b) => a.offset - b.offset);
|
|
31876
32031
|
let cursor = 0;
|
|
31877
|
-
for (const inner of
|
|
32032
|
+
for (const inner of innerMarkers) {
|
|
31878
32033
|
const segment = text.slice(cursor, inner.offset);
|
|
31879
32034
|
if (segment.length > 0) {
|
|
31880
32035
|
runs.push({ text: segment, ...styles ? { styles } : {} });
|
|
31881
32036
|
}
|
|
31882
|
-
runs.push(
|
|
32037
|
+
runs.push(inner.run);
|
|
31883
32038
|
cursor = inner.offset;
|
|
31884
32039
|
}
|
|
31885
32040
|
const tail = text.slice(cursor);
|
|
@@ -32796,6 +32951,9 @@ function createImportedParagraph(runs, paragraphStyle, list, markRunStyle) {
|
|
|
32796
32951
|
if (run.bookmark) {
|
|
32797
32952
|
paragraph.runs[index].__importedBookmark = { ...run.bookmark };
|
|
32798
32953
|
}
|
|
32954
|
+
if (run.comment) {
|
|
32955
|
+
paragraph.runs[index].__importedComment = { ...run.comment };
|
|
32956
|
+
}
|
|
32799
32957
|
if (run.sym) {
|
|
32800
32958
|
paragraph.runs[index].sym = { ...run.sym };
|
|
32801
32959
|
}
|
|
@@ -32814,7 +32972,7 @@ function splitRunsAtPageBreaks(runs) {
|
|
|
32814
32972
|
const segments = [[]];
|
|
32815
32973
|
let hasPageBreak = false;
|
|
32816
32974
|
const appendRun = (run, text) => {
|
|
32817
|
-
if (text.length === 0 && !run.image && !run.textBox && !run.field && !run.fieldChar && run.fieldInstruction === void 0 && !run.bookmark) {
|
|
32975
|
+
if (text.length === 0 && !run.image && !run.textBox && !run.field && !run.fieldChar && run.fieldInstruction === void 0 && !run.bookmark && !run.comment) {
|
|
32818
32976
|
return;
|
|
32819
32977
|
}
|
|
32820
32978
|
segments[segments.length - 1].push({
|
|
@@ -32840,7 +32998,7 @@ function splitRunsAtPageBreaks(runs) {
|
|
|
32840
32998
|
}
|
|
32841
32999
|
function paragraphHasVisibleContent(runs) {
|
|
32842
33000
|
return runs.some(
|
|
32843
|
-
(run) => run.image || run.textBox || run.field || run.fieldChar || run.fieldInstruction !== void 0 || run.bookmark || run.text.replace(/\s/g, "").length > 0
|
|
33001
|
+
(run) => run.image || run.textBox || run.field || run.fieldChar || run.fieldInstruction !== void 0 || run.bookmark || run.comment || run.text.replace(/\s/g, "").length > 0
|
|
32844
33002
|
);
|
|
32845
33003
|
}
|
|
32846
33004
|
async function parseParagraphNodes(paragraphNode, numberingMaps, zip, relsMap, assets, theme, inheritedStyle) {
|
|
@@ -33158,7 +33316,7 @@ async function parseEndnotesXml(xmlContent, numberingMaps, zip, relsMap, assets,
|
|
|
33158
33316
|
};
|
|
33159
33317
|
}
|
|
33160
33318
|
const RESERVED_BOOKMARK_NAMES = /* @__PURE__ */ new Set(["_GoBack"]);
|
|
33161
|
-
function collectFromBlock(block, out, seqRef) {
|
|
33319
|
+
function collectFromBlock$1(block, out, seqRef) {
|
|
33162
33320
|
if (block.type === "paragraph") {
|
|
33163
33321
|
let offset = 0;
|
|
33164
33322
|
const kept = [];
|
|
@@ -33187,7 +33345,7 @@ function collectFromBlock(block, out, seqRef) {
|
|
|
33187
33345
|
for (const row of block.rows) {
|
|
33188
33346
|
for (const cell of row.cells) {
|
|
33189
33347
|
for (const child of cell.blocks) {
|
|
33190
|
-
collectFromBlock(child, out, seqRef);
|
|
33348
|
+
collectFromBlock$1(child, out, seqRef);
|
|
33191
33349
|
}
|
|
33192
33350
|
}
|
|
33193
33351
|
}
|
|
@@ -33197,7 +33355,7 @@ function extractBookmarksFromSections(sections) {
|
|
|
33197
33355
|
const boundaries = [];
|
|
33198
33356
|
const seqRef = { value: 0 };
|
|
33199
33357
|
const visit = (blocks) => {
|
|
33200
|
-
blocks == null ? void 0 : blocks.forEach((block) => collectFromBlock(block, boundaries, seqRef));
|
|
33358
|
+
blocks == null ? void 0 : blocks.forEach((block) => collectFromBlock$1(block, boundaries, seqRef));
|
|
33201
33359
|
};
|
|
33202
33360
|
for (const section of sections) {
|
|
33203
33361
|
visit(section.blocks);
|
|
@@ -33262,8 +33420,157 @@ function extractBookmarksFromSections(sections) {
|
|
|
33262
33420
|
}
|
|
33263
33421
|
return { items, order };
|
|
33264
33422
|
}
|
|
33423
|
+
function collectFromBlock(block, out, seqRef) {
|
|
33424
|
+
if (block.type === "paragraph") {
|
|
33425
|
+
let offset = 0;
|
|
33426
|
+
const kept = [];
|
|
33427
|
+
for (const run of block.runs) {
|
|
33428
|
+
const marker = run.__importedComment;
|
|
33429
|
+
if (marker) {
|
|
33430
|
+
out.push({
|
|
33431
|
+
marker,
|
|
33432
|
+
anchor: {
|
|
33433
|
+
paragraphId: block.id,
|
|
33434
|
+
offset,
|
|
33435
|
+
seq: seqRef.value
|
|
33436
|
+
}
|
|
33437
|
+
});
|
|
33438
|
+
seqRef.value += 1;
|
|
33439
|
+
continue;
|
|
33440
|
+
}
|
|
33441
|
+
offset += run.text.length;
|
|
33442
|
+
kept.push(run);
|
|
33443
|
+
}
|
|
33444
|
+
if (kept.length !== block.runs.length) {
|
|
33445
|
+
block.runs = kept.length > 0 ? kept : [createEditorRun("")];
|
|
33446
|
+
}
|
|
33447
|
+
return;
|
|
33448
|
+
}
|
|
33449
|
+
for (const row of block.rows) {
|
|
33450
|
+
for (const cell of row.cells) {
|
|
33451
|
+
for (const child of cell.blocks) {
|
|
33452
|
+
collectFromBlock(child, out, seqRef);
|
|
33453
|
+
}
|
|
33454
|
+
}
|
|
33455
|
+
}
|
|
33456
|
+
}
|
|
33457
|
+
function extractCommentRangesFromSections(sections) {
|
|
33458
|
+
const boundaries = [];
|
|
33459
|
+
const seqRef = { value: 0 };
|
|
33460
|
+
const visit = (blocks) => {
|
|
33461
|
+
blocks == null ? void 0 : blocks.forEach((block) => collectFromBlock(block, boundaries, seqRef));
|
|
33462
|
+
};
|
|
33463
|
+
for (const section of sections) {
|
|
33464
|
+
visit(section.blocks);
|
|
33465
|
+
visit(section.header);
|
|
33466
|
+
visit(section.firstPageHeader);
|
|
33467
|
+
visit(section.evenPageHeader);
|
|
33468
|
+
visit(section.footer);
|
|
33469
|
+
visit(section.firstPageFooter);
|
|
33470
|
+
visit(section.evenPageFooter);
|
|
33471
|
+
}
|
|
33472
|
+
const ranges = /* @__PURE__ */ new Map();
|
|
33473
|
+
for (const { marker, anchor } of boundaries) {
|
|
33474
|
+
const range = ranges.get(marker.docxId) ?? {};
|
|
33475
|
+
if (marker.kind === "start") {
|
|
33476
|
+
range.start = anchor;
|
|
33477
|
+
} else {
|
|
33478
|
+
range.end = anchor;
|
|
33479
|
+
}
|
|
33480
|
+
ranges.set(marker.docxId, range);
|
|
33481
|
+
}
|
|
33482
|
+
return ranges;
|
|
33483
|
+
}
|
|
33484
|
+
const WORD15_NS = "http://schemas.microsoft.com/office/word/2012/wordml";
|
|
33485
|
+
function flattenCommentText(element) {
|
|
33486
|
+
let out = "";
|
|
33487
|
+
for (let index = 0; index < element.childNodes.length; index += 1) {
|
|
33488
|
+
const node = element.childNodes[index];
|
|
33489
|
+
if ((node == null ? void 0 : node.nodeType) !== node.ELEMENT_NODE) {
|
|
33490
|
+
continue;
|
|
33491
|
+
}
|
|
33492
|
+
const child = node;
|
|
33493
|
+
if (child.namespaceURI === WORD_NS) {
|
|
33494
|
+
if (child.localName === "t") {
|
|
33495
|
+
out += child.textContent ?? "";
|
|
33496
|
+
continue;
|
|
33497
|
+
}
|
|
33498
|
+
if (child.localName === "tab") {
|
|
33499
|
+
out += " ";
|
|
33500
|
+
continue;
|
|
33501
|
+
}
|
|
33502
|
+
if (child.localName === "br" || child.localName === "cr") {
|
|
33503
|
+
out += "\n";
|
|
33504
|
+
continue;
|
|
33505
|
+
}
|
|
33506
|
+
}
|
|
33507
|
+
out += flattenCommentText(child);
|
|
33508
|
+
}
|
|
33509
|
+
return out;
|
|
33510
|
+
}
|
|
33511
|
+
function parseDate(value) {
|
|
33512
|
+
if (!value) {
|
|
33513
|
+
return void 0;
|
|
33514
|
+
}
|
|
33515
|
+
const ms = Date.parse(value);
|
|
33516
|
+
return Number.isNaN(ms) ? void 0 : ms;
|
|
33517
|
+
}
|
|
33518
|
+
function parseCommentsExtended(xml) {
|
|
33519
|
+
const done = /* @__PURE__ */ new Map();
|
|
33520
|
+
if (!xml) {
|
|
33521
|
+
return done;
|
|
33522
|
+
}
|
|
33523
|
+
const doc = new DOMParser$1().parseFromString(xml, "application/xml");
|
|
33524
|
+
const root = doc.documentElement;
|
|
33525
|
+
if (!root) {
|
|
33526
|
+
return done;
|
|
33527
|
+
}
|
|
33528
|
+
for (const ex of getChildrenByTagNameNS(root, WORD15_NS, "commentEx")) {
|
|
33529
|
+
const paraId = ex.getAttributeNS(WORD15_NS, "paraId");
|
|
33530
|
+
if (!paraId) {
|
|
33531
|
+
continue;
|
|
33532
|
+
}
|
|
33533
|
+
const isDone = ex.getAttributeNS(WORD15_NS, "done");
|
|
33534
|
+
done.set(paraId, isDone === "1" || isDone === "true");
|
|
33535
|
+
}
|
|
33536
|
+
return done;
|
|
33537
|
+
}
|
|
33538
|
+
function parseCommentsXml(commentsXml, commentsExtendedXml) {
|
|
33539
|
+
const byDocxId = /* @__PURE__ */ new Map();
|
|
33540
|
+
if (!commentsXml) {
|
|
33541
|
+
return byDocxId;
|
|
33542
|
+
}
|
|
33543
|
+
const doc = new DOMParser$1().parseFromString(commentsXml, "application/xml");
|
|
33544
|
+
const root = doc.documentElement;
|
|
33545
|
+
if (!root) {
|
|
33546
|
+
return byDocxId;
|
|
33547
|
+
}
|
|
33548
|
+
const doneByParaId = parseCommentsExtended(commentsExtendedXml);
|
|
33549
|
+
for (const comment of getChildrenByTagNameNS(root, WORD_NS, "comment")) {
|
|
33550
|
+
const docxId = getAttributeValue(comment, "id");
|
|
33551
|
+
if (docxId === null) {
|
|
33552
|
+
continue;
|
|
33553
|
+
}
|
|
33554
|
+
const author = getAttributeValue(comment, "author") ?? "";
|
|
33555
|
+
const initials = getAttributeValue(comment, "initials") ?? void 0;
|
|
33556
|
+
const date = parseDate(getAttributeValue(comment, "date"));
|
|
33557
|
+
const paragraphs = getChildrenByTagNameNS(comment, WORD_NS, "p");
|
|
33558
|
+
const text = paragraphs.map((p) => flattenCommentText(p)).join("\n").trim();
|
|
33559
|
+
const paraId = paragraphs.length > 0 ? getAttributeValue(paragraphs[0], "paraId") ?? void 0 : void 0;
|
|
33560
|
+
const resolved = paraId !== void 0 ? doneByParaId.get(paraId) : void 0;
|
|
33561
|
+
byDocxId.set(docxId, {
|
|
33562
|
+
author,
|
|
33563
|
+
...initials ? { initials } : {},
|
|
33564
|
+
...date !== void 0 ? { date } : {},
|
|
33565
|
+
text,
|
|
33566
|
+
...resolved ? { resolved } : {},
|
|
33567
|
+
...paraId ? { paraId } : {}
|
|
33568
|
+
});
|
|
33569
|
+
}
|
|
33570
|
+
return byDocxId;
|
|
33571
|
+
}
|
|
33265
33572
|
async function importDocxToEditorDocument(buffer, options = {}) {
|
|
33266
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
33573
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
|
|
33267
33574
|
(_a = options.onProgress) == null ? void 0 : _a.call(options, "opening-docx");
|
|
33268
33575
|
const zip = await JSZip.loadAsync(buffer);
|
|
33269
33576
|
const documentXml = await ((_b = zip.file("word/document.xml")) == null ? void 0 : _b.async("string"));
|
|
@@ -33524,6 +33831,11 @@ async function importDocxToEditorDocument(buffer, options = {}) {
|
|
|
33524
33831
|
const editorEndnotes = Object.keys(parsedEndnotes.endnotes.items).length > 0 || parsedEndnotes.endnotes.separator || parsedEndnotes.endnotes.continuationSeparator || parsedEndnotes.endnotes.settings ? parsedEndnotes.endnotes : void 0;
|
|
33525
33832
|
remapImportedEndnoteRefsInSections(sections, parsedEndnotes.byDocxId);
|
|
33526
33833
|
const editorBookmarks = extractBookmarksFromSections(sections);
|
|
33834
|
+
const commentRanges = extractCommentRangesFromSections(sections);
|
|
33835
|
+
const commentsXml = await ((_l = zip.file("word/comments.xml")) == null ? void 0 : _l.async("string")) ?? null;
|
|
33836
|
+
const commentsExtendedXml = await ((_m = zip.file("word/commentsExtended.xml")) == null ? void 0 : _m.async("string")) ?? null;
|
|
33837
|
+
const commentBodies = parseCommentsXml(commentsXml, commentsExtendedXml);
|
|
33838
|
+
const editorComments = buildEditorComments(commentRanges, commentBodies);
|
|
33527
33839
|
const shouldPreserveSections = sections.length > 1 || sections.some(
|
|
33528
33840
|
(section) => {
|
|
33529
33841
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
@@ -33550,6 +33862,9 @@ async function importDocxToEditorDocument(buffer, options = {}) {
|
|
|
33550
33862
|
if (editorBookmarks) {
|
|
33551
33863
|
result.bookmarks = editorBookmarks;
|
|
33552
33864
|
}
|
|
33865
|
+
if (editorComments) {
|
|
33866
|
+
result.comments = editorComments;
|
|
33867
|
+
}
|
|
33553
33868
|
return result;
|
|
33554
33869
|
};
|
|
33555
33870
|
if (shouldPreserveSections) {
|
|
@@ -33579,6 +33894,44 @@ async function importDocxToEditorDocument(buffer, options = {}) {
|
|
|
33579
33894
|
}
|
|
33580
33895
|
return finalize(doc);
|
|
33581
33896
|
}
|
|
33897
|
+
function buildEditorComments(ranges, bodies) {
|
|
33898
|
+
const docxIds = /* @__PURE__ */ new Set([...ranges.keys(), ...bodies.keys()]);
|
|
33899
|
+
if (docxIds.size === 0) {
|
|
33900
|
+
return void 0;
|
|
33901
|
+
}
|
|
33902
|
+
const sorted = [...docxIds].sort((a, b) => {
|
|
33903
|
+
const na = Number.parseInt(a, 10);
|
|
33904
|
+
const nb = Number.parseInt(b, 10);
|
|
33905
|
+
if (Number.isNaN(na) || Number.isNaN(nb)) {
|
|
33906
|
+
return a.localeCompare(b);
|
|
33907
|
+
}
|
|
33908
|
+
return na - nb;
|
|
33909
|
+
});
|
|
33910
|
+
const items = {};
|
|
33911
|
+
const order = [];
|
|
33912
|
+
for (const docxId of sorted) {
|
|
33913
|
+
const range = ranges.get(docxId);
|
|
33914
|
+
const body = bodies.get(docxId);
|
|
33915
|
+
if (!range && !body) {
|
|
33916
|
+
continue;
|
|
33917
|
+
}
|
|
33918
|
+
const id = createEditorCommentId();
|
|
33919
|
+
const docxIdNum = Number.parseInt(docxId, 10);
|
|
33920
|
+
items[id] = {
|
|
33921
|
+
id,
|
|
33922
|
+
author: (body == null ? void 0 : body.author) ?? "",
|
|
33923
|
+
...(body == null ? void 0 : body.initials) ? { initials: body.initials } : {},
|
|
33924
|
+
...(body == null ? void 0 : body.date) !== void 0 ? { date: body.date } : {},
|
|
33925
|
+
...(body == null ? void 0 : body.resolved) ? { resolved: body.resolved } : {},
|
|
33926
|
+
text: (body == null ? void 0 : body.text) ?? "",
|
|
33927
|
+
...(range == null ? void 0 : range.start) ? { start: range.start } : {},
|
|
33928
|
+
...(range == null ? void 0 : range.end) ? { end: range.end } : {},
|
|
33929
|
+
...Number.isNaN(docxIdNum) ? {} : { docxIdHint: docxIdNum }
|
|
33930
|
+
};
|
|
33931
|
+
order.push(id);
|
|
33932
|
+
}
|
|
33933
|
+
return order.length > 0 ? { items, order } : void 0;
|
|
33934
|
+
}
|
|
33582
33935
|
function remapImportedFootnoteRefsInSections(sections, byDocxId) {
|
|
33583
33936
|
var _a, _b, _c, _d, _e, _f;
|
|
33584
33937
|
const remapBlock = (block) => {
|
|
@@ -33669,7 +34022,7 @@ function importDocxInWorker(buffer, options = {}) {
|
|
|
33669
34022
|
const worker = new Worker(
|
|
33670
34023
|
new URL(
|
|
33671
34024
|
/* @vite-ignore */
|
|
33672
|
-
"" + new URL("assets/importDocxWorker-
|
|
34025
|
+
"" + new URL("assets/importDocxWorker-cjz15bhS.js", import.meta.url).href,
|
|
33673
34026
|
import.meta.url
|
|
33674
34027
|
),
|
|
33675
34028
|
{
|
|
@@ -34448,6 +34801,10 @@ function OasisEditorEditor(props) {
|
|
|
34448
34801
|
};
|
|
34449
34802
|
const selectedImage = createMemo(() => overlays().selectedImageBox());
|
|
34450
34803
|
const selectedTextBox = createMemo(() => overlays().selectedTextBoxBox());
|
|
34804
|
+
const commentsById = createMemo(() => {
|
|
34805
|
+
var _a;
|
|
34806
|
+
return ((_a = props.state().document.comments) == null ? void 0 : _a.items) ?? {};
|
|
34807
|
+
});
|
|
34451
34808
|
createEffect(() => {
|
|
34452
34809
|
statusDocumentLayout();
|
|
34453
34810
|
queueMicrotask(recomputeViewportPageIndex);
|
|
@@ -34563,6 +34920,19 @@ function OasisEditorEditor(props) {
|
|
|
34563
34920
|
});
|
|
34564
34921
|
}
|
|
34565
34922
|
}), _el$4);
|
|
34923
|
+
insert(_el$3, createComponent(Show, {
|
|
34924
|
+
get when() {
|
|
34925
|
+
return overlays().commentHighlights().length > 0;
|
|
34926
|
+
},
|
|
34927
|
+
get children() {
|
|
34928
|
+
return createComponent(CommentHighlightOverlay, {
|
|
34929
|
+
get boxes() {
|
|
34930
|
+
return overlays().commentHighlights;
|
|
34931
|
+
},
|
|
34932
|
+
commentsById
|
|
34933
|
+
});
|
|
34934
|
+
}
|
|
34935
|
+
}), _el$4);
|
|
34566
34936
|
insert(_el$3, createComponent(ResizeHandlesOverlay, {
|
|
34567
34937
|
box: selectedImage,
|
|
34568
34938
|
get readOnly() {
|
|
@@ -37010,6 +37380,11 @@ const RIBBON_PLACEMENTS = {
|
|
|
37010
37380
|
"editor-toolbar-list-outdent": { tab: "home", group: "paragraph", row: 1 },
|
|
37011
37381
|
"editor-toolbar-list-indent": { tab: "home", group: "paragraph", row: 1 },
|
|
37012
37382
|
"editor-toolbar-list-options": { tab: "home", group: "paragraph", row: 1 },
|
|
37383
|
+
"editor-toolbar-special-indent": {
|
|
37384
|
+
tab: "home",
|
|
37385
|
+
group: "paragraph",
|
|
37386
|
+
row: 1
|
|
37387
|
+
},
|
|
37013
37388
|
"editor-toolbar-line-spacing-control": {
|
|
37014
37389
|
tab: "home",
|
|
37015
37390
|
group: "paragraph",
|
|
@@ -37451,6 +37826,54 @@ function createDefaultToolbarPreset() {
|
|
|
37451
37826
|
id: "editor-toolbar-list-options",
|
|
37452
37827
|
render: (api) => ListOptionsControl({ api })
|
|
37453
37828
|
});
|
|
37829
|
+
items.push({
|
|
37830
|
+
type: "split",
|
|
37831
|
+
id: "editor-toolbar-special-indent",
|
|
37832
|
+
testId: "editor-toolbar-special-indent",
|
|
37833
|
+
iconName: "specialIndentFirstLine",
|
|
37834
|
+
tooltipKey: "toolbar.specialIndent",
|
|
37835
|
+
command: { name: "setSpecialIndent", payload: { kind: "firstLine" } },
|
|
37836
|
+
isActive: () => false,
|
|
37837
|
+
panelClass: "oasis-editor-toolbar-dropdown-menu oasis-editor-special-indent-menu",
|
|
37838
|
+
menu: {
|
|
37839
|
+
kind: "items",
|
|
37840
|
+
items: [
|
|
37841
|
+
{
|
|
37842
|
+
type: "button",
|
|
37843
|
+
id: "editor-toolbar-special-indent-none",
|
|
37844
|
+
testId: "editor-toolbar-special-indent-none",
|
|
37845
|
+
iconName: "minus",
|
|
37846
|
+
labelKey: "toolbar.specialIndentNone",
|
|
37847
|
+
tooltipKey: "toolbar.specialIndentNone",
|
|
37848
|
+
command: { name: "setSpecialIndent", payload: { kind: "none" } },
|
|
37849
|
+
wide: true
|
|
37850
|
+
},
|
|
37851
|
+
{
|
|
37852
|
+
type: "button",
|
|
37853
|
+
id: "editor-toolbar-special-indent-first-line",
|
|
37854
|
+
testId: "editor-toolbar-special-indent-first-line",
|
|
37855
|
+
iconName: "list-collapse",
|
|
37856
|
+
labelKey: "toolbar.specialIndentFirstLine",
|
|
37857
|
+
tooltipKey: "toolbar.specialIndentFirstLine",
|
|
37858
|
+
command: {
|
|
37859
|
+
name: "setSpecialIndent",
|
|
37860
|
+
payload: { kind: "firstLine" }
|
|
37861
|
+
},
|
|
37862
|
+
wide: true
|
|
37863
|
+
},
|
|
37864
|
+
{
|
|
37865
|
+
type: "button",
|
|
37866
|
+
id: "editor-toolbar-special-indent-hanging",
|
|
37867
|
+
testId: "editor-toolbar-special-indent-hanging",
|
|
37868
|
+
iconName: "list-indent-increase",
|
|
37869
|
+
labelKey: "toolbar.specialIndentHanging",
|
|
37870
|
+
tooltipKey: "toolbar.specialIndentHanging",
|
|
37871
|
+
command: { name: "setSpecialIndent", payload: { kind: "hanging" } },
|
|
37872
|
+
wide: true
|
|
37873
|
+
}
|
|
37874
|
+
]
|
|
37875
|
+
}
|
|
37876
|
+
});
|
|
37454
37877
|
items.push({
|
|
37455
37878
|
type: "custom",
|
|
37456
37879
|
id: "editor-toolbar-line-spacing-control",
|
|
@@ -37516,6 +37939,7 @@ const OASIS_TOOLBAR_ITEMS = {
|
|
|
37516
37939
|
outdent: "editor-toolbar-list-outdent",
|
|
37517
37940
|
indent: "editor-toolbar-list-indent",
|
|
37518
37941
|
listOptions: "editor-toolbar-list-options",
|
|
37942
|
+
specialIndent: "editor-toolbar-special-indent",
|
|
37519
37943
|
lineSpacing: "editor-toolbar-line-spacing-control",
|
|
37520
37944
|
metrics: "editor-toolbar-metrics",
|
|
37521
37945
|
table: "editor-toolbar-table",
|