@notectl/core 1.7.0 → 1.7.1
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 +2 -2
- package/dist/chunks/{AttrRegistry-I-VdmRnN.mjs → AttrRegistry-Ci0qAvtS.mjs} +2 -2
- package/dist/chunks/{AttrRegistry-I-VdmRnN.mjs.map → AttrRegistry-Ci0qAvtS.mjs.map} +1 -1
- package/dist/chunks/AttributedMarkCommands-BETuHXj8.mjs +58 -0
- package/dist/chunks/AttributedMarkCommands-BETuHXj8.mjs.map +1 -0
- package/dist/chunks/{CaretNavigation-CAJXoaae.mjs → CaretNavigation-qLfeL0So.mjs} +56 -56
- package/dist/chunks/{CaretNavigation-CAJXoaae.mjs.map → CaretNavigation-qLfeL0So.mjs.map} +1 -1
- package/dist/chunks/ColorGrid-BBkN0AOb.mjs +80 -0
- package/dist/chunks/ColorGrid-BBkN0AOb.mjs.map +1 -0
- package/dist/chunks/ColorPickerPopup-D3ysvOH-.mjs +37 -0
- package/dist/chunks/ColorPickerPopup-D3ysvOH-.mjs.map +1 -0
- package/dist/chunks/ColorValidation-CV4f1wu6.mjs +39 -0
- package/dist/chunks/ColorValidation-CV4f1wu6.mjs.map +1 -0
- package/dist/chunks/{Document-CuwE73FF.mjs → Document-DfZ1NOjs.mjs} +15 -15
- package/dist/chunks/{Document-CuwE73FF.mjs.map → Document-DfZ1NOjs.mjs.map} +1 -1
- package/dist/chunks/MarkCommands-uybmkw9l.mjs +94 -0
- package/dist/chunks/MarkCommands-uybmkw9l.mjs.map +1 -0
- package/dist/chunks/{NavigationUtils-CyW0Vo8A.mjs → NavigationUtils-Cspt2ZrK.mjs} +3 -3
- package/dist/chunks/{NavigationUtils-CyW0Vo8A.mjs.map → NavigationUtils-Cspt2ZrK.mjs.map} +1 -1
- package/dist/chunks/{NodeResolver-B-wzthAQ.mjs → NodeResolver-CzLmmrph.mjs} +2 -2
- package/dist/chunks/{NodeResolver-B-wzthAQ.mjs.map → NodeResolver-CzLmmrph.mjs.map} +1 -1
- package/dist/chunks/PopupPositioning-Cn6L_mO2.mjs +30 -0
- package/dist/chunks/PopupPositioning-Cn6L_mO2.mjs.map +1 -0
- package/dist/chunks/RangeIterator-Bye0UtbY.mjs +16 -0
- package/dist/chunks/RangeIterator-Bye0UtbY.mjs.map +1 -0
- package/dist/chunks/{Selection-DmFDwiPJ.mjs → Selection-BRTab5hO.mjs} +7 -7
- package/dist/chunks/{Selection-DmFDwiPJ.mjs.map → Selection-BRTab5hO.mjs.map} +1 -1
- package/dist/chunks/ToolbarItem-BpZggUGo.mjs.map +1 -1
- package/dist/chunks/{ToolbarKeyboardNav-B32OMv8r.mjs → ToolbarKeyboardNav-DhpL8zNV.mjs} +3 -3
- package/dist/chunks/{ToolbarKeyboardNav-B32OMv8r.mjs.map → ToolbarKeyboardNav-DhpL8zNV.mjs.map} +1 -1
- package/dist/chunks/{ToolbarPlugin-B6JETWaw.mjs → ToolbarPlugin-B7oJRzpl.mjs} +339 -127
- package/dist/chunks/ToolbarPlugin-B7oJRzpl.mjs.map +1 -0
- package/dist/chunks/{index-CAV2N-fF.mjs → index-Bt_d4IqB.mjs} +8 -8
- package/dist/chunks/{index-CAV2N-fF.mjs.map → index-Bt_d4IqB.mjs.map} +1 -1
- package/dist/chunks/{index-pxbbDHVH.mjs → index-CFJFD4lF.mjs} +3 -3
- package/dist/chunks/{index-pxbbDHVH.mjs.map → index-CFJFD4lF.mjs.map} +1 -1
- package/dist/chunks/{index-C0cEs7Jc.mjs → index-CFPP456m.mjs} +10 -10
- package/dist/chunks/{index-C0cEs7Jc.mjs.map → index-CFPP456m.mjs.map} +1 -1
- package/dist/chunks/{index-FlTg80Pk.mjs → index-CH1r7DL-.mjs} +257 -298
- package/dist/chunks/index-CH1r7DL-.mjs.map +1 -0
- package/dist/chunks/{index-D0s0Q8Wc.mjs → index-CfyS_pgH.mjs} +25 -18
- package/dist/chunks/index-CfyS_pgH.mjs.map +1 -0
- package/dist/chunks/{index-CflvcXSd.mjs → index-Ckzqtn5D.mjs} +17 -14
- package/dist/chunks/{index-CflvcXSd.mjs.map → index-Ckzqtn5D.mjs.map} +1 -1
- package/dist/chunks/{index-C9gc3Bws.mjs → index-CrKz_IEn.mjs} +32 -32
- package/dist/chunks/{index-C9gc3Bws.mjs.map → index-CrKz_IEn.mjs.map} +1 -1
- package/dist/chunks/{index-DMt3ojrY.mjs → index-DGKQhSAl.mjs} +2 -2
- package/dist/chunks/{index-DMt3ojrY.mjs.map → index-DGKQhSAl.mjs.map} +1 -1
- package/dist/chunks/{index-CoeD4T9-.mjs → index-DIvHQtE2.mjs} +10 -7
- package/dist/chunks/{index-CoeD4T9-.mjs.map → index-DIvHQtE2.mjs.map} +1 -1
- package/dist/chunks/index-DayTn6Re.mjs +166 -0
- package/dist/chunks/index-DayTn6Re.mjs.map +1 -0
- package/dist/chunks/index-Deag_lVi.mjs +121 -0
- package/dist/chunks/index-Deag_lVi.mjs.map +1 -0
- package/dist/chunks/{index--z_Txzej.mjs → index-DmuuFS5D.mjs} +6 -6
- package/dist/chunks/{index--z_Txzej.mjs.map → index-DmuuFS5D.mjs.map} +1 -1
- package/dist/chunks/{index-B9GkDVsx.mjs → index-DoCvDkfj.mjs} +77 -94
- package/dist/chunks/index-DoCvDkfj.mjs.map +1 -0
- package/dist/chunks/index-DuRNETFv.mjs +296 -0
- package/dist/chunks/index-DuRNETFv.mjs.map +1 -0
- package/dist/chunks/{index-B-NSeaM4.mjs → index-Dum8yE_t.mjs} +12 -12
- package/dist/chunks/{index-B-NSeaM4.mjs.map → index-Dum8yE_t.mjs.map} +1 -1
- package/dist/chunks/{index-CNs4QQ8l.mjs → index-Dy6SllXW.mjs} +52 -64
- package/dist/chunks/index-Dy6SllXW.mjs.map +1 -0
- package/dist/chunks/{index-D8tbbW97.mjs → index-E7OgN7hM.mjs} +2 -2
- package/dist/chunks/{index-D8tbbW97.mjs.map → index-E7OgN7hM.mjs.map} +1 -1
- package/dist/chunks/{index-DyIwN_67.mjs → index-yhz2qeeh.mjs} +220 -218
- package/dist/chunks/index-yhz2qeeh.mjs.map +1 -0
- package/dist/commands/AttributedMarkCommands.d.ts +46 -0
- package/dist/commands/AttributedMarkCommands.d.ts.map +1 -0
- package/dist/commands/CommandHelpers.d.ts +21 -0
- package/dist/commands/CommandHelpers.d.ts.map +1 -0
- package/dist/commands/Commands.d.ts +2 -8
- package/dist/commands/Commands.d.ts.map +1 -1
- package/dist/commands/DeleteCommands.d.ts.map +1 -1
- package/dist/commands/GapCursorCommands.d.ts.map +1 -1
- package/dist/commands/NodeSelectionCommands.d.ts.map +1 -1
- package/dist/commands/PasteCommand.d.ts.map +1 -1
- package/dist/commands/RangeIterator.d.ts +10 -0
- package/dist/commands/RangeIterator.d.ts.map +1 -0
- package/dist/editor/DocumentParser.d.ts.map +1 -1
- package/dist/editor/DocumentSerializer.d.ts +2 -0
- package/dist/editor/DocumentSerializer.d.ts.map +1 -1
- package/dist/editor/MarkSerializer.d.ts +11 -0
- package/dist/editor/MarkSerializer.d.ts.map +1 -0
- package/dist/editor/NotectlEditor.d.ts +6 -3
- package/dist/editor/NotectlEditor.d.ts.map +1 -1
- package/dist/editor/PaperLayoutController.d.ts +2 -0
- package/dist/editor/PaperLayoutController.d.ts.map +1 -1
- package/dist/editor/styles/font-select.d.ts +1 -1
- package/dist/editor/styles/font-select.d.ts.map +1 -1
- package/dist/editor/styles/font-size-select.d.ts +1 -1
- package/dist/editor/styles/font-size-select.d.ts.map +1 -1
- package/dist/editor/styles/heading-select.d.ts +1 -1
- package/dist/editor/styles/heading-select.d.ts.map +1 -1
- package/dist/editor/styles/toolbar.d.ts +1 -1
- package/dist/editor/styles/toolbar.d.ts.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/input/ClipboardHandler.d.ts +0 -2
- package/dist/input/ClipboardHandler.d.ts.map +1 -1
- package/dist/model/MarkSpec.d.ts +6 -0
- package/dist/model/MarkSpec.d.ts.map +1 -1
- package/dist/notectl-core.mjs +2227 -2090
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +2527 -2337
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/plugins/PluginManager.d.ts +2 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment.mjs +1 -1
- package/dist/plugins/blockquote.mjs +1 -1
- package/dist/plugins/caret-navigation.mjs +1 -1
- package/dist/plugins/code-block.mjs +1 -1
- package/dist/plugins/font/FontPlugin.d.ts +0 -6
- package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizeOperations.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizePlugin.d.ts +0 -5
- package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
- package/dist/plugins/font-size.mjs +1 -1
- package/dist/plugins/font.mjs +1 -1
- package/dist/plugins/gap-cursor.mjs +7 -7
- package/dist/plugins/hard-break.mjs +2 -25
- package/dist/plugins/hard-break.mjs.map +1 -1
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts +1 -7
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts.map +1 -1
- package/dist/plugins/heading/HeadingPlugin.d.ts +0 -6
- package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
- package/dist/plugins/heading.mjs +1 -1
- package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
- package/dist/plugins/highlight.mjs +1 -1
- package/dist/plugins/horizontal-rule.mjs +1 -1
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
- package/dist/plugins/image.mjs +1 -1
- package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
- package/dist/plugins/link.mjs +1 -1
- package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
- package/dist/plugins/list.mjs +1 -1
- package/dist/plugins/shared/ColorGrid.d.ts +25 -0
- package/dist/plugins/shared/ColorGrid.d.ts.map +1 -0
- package/dist/plugins/shared/ColorMarkOperations.d.ts.map +1 -1
- package/dist/plugins/shared/ColorPickerPopup.d.ts.map +1 -1
- package/dist/plugins/shared/ColorValidation.d.ts +13 -2
- package/dist/plugins/shared/ColorValidation.d.ts.map +1 -1
- package/dist/plugins/shared/PopupKeyboardPatterns.d.ts +43 -0
- package/dist/plugins/shared/PopupKeyboardPatterns.d.ts.map +1 -0
- package/dist/plugins/shared/PopupManager.d.ts +45 -0
- package/dist/plugins/shared/PopupManager.d.ts.map +1 -0
- package/dist/plugins/shared/PopupPositioning.d.ts +21 -0
- package/dist/plugins/shared/PopupPositioning.d.ts.map +1 -0
- package/dist/plugins/strikethrough.mjs +1 -1
- package/dist/plugins/super-sub.mjs +1 -1
- package/dist/plugins/table/TableBorderColor.d.ts.map +1 -1
- package/dist/plugins/table/TableContextMenu.d.ts +2 -1
- package/dist/plugins/table/TableContextMenu.d.ts.map +1 -1
- package/dist/plugins/table.mjs +1 -1
- package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
- package/dist/plugins/text-color.mjs +1 -1
- package/dist/plugins/text-formatting.mjs +1 -1
- package/dist/plugins/toolbar/ToolbarItem.d.ts +11 -2
- package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts +5 -1
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts +1 -0
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts +9 -1
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -1
- package/dist/plugins/toolbar/index.d.ts +1 -1
- package/dist/plugins/toolbar/index.d.ts.map +1 -1
- package/dist/plugins/toolbar.mjs +1 -1
- package/dist/state/BlockTreeOps.d.ts +21 -0
- package/dist/state/BlockTreeOps.d.ts.map +1 -0
- package/dist/state/InlineContentOps.d.ts +37 -0
- package/dist/state/InlineContentOps.d.ts.map +1 -0
- package/dist/state/StepApplication.d.ts.map +1 -1
- package/dist/test/PluginTestUtils.d.ts +4 -0
- package/dist/test/PluginTestUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/chunks/ColorNames-BdsHwA2f.mjs +0 -59
- package/dist/chunks/ColorNames-BdsHwA2f.mjs.map +0 -1
- package/dist/chunks/ColorPickerPopup-xL8ZUfpB.mjs +0 -125
- package/dist/chunks/ColorPickerPopup-xL8ZUfpB.mjs.map +0 -1
- package/dist/chunks/Commands-CicwYoTQ.mjs +0 -286
- package/dist/chunks/Commands-CicwYoTQ.mjs.map +0 -1
- package/dist/chunks/MarkCommands-CC37WA7Z.mjs +0 -94
- package/dist/chunks/MarkCommands-CC37WA7Z.mjs.map +0 -1
- package/dist/chunks/ToolbarPlugin-B6JETWaw.mjs.map +0 -1
- package/dist/chunks/index-B9GkDVsx.mjs.map +0 -1
- package/dist/chunks/index-CKPrAOr6.mjs +0 -209
- package/dist/chunks/index-CKPrAOr6.mjs.map +0 -1
- package/dist/chunks/index-CNs4QQ8l.mjs.map +0 -1
- package/dist/chunks/index-D0s0Q8Wc.mjs.map +0 -1
- package/dist/chunks/index-DfzCof6H.mjs +0 -191
- package/dist/chunks/index-DfzCof6H.mjs.map +0 -1
- package/dist/chunks/index-DyIwN_67.mjs.map +0 -1
- package/dist/chunks/index-FlTg80Pk.mjs.map +0 -1
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { S as t, r as e } from "./resolvePluginLocale-B4w1OkPy.mjs";
|
|
2
2
|
import { e as n } from "./HTMLUtils-DTqQzcKR.mjs";
|
|
3
|
-
import { i as o, a as r,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { u as b,
|
|
7
|
-
import { n as
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
import { i as o, a as r, d as l, e as i, b as a } from "./Selection-BRTab5hO.mjs";
|
|
4
|
+
import { a as s } from "./ColorValidation-CV4f1wu6.mjs";
|
|
5
|
+
import { g as c, r as d } from "./ColorGrid-BBkN0AOb.mjs";
|
|
6
|
+
import { q as u, u as b, k as h, f as p, a as f } from "./Document-DfZ1NOjs.mjs";
|
|
7
|
+
import { n as m } from "./TypeBrands-C09nE2qO.mjs";
|
|
8
|
+
import { p as g } from "./PopupPositioning-Cn6L_mO2.mjs";
|
|
9
|
+
import { a as w } from "./ToolbarKeyboardNav-DhpL8zNV.mjs";
|
|
10
|
+
function v() {
|
|
11
|
+
const t2 = h(m("paragraph"), [p("")], b());
|
|
12
|
+
return h(m("table_cell"), [t2], b());
|
|
13
|
+
}
|
|
14
|
+
function x(t2, e2) {
|
|
13
15
|
const n2 = t2.getNodePath(e2);
|
|
14
16
|
if (!n2) return null;
|
|
15
17
|
let o2 = null, r2 = null, l2 = null, i2 = null;
|
|
@@ -19,31 +21,31 @@ function v(t2, e2) {
|
|
|
19
21
|
}
|
|
20
22
|
const a2 = t2.getBlock(e2);
|
|
21
23
|
if ("table_cell" === a2?.type && (i2 = e2), !(o2 && r2 && i2 && l2)) return null;
|
|
22
|
-
const s2 = t2.doc.children.findIndex((t3) => t3.id === o2), c2 =
|
|
24
|
+
const s2 = t2.doc.children.findIndex((t3) => t3.id === o2), c2 = u(r2), d2 = c2.findIndex((t3) => t3.id === l2);
|
|
23
25
|
if (-1 === d2) return null;
|
|
24
|
-
const
|
|
25
|
-
if (!
|
|
26
|
-
const h2 =
|
|
26
|
+
const b2 = c2[d2];
|
|
27
|
+
if (!b2) return null;
|
|
28
|
+
const h2 = u(b2), p2 = h2.findIndex((t3) => t3.id === i2);
|
|
27
29
|
if (-1 === p2) return null;
|
|
28
30
|
const f2 = h2.length, m2 = c2.length;
|
|
29
31
|
return { tableId: o2, tableIndex: s2, rowId: l2, rowIndex: d2, cellId: i2, colIndex: p2, totalRows: m2, totalCols: f2 };
|
|
30
32
|
}
|
|
31
|
-
function
|
|
33
|
+
function C(t2, e2, n2, o2) {
|
|
32
34
|
const r2 = t2.getBlock(e2);
|
|
33
35
|
if (!r2) return null;
|
|
34
|
-
const l2 =
|
|
36
|
+
const l2 = u(r2)[n2];
|
|
35
37
|
if (!l2) return null;
|
|
36
|
-
const i2 =
|
|
38
|
+
const i2 = u(l2)[o2];
|
|
37
39
|
return i2?.id ?? null;
|
|
38
40
|
}
|
|
39
|
-
function
|
|
41
|
+
function I(t2, e2) {
|
|
40
42
|
const n2 = t2.getBlock(e2);
|
|
41
43
|
if (!n2) return e2;
|
|
42
|
-
const o2 =
|
|
44
|
+
const o2 = u(n2)[0];
|
|
43
45
|
if (!o2) return e2;
|
|
44
46
|
let r2 = o2;
|
|
45
47
|
for (; ; ) {
|
|
46
|
-
const t3 =
|
|
48
|
+
const t3 = u(r2)[0];
|
|
47
49
|
if (!t3) return r2.id;
|
|
48
50
|
r2 = t3;
|
|
49
51
|
}
|
|
@@ -51,16 +53,16 @@ function C(t2, e2) {
|
|
|
51
53
|
function y(t2, e2) {
|
|
52
54
|
const n2 = t2.getBlock(e2);
|
|
53
55
|
if (!n2) return e2;
|
|
54
|
-
const o2 =
|
|
56
|
+
const o2 = u(n2), r2 = o2[o2.length - 1];
|
|
55
57
|
if (!r2) return e2;
|
|
56
58
|
let l2 = r2;
|
|
57
59
|
for (; ; ) {
|
|
58
|
-
const t3 =
|
|
60
|
+
const t3 = u(l2), e3 = t3[t3.length - 1];
|
|
59
61
|
if (!e3) return l2.id;
|
|
60
62
|
l2 = e3;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
function
|
|
65
|
+
function R(t2, e2) {
|
|
64
66
|
const n2 = t2.getNodePath(e2);
|
|
65
67
|
if (!n2) return false;
|
|
66
68
|
for (const e3 of n2) {
|
|
@@ -69,7 +71,7 @@ function I(t2, e2) {
|
|
|
69
71
|
}
|
|
70
72
|
return false;
|
|
71
73
|
}
|
|
72
|
-
const R = { insertRowAbove: "Insert Row Above", insertRowBelow: "Insert Row Below", insertColumnLeft: "Insert Column Left", insertColumnRight: "Insert Column Right", deleteRow: "Delete Row", deleteColumn: "Delete Column", borderColorLabel: "Border Color...", deleteTable: "Delete Table", tableActions: "Table actions", menuKeyboardHint: "↑↓ Navigate · Enter Select · Esc Close", insertRow: "Insert row", insertColumn: "Insert column", addRow: "Add row", addColumn: "Add column", tableActionsHint: "Table actions (Right-click or Shift+F10)", contextMenuHint: "Right-click or Shift+F10 for table actions", borderColor: "Border color", defaultColor: "Default", noBorders: "No borders", borderColorPicker: "Border color picker", announceBorderColorSet: (t2) => `Table border color set to ${t2}`, announceBorderReset: "Table borders reset to default", borderSwatchLabel: (t2) => `Border ${t2}`, announceRowInsertedAbove: "Row inserted above", announceRowInsertedBelow: "Row inserted below", announceColumnInserted: (t2) => `Column inserted ${t2}`, announceRowDeleted: "Row deleted", announceColumnDeleted: "Column deleted", announceTableDeleted: "Table deleted", insertTable: "Insert Table", tableAriaLabel: (t2, e2) => `Table with ${t2} rows and ${e2} columns`, tableAriaDescription: "Right-click or press Shift+F10 for table actions" }, k = { insertRowAbove: "Zeile oberhalb einfügen", insertRowBelow: "Zeile unterhalb einfügen", insertColumnLeft: "Spalte links einfügen", insertColumnRight: "Spalte rechts einfügen", deleteRow: "Zeile löschen", deleteColumn: "Spalte löschen", borderColorLabel: "Rahmenfarbe…", deleteTable: "Tabelle löschen", tableActions: "Tabellenaktionen", menuKeyboardHint: "↑↓ Navigieren · Eingabe Auswählen · Esc Schließen", insertRow: "Zeile einfügen", insertColumn: "Spalte einfügen", addRow: "Zeile hinzufügen", addColumn: "Spalte hinzufügen", tableActionsHint: "Tabellenaktionen (Rechtsklick oder Umschalt+F10)", contextMenuHint: "Rechtsklick oder Umschalt+F10 für Tabellenaktionen", borderColor: "Rahmenfarbe", defaultColor: "Standard", noBorders: "Keine Rahmen", borderColorPicker: "Rahmenfarbe auswählen", announceBorderColorSet: (t2) => `Tabellenrahmenfarbe auf ${t2} gesetzt`, announceBorderReset: "Tabellenrahmen auf Standard zurückgesetzt", borderSwatchLabel: (t2) => `Rahmen ${t2}`, announceRowInsertedAbove: "Zeile oberhalb eingefügt", announceRowInsertedBelow: "Zeile unterhalb eingefügt", announceColumnInserted: (t2) => `Spalte ${t2} eingefügt`, announceRowDeleted: "Zeile gelöscht", announceColumnDeleted: "Spalte gelöscht", announceTableDeleted: "Tabelle gelöscht", insertTable: "Tabelle einfügen", tableAriaLabel: (t2, e2) => `Tabelle mit ${t2} Zeilen und ${e2} Spalten`, tableAriaDescription: "Rechtsklick oder Umschalt+F10 für Tabellenaktionen" }, A = { insertRowAbove: "Insertar fila arriba", insertRowBelow: "Insertar fila abajo", insertColumnLeft: "Insertar columna a la izquierda", insertColumnRight: "Insertar columna a la derecha", deleteRow: "Eliminar fila", deleteColumn: "Eliminar columna", borderColorLabel: "Color del borde…", deleteTable: "Eliminar tabla", tableActions: "Acciones de tabla", menuKeyboardHint: "↑↓ Navegar · Enter Seleccionar · Esc Cerrar", insertRow: "Insertar fila", insertColumn: "Insertar columna", addRow: "Añadir fila", addColumn: "Añadir columna", tableActionsHint: "Acciones de tabla (clic derecho o Mayús+F10)", contextMenuHint: "Clic derecho o Mayús+F10 para acciones de tabla", borderColor: "Color del borde", defaultColor: "Predeterminado", noBorders: "Sin bordes", borderColorPicker: "Selector de color de borde", announceBorderColorSet: (t2) => `Color del borde de tabla establecido en ${t2}`, announceBorderReset: "Bordes de tabla restablecidos a predeterminado", borderSwatchLabel: (t2) => `Borde ${t2}`, announceRowInsertedAbove: "Fila insertada arriba", announceRowInsertedBelow: "Fila insertada abajo", announceColumnInserted: (t2) => `Columna insertada ${t2}`, announceRowDeleted: "Fila eliminada", announceColumnDeleted: "Columna eliminada", announceTableDeleted: "Tabla eliminada", insertTable: "Insertar tabla", tableAriaLabel: (t2, e2) => `Tabla con ${t2} filas y ${e2} columnas`, tableAriaDescription: "Clic derecho o Mayús+F10 para acciones de tabla" }, S = { insertRowAbove: "Insérer une ligne au-dessus", insertRowBelow: "Insérer une ligne en dessous", insertColumnLeft: "Insérer une colonne à gauche", insertColumnRight: "Insérer une colonne à droite", deleteRow: "Supprimer la ligne", deleteColumn: "Supprimer la colonne", borderColorLabel: "Couleur de bordure…", deleteTable: "Supprimer le tableau", tableActions: "Actions du tableau", menuKeyboardHint: "↑↓ Naviguer · Entrée Sélectionner · Échap Fermer", insertRow: "Insérer une ligne", insertColumn: "Insérer une colonne", addRow: "Ajouter une ligne", addColumn: "Ajouter une colonne", tableActionsHint: "Actions du tableau (clic droit ou Maj+F10)", contextMenuHint: "Clic droit ou Maj+F10 pour les actions du tableau", borderColor: "Couleur de bordure", defaultColor: "Par défaut", noBorders: "Sans bordure", borderColorPicker: "Sélecteur de couleur de bordure", announceBorderColorSet: (t2) => `Couleur de bordure du tableau définie sur ${t2}`, announceBorderReset: "Bordures du tableau réinitialisées par défaut", borderSwatchLabel: (t2) => `Bordure ${t2}`, announceRowInsertedAbove: "Ligne insérée au-dessus", announceRowInsertedBelow: "Ligne insérée en dessous", announceColumnInserted: (t2) => `Colonne insérée à ${t2}`, announceRowDeleted: "Ligne supprimée", announceColumnDeleted: "Colonne supprimée", announceTableDeleted: "Tableau supprimé", insertTable: "Insérer un tableau", tableAriaLabel: (t2, e2) => `Tableau avec ${t2} lignes et ${e2} colonnes`, tableAriaDescription: "Clic droit ou Maj+F10 pour les actions du tableau" }, L = { insertRowAbove: "在上方插入行", insertRowBelow: "在下方插入行", insertColumnLeft: "在左侧插入列", insertColumnRight: "在右侧插入列", deleteRow: "删除行", deleteColumn: "删除列", borderColorLabel: "边框颜色…", deleteTable: "删除表格", tableActions: "表格操作", menuKeyboardHint: "↑↓ 导航 · Enter 选择 · Esc 关闭", insertRow: "插入行", insertColumn: "插入列", addRow: "添加行", addColumn: "添加列", tableActionsHint: "表格操作(右键或 Shift+F10)", contextMenuHint: "右键或 Shift+F10 打开表格操作", borderColor: "边框颜色", defaultColor: "默认", noBorders: "无边框", borderColorPicker: "边框颜色选择器", announceBorderColorSet: (t2) => `表格边框颜色已设置为${t2}`, announceBorderReset: "表格边框已重置为默认", borderSwatchLabel: (t2) => `边框 ${t2}`, announceRowInsertedAbove: "已在上方插入行", announceRowInsertedBelow: "已在下方插入行", announceColumnInserted: (t2) => `已插入列到${t2}`, announceRowDeleted: "行已删除", announceColumnDeleted: "列已删除", announceTableDeleted: "表格已删除", insertTable: "插入表格", tableAriaLabel: (t2, e2) => `表格,${t2} 行 ${e2} 列`, tableAriaDescription: "右键或 Shift+F10 打开表格操作" }, B = { insertRowAbove: "Вставить строку сверху", insertRowBelow: "Вставить строку снизу", insertColumnLeft: "Вставить столбец слева", insertColumnRight: "Вставить столбец справа", deleteRow: "Удалить строку", deleteColumn: "Удалить столбец", borderColorLabel: "Цвет границы…", deleteTable: "Удалить таблицу", tableActions: "Действия с таблицей", menuKeyboardHint: "↑↓ Навигация · Enter Выбрать · Esc Закрыть", insertRow: "Вставить строку", insertColumn: "Вставить столбец", addRow: "Добавить строку", addColumn: "Добавить столбец", tableActionsHint: "Действия с таблицей (ПКМ или Shift+F10)", contextMenuHint: "ПКМ или Shift+F10 для действий с таблицей", borderColor: "Цвет границы", defaultColor: "По умолчанию", noBorders: "Без границ", borderColorPicker: "Выбор цвета границы", announceBorderColorSet: (t2) => `Цвет границы таблицы установлен на ${t2}`, announceBorderReset: "Границы таблицы сброшены по умолчанию", borderSwatchLabel: (t2) => `Граница ${t2}`, announceRowInsertedAbove: "Строка вставлена сверху", announceRowInsertedBelow: "Строка вставлена снизу", announceColumnInserted: (t2) => `Столбец вставлен ${t2}`, announceRowDeleted: "Строка удалена", announceColumnDeleted: "Столбец удален", announceTableDeleted: "Таблица удалена", insertTable: "Вставить таблицу", tableAriaLabel: (t2, e2) => `Таблица: ${t2} строк, ${e2} столбцов`, tableAriaDescription: "ПКМ или Shift+F10 для действий с таблицей" }, E = { insertRowAbove: "إدراج صف أعلى", insertRowBelow: "إدراج صف أسفل", insertColumnLeft: "إدراج عمود على اليسار", insertColumnRight: "إدراج عمود على اليمين", deleteRow: "حذف الصف", deleteColumn: "حذف العمود", borderColorLabel: "لون الحدود…", deleteTable: "حذف الجدول", tableActions: "إجراءات الجدول", menuKeyboardHint: "↑↓ تنقل · Enter تحديد · Esc إغلاق", insertRow: "إدراج صف", insertColumn: "إدراج عمود", addRow: "إضافة صف", addColumn: "إضافة عمود", tableActionsHint: "إجراءات الجدول (انقر بزر الماوس الأيمن أو Shift+F10)", contextMenuHint: "انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول", borderColor: "لون الحدود", defaultColor: "افتراضي", noBorders: "بدون حدود", borderColorPicker: "منتقي لون الحدود", announceBorderColorSet: (t2) => `تم تعيين لون حدود الجدول إلى ${t2}`, announceBorderReset: "تم إعادة تعيين حدود الجدول إلى الافتراضي", borderSwatchLabel: (t2) => `حدود ${t2}`, announceRowInsertedAbove: "تم إدراج صف أعلى", announceRowInsertedBelow: "تم إدراج صف أسفل", announceColumnInserted: (t2) => `تم إدراج عمود ${t2}`, announceRowDeleted: "تم حذف الصف", announceColumnDeleted: "تم حذف العمود", announceTableDeleted: "تم حذف الجدول", insertTable: "إدراج جدول", tableAriaLabel: (t2, e2) => `جدول من ${t2} صفوف و ${e2} أعمدة`, tableAriaDescription: "انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول" }, T = { insertRowAbove: "ऊपर पंक्ति डालें", insertRowBelow: "नीचे पंक्ति डालें", insertColumnLeft: "बाएं स्तंभ डालें", insertColumnRight: "दाएं स्तंभ डालें", deleteRow: "पंक्ति हटाएं", deleteColumn: "स्तंभ हटाएं", borderColorLabel: "बॉर्डर रंग…", deleteTable: "तालिका हटाएं", tableActions: "तालिका क्रियाएं", menuKeyboardHint: "↑↓ नेविगेशन · Enter चुनें · Esc बंद करें", insertRow: "पंक्ति डालें", insertColumn: "स्तंभ डालें", addRow: "पंक्ति जोड़ें", addColumn: "स्तंभ जोड़ें", tableActionsHint: "तालिका क्रियाएं (राइट-क्लिक या Shift+F10)", contextMenuHint: "तालिका क्रियाओं के लिए राइट-क्लिक या Shift+F10", borderColor: "बॉर्डर रंग", defaultColor: "डिफ़ॉल्ट", noBorders: "कोई बॉर्डर नहीं", borderColorPicker: "बॉर्डर रंग चुनें", announceBorderColorSet: (t2) => `तालिका बॉर्डर रंग ${t2} पर सेट किया गया`, announceBorderReset: "तालिका बॉर्डर डिफ़ॉल्ट पर रीसेट किया गया", borderSwatchLabel: (t2) => `बॉर्डर ${t2}`, announceRowInsertedAbove: "ऊपर पंक्ति डाली गई", announceRowInsertedBelow: "नीचे पंक्ति डाली गई", announceColumnInserted: (t2) => `स्तंभ ${t2} डाला गया`, announceRowDeleted: "पंक्ति हटाई गई", announceColumnDeleted: "स्तंभ हटाया गया", announceTableDeleted: "तालिका हटाई गई", insertTable: "तालिका डालें", tableAriaLabel: (t2, e2) => `तालिका: ${t2} पंक्तियां और ${e2} स्तंभ`, tableAriaDescription: "तालिका क्रियाओं के लिए राइट-क्लिक या Shift+F10" }, D = { en: R, de: k, es: A, fr: S, zh: L, ru: B, ar: E, hi: T }, M = ["#000000", "#434343", "#666666", "#999999", "#b7b7b7", "#cccccc", "#d9d9d9", "#efefef", "#980000", "#cc0000", "#e69138", "#f1c232", "#6aa84f", "#45818e", "#3c78d8", "#3d85c6", "#674ea7", "#a64d79", "#0b5394", "#38761d"], H = /* @__PURE__ */ new Set(["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"]);
|
|
74
|
+
const k = { insertRowAbove: "Insert Row Above", insertRowBelow: "Insert Row Below", insertColumnLeft: "Insert Column Left", insertColumnRight: "Insert Column Right", deleteRow: "Delete Row", deleteColumn: "Delete Column", borderColorLabel: "Border Color...", deleteTable: "Delete Table", tableActions: "Table actions", menuKeyboardHint: "↑↓ Navigate · Enter Select · Esc Close", insertRow: "Insert row", insertColumn: "Insert column", addRow: "Add row", addColumn: "Add column", tableActionsHint: "Table actions (Right-click or Shift+F10)", contextMenuHint: "Right-click or Shift+F10 for table actions", borderColor: "Border color", defaultColor: "Default", noBorders: "No borders", borderColorPicker: "Border color picker", announceBorderColorSet: (t2) => `Table border color set to ${t2}`, announceBorderReset: "Table borders reset to default", borderSwatchLabel: (t2) => `Border ${t2}`, announceRowInsertedAbove: "Row inserted above", announceRowInsertedBelow: "Row inserted below", announceColumnInserted: (t2) => `Column inserted ${t2}`, announceRowDeleted: "Row deleted", announceColumnDeleted: "Column deleted", announceTableDeleted: "Table deleted", insertTable: "Insert Table", tableAriaLabel: (t2, e2) => `Table with ${t2} rows and ${e2} columns`, tableAriaDescription: "Right-click or press Shift+F10 for table actions" }, S = { insertRowAbove: "Zeile oberhalb einfügen", insertRowBelow: "Zeile unterhalb einfügen", insertColumnLeft: "Spalte links einfügen", insertColumnRight: "Spalte rechts einfügen", deleteRow: "Zeile löschen", deleteColumn: "Spalte löschen", borderColorLabel: "Rahmenfarbe…", deleteTable: "Tabelle löschen", tableActions: "Tabellenaktionen", menuKeyboardHint: "↑↓ Navigieren · Eingabe Auswählen · Esc Schließen", insertRow: "Zeile einfügen", insertColumn: "Spalte einfügen", addRow: "Zeile hinzufügen", addColumn: "Spalte hinzufügen", tableActionsHint: "Tabellenaktionen (Rechtsklick oder Umschalt+F10)", contextMenuHint: "Rechtsklick oder Umschalt+F10 für Tabellenaktionen", borderColor: "Rahmenfarbe", defaultColor: "Standard", noBorders: "Keine Rahmen", borderColorPicker: "Rahmenfarbe auswählen", announceBorderColorSet: (t2) => `Tabellenrahmenfarbe auf ${t2} gesetzt`, announceBorderReset: "Tabellenrahmen auf Standard zurückgesetzt", borderSwatchLabel: (t2) => `Rahmen ${t2}`, announceRowInsertedAbove: "Zeile oberhalb eingefügt", announceRowInsertedBelow: "Zeile unterhalb eingefügt", announceColumnInserted: (t2) => `Spalte ${t2} eingefügt`, announceRowDeleted: "Zeile gelöscht", announceColumnDeleted: "Spalte gelöscht", announceTableDeleted: "Tabelle gelöscht", insertTable: "Tabelle einfügen", tableAriaLabel: (t2, e2) => `Tabelle mit ${t2} Zeilen und ${e2} Spalten`, tableAriaDescription: "Rechtsklick oder Umschalt+F10 für Tabellenaktionen" }, A = { insertRowAbove: "Insertar fila arriba", insertRowBelow: "Insertar fila abajo", insertColumnLeft: "Insertar columna a la izquierda", insertColumnRight: "Insertar columna a la derecha", deleteRow: "Eliminar fila", deleteColumn: "Eliminar columna", borderColorLabel: "Color del borde…", deleteTable: "Eliminar tabla", tableActions: "Acciones de tabla", menuKeyboardHint: "↑↓ Navegar · Enter Seleccionar · Esc Cerrar", insertRow: "Insertar fila", insertColumn: "Insertar columna", addRow: "Añadir fila", addColumn: "Añadir columna", tableActionsHint: "Acciones de tabla (clic derecho o Mayús+F10)", contextMenuHint: "Clic derecho o Mayús+F10 para acciones de tabla", borderColor: "Color del borde", defaultColor: "Predeterminado", noBorders: "Sin bordes", borderColorPicker: "Selector de color de borde", announceBorderColorSet: (t2) => `Color del borde de tabla establecido en ${t2}`, announceBorderReset: "Bordes de tabla restablecidos a predeterminado", borderSwatchLabel: (t2) => `Borde ${t2}`, announceRowInsertedAbove: "Fila insertada arriba", announceRowInsertedBelow: "Fila insertada abajo", announceColumnInserted: (t2) => `Columna insertada ${t2}`, announceRowDeleted: "Fila eliminada", announceColumnDeleted: "Columna eliminada", announceTableDeleted: "Tabla eliminada", insertTable: "Insertar tabla", tableAriaLabel: (t2, e2) => `Tabla con ${t2} filas y ${e2} columnas`, tableAriaDescription: "Clic derecho o Mayús+F10 para acciones de tabla" }, L = { insertRowAbove: "Insérer une ligne au-dessus", insertRowBelow: "Insérer une ligne en dessous", insertColumnLeft: "Insérer une colonne à gauche", insertColumnRight: "Insérer une colonne à droite", deleteRow: "Supprimer la ligne", deleteColumn: "Supprimer la colonne", borderColorLabel: "Couleur de bordure…", deleteTable: "Supprimer le tableau", tableActions: "Actions du tableau", menuKeyboardHint: "↑↓ Naviguer · Entrée Sélectionner · Échap Fermer", insertRow: "Insérer une ligne", insertColumn: "Insérer une colonne", addRow: "Ajouter une ligne", addColumn: "Ajouter une colonne", tableActionsHint: "Actions du tableau (clic droit ou Maj+F10)", contextMenuHint: "Clic droit ou Maj+F10 pour les actions du tableau", borderColor: "Couleur de bordure", defaultColor: "Par défaut", noBorders: "Sans bordure", borderColorPicker: "Sélecteur de couleur de bordure", announceBorderColorSet: (t2) => `Couleur de bordure du tableau définie sur ${t2}`, announceBorderReset: "Bordures du tableau réinitialisées par défaut", borderSwatchLabel: (t2) => `Bordure ${t2}`, announceRowInsertedAbove: "Ligne insérée au-dessus", announceRowInsertedBelow: "Ligne insérée en dessous", announceColumnInserted: (t2) => `Colonne insérée à ${t2}`, announceRowDeleted: "Ligne supprimée", announceColumnDeleted: "Colonne supprimée", announceTableDeleted: "Tableau supprimé", insertTable: "Insérer un tableau", tableAriaLabel: (t2, e2) => `Tableau avec ${t2} lignes et ${e2} colonnes`, tableAriaDescription: "Clic droit ou Maj+F10 pour les actions du tableau" }, B = { insertRowAbove: "在上方插入行", insertRowBelow: "在下方插入行", insertColumnLeft: "在左侧插入列", insertColumnRight: "在右侧插入列", deleteRow: "删除行", deleteColumn: "删除列", borderColorLabel: "边框颜色…", deleteTable: "删除表格", tableActions: "表格操作", menuKeyboardHint: "↑↓ 导航 · Enter 选择 · Esc 关闭", insertRow: "插入行", insertColumn: "插入列", addRow: "添加行", addColumn: "添加列", tableActionsHint: "表格操作(右键或 Shift+F10)", contextMenuHint: "右键或 Shift+F10 打开表格操作", borderColor: "边框颜色", defaultColor: "默认", noBorders: "无边框", borderColorPicker: "边框颜色选择器", announceBorderColorSet: (t2) => `表格边框颜色已设置为${t2}`, announceBorderReset: "表格边框已重置为默认", borderSwatchLabel: (t2) => `边框 ${t2}`, announceRowInsertedAbove: "已在上方插入行", announceRowInsertedBelow: "已在下方插入行", announceColumnInserted: (t2) => `已插入列到${t2}`, announceRowDeleted: "行已删除", announceColumnDeleted: "列已删除", announceTableDeleted: "表格已删除", insertTable: "插入表格", tableAriaLabel: (t2, e2) => `表格,${t2} 行 ${e2} 列`, tableAriaDescription: "右键或 Shift+F10 打开表格操作" }, T = { insertRowAbove: "Вставить строку сверху", insertRowBelow: "Вставить строку снизу", insertColumnLeft: "Вставить столбец слева", insertColumnRight: "Вставить столбец справа", deleteRow: "Удалить строку", deleteColumn: "Удалить столбец", borderColorLabel: "Цвет границы…", deleteTable: "Удалить таблицу", tableActions: "Действия с таблицей", menuKeyboardHint: "↑↓ Навигация · Enter Выбрать · Esc Закрыть", insertRow: "Вставить строку", insertColumn: "Вставить столбец", addRow: "Добавить строку", addColumn: "Добавить столбец", tableActionsHint: "Действия с таблицей (ПКМ или Shift+F10)", contextMenuHint: "ПКМ или Shift+F10 для действий с таблицей", borderColor: "Цвет границы", defaultColor: "По умолчанию", noBorders: "Без границ", borderColorPicker: "Выбор цвета границы", announceBorderColorSet: (t2) => `Цвет границы таблицы установлен на ${t2}`, announceBorderReset: "Границы таблицы сброшены по умолчанию", borderSwatchLabel: (t2) => `Граница ${t2}`, announceRowInsertedAbove: "Строка вставлена сверху", announceRowInsertedBelow: "Строка вставлена снизу", announceColumnInserted: (t2) => `Столбец вставлен ${t2}`, announceRowDeleted: "Строка удалена", announceColumnDeleted: "Столбец удален", announceTableDeleted: "Таблица удалена", insertTable: "Вставить таблицу", tableAriaLabel: (t2, e2) => `Таблица: ${t2} строк, ${e2} столбцов`, tableAriaDescription: "ПКМ или Shift+F10 для действий с таблицей" }, E = { insertRowAbove: "إدراج صف أعلى", insertRowBelow: "إدراج صف أسفل", insertColumnLeft: "إدراج عمود على اليسار", insertColumnRight: "إدراج عمود على اليمين", deleteRow: "حذف الصف", deleteColumn: "حذف العمود", borderColorLabel: "لون الحدود…", deleteTable: "حذف الجدول", tableActions: "إجراءات الجدول", menuKeyboardHint: "↑↓ تنقل · Enter تحديد · Esc إغلاق", insertRow: "إدراج صف", insertColumn: "إدراج عمود", addRow: "إضافة صف", addColumn: "إضافة عمود", tableActionsHint: "إجراءات الجدول (انقر بزر الماوس الأيمن أو Shift+F10)", contextMenuHint: "انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول", borderColor: "لون الحدود", defaultColor: "افتراضي", noBorders: "بدون حدود", borderColorPicker: "منتقي لون الحدود", announceBorderColorSet: (t2) => `تم تعيين لون حدود الجدول إلى ${t2}`, announceBorderReset: "تم إعادة تعيين حدود الجدول إلى الافتراضي", borderSwatchLabel: (t2) => `حدود ${t2}`, announceRowInsertedAbove: "تم إدراج صف أعلى", announceRowInsertedBelow: "تم إدراج صف أسفل", announceColumnInserted: (t2) => `تم إدراج عمود ${t2}`, announceRowDeleted: "تم حذف الصف", announceColumnDeleted: "تم حذف العمود", announceTableDeleted: "تم حذف الجدول", insertTable: "إدراج جدول", tableAriaLabel: (t2, e2) => `جدول من ${t2} صفوف و ${e2} أعمدة`, tableAriaDescription: "انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول" }, D = { insertRowAbove: "ऊपर पंक्ति डालें", insertRowBelow: "नीचे पंक्ति डालें", insertColumnLeft: "बाएं स्तंभ डालें", insertColumnRight: "दाएं स्तंभ डालें", deleteRow: "पंक्ति हटाएं", deleteColumn: "स्तंभ हटाएं", borderColorLabel: "बॉर्डर रंग…", deleteTable: "तालिका हटाएं", tableActions: "तालिका क्रियाएं", menuKeyboardHint: "↑↓ नेविगेशन · Enter चुनें · Esc बंद करें", insertRow: "पंक्ति डालें", insertColumn: "स्तंभ डालें", addRow: "पंक्ति जोड़ें", addColumn: "स्तंभ जोड़ें", tableActionsHint: "तालिका क्रियाएं (राइट-क्लिक या Shift+F10)", contextMenuHint: "तालिका क्रियाओं के लिए राइट-क्लिक या Shift+F10", borderColor: "बॉर्डर रंग", defaultColor: "डिफ़ॉल्ट", noBorders: "कोई बॉर्डर नहीं", borderColorPicker: "बॉर्डर रंग चुनें", announceBorderColorSet: (t2) => `तालिका बॉर्डर रंग ${t2} पर सेट किया गया`, announceBorderReset: "तालिका बॉर्डर डिफ़ॉल्ट पर रीसेट किया गया", borderSwatchLabel: (t2) => `बॉर्डर ${t2}`, announceRowInsertedAbove: "ऊपर पंक्ति डाली गई", announceRowInsertedBelow: "नीचे पंक्ति डाली गई", announceColumnInserted: (t2) => `स्तंभ ${t2} डाला गया`, announceRowDeleted: "पंक्ति हटाई गई", announceColumnDeleted: "स्तंभ हटाया गया", announceTableDeleted: "तालिका हटाई गई", insertTable: "तालिका डालें", tableAriaLabel: (t2, e2) => `तालिका: ${t2} पंक्तियां और ${e2} स्तंभ`, tableAriaDescription: "तालिका क्रियाओं के लिए राइट-क्लिक या Shift+F10" }, M = { en: k, de: S, es: A, fr: L, zh: B, ru: T, ar: E, hi: D }, H = ["#000000", "#434343", "#666666", "#999999", "#b7b7b7", "#cccccc", "#d9d9d9", "#efefef", "#980000", "#cc0000", "#e69138", "#f1c232", "#6aa84f", "#45818e", "#3c78d8", "#3d85c6", "#674ea7", "#a64d79", "#0b5394", "#38761d"];
|
|
73
75
|
function $(t2, e2, n2) {
|
|
74
76
|
const o2 = t2.getBlock(e2);
|
|
75
77
|
if (!o2 || "table" !== o2.type) return null;
|
|
@@ -82,21 +84,21 @@ function $(t2, e2, n2) {
|
|
|
82
84
|
const l2 = { ...o2.attrs, borderColor: n2 };
|
|
83
85
|
return t2.transaction("command").setNodeAttr(r2, l2).setSelection(t2.selection).build();
|
|
84
86
|
}
|
|
85
|
-
function
|
|
87
|
+
function P(t2, e2, n2 = k) {
|
|
86
88
|
const l2 = t2.getState();
|
|
87
89
|
if (o(l2.selection) || r(l2.selection)) return false;
|
|
88
|
-
const i2 =
|
|
90
|
+
const i2 = x(l2, l2.selection.anchor.blockId);
|
|
89
91
|
if (!i2) return false;
|
|
90
92
|
const a2 = $(l2, i2.tableId, e2);
|
|
91
93
|
if (!a2) return false;
|
|
92
94
|
t2.dispatch(a2);
|
|
93
|
-
const
|
|
94
|
-
return t2.announce(n2.announceBorderColorSet(
|
|
95
|
+
const s2 = "none" === e2 ? "none" : c(e2);
|
|
96
|
+
return t2.announce(n2.announceBorderColorSet(s2)), true;
|
|
95
97
|
}
|
|
96
|
-
function
|
|
98
|
+
function N(t2, e2 = k) {
|
|
97
99
|
const n2 = t2.getState();
|
|
98
100
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
99
|
-
const l2 =
|
|
101
|
+
const l2 = x(n2, n2.selection.anchor.blockId);
|
|
100
102
|
if (!l2) return false;
|
|
101
103
|
const i2 = $(n2, l2.tableId, void 0);
|
|
102
104
|
return !!i2 && (t2.dispatch(i2), t2.announce(e2.announceBorderReset), true);
|
|
@@ -105,118 +107,74 @@ function z(t2, e2) {
|
|
|
105
107
|
const n2 = t2.getBlock(e2);
|
|
106
108
|
if (n2) return n2.attrs?.borderColor;
|
|
107
109
|
}
|
|
108
|
-
function F(t2, e2, n2, o2, r2 =
|
|
110
|
+
function F(t2, e2, n2, o2, r2 = k) {
|
|
109
111
|
t2.classList.add("notectl-color-picker");
|
|
110
|
-
const l2 = z(e2.getState(), n2), i2 =
|
|
111
|
-
|
|
112
|
-
t3.preventDefault(), t3.stopPropagation(),
|
|
113
|
-
}),
|
|
112
|
+
const l2 = z(e2.getState(), n2), i2 = document.createElement("button");
|
|
113
|
+
i2.type = "button", i2.className = "notectl-color-picker__default", i2.textContent = r2.defaultColor, i2.addEventListener("mousedown", (t3) => {
|
|
114
|
+
t3.preventDefault(), t3.stopPropagation(), N(e2, r2), o2();
|
|
115
|
+
}), i2.addEventListener("keydown", (t3) => {
|
|
114
116
|
"Escape" === t3.key && (t3.preventDefault(), o2());
|
|
115
|
-
}), t2.appendChild(
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
t3.preventDefault(), t3.stopPropagation(),
|
|
119
|
-
}),
|
|
117
|
+
}), t2.appendChild(i2);
|
|
118
|
+
const a2 = document.createElement("button");
|
|
119
|
+
a2.type = "button", a2.className = "notectl-color-picker__default", a2.textContent = r2.noBorders, a2.addEventListener("mousedown", (t3) => {
|
|
120
|
+
t3.preventDefault(), t3.stopPropagation(), P(e2, "none", r2), o2();
|
|
121
|
+
}), a2.addEventListener("keydown", (t3) => {
|
|
120
122
|
"Escape" === t3.key && (t3.preventDefault(), o2());
|
|
121
|
-
}), t2.appendChild(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const p2 = [];
|
|
125
|
-
let f2 = 0;
|
|
126
|
-
for (let t3 = 0; t3 < a2; t3++) {
|
|
127
|
-
const n3 = document.createElement("div");
|
|
128
|
-
n3.setAttribute("role", "row");
|
|
129
|
-
for (let a3 = 0; a3 < 5; a3++) {
|
|
130
|
-
const d3 = 5 * t3 + a3;
|
|
131
|
-
if (d3 >= i2) break;
|
|
132
|
-
const u2 = M[d3], b3 = s(u2), h3 = !!l2 && l2.toLowerCase() === u2.toLowerCase(), m2 = document.createElement("button");
|
|
133
|
-
m2.type = "button", m2.className = "notectl-color-picker__swatch", m2.setAttribute("role", "gridcell"), m2.setAttribute("aria-label", r2.borderSwatchLabel(b3)), m2.setAttribute("aria-selected", String(h3)), m2.dataset.index = String(d3), m2.style.backgroundColor = u2, m2.title = b3, c(u2) && (m2.style.border = "1px solid #d0d0d0"), h3 && (m2.classList.add("notectl-color-picker__swatch--active"), f2 = d3), m2.addEventListener("mousedown", (t4) => {
|
|
134
|
-
t4.preventDefault(), t4.stopPropagation(), N(e2, u2, r2), o2();
|
|
135
|
-
}), p2.push(m2), n3.appendChild(m2);
|
|
136
|
-
}
|
|
137
|
-
h2.appendChild(n3);
|
|
138
|
-
}
|
|
139
|
-
_(p2, f2), h2.addEventListener("keydown", (t3) => {
|
|
140
|
-
if ("Escape" === t3.key) return t3.preventDefault(), void o2();
|
|
141
|
-
if ("Enter" === t3.key || " " === t3.key) {
|
|
142
|
-
t3.preventDefault();
|
|
143
|
-
const n3 = t3.target.dataset.index;
|
|
144
|
-
if (void 0 !== n3) {
|
|
145
|
-
const t4 = M[Number(n3)];
|
|
146
|
-
t4 && (N(e2, t4, r2), o2());
|
|
147
|
-
}
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
if (H.has(t3.key)) {
|
|
151
|
-
t3.preventDefault();
|
|
152
|
-
const e3 = Math.floor(f2 / 5) + 1, n3 = f2 % 5 + 1, [o3, r3] = u(e3, n3, a2, 5, t3.key);
|
|
153
|
-
let l3 = 5 * (o3 - 1) + (r3 - 1);
|
|
154
|
-
return l3 >= i2 && (l3 = i2 - 1), f2 = l3, _(p2, f2), void p2[f2]?.focus();
|
|
155
|
-
}
|
|
156
|
-
if ("Home" === t3.key || "End" === t3.key) {
|
|
157
|
-
t3.preventDefault();
|
|
158
|
-
const e3 = 5 * Math.floor(f2 / 5), n3 = Math.min(e3 + 5 - 1, i2 - 1);
|
|
159
|
-
f2 = "Home" === t3.key ? e3 : n3, _(p2, f2), p2[f2]?.focus();
|
|
160
|
-
}
|
|
161
|
-
}), t2.appendChild(h2);
|
|
162
|
-
}
|
|
163
|
-
function _(t2, e2) {
|
|
164
|
-
for (let n2 = 0; n2 < t2.length; n2++) {
|
|
165
|
-
const o2 = t2[n2];
|
|
166
|
-
o2 && o2.setAttribute("tabindex", n2 === e2 ? "0" : "-1");
|
|
167
|
-
}
|
|
123
|
+
}), t2.appendChild(a2), d(t2, { colors: H, columns: 5, ariaLabel: r2.borderColorPicker, ariaLabelPrefix: "", activeColor: l2 ?? null, swatchLabel: r2.borderSwatchLabel, titleAsName: true, onSelect: (t3) => {
|
|
124
|
+
P(e2, t3, r2), o2();
|
|
125
|
+
}, onClose: o2 });
|
|
168
126
|
}
|
|
169
|
-
function
|
|
127
|
+
function _(t2, e2, n2) {
|
|
170
128
|
const o2 = t2.getBlock(e2);
|
|
171
129
|
if (!o2) return null;
|
|
172
|
-
const r2 =
|
|
130
|
+
const r2 = u(o2), i2 = r2[0] ? u(r2[0]).length : 0;
|
|
173
131
|
if (0 === i2) return null;
|
|
174
132
|
const a2 = (function(t3) {
|
|
175
133
|
const e3 = [];
|
|
176
|
-
for (let n3 = 0; n3 < t3; n3++) e3.push(
|
|
177
|
-
return
|
|
178
|
-
})(i2), s2 = t2.transaction("command").insertNode([e2], n2, a2), c2 =
|
|
134
|
+
for (let n3 = 0; n3 < t3; n3++) e3.push(v());
|
|
135
|
+
return h(m("table_row"), e3, b());
|
|
136
|
+
})(i2), s2 = t2.transaction("command").insertNode([e2], n2, a2), c2 = u(a2)[0], d2 = c2 ? u(c2)[0] : void 0;
|
|
179
137
|
return d2 ? s2.setSelection(l(d2.id, 0)) : c2 && s2.setSelection(l(c2.id, 0)), s2.build();
|
|
180
138
|
}
|
|
181
|
-
function
|
|
139
|
+
function j(t2, e2, n2) {
|
|
182
140
|
const o2 = t2.getBlock(e2);
|
|
183
141
|
if (!o2) return null;
|
|
184
|
-
const r2 =
|
|
142
|
+
const r2 = u(o2), l2 = t2.transaction("command");
|
|
185
143
|
for (const t3 of r2) {
|
|
186
|
-
const o3 =
|
|
144
|
+
const o3 = v();
|
|
187
145
|
l2.insertNode([e2, t3.id], n2, o3);
|
|
188
146
|
}
|
|
189
147
|
return l2.setSelection(t2.selection), l2.build();
|
|
190
148
|
}
|
|
191
|
-
function
|
|
149
|
+
function V(t2, e2, n2, o2 = 0) {
|
|
192
150
|
const r2 = t2.getBlock(e2);
|
|
193
151
|
if (!r2) return null;
|
|
194
|
-
if (
|
|
195
|
-
const i2 = t2.transaction("command").removeNode([e2], n2), a2 =
|
|
152
|
+
if (u(r2).length <= 1) return q(t2, e2);
|
|
153
|
+
const i2 = t2.transaction("command").removeNode([e2], n2), a2 = C(t2, e2, n2 > 0 ? n2 - 1 : 1, o2);
|
|
196
154
|
if (a2) {
|
|
197
|
-
const e3 =
|
|
155
|
+
const e3 = I(t2, a2);
|
|
198
156
|
i2.setSelection(l(e3, 0));
|
|
199
157
|
}
|
|
200
158
|
return i2.build();
|
|
201
159
|
}
|
|
202
|
-
function
|
|
160
|
+
function Z(t2, e2, n2, o2 = 0) {
|
|
203
161
|
const r2 = t2.getBlock(e2);
|
|
204
162
|
if (!r2) return null;
|
|
205
|
-
const i2 =
|
|
206
|
-
if ((i2[0] ?
|
|
163
|
+
const i2 = u(r2);
|
|
164
|
+
if ((i2[0] ? u(i2[0]).length : 0) <= 1) return q(t2, e2);
|
|
207
165
|
const a2 = t2.transaction("command");
|
|
208
166
|
for (let t3 = i2.length - 1; t3 >= 0; t3--) {
|
|
209
167
|
const o3 = i2[t3];
|
|
210
168
|
o3 && a2.removeNode([e2, o3.id], n2);
|
|
211
169
|
}
|
|
212
|
-
const s2 =
|
|
170
|
+
const s2 = C(t2, e2, o2, n2 > 0 ? n2 - 1 : 1);
|
|
213
171
|
if (s2) {
|
|
214
|
-
const e3 =
|
|
172
|
+
const e3 = I(t2, s2);
|
|
215
173
|
a2.setSelection(l(e3, 0));
|
|
216
174
|
}
|
|
217
175
|
return a2.build();
|
|
218
176
|
}
|
|
219
|
-
function
|
|
177
|
+
function q(t2, e2) {
|
|
220
178
|
const n2 = t2.doc.children.findIndex((t3) => t3.id === e2);
|
|
221
179
|
if (-1 === n2) return null;
|
|
222
180
|
const o2 = t2.transaction("command").removeNode([], n2), r2 = t2.doc.children[n2 + 1];
|
|
@@ -224,7 +182,7 @@ function O(t2, e2) {
|
|
|
224
182
|
const i2 = t2.doc.children[n2 - 1];
|
|
225
183
|
return i2 && o2.setSelection(l(i2.id, 0)), o2.build();
|
|
226
184
|
}
|
|
227
|
-
function
|
|
185
|
+
function O(t2, e2, n2) {
|
|
228
186
|
const i2 = t2.getState(), a2 = i2.selection;
|
|
229
187
|
if (o(a2) || r(a2)) return false;
|
|
230
188
|
const s2 = a2.anchor.blockId;
|
|
@@ -244,57 +202,57 @@ function K(t2, e2, n2) {
|
|
|
244
202
|
}
|
|
245
203
|
-1 === c2 && (c2 = i2.doc.children.length - 1);
|
|
246
204
|
const d2 = (function(t3, e3) {
|
|
247
|
-
const n3 =
|
|
205
|
+
const n3 = b(), o2 = [];
|
|
248
206
|
for (let n4 = 0; n4 < t3; n4++) {
|
|
249
207
|
const t4 = [];
|
|
250
|
-
for (let n5 = 0; n5 < e3; n5++) t4.push(
|
|
251
|
-
o2.push(
|
|
208
|
+
for (let n5 = 0; n5 < e3; n5++) t4.push(v());
|
|
209
|
+
o2.push(h(m("table_row"), t4, b()));
|
|
252
210
|
}
|
|
253
|
-
return
|
|
254
|
-
})(e2, n2),
|
|
255
|
-
return C2 ?
|
|
211
|
+
return h(m("table"), o2, n3);
|
|
212
|
+
})(e2, n2), p2 = h(m("paragraph")), f2 = c2 + 1, g2 = i2.transaction("command").insertNode([], f2, d2).insertNode([], f2 + 1, p2), w2 = u(d2)[0], x2 = w2 ? u(w2)[0] : void 0, C2 = x2 ? u(x2)[0] : void 0;
|
|
213
|
+
return C2 ? g2.setSelection(l(C2.id, 0)) : x2 && g2.setSelection(l(x2.id, 0)), t2.dispatch(g2.build()), true;
|
|
256
214
|
}
|
|
257
|
-
function
|
|
215
|
+
function K(t2, e2) {
|
|
258
216
|
const n2 = t2.getState();
|
|
259
217
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
260
|
-
const l2 =
|
|
218
|
+
const l2 = x(n2, n2.selection.anchor.blockId);
|
|
261
219
|
if (!l2) return false;
|
|
262
|
-
const i2 =
|
|
220
|
+
const i2 = _(n2, l2.tableId, l2.rowIndex + 1);
|
|
263
221
|
return !!i2 && (t2.dispatch(i2), t2.announce(e2?.announceRowInsertedBelow ?? "Row inserted below"), true);
|
|
264
222
|
}
|
|
265
223
|
function Y(t2, e2, n2) {
|
|
266
224
|
const l2 = t2.getState();
|
|
267
225
|
if (o(l2.selection) || r(l2.selection)) return false;
|
|
268
|
-
const i2 =
|
|
226
|
+
const i2 = x(l2, l2.selection.anchor.blockId);
|
|
269
227
|
if (!i2) return false;
|
|
270
|
-
const a2 = "left" === e2 ? i2.colIndex : i2.colIndex + 1, s2 =
|
|
228
|
+
const a2 = "left" === e2 ? i2.colIndex : i2.colIndex + 1, s2 = j(l2, i2.tableId, a2);
|
|
271
229
|
return !!s2 && (t2.dispatch(s2), t2.announce(n2?.announceColumnInserted(e2) ?? `Column inserted ${e2}`), true);
|
|
272
230
|
}
|
|
273
|
-
function
|
|
274
|
-
t2.registerCommand("insertTable", () =>
|
|
231
|
+
function U(t2, e2) {
|
|
232
|
+
t2.registerCommand("insertTable", () => O(t2, 3, 3)), t2.registerCommand("addRowAbove", () => (function(t3, e3) {
|
|
275
233
|
const n2 = t3.getState();
|
|
276
234
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
277
|
-
const l2 =
|
|
235
|
+
const l2 = x(n2, n2.selection.anchor.blockId);
|
|
278
236
|
if (!l2) return false;
|
|
279
|
-
const i2 =
|
|
237
|
+
const i2 = _(n2, l2.tableId, l2.rowIndex);
|
|
280
238
|
return !!i2 && (t3.dispatch(i2), t3.announce(e3?.announceRowInsertedAbove ?? "Row inserted above"), true);
|
|
281
|
-
})(t2, e2)), t2.registerCommand("addRowBelow", () =>
|
|
239
|
+
})(t2, e2)), t2.registerCommand("addRowBelow", () => K(t2, e2)), t2.registerCommand("addColumnLeft", () => (function(t3, e3) {
|
|
282
240
|
return Y(t3, "left", e3);
|
|
283
241
|
})(t2, e2)), t2.registerCommand("addColumnRight", () => (function(t3, e3) {
|
|
284
242
|
return Y(t3, "right", e3);
|
|
285
243
|
})(t2, e2)), t2.registerCommand("deleteRow", () => (function(t3, e3) {
|
|
286
244
|
const n2 = t3.getState();
|
|
287
245
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
288
|
-
const l2 =
|
|
246
|
+
const l2 = x(n2, n2.selection.anchor.blockId);
|
|
289
247
|
if (!l2) return false;
|
|
290
|
-
const i2 =
|
|
248
|
+
const i2 = V(n2, l2.tableId, l2.rowIndex, l2.colIndex);
|
|
291
249
|
return !!i2 && (t3.dispatch(i2), t3.announce(e3?.announceRowDeleted ?? "Row deleted"), true);
|
|
292
250
|
})(t2, e2)), t2.registerCommand("deleteColumn", () => (function(t3, e3) {
|
|
293
251
|
const n2 = t3.getState();
|
|
294
252
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
295
|
-
const l2 =
|
|
253
|
+
const l2 = x(n2, n2.selection.anchor.blockId);
|
|
296
254
|
if (!l2) return false;
|
|
297
|
-
const i2 =
|
|
255
|
+
const i2 = Z(n2, l2.tableId, l2.colIndex, l2.rowIndex);
|
|
298
256
|
return !!i2 && (t3.dispatch(i2), t3.announce(e3?.announceColumnDeleted ?? "Column deleted"), true);
|
|
299
257
|
})(t2, e2)), t2.registerCommand("selectTable", () => (function(t3) {
|
|
300
258
|
const e3 = t3.getState(), n2 = e3.selection;
|
|
@@ -303,7 +261,7 @@ function W(t2, e2) {
|
|
|
303
261
|
return "table" === t4?.type;
|
|
304
262
|
}
|
|
305
263
|
if (r(n2)) return false;
|
|
306
|
-
const l2 =
|
|
264
|
+
const l2 = x(e3, n2.anchor.blockId);
|
|
307
265
|
if (!l2) return false;
|
|
308
266
|
const a2 = e3.getNodePath(l2.tableId);
|
|
309
267
|
if (!a2) return false;
|
|
@@ -316,114 +274,115 @@ function W(t2, e2) {
|
|
|
316
274
|
return "table" !== e5?.type ? null : { tableId: e5.id };
|
|
317
275
|
}
|
|
318
276
|
if (r(t4.selection)) return null;
|
|
319
|
-
const e4 =
|
|
277
|
+
const e4 = x(t4, t4.selection.anchor.blockId);
|
|
320
278
|
return e4 ? { tableId: e4.tableId } : null;
|
|
321
279
|
})(n2);
|
|
322
280
|
if (!l2) return false;
|
|
323
|
-
const i2 =
|
|
281
|
+
const i2 = q(n2, l2.tableId);
|
|
324
282
|
return !!i2 && (t3.dispatch(i2), t3.announce(e3?.announceTableDeleted ?? "Table deleted"), true);
|
|
325
283
|
})(t2, e2));
|
|
326
284
|
}
|
|
327
|
-
function
|
|
328
|
-
let
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
const
|
|
332
|
-
let
|
|
333
|
-
const
|
|
285
|
+
function W(t2, e2, n2, o2, r2, l2 = k, i2) {
|
|
286
|
+
let a2 = true, s2 = null, c2 = null;
|
|
287
|
+
const d2 = document.createElement("div");
|
|
288
|
+
d2.className = "notectl-table-context-menu", d2.setAttribute("role", "menu"), d2.setAttribute("aria-label", l2.tableActions), d2.setAttribute("contenteditable", "false");
|
|
289
|
+
const u2 = [];
|
|
290
|
+
let b2 = 0;
|
|
291
|
+
const h2 = (function(t3) {
|
|
334
292
|
return [{ type: "item", label: t3.insertRowAbove, command: "addRowAbove" }, { type: "item", label: t3.insertRowBelow, command: "addRowBelow" }, { type: "separator" }, { type: "item", label: t3.insertColumnLeft, command: "addColumnLeft" }, { type: "item", label: t3.insertColumnRight, command: "addColumnRight" }, { type: "separator" }, { type: "item", label: t3.deleteRow, command: "deleteRow" }, { type: "item", label: t3.deleteColumn, command: "deleteColumn" }, { type: "separator" }, { type: "submenu", label: t3.borderColorLabel, id: "borderColor" }, { type: "separator" }, { type: "item", label: t3.deleteTable, command: "deleteTable" }];
|
|
335
293
|
})(l2);
|
|
336
|
-
for (const t3 of
|
|
294
|
+
for (const t3 of h2) {
|
|
337
295
|
if ("separator" === t3.type) {
|
|
338
296
|
const t4 = document.createElement("div");
|
|
339
|
-
t4.setAttribute("role", "separator"),
|
|
297
|
+
t4.setAttribute("role", "separator"), d2.appendChild(t4);
|
|
340
298
|
continue;
|
|
341
299
|
}
|
|
342
300
|
const n3 = document.createElement("button");
|
|
343
301
|
n3.type = "button", n3.setAttribute("role", "menuitem"), n3.textContent = t3.label, "submenu" === t3.type && (n3.dataset.submenu = t3.id, n3.setAttribute("aria-haspopup", "true"), n3.setAttribute("aria-expanded", "false")), "item" === t3.type && (n3.dataset.command = t3.command), n3.addEventListener("mousedown", (t4) => {
|
|
344
302
|
t4.preventDefault(), t4.stopPropagation();
|
|
345
303
|
}), n3.addEventListener("click", (o3) => {
|
|
346
|
-
o3.stopPropagation(), "item" === t3.type ? (e2.executeCommand(t3.command),
|
|
347
|
-
}),
|
|
348
|
-
}
|
|
349
|
-
const
|
|
350
|
-
function
|
|
351
|
-
|
|
352
|
-
t3
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
304
|
+
o3.stopPropagation(), "item" === t3.type ? (e2.executeCommand(t3.command), C2()) : "submenu" === t3.type && f2(n3);
|
|
305
|
+
}), u2.push(n3), d2.appendChild(n3);
|
|
306
|
+
}
|
|
307
|
+
const p2 = document.createElement("div");
|
|
308
|
+
function f2(o3) {
|
|
309
|
+
if (m2(), o3.setAttribute("aria-expanded", "true"), i2) {
|
|
310
|
+
const t3 = { close: () => C2(), getElement: () => d2 };
|
|
311
|
+
c2 = i2.open({ anchor: o3, position: "right", referenceNode: d2, parent: t3, onClose: () => {
|
|
312
|
+
c2 = null, s2 = null, v2();
|
|
313
|
+
}, content: (t4, r3) => {
|
|
314
|
+
t4.className = "notectl-table-context-menu", t4.setAttribute("contenteditable", "false"), s2 = t4, t4.addEventListener("keydown", (t5) => {
|
|
315
|
+
t5.stopPropagation(), "ArrowLeft" === t5.key && (t5.preventDefault(), r3(), o3.focus());
|
|
316
|
+
}), F(t4, e2, n2, () => C2(), l2);
|
|
317
|
+
} });
|
|
318
|
+
} else {
|
|
319
|
+
s2 = document.createElement("div"), s2.className = "notectl-table-context-menu", s2.style.position = "fixed", s2.setAttribute("contenteditable", "false"), s2.addEventListener("keydown", (t3) => {
|
|
320
|
+
t3.stopPropagation(), "ArrowLeft" === t3.key && (t3.preventDefault(), m2(), o3.focus());
|
|
321
|
+
}), F(s2, e2, n2, () => C2(), l2), t2.appendChild(s2);
|
|
322
|
+
const r3 = o3.getBoundingClientRect(), i3 = d2.getBoundingClientRect();
|
|
323
|
+
let a3 = i3.right + 2, c3 = r3.top;
|
|
324
|
+
const u3 = window.innerWidth, b3 = window.innerHeight;
|
|
325
|
+
a3 + 200 > u3 && (a3 = i3.left - 200 - 2), c3 + 200 > b3 && (c3 = b3 - 200), s2.style.left = `${a3}px`, s2.style.top = `${c3}px`, requestAnimationFrame(() => {
|
|
326
|
+
const t3 = s2?.querySelector("button");
|
|
327
|
+
t3?.focus();
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
function m2() {
|
|
332
|
+
c2 ? (c2.close(), c2 = null, s2 = null) : s2 && (s2.remove(), s2 = null), v2();
|
|
363
333
|
}
|
|
364
|
-
function
|
|
365
|
-
|
|
366
|
-
for (const t3 of c2) t3.dataset.submenu && t3.setAttribute("aria-expanded", "false");
|
|
334
|
+
function v2() {
|
|
335
|
+
for (const t3 of u2) t3.dataset.submenu && t3.setAttribute("aria-expanded", "false");
|
|
367
336
|
}
|
|
368
|
-
|
|
337
|
+
p2.className = "notectl-table-context-menu__hint", p2.setAttribute("aria-hidden", "true"), p2.textContent = l2.menuKeyboardHint, d2.appendChild(p2), w(u2, b2), d2.addEventListener("keydown", (t3) => {
|
|
369
338
|
switch (t3.stopPropagation(), t3.key) {
|
|
370
339
|
case "Escape":
|
|
371
|
-
return t3.preventDefault(), void
|
|
340
|
+
return t3.preventDefault(), void C2();
|
|
372
341
|
case "ArrowDown":
|
|
373
|
-
return t3.preventDefault(),
|
|
342
|
+
return t3.preventDefault(), b2 = (b2 + 1) % u2.length, w(u2, b2), void u2[b2]?.focus();
|
|
374
343
|
case "ArrowUp":
|
|
375
|
-
return t3.preventDefault(),
|
|
344
|
+
return t3.preventDefault(), b2 = (b2 - 1 + u2.length) % u2.length, w(u2, b2), void u2[b2]?.focus();
|
|
376
345
|
case "ArrowRight": {
|
|
377
346
|
t3.preventDefault();
|
|
378
|
-
const e3 =
|
|
379
|
-
return void (e3?.dataset.submenu &&
|
|
347
|
+
const e3 = u2[b2];
|
|
348
|
+
return void (e3?.dataset.submenu && f2(e3));
|
|
380
349
|
}
|
|
381
350
|
case "ArrowLeft":
|
|
382
|
-
return t3.preventDefault(),
|
|
351
|
+
return t3.preventDefault(), m2(), void u2[b2]?.focus();
|
|
383
352
|
case "Enter":
|
|
384
353
|
case " ": {
|
|
385
354
|
t3.preventDefault();
|
|
386
|
-
const n3 =
|
|
355
|
+
const n3 = u2[b2];
|
|
387
356
|
if (!n3) return;
|
|
388
|
-
return void (n3.dataset.submenu ?
|
|
357
|
+
return void (n3.dataset.submenu ? f2(n3) : n3.dataset.command && (e2.executeCommand(n3.dataset.command), C2()));
|
|
389
358
|
}
|
|
390
359
|
case "Home":
|
|
391
|
-
return t3.preventDefault(),
|
|
360
|
+
return t3.preventDefault(), b2 = 0, w(u2, b2), void u2[b2]?.focus();
|
|
392
361
|
case "End":
|
|
393
|
-
return t3.preventDefault(),
|
|
362
|
+
return t3.preventDefault(), b2 = u2.length - 1, w(u2, b2), void u2[b2]?.focus();
|
|
394
363
|
}
|
|
395
|
-
}), (
|
|
396
|
-
|
|
397
|
-
let r3 = e3.left, l3 = e3.top;
|
|
398
|
-
r3 + 200 > n3 && (r3 = n3 - 200), l3 + 340 > o3 && (l3 = o3 - 340), r3 < 0 && (r3 = 0), l3 < 0 && (l3 = 0), t3.style.left = `${r3}px`, t3.style.top = `${l3}px`;
|
|
399
|
-
})(s2, o2), t2.appendChild(s2), c2[0]?.focus(), requestAnimationFrame(() => {
|
|
400
|
-
i2 && c2[0] && c2[0].focus();
|
|
364
|
+
}), g(d2, o2, { position: "below-start" }), t2.appendChild(d2), u2[0]?.focus(), requestAnimationFrame(() => {
|
|
365
|
+
a2 && u2[0] && u2[0].focus();
|
|
401
366
|
});
|
|
402
|
-
const
|
|
367
|
+
const x2 = (t3) => {
|
|
403
368
|
const e3 = t3.composedPath();
|
|
404
|
-
e3.includes(
|
|
369
|
+
e3.includes(d2) || s2 && e3.includes(s2) || C2();
|
|
405
370
|
};
|
|
406
|
-
function
|
|
407
|
-
|
|
371
|
+
function C2() {
|
|
372
|
+
a2 && (a2 = false, m2(), d2.remove(), document.removeEventListener("mousedown", x2, true), r2?.());
|
|
408
373
|
}
|
|
409
374
|
return setTimeout(() => {
|
|
410
|
-
document.addEventListener("mousedown",
|
|
411
|
-
}, 0), { isOpen: () =>
|
|
412
|
-
}
|
|
413
|
-
function G(t2, e2) {
|
|
414
|
-
for (let n2 = 0; n2 < t2.length; n2++) {
|
|
415
|
-
const o2 = t2[n2];
|
|
416
|
-
o2 && o2.setAttribute("tabindex", n2 === e2 ? "0" : "-1");
|
|
417
|
-
}
|
|
375
|
+
document.addEventListener("mousedown", x2, true);
|
|
376
|
+
}, 0), { isOpen: () => a2, close: C2, destroy: C2 };
|
|
418
377
|
}
|
|
419
|
-
function
|
|
378
|
+
function X(t2, e2) {
|
|
420
379
|
const n2 = t2.getState();
|
|
421
380
|
if (o(n2.selection) || r(n2.selection)) return false;
|
|
422
|
-
const l2 = n2.selection, i2 =
|
|
381
|
+
const l2 = n2.selection, i2 = x(n2, l2.anchor.blockId);
|
|
423
382
|
return !!i2 && e2(n2, l2, i2);
|
|
424
383
|
}
|
|
425
|
-
function
|
|
426
|
-
return
|
|
384
|
+
function G(t2) {
|
|
385
|
+
return X(t2, (e2, n2, o2) => {
|
|
427
386
|
const r2 = o2.tableIndex + 1;
|
|
428
387
|
if (r2 >= e2.doc.children.length) return false;
|
|
429
388
|
const i2 = e2.doc.children[r2];
|
|
@@ -432,69 +391,69 @@ function Q(t2) {
|
|
|
432
391
|
return t2.dispatch(a2), true;
|
|
433
392
|
});
|
|
434
393
|
}
|
|
435
|
-
let
|
|
436
|
-
function
|
|
437
|
-
const r2 = t2.getState(), i2 =
|
|
394
|
+
let J = null;
|
|
395
|
+
function Q(t2, e2, n2, o2) {
|
|
396
|
+
const r2 = t2.getState(), i2 = C(r2, e2, n2, o2);
|
|
438
397
|
if (!i2) return false;
|
|
439
|
-
const a2 =
|
|
398
|
+
const a2 = I(r2, i2), s2 = r2.transaction("command").setSelection(l(a2, 0)).build();
|
|
440
399
|
return t2.dispatch(s2), true;
|
|
441
400
|
}
|
|
442
|
-
function
|
|
443
|
-
const r2 = t2.getState(), i2 =
|
|
401
|
+
function tt(t2, e2, n2, o2) {
|
|
402
|
+
const r2 = t2.getState(), i2 = C(r2, e2, n2, o2);
|
|
444
403
|
if (!i2) return false;
|
|
445
404
|
const a2 = y(r2, i2), s2 = r2.getBlock(a2);
|
|
446
405
|
if (!s2) return false;
|
|
447
|
-
const c2 =
|
|
406
|
+
const c2 = f(s2), d2 = r2.transaction("command").setSelection(l(a2, c2)).build();
|
|
448
407
|
return t2.dispatch(d2), true;
|
|
449
408
|
}
|
|
450
|
-
function
|
|
409
|
+
function et(t2, e2) {
|
|
451
410
|
const n2 = t2.getState(), o2 = n2.getNodePath(e2);
|
|
452
411
|
if (!o2) return false;
|
|
453
412
|
const r2 = n2.transaction("input").setSelection(i(e2, o2)).build();
|
|
454
413
|
return t2.dispatch(r2), true;
|
|
455
414
|
}
|
|
456
|
-
const
|
|
457
|
-
function
|
|
415
|
+
const nt = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M6 1v10M1 6h10" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>';
|
|
416
|
+
function ot(t2, e2, n2) {
|
|
458
417
|
const o2 = document.createElement("button");
|
|
459
418
|
return o2.className = t2, o2.innerHTML = e2, o2.title = n2, o2.type = "button", o2.setAttribute("aria-label", n2), o2.setAttribute("contenteditable", "false"), o2.addEventListener("mousedown", (t3) => {
|
|
460
419
|
t3.preventDefault(), t3.stopPropagation();
|
|
461
420
|
}), o2;
|
|
462
421
|
}
|
|
463
|
-
function
|
|
422
|
+
function rt(t2, e2) {
|
|
464
423
|
const n2 = document.createElement("div");
|
|
465
424
|
n2.className = `ntbl-insert-line ntbl-insert-line--${t2}`, n2.setAttribute("contenteditable", "false"), n2.setAttribute("data-notectl-no-print", "");
|
|
466
|
-
const o2 =
|
|
425
|
+
const o2 = ot("ntbl-insert-btn", nt, e2 ?? ("horizontal" === t2 ? "Insert row" : "Insert column"));
|
|
467
426
|
return n2.appendChild(o2), n2;
|
|
468
427
|
}
|
|
469
|
-
function
|
|
428
|
+
function lt(t2, e2) {
|
|
470
429
|
const n2 = document.createElement("button");
|
|
471
430
|
n2.className = `ntbl-add-zone ${t2}`, n2.type = "button", n2.setAttribute("contenteditable", "false"), n2.setAttribute("aria-label", e2), n2.setAttribute("data-notectl-no-print", ""), n2.title = e2;
|
|
472
431
|
const o2 = document.createElement("span");
|
|
473
|
-
return o2.className = "ntbl-add-icon", o2.innerHTML =
|
|
432
|
+
return o2.className = "ntbl-add-icon", o2.innerHTML = nt, n2.appendChild(o2), n2.addEventListener("mousedown", (t3) => {
|
|
474
433
|
t3.preventDefault(), t3.stopPropagation();
|
|
475
434
|
}), n2;
|
|
476
435
|
}
|
|
477
|
-
function
|
|
436
|
+
function it(t2) {
|
|
478
437
|
const e2 = document.createElement("div");
|
|
479
438
|
return e2.className = t2, e2.setAttribute("contenteditable", "false"), e2.setAttribute("data-notectl-no-print", ""), e2;
|
|
480
439
|
}
|
|
481
|
-
function
|
|
440
|
+
function at(t2, e2) {
|
|
482
441
|
"none" === e2 ? (t2.style.backgroundColor = "transparent", t2.style.border = "1px dashed rgba(128,128,128,0.4)") : e2 ? (t2.style.backgroundColor = e2, t2.style.border = "1px solid rgba(0,0,0,0.15)") : (t2.style.backgroundColor = "var(--notectl-border)", t2.style.border = "1px solid rgba(0,0,0,0.15)");
|
|
483
442
|
}
|
|
484
|
-
function
|
|
443
|
+
function st(t2, e2, n2, o2) {
|
|
485
444
|
const r2 = document.createElement("div");
|
|
486
445
|
r2.className = `ntbl-handle ${t2}`, r2.dataset.index = String(e2);
|
|
487
|
-
const l2 =
|
|
446
|
+
const l2 = ot("ntbl-handle-delete", '<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M2 2l6 6M8 2l-6 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>', n2);
|
|
488
447
|
return l2.addEventListener("click", (t3) => {
|
|
489
448
|
t3.preventDefault(), t3.stopPropagation(), o2(e2);
|
|
490
449
|
}), r2.appendChild(l2), r2;
|
|
491
450
|
}
|
|
492
|
-
function
|
|
451
|
+
function ct(t2, e2) {
|
|
493
452
|
let n2 = 0, o2 = 0, r2 = t2;
|
|
494
453
|
for (; r2 && r2 !== e2; ) n2 += r2.offsetTop, o2 += r2.offsetLeft, r2 = r2.offsetParent;
|
|
495
454
|
return { top: n2, left: o2 };
|
|
496
455
|
}
|
|
497
|
-
class
|
|
456
|
+
class dt {
|
|
498
457
|
tableId;
|
|
499
458
|
numRows;
|
|
500
459
|
numCols;
|
|
@@ -552,16 +511,16 @@ class bt {
|
|
|
552
511
|
onMouseLeave = () => {
|
|
553
512
|
this.hideInsertLines();
|
|
554
513
|
};
|
|
555
|
-
constructor(t2, e2, n2, o2, r2, l2, i2 =
|
|
556
|
-
if (this.container = t2, this.tableEl = e2, this.getState = o2, this.dispatchFn = r2, this.pluginContext = l2 ?? null, this.locale = i2, this.tableId = n2.id, this.numRows =
|
|
514
|
+
constructor(t2, e2, n2, o2, r2, l2, i2 = k) {
|
|
515
|
+
if (this.container = t2, this.tableEl = e2, this.getState = o2, this.dispatchFn = r2, this.pluginContext = l2 ?? null, this.locale = i2, this.tableId = n2.id, this.numRows = u(n2).length, this.numCols = this.countCols(n2), this.colBar = it("ntbl-col-bar"), this.rowBar = it("ntbl-row-bar"), this.insertLineH = rt("horizontal", i2.insertRow), this.insertLineV = rt("vertical", i2.insertColumn), this.addRowZone = lt("ntbl-add-row", i2.addRow), this.addColZone = lt("ntbl-add-col", i2.addColumn), this.deleteTableBtn = ot("ntbl-delete-table-btn", '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none"><path d="M9 3h6m-9 4h12M10 11v6m4-6v6m-9 3h14l-1-13H6L5 20z" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>', i2.deleteTable), this.deleteTableBtn.setAttribute("data-notectl-no-print", ""), l2) {
|
|
557
516
|
const t3 = z(o2(), this.tableId);
|
|
558
517
|
this.borderColorBtn = (function(t4) {
|
|
559
|
-
const e3 =
|
|
518
|
+
const e3 = ot("ntbl-border-color-btn", '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none"><path d="M3 3h18v18H3V3zm0 6h18M3 15h18M9 3v18M15 3v18" stroke="currentColor" stroke-width="1.5"/></svg>', "Border color");
|
|
560
519
|
e3.setAttribute("data-notectl-no-print", "");
|
|
561
520
|
const n3 = document.createElement("span");
|
|
562
|
-
return n3.className = "ntbl-border-color-swatch",
|
|
521
|
+
return n3.className = "ntbl-border-color-swatch", at(n3, t4), e3.appendChild(n3), e3;
|
|
563
522
|
})(t3), this.actionsBtn = (function(t4) {
|
|
564
|
-
const e3 =
|
|
523
|
+
const e3 = ot("ntbl-actions-btn", '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="5" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="12" cy="19" r="2"/></svg>', t4 ?? "Table actions (Right-click or Shift+F10)");
|
|
565
524
|
return e3.setAttribute("data-notectl-no-print", ""), e3;
|
|
566
525
|
})(i2.tableActionsHint);
|
|
567
526
|
} else this.borderColorBtn = null, this.actionsBtn = null;
|
|
@@ -574,12 +533,12 @@ class bt {
|
|
|
574
533
|
}
|
|
575
534
|
update(t2) {
|
|
576
535
|
this.tableId = t2.id;
|
|
577
|
-
const e2 =
|
|
536
|
+
const e2 = u(t2).length, n2 = this.countCols(t2);
|
|
578
537
|
if (e2 === this.numRows && n2 === this.numCols || (this.numRows = e2, this.numCols = n2, this.rebuildColHandles(), this.rebuildRowHandles()), this.borderColorBtn) {
|
|
579
538
|
const e3 = this.borderColorBtn.querySelector(".ntbl-border-color-swatch");
|
|
580
539
|
if (e3) {
|
|
581
540
|
const n3 = t2.attrs?.borderColor;
|
|
582
|
-
|
|
541
|
+
at(e3, n3);
|
|
583
542
|
}
|
|
584
543
|
}
|
|
585
544
|
requestAnimationFrame(() => this.positionControls());
|
|
@@ -590,15 +549,15 @@ class bt {
|
|
|
590
549
|
bindEventListeners() {
|
|
591
550
|
const t2 = this.insertLineH.querySelector(".ntbl-insert-btn"), e2 = this.insertLineV.querySelector(".ntbl-insert-btn");
|
|
592
551
|
if (t2.addEventListener("click", () => {
|
|
593
|
-
this.activeRowIndex >= 0 && this.dispatchTransaction(
|
|
552
|
+
this.activeRowIndex >= 0 && this.dispatchTransaction(_(this.getState(), this.tableId, this.activeRowIndex));
|
|
594
553
|
}), e2.addEventListener("click", () => {
|
|
595
|
-
this.activeColIndex >= 0 && this.dispatchTransaction(
|
|
554
|
+
this.activeColIndex >= 0 && this.dispatchTransaction(j(this.getState(), this.tableId, this.activeColIndex));
|
|
596
555
|
}), this.addRowZone.addEventListener("click", () => {
|
|
597
|
-
this.dispatchTransaction(
|
|
556
|
+
this.dispatchTransaction(_(this.getState(), this.tableId, this.numRows));
|
|
598
557
|
}), this.addColZone.addEventListener("click", () => {
|
|
599
|
-
this.dispatchTransaction(
|
|
558
|
+
this.dispatchTransaction(j(this.getState(), this.tableId, this.numCols));
|
|
600
559
|
}), this.deleteTableBtn.addEventListener("click", () => {
|
|
601
|
-
this.dispatchTransaction(
|
|
560
|
+
this.dispatchTransaction(q(this.getState(), this.tableId));
|
|
602
561
|
}), this.borderColorBtn && this.pluginContext) {
|
|
603
562
|
const t3 = this.pluginContext;
|
|
604
563
|
this.borderColorBtn.addEventListener("click", () => {
|
|
@@ -617,7 +576,7 @@ class bt {
|
|
|
617
576
|
if (this.activeContextMenu?.isOpen()) return this.activeContextMenu.close(), void (this.activeContextMenu = null);
|
|
618
577
|
if (!this.actionsBtn) return;
|
|
619
578
|
const e2 = this.actionsBtn.getBoundingClientRect(), n2 = new DOMRect(e2.left, e2.bottom + 4, 0, 0);
|
|
620
|
-
this.activeContextMenu =
|
|
579
|
+
this.activeContextMenu = W(this.container, t2, this.tableId, n2, () => {
|
|
621
580
|
this.activeContextMenu = null;
|
|
622
581
|
}, this.locale);
|
|
623
582
|
}
|
|
@@ -633,8 +592,8 @@ class bt {
|
|
|
633
592
|
t2 && this.dispatchFn(t2);
|
|
634
593
|
}
|
|
635
594
|
countCols(t2) {
|
|
636
|
-
const e2 =
|
|
637
|
-
return e2[0] ?
|
|
595
|
+
const e2 = u(t2);
|
|
596
|
+
return e2[0] ? u(e2[0]).length : 0;
|
|
638
597
|
}
|
|
639
598
|
positionControls() {
|
|
640
599
|
!(function(t2, e2, n2) {
|
|
@@ -660,18 +619,18 @@ class bt {
|
|
|
660
619
|
}
|
|
661
620
|
t2.style.height = `${l2}px`;
|
|
662
621
|
})(this.rowBar, this.tableEl), (function(t2, e2, n2, o2) {
|
|
663
|
-
const r2 =
|
|
622
|
+
const r2 = ct(n2, o2), l2 = n2.offsetHeight, i2 = n2.offsetWidth;
|
|
664
623
|
t2.style.width = `${i2}px`, t2.style.left = `${r2.left}px`, e2.style.height = `${l2}px`, e2.style.top = `${r2.top}px`;
|
|
665
624
|
})(this.addRowZone, this.addColZone, this.tableEl, this.container);
|
|
666
625
|
}
|
|
667
626
|
showHorizontalLine(t2) {
|
|
668
627
|
this.activeRowIndex = t2.index;
|
|
669
|
-
const e2 =
|
|
628
|
+
const e2 = ct(this.tableEl, this.container);
|
|
670
629
|
this.insertLineH.style.top = e2.top + t2.position - 1 + "px", this.insertLineH.style.left = `${e2.left}px`, this.insertLineH.style.width = `${this.tableEl.offsetWidth}px`, this.insertLineH.classList.add("ntbl-insert-line--visible");
|
|
671
630
|
}
|
|
672
631
|
showVerticalLine(t2) {
|
|
673
632
|
this.activeColIndex = t2.index;
|
|
674
|
-
const e2 =
|
|
633
|
+
const e2 = ct(this.tableEl, this.container);
|
|
675
634
|
this.insertLineV.style.left = e2.left + t2.position - 1 + "px", this.insertLineV.style.top = `${e2.top}px`, this.insertLineV.style.height = `${this.tableEl.offsetHeight}px`, this.insertLineV.classList.add("ntbl-insert-line--visible");
|
|
676
635
|
}
|
|
677
636
|
hideInsertLines() {
|
|
@@ -686,8 +645,8 @@ class bt {
|
|
|
686
645
|
rebuildColHandles() {
|
|
687
646
|
this.colBar.innerHTML = "";
|
|
688
647
|
for (let t2 = 0; t2 < this.numCols; t2++) {
|
|
689
|
-
const e2 =
|
|
690
|
-
this.dispatchTransaction(
|
|
648
|
+
const e2 = st("ntbl-col-handle", t2, "Delete column", (t3) => {
|
|
649
|
+
this.dispatchTransaction(Z(this.getState(), this.tableId, t3));
|
|
691
650
|
});
|
|
692
651
|
this.colBar.appendChild(e2);
|
|
693
652
|
}
|
|
@@ -695,19 +654,19 @@ class bt {
|
|
|
695
654
|
rebuildRowHandles() {
|
|
696
655
|
this.rowBar.innerHTML = "";
|
|
697
656
|
for (let t2 = 0; t2 < this.numRows; t2++) {
|
|
698
|
-
const e2 =
|
|
699
|
-
this.dispatchTransaction(
|
|
657
|
+
const e2 = st("ntbl-row-handle", t2, "Delete row", (t3) => {
|
|
658
|
+
this.dispatchTransaction(V(this.getState(), this.tableId, t3));
|
|
700
659
|
});
|
|
701
660
|
this.rowBar.appendChild(e2);
|
|
702
661
|
}
|
|
703
662
|
}
|
|
704
663
|
}
|
|
705
|
-
function
|
|
664
|
+
function ut(t2, e2) {
|
|
706
665
|
"none" === e2 ? (t2.style.setProperty("--ntbl-border-color", "transparent"), t2.classList.add("notectl-table--borderless")) : e2 ? (t2.style.setProperty("--ntbl-border-color", e2), t2.classList.remove("notectl-table--borderless")) : (t2.style.removeProperty("--ntbl-border-color"), t2.classList.remove("notectl-table--borderless"));
|
|
707
666
|
}
|
|
708
|
-
const
|
|
709
|
-
const
|
|
710
|
-
class
|
|
667
|
+
const bt = new t("tableSelection");
|
|
668
|
+
const ht = { maxPickerRows: 8, maxPickerCols: 8 }, pt = "border-collapse: collapse; width: 100%; table-layout: fixed";
|
|
669
|
+
class ft {
|
|
711
670
|
id = "table";
|
|
712
671
|
name = "Table";
|
|
713
672
|
priority = 40;
|
|
@@ -717,74 +676,74 @@ class gt {
|
|
|
717
676
|
cleanupMouseSelection = null;
|
|
718
677
|
context = null;
|
|
719
678
|
constructor(t2) {
|
|
720
|
-
this.config = { ...
|
|
679
|
+
this.config = { ...ht, ...t2 };
|
|
721
680
|
}
|
|
722
681
|
init(t2) {
|
|
723
|
-
this.locale = e(D, t2, this.config.locale), t2.registerStyleSheet('\n/* Table */\n.notectl-table-wrapper {\n margin: 8px 0;\n overflow-x: auto;\n position: relative;\n}\n\n.notectl-table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n\n.notectl-table td {\n border: 1px solid var(--ntbl-border-color, var(--notectl-border));\n padding: 8px 12px;\n min-width: 60px;\n vertical-align: top;\n min-height: 1.6em;\n}\n\n.notectl-table--borderless td {\n border: 1px dashed rgba(128, 128, 128, 0.15);\n}\n\n@media print {\n .notectl-table--borderless td {\n border: none;\n }\n}\n\n.notectl-table td:focus-within {\n outline: 2px solid var(--notectl-primary);\n outline-offset: -2px;\n}\n\n.notectl-table-cell--selected {\n background: var(--notectl-primary-muted);\n}\n\n/* Table Context Menu */\n.notectl-table-context-menu {\n position: fixed;\n background: var(--notectl-surface-overlay);\n border: 1px solid var(--notectl-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--notectl-shadow);\n padding: 4px 0;\n min-width: 180px;\n z-index: 10000;\n}\n\n.notectl-table-context-menu button {\n display: block;\n width: 100%;\n padding: 8px 12px;\n text-align: left;\n border: none;\n background: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--notectl-fg);\n font-family: inherit;\n}\n\n.notectl-table-context-menu button:hover {\n background: var(--notectl-hover-bg);\n}\n\n.notectl-table-context-menu hr {\n border: none;\n border-top: 1px solid var(--notectl-border);\n margin: 4px 0;\n}\n\n/* === Table Controls === */\n\n/* Outer container for table + controls */\n.ntbl-container {\n position: relative;\n margin: 8px 0;\n padding: 24px 0 0 24px;\n}\n\n.ntbl-container .notectl-table-wrapper {\n margin: 0;\n}\n\n.ntbl-container.notectl-table--selected .notectl-table-wrapper {\n outline: 2px solid var(--notectl-primary-fg);\n outline-offset: 2px;\n border-radius: 6px;\n}\n\n/* --- Column Handle Bar --- */\n.ntbl-col-bar {\n position: absolute;\n top: 0;\n left: 24px;\n height: 20px;\n display: flex;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 3;\n pointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-col-bar,\n.ntbl-container:focus-within .ntbl-col-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-col-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* --- Row Handle Bar --- */\n.ntbl-row-bar {\n position: absolute;\n top: 24px;\n left: 0;\n width: 20px;\n display: flex;\n flex-direction: column;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 3;\n pointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-row-bar,\n.ntbl-container:focus-within .ntbl-row-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-row-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* --- Handle (shared base) --- */\n.ntbl-handle {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.15s ease;\n border-radius: 3px;\n}\n\n.ntbl-col-handle {\n height: 100%;\n background: var(--notectl-hover-bg);\n border-radius: 4px 4px 0 0;\n}\n\n.ntbl-col-handle:hover {\n background: var(--notectl-border);\n}\n\n.ntbl-row-handle {\n width: 100%;\n background: var(--notectl-hover-bg);\n border-radius: 4px 0 0 4px;\n}\n\n.ntbl-row-handle:hover {\n background: var(--notectl-border);\n}\n\n/* --- Handle Delete Button --- */\n.ntbl-handle-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n color: var(--notectl-fg-muted);\n cursor: pointer;\n border-radius: 3px;\n padding: 0;\n opacity: 0;\n transform: scale(0.7);\n transition: opacity 0.15s, transform 0.15s,\n background 0.15s, color 0.15s;\n}\n\n.ntbl-handle:hover .ntbl-handle-delete,\n.ntbl-handle:focus-within .ntbl-handle-delete {\n opacity: 1;\n transform: scale(1);\n}\n\n.ntbl-handle-delete:hover,\n.ntbl-handle-delete:focus-visible {\n background: var(--notectl-danger-muted);\n color: var(--notectl-danger);\n}\n\n.ntbl-handle-delete:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Insert Lines --- */\n.ntbl-insert-line {\n position: absolute;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n z-index: 6;\n}\n\n.ntbl-insert-line--visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-insert-line--horizontal {\n height: 2px;\n background: linear-gradient(\n 90deg,\n transparent,\n var(--notectl-primary) 8%,\n var(--notectl-primary) 92%,\n transparent\n );\n box-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--vertical {\n width: 2px;\n background: linear-gradient(\n 180deg,\n transparent,\n var(--notectl-primary) 8%,\n var(--notectl-primary) 92%,\n transparent\n );\n box-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n/* --- Insert Button on Line --- */\n.ntbl-insert-btn {\n position: absolute;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: var(--notectl-bg);\n border: 2px solid var(--notectl-primary);\n color: var(--notectl-primary);\n cursor: pointer;\n pointer-events: all;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n box-shadow: 0 2px 8px var(--notectl-focus-ring);\n transition: background 0.15s, color 0.15s,\n transform 0.15s, box-shadow 0.15s;\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn {\n left: 50%;\n top: -9px;\n transform: translateX(-50%);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn {\n top: 50%;\n left: -9px;\n transform: translateY(-50%);\n}\n\n.ntbl-insert-btn:hover,\n.ntbl-insert-btn:focus-visible {\n background: var(--notectl-primary);\n color: var(--notectl-bg);\n box-shadow: 0 2px 12px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn:hover {\n transform: translateX(-50%) scale(1.2);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn:hover {\n transform: translateY(-50%) scale(1.2);\n}\n\n/* --- Add Row / Add Column Zones --- */\n.ntbl-add-zone {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.2s ease,\n border-color 0.2s ease;\n}\n\n.ntbl-container:hover .ntbl-add-zone,\n.ntbl-container:focus-within .ntbl-add-zone {\n opacity: 1;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-add-zone {\n opacity: 1;\n}\n\n.ntbl-delete-table-btn {\n position: absolute;\n top: 0;\n left: 0;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-danger);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-danger);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n}\n\n.ntbl-container:hover .ntbl-delete-table-btn,\n.ntbl-container:focus-within .ntbl-delete-table-btn,\n.ntbl-container.notectl-table--selected .ntbl-delete-table-btn {\n opacity: 1;\n}\n\n.ntbl-delete-table-btn:hover,\n.ntbl-delete-table-btn:focus-visible {\n background: var(--notectl-danger-muted);\n border-color: var(--notectl-danger);\n}\n\n.ntbl-delete-table-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Context Menu Discovery Hint --- */\n.ntbl-context-hint {\n position: absolute;\n top: 4px;\n right: 0;\n font-size: 11px;\n color: var(--notectl-fg-muted);\n padding: 2px 8px;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n white-space: nowrap;\n z-index: 5;\n}\n\n.ntbl-container:hover .ntbl-context-hint,\n.ntbl-container:focus-within .ntbl-context-hint,\n.ntbl-container.notectl-table--selected .ntbl-context-hint {\n opacity: 1;\n}\n\n/* --- Table Actions Button --- */\n.ntbl-actions-btn {\n position: absolute;\n top: 0;\n left: 48px;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-border);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-fg-muted);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n cursor: pointer;\n padding: 0;\n}\n\n.ntbl-container:hover .ntbl-actions-btn,\n.ntbl-container:focus-within .ntbl-actions-btn,\n.ntbl-container.notectl-table--selected .ntbl-actions-btn {\n opacity: 1;\n}\n\n.ntbl-actions-btn:hover,\n.ntbl-actions-btn:focus-visible {\n background: var(--notectl-hover-bg);\n border-color: var(--notectl-primary);\n}\n\n.ntbl-actions-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Border Color Button --- */\n.ntbl-border-color-btn {\n position: absolute;\n top: 0;\n left: 24px;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-border);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-fg-muted);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n cursor: pointer;\n padding: 0;\n}\n\n.ntbl-container:hover .ntbl-border-color-btn,\n.ntbl-container:focus-within .ntbl-border-color-btn,\n.ntbl-container.notectl-table--selected .ntbl-border-color-btn {\n opacity: 1;\n}\n\n.ntbl-border-color-btn:hover,\n.ntbl-border-color-btn:focus-visible {\n background: var(--notectl-hover-bg);\n border-color: var(--notectl-primary);\n}\n\n.ntbl-border-color-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-border-color-swatch {\n width: 10px;\n height: 10px;\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n}\n\n/* --- Context Menu Keyboard Hint --- */\n.notectl-table-context-menu__hint {\n padding: 4px 12px 6px;\n font-size: 11px;\n color: var(--notectl-fg-muted);\n border-top: 1px solid var(--notectl-border);\n margin-top: 4px;\n text-align: center;\n user-select: none;\n}\n\n/* --- Context Menu Focus --- */\n.notectl-table-context-menu button:focus-visible {\n outline: none;\n background: var(--notectl-primary-muted);\n box-shadow: inset 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.notectl-table-context-menu [role="separator"] {\n border: none;\n border-top: 1px solid var(--notectl-border);\n margin: 4px 0;\n height: 0;\n}\n\n.ntbl-add-row {\n bottom: 0;\n height: 24px;\n border: 1px dashed var(--notectl-border);\n border-radius: 0 0 6px 6px;\n border-top: none;\n color: var(--notectl-fg-muted);\n transform: translateY(100%);\n}\n\n.ntbl-add-row:hover,\n.ntbl-add-row:focus-visible {\n background: var(--notectl-primary-muted);\n border-color: var(--notectl-primary);\n color: var(--notectl-primary);\n}\n\n.ntbl-add-row:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-col {\n right: 0;\n top: 24px;\n width: 24px;\n border: 1px dashed var(--notectl-border);\n border-radius: 0 6px 6px 0;\n border-left: none;\n color: var(--notectl-fg-muted);\n transform: translateX(100%);\n}\n\n.ntbl-add-col:hover,\n.ntbl-add-col:focus-visible {\n background: var(--notectl-primary-muted);\n border-color: var(--notectl-primary);\n color: var(--notectl-primary);\n}\n\n.ntbl-add-col:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.ntbl-add-zone:hover .ntbl-add-icon {\n transform: scale(1.15);\n}\n'), this.context = t2, this.registerNodeSpecs(t2), this.registerNodeViews(t2), W(t2, this.locale), t2.registerCommand("resetTableBorderColor", () => P(t2, this.locale)), (function(t3, e2) {
|
|
682
|
+
this.locale = e(M, t2, this.config.locale), t2.registerStyleSheet('\n/* Table */\n.notectl-table-wrapper {\n margin: 8px 0;\n overflow-x: auto;\n position: relative;\n}\n\n.notectl-table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n\n.notectl-table td {\n border: 1px solid var(--ntbl-border-color, var(--notectl-border));\n padding: 8px 12px;\n min-width: 60px;\n vertical-align: top;\n min-height: 1.6em;\n}\n\n.notectl-table--borderless td {\n border: 1px dashed rgba(128, 128, 128, 0.15);\n}\n\n@media print {\n .notectl-table--borderless td {\n border: none;\n }\n}\n\n.notectl-table td:focus-within {\n outline: 2px solid var(--notectl-primary);\n outline-offset: -2px;\n}\n\n.notectl-table-cell--selected {\n background: var(--notectl-primary-muted);\n}\n\n/* Table Context Menu */\n.notectl-table-context-menu {\n position: fixed;\n background: var(--notectl-surface-overlay);\n border: 1px solid var(--notectl-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--notectl-shadow);\n padding: 4px 0;\n min-width: 180px;\n z-index: 10000;\n}\n\n.notectl-table-context-menu button {\n display: block;\n width: 100%;\n padding: 8px 12px;\n text-align: left;\n border: none;\n background: none;\n cursor: pointer;\n font-size: 14px;\n color: var(--notectl-fg);\n font-family: inherit;\n}\n\n.notectl-table-context-menu button:hover {\n background: var(--notectl-hover-bg);\n}\n\n.notectl-table-context-menu hr {\n border: none;\n border-top: 1px solid var(--notectl-border);\n margin: 4px 0;\n}\n\n/* === Table Controls === */\n\n/* Outer container for table + controls */\n.ntbl-container {\n position: relative;\n margin: 8px 0;\n padding: 24px 0 0 24px;\n}\n\n.ntbl-container .notectl-table-wrapper {\n margin: 0;\n}\n\n.ntbl-container.notectl-table--selected .notectl-table-wrapper {\n outline: 2px solid var(--notectl-primary-fg);\n outline-offset: 2px;\n border-radius: 6px;\n}\n\n/* --- Column Handle Bar --- */\n.ntbl-col-bar {\n position: absolute;\n top: 0;\n left: 24px;\n height: 20px;\n display: flex;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 3;\n pointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-col-bar,\n.ntbl-container:focus-within .ntbl-col-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-col-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* --- Row Handle Bar --- */\n.ntbl-row-bar {\n position: absolute;\n top: 24px;\n left: 0;\n width: 20px;\n display: flex;\n flex-direction: column;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 3;\n pointer-events: none;\n}\n\n.ntbl-container:hover .ntbl-row-bar,\n.ntbl-container:focus-within .ntbl-row-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-row-bar {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* --- Handle (shared base) --- */\n.ntbl-handle {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.15s ease;\n border-radius: 3px;\n}\n\n.ntbl-col-handle {\n height: 100%;\n background: var(--notectl-hover-bg);\n border-radius: 4px 4px 0 0;\n}\n\n.ntbl-col-handle:hover {\n background: var(--notectl-border);\n}\n\n.ntbl-row-handle {\n width: 100%;\n background: var(--notectl-hover-bg);\n border-radius: 4px 0 0 4px;\n}\n\n.ntbl-row-handle:hover {\n background: var(--notectl-border);\n}\n\n/* --- Handle Delete Button --- */\n.ntbl-handle-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n color: var(--notectl-fg-muted);\n cursor: pointer;\n border-radius: 3px;\n padding: 0;\n opacity: 0;\n transform: scale(0.7);\n transition: opacity 0.15s, transform 0.15s,\n background 0.15s, color 0.15s;\n}\n\n.ntbl-handle:hover .ntbl-handle-delete,\n.ntbl-handle:focus-within .ntbl-handle-delete {\n opacity: 1;\n transform: scale(1);\n}\n\n.ntbl-handle-delete:hover,\n.ntbl-handle-delete:focus-visible {\n background: var(--notectl-danger-muted);\n color: var(--notectl-danger);\n}\n\n.ntbl-handle-delete:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Insert Lines --- */\n.ntbl-insert-line {\n position: absolute;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n z-index: 6;\n}\n\n.ntbl-insert-line--visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ntbl-insert-line--horizontal {\n height: 2px;\n background: linear-gradient(\n 90deg,\n transparent,\n var(--notectl-primary) 8%,\n var(--notectl-primary) 92%,\n transparent\n );\n box-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--vertical {\n width: 2px;\n background: linear-gradient(\n 180deg,\n transparent,\n var(--notectl-primary) 8%,\n var(--notectl-primary) 92%,\n transparent\n );\n box-shadow: 0 0 6px var(--notectl-focus-ring);\n}\n\n/* --- Insert Button on Line --- */\n.ntbl-insert-btn {\n position: absolute;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: var(--notectl-bg);\n border: 2px solid var(--notectl-primary);\n color: var(--notectl-primary);\n cursor: pointer;\n pointer-events: all;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n box-shadow: 0 2px 8px var(--notectl-focus-ring);\n transition: background 0.15s, color 0.15s,\n transform 0.15s, box-shadow 0.15s;\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn {\n left: 50%;\n top: -9px;\n transform: translateX(-50%);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn {\n top: 50%;\n left: -9px;\n transform: translateY(-50%);\n}\n\n.ntbl-insert-btn:hover,\n.ntbl-insert-btn:focus-visible {\n background: var(--notectl-primary);\n color: var(--notectl-bg);\n box-shadow: 0 2px 12px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-insert-line--horizontal .ntbl-insert-btn:hover {\n transform: translateX(-50%) scale(1.2);\n}\n\n.ntbl-insert-line--vertical .ntbl-insert-btn:hover {\n transform: translateY(-50%) scale(1.2);\n}\n\n/* --- Add Row / Add Column Zones --- */\n.ntbl-add-zone {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n user-select: none;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.2s ease,\n border-color 0.2s ease;\n}\n\n.ntbl-container:hover .ntbl-add-zone,\n.ntbl-container:focus-within .ntbl-add-zone {\n opacity: 1;\n}\n\n.ntbl-container.notectl-table--selected .ntbl-add-zone {\n opacity: 1;\n}\n\n.ntbl-delete-table-btn {\n position: absolute;\n top: 0;\n left: 0;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-danger);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-danger);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n}\n\n.ntbl-container:hover .ntbl-delete-table-btn,\n.ntbl-container:focus-within .ntbl-delete-table-btn,\n.ntbl-container.notectl-table--selected .ntbl-delete-table-btn {\n opacity: 1;\n}\n\n.ntbl-delete-table-btn:hover,\n.ntbl-delete-table-btn:focus-visible {\n background: var(--notectl-danger-muted);\n border-color: var(--notectl-danger);\n}\n\n.ntbl-delete-table-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Context Menu Discovery Hint --- */\n.ntbl-context-hint {\n position: absolute;\n top: 4px;\n right: 0;\n font-size: 11px;\n color: var(--notectl-fg-muted);\n padding: 2px 8px;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n white-space: nowrap;\n z-index: 5;\n}\n\n.ntbl-container:hover .ntbl-context-hint,\n.ntbl-container:focus-within .ntbl-context-hint,\n.ntbl-container.notectl-table--selected .ntbl-context-hint {\n opacity: 1;\n}\n\n/* --- Table Actions Button --- */\n.ntbl-actions-btn {\n position: absolute;\n top: 0;\n left: 48px;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-border);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-fg-muted);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n cursor: pointer;\n padding: 0;\n}\n\n.ntbl-container:hover .ntbl-actions-btn,\n.ntbl-container:focus-within .ntbl-actions-btn,\n.ntbl-container.notectl-table--selected .ntbl-actions-btn {\n opacity: 1;\n}\n\n.ntbl-actions-btn:hover,\n.ntbl-actions-btn:focus-visible {\n background: var(--notectl-hover-bg);\n border-color: var(--notectl-primary);\n}\n\n.ntbl-actions-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n/* --- Border Color Button --- */\n.ntbl-border-color-btn {\n position: absolute;\n top: 0;\n left: 24px;\n width: 20px;\n height: 20px;\n border: 1px solid var(--notectl-border);\n border-radius: 4px;\n background: var(--notectl-bg);\n color: var(--notectl-fg-muted);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s, border-color 0.15s;\n z-index: 7;\n cursor: pointer;\n padding: 0;\n}\n\n.ntbl-container:hover .ntbl-border-color-btn,\n.ntbl-container:focus-within .ntbl-border-color-btn,\n.ntbl-container.notectl-table--selected .ntbl-border-color-btn {\n opacity: 1;\n}\n\n.ntbl-border-color-btn:hover,\n.ntbl-border-color-btn:focus-visible {\n background: var(--notectl-hover-bg);\n border-color: var(--notectl-primary);\n}\n\n.ntbl-border-color-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-border-color-swatch {\n width: 10px;\n height: 10px;\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n}\n\n/* --- Context Menu Keyboard Hint --- */\n.notectl-table-context-menu__hint {\n padding: 4px 12px 6px;\n font-size: 11px;\n color: var(--notectl-fg-muted);\n border-top: 1px solid var(--notectl-border);\n margin-top: 4px;\n text-align: center;\n user-select: none;\n}\n\n/* --- Context Menu Focus --- */\n.notectl-table-context-menu button:focus-visible {\n outline: none;\n background: var(--notectl-primary-muted);\n box-shadow: inset 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.notectl-table-context-menu [role="separator"] {\n border: none;\n border-top: 1px solid var(--notectl-border);\n margin: 4px 0;\n height: 0;\n}\n\n.ntbl-add-row {\n bottom: 0;\n height: 24px;\n border: 1px dashed var(--notectl-border);\n border-radius: 0 0 6px 6px;\n border-top: none;\n color: var(--notectl-fg-muted);\n transform: translateY(100%);\n}\n\n.ntbl-add-row:hover,\n.ntbl-add-row:focus-visible {\n background: var(--notectl-primary-muted);\n border-color: var(--notectl-primary);\n color: var(--notectl-primary);\n}\n\n.ntbl-add-row:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-col {\n right: 0;\n top: 24px;\n width: 24px;\n border: 1px dashed var(--notectl-border);\n border-radius: 0 6px 6px 0;\n border-left: none;\n color: var(--notectl-fg-muted);\n transform: translateX(100%);\n}\n\n.ntbl-add-col:hover,\n.ntbl-add-col:focus-visible {\n background: var(--notectl-primary-muted);\n border-color: var(--notectl-primary);\n color: var(--notectl-primary);\n}\n\n.ntbl-add-col:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--notectl-focus-ring);\n}\n\n.ntbl-add-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.ntbl-add-zone:hover .ntbl-add-icon {\n transform: scale(1.15);\n}\n'), this.context = t2, this.registerNodeSpecs(t2), this.registerNodeViews(t2), U(t2, this.locale), t2.registerCommand("resetTableBorderColor", () => N(t2, this.locale)), (function(t3, e2) {
|
|
724
683
|
const n2 = { Tab: () => (function(t4, e3) {
|
|
725
|
-
return
|
|
684
|
+
return X(t4, (n3, o2, r2) => r2.colIndex < r2.totalCols - 1 ? Q(t4, r2.tableId, r2.rowIndex, r2.colIndex + 1) : r2.rowIndex < r2.totalRows - 1 ? Q(t4, r2.tableId, r2.rowIndex + 1, 0) : (K(t4, e3), true));
|
|
726
685
|
})(t3, e2), "Shift-Tab": () => (function(t4) {
|
|
727
|
-
return
|
|
686
|
+
return X(t4, (e3, n3, o2) => o2.colIndex > 0 ? Q(t4, o2.tableId, o2.rowIndex, o2.colIndex - 1) : !(o2.rowIndex > 0) || Q(t4, o2.tableId, o2.rowIndex - 1, o2.totalCols - 1));
|
|
728
687
|
})(t3), Enter: () => (function(t4) {
|
|
729
688
|
const e3 = t4.getState();
|
|
730
689
|
if (o(e3.selection) || r(e3.selection)) return false;
|
|
731
690
|
const n3 = e3.getBlock(e3.selection.anchor.blockId);
|
|
732
691
|
if (n3 && "paragraph" !== n3.type) return false;
|
|
733
|
-
const l2 =
|
|
734
|
-
return !!l2 && (!(l2.rowIndex < l2.totalRows - 1) ||
|
|
692
|
+
const l2 = x(e3, e3.selection.anchor.blockId);
|
|
693
|
+
return !!l2 && (!(l2.rowIndex < l2.totalRows - 1) || Q(t4, l2.tableId, l2.rowIndex + 1, l2.colIndex));
|
|
735
694
|
})(t3), Backspace: () => (function(t4) {
|
|
736
|
-
return
|
|
695
|
+
return X(t4, (e3, n3, o2) => {
|
|
737
696
|
if (!a(n3)) return false;
|
|
738
697
|
if (0 !== n3.anchor.offset) return false;
|
|
739
698
|
if (0 !== o2.rowIndex || 0 !== o2.colIndex) return false;
|
|
740
|
-
const r2 =
|
|
741
|
-
return n3.anchor.blockId === r2 &&
|
|
699
|
+
const r2 = I(e3, o2.cellId);
|
|
700
|
+
return n3.anchor.blockId === r2 && et(t4, o2.tableId);
|
|
742
701
|
});
|
|
743
702
|
})(t3), Delete: () => (function(t4) {
|
|
744
|
-
return
|
|
703
|
+
return X(t4, (e3, n3, o2) => {
|
|
745
704
|
if (!a(n3)) return false;
|
|
746
705
|
const r2 = e3.getBlock(n3.anchor.blockId);
|
|
747
706
|
if (!r2) return false;
|
|
748
|
-
const l2 =
|
|
707
|
+
const l2 = f(r2);
|
|
749
708
|
if (n3.anchor.offset !== l2) return false;
|
|
750
709
|
if (o2.rowIndex !== o2.totalRows - 1 || o2.colIndex !== o2.totalCols - 1) return false;
|
|
751
710
|
const i2 = y(e3, o2.cellId);
|
|
752
|
-
return n3.anchor.blockId === i2 &&
|
|
711
|
+
return n3.anchor.blockId === i2 && et(t4, o2.tableId);
|
|
753
712
|
});
|
|
754
713
|
})(t3), ArrowDown: () => (function(t4) {
|
|
755
|
-
return
|
|
714
|
+
return X(t4, (e3, n3, o2) => {
|
|
756
715
|
const r2 = y(e3, o2.cellId);
|
|
757
|
-
return n3.anchor.blockId === r2 && (o2.rowIndex >= o2.totalRows - 1 ?
|
|
716
|
+
return n3.anchor.blockId === r2 && (o2.rowIndex >= o2.totalRows - 1 ? G(t4) : Q(t4, o2.tableId, o2.rowIndex + 1, o2.colIndex));
|
|
758
717
|
});
|
|
759
718
|
})(t3), ArrowUp: () => (function(t4) {
|
|
760
|
-
return
|
|
761
|
-
const r2 =
|
|
762
|
-
return n3.anchor.blockId === r2 && !(o2.rowIndex <= 0) &&
|
|
719
|
+
return X(t4, (e3, n3, o2) => {
|
|
720
|
+
const r2 = I(e3, o2.cellId);
|
|
721
|
+
return n3.anchor.blockId === r2 && !(o2.rowIndex <= 0) && Q(t4, o2.tableId, o2.rowIndex - 1, o2.colIndex);
|
|
763
722
|
});
|
|
764
723
|
})(t3), ArrowRight: () => (function(t4) {
|
|
765
|
-
return
|
|
724
|
+
return X(t4, (e3, n3, o2) => {
|
|
766
725
|
if (!a(n3)) return false;
|
|
767
726
|
const r2 = e3.getBlock(n3.anchor.blockId);
|
|
768
727
|
if (!r2) return false;
|
|
769
|
-
const l2 =
|
|
728
|
+
const l2 = f(r2);
|
|
770
729
|
if (n3.anchor.offset !== l2) return false;
|
|
771
730
|
const i2 = y(e3, o2.cellId);
|
|
772
|
-
return n3.anchor.blockId === i2 && (o2.colIndex < o2.totalCols - 1 ?
|
|
731
|
+
return n3.anchor.blockId === i2 && (o2.colIndex < o2.totalCols - 1 ? Q(t4, o2.tableId, o2.rowIndex, o2.colIndex + 1) : !(o2.rowIndex < o2.totalRows - 1) || Q(t4, o2.tableId, o2.rowIndex + 1, 0));
|
|
773
732
|
});
|
|
774
733
|
})(t3), ArrowLeft: () => (function(t4) {
|
|
775
|
-
return
|
|
734
|
+
return X(t4, (e3, n3, o2) => {
|
|
776
735
|
if (!a(n3)) return false;
|
|
777
736
|
if (0 !== n3.anchor.offset) return false;
|
|
778
|
-
const r2 =
|
|
779
|
-
return n3.anchor.blockId === r2 && (o2.colIndex > 0 ?
|
|
737
|
+
const r2 = I(e3, o2.cellId);
|
|
738
|
+
return n3.anchor.blockId === r2 && (o2.colIndex > 0 ? tt(t4, o2.tableId, o2.rowIndex, o2.colIndex - 1) : !(o2.rowIndex > 0) || tt(t4, o2.tableId, o2.rowIndex - 1, o2.totalCols - 1));
|
|
780
739
|
});
|
|
781
|
-
})(t3), Escape: () =>
|
|
782
|
-
return
|
|
740
|
+
})(t3), Escape: () => G(t3), "Shift-F10": () => (function(t4) {
|
|
741
|
+
return X(t4, (e3, n3, o2) => {
|
|
783
742
|
const r2 = t4.getContainer(), l2 = r2.querySelector(`[data-block-id="${o2.cellId}"]`);
|
|
784
743
|
if (!l2) return false;
|
|
785
744
|
const i2 = l2.getBoundingClientRect(), a2 = new DOMRect(i2.left + i2.width / 2, i2.bottom, 0, 0), s2 = r2.querySelector(`[data-block-id="${o2.tableId}"].ntbl-container`) ?? r2;
|
|
786
|
-
return
|
|
787
|
-
|
|
745
|
+
return J?.close(), J = W(s2, t4, o2.tableId, a2, () => {
|
|
746
|
+
J = null;
|
|
788
747
|
}), true;
|
|
789
748
|
});
|
|
790
749
|
})(t3) };
|
|
@@ -796,7 +755,7 @@ class gt {
|
|
|
796
755
|
if (!e2) return n2 = [], void (o2 = /* @__PURE__ */ new Set());
|
|
797
756
|
const r4 = t3.getState(), l2 = [], i2 = Math.min(e2.fromRow, e2.toRow), a2 = Math.max(e2.fromRow, e2.toRow), s2 = Math.min(e2.fromCol, e2.toCol), c2 = Math.max(e2.fromCol, e2.toCol);
|
|
798
757
|
for (let t4 = i2; t4 <= a2; t4++) for (let n3 = s2; n3 <= c2; n3++) {
|
|
799
|
-
const o3 =
|
|
758
|
+
const o3 = C(r4, e2.tableId, t4, n3);
|
|
800
759
|
o3 && l2.push(o3);
|
|
801
760
|
}
|
|
802
761
|
n2 = l2, o2 = new Set(l2);
|
|
@@ -808,7 +767,7 @@ class gt {
|
|
|
808
767
|
}
|
|
809
768
|
})(t3, o2);
|
|
810
769
|
}, getSelectedCellIds: () => n2, isSelected: (t4) => o2.has(t4) };
|
|
811
|
-
return t3.registerService(
|
|
770
|
+
return t3.registerService(bt, r2), r2;
|
|
812
771
|
})(t2);
|
|
813
772
|
}
|
|
814
773
|
onReady() {
|
|
@@ -819,13 +778,13 @@ class gt {
|
|
|
819
778
|
const l3 = n3.target.closest("td[data-block-id]");
|
|
820
779
|
if (l3) if (n3.shiftKey) {
|
|
821
780
|
if (o2) {
|
|
822
|
-
const r3 =
|
|
781
|
+
const r3 = x(t2.getState(), l3.getAttribute("data-block-id"));
|
|
823
782
|
if (!r3 || r3.tableId !== o2.tableId) return;
|
|
824
783
|
n3.preventDefault(), e2.setSelectedRange({ tableId: o2.tableId, fromRow: o2.row, fromCol: o2.col, toRow: r3.rowIndex, toCol: r3.colIndex });
|
|
825
784
|
}
|
|
826
785
|
} else {
|
|
827
786
|
e2.setSelectedRange(null);
|
|
828
|
-
const n4 =
|
|
787
|
+
const n4 = x(t2.getState(), l3.getAttribute("data-block-id"));
|
|
829
788
|
if (!n4) return;
|
|
830
789
|
o2 = { tableId: n4.tableId, row: n4.rowIndex, col: n4.colIndex }, r2 = true;
|
|
831
790
|
}
|
|
@@ -835,7 +794,7 @@ class gt {
|
|
|
835
794
|
if (!r2 || !o2) return;
|
|
836
795
|
const l3 = n3.target.closest("td[data-block-id]");
|
|
837
796
|
if (!l3) return;
|
|
838
|
-
const i3 =
|
|
797
|
+
const i3 = x(t2.getState(), l3.getAttribute("data-block-id"));
|
|
839
798
|
i3 && i3.tableId === o2.tableId && (i3.rowIndex === o2.row && i3.colIndex === o2.col || (n3.preventDefault(), e2.setSelectedRange({ tableId: o2.tableId, fromRow: o2.row, fromCol: o2.col, toRow: i3.rowIndex, toCol: i3.colIndex })));
|
|
840
799
|
}
|
|
841
800
|
function a2() {
|
|
@@ -852,7 +811,7 @@ class gt {
|
|
|
852
811
|
onStateChange(t2, e2, n2) {
|
|
853
812
|
if (this.selectionService?.getSelectedRange()) {
|
|
854
813
|
const t3 = e2.selection;
|
|
855
|
-
(o(t3) || r(t3) || !
|
|
814
|
+
(o(t3) || r(t3) || !R(e2, t3.anchor.blockId)) && this.selectionService.setSelectedRange(null);
|
|
856
815
|
}
|
|
857
816
|
}
|
|
858
817
|
registerNodeSpecs(t2) {
|
|
@@ -861,7 +820,7 @@ class gt {
|
|
|
861
820
|
return e2.className = "notectl-table-wrapper", e2.setAttribute("data-block-id", t3.id), e2;
|
|
862
821
|
}, toHTML(t3, e2) {
|
|
863
822
|
const o2 = t3.attrs?.borderColor, r2 = (function(t4) {
|
|
864
|
-
return t4 ? "none" === t4 ? `${
|
|
823
|
+
return t4 ? "none" === t4 ? `${pt}; --ntbl-bc: transparent` : s(t4) ? `${pt}; --ntbl-bc: ${n(t4)}` : pt : pt;
|
|
865
824
|
})(o2);
|
|
866
825
|
return `<table style="${r2}">${e2}</table>`;
|
|
867
826
|
}, sanitize: { tags: ["table", "tbody"] } }), t2.registerNodeSpec({ type: "table_row", group: "table_content", content: { allow: ["table_cell"], min: 1 }, toDOM(t3) {
|
|
@@ -876,7 +835,7 @@ class gt {
|
|
|
876
835
|
}, sanitize: { tags: ["td"], attrs: ["colspan", "rowspan"] } });
|
|
877
836
|
}
|
|
878
837
|
registerNodeViews(t2) {
|
|
879
|
-
t2.getSchemaRegistry(), t2.registerNodeView("table", /* @__PURE__ */ (function(t3, e2, n2 =
|
|
838
|
+
t2.getSchemaRegistry(), t2.registerNodeView("table", /* @__PURE__ */ (function(t3, e2, n2 = k) {
|
|
880
839
|
return (t4, o2, r2) => {
|
|
881
840
|
const l2 = document.createElement("div");
|
|
882
841
|
l2.className = "ntbl-container", l2.setAttribute("data-block-id", t4.id), l2.setAttribute("data-selectable", "true");
|
|
@@ -884,29 +843,29 @@ class gt {
|
|
|
884
843
|
i2.className = "notectl-table-wrapper";
|
|
885
844
|
const a2 = document.createElement("table");
|
|
886
845
|
a2.className = "notectl-table", a2.setAttribute("role", "table");
|
|
887
|
-
const s2 =
|
|
846
|
+
const s2 = u(t4), c2 = s2.length, d2 = s2[0] ? u(s2[0]).length : 0;
|
|
888
847
|
a2.setAttribute("aria-label", n2.tableAriaLabel(c2, d2)), a2.setAttribute("aria-description", n2.tableAriaDescription);
|
|
889
|
-
const
|
|
890
|
-
a2.appendChild(
|
|
848
|
+
const b2 = document.createElement("tbody");
|
|
849
|
+
a2.appendChild(b2), i2.appendChild(a2), l2.appendChild(i2), ut(a2, t4.attrs?.borderColor);
|
|
891
850
|
const h2 = document.createElement("div");
|
|
892
851
|
h2.className = "notectl-sr-only", h2.setAttribute("aria-live", "polite"), h2.setAttribute("aria-atomic", "true"), l2.appendChild(h2);
|
|
893
852
|
const p2 = (function(t5, e3, n3, o3, r3, l3, i3) {
|
|
894
|
-
return new
|
|
853
|
+
return new dt(t5, e3, n3, o3, r3, l3, i3);
|
|
895
854
|
})(l2, a2, t4, o2, r2, e2, n2);
|
|
896
855
|
let f2 = null, m2 = t4.id;
|
|
897
856
|
const g2 = (t5) => {
|
|
898
857
|
if (!e2) return;
|
|
899
858
|
t5.preventDefault(), t5.stopPropagation(), f2?.close();
|
|
900
859
|
const o3 = new DOMRect(t5.clientX, t5.clientY, 0, 0);
|
|
901
|
-
f2 =
|
|
860
|
+
f2 = W(l2, e2, m2, o3, () => {
|
|
902
861
|
f2 = null;
|
|
903
862
|
}, n2);
|
|
904
863
|
};
|
|
905
|
-
return a2.addEventListener("contextmenu", g2), { dom: l2, contentDOM:
|
|
864
|
+
return a2.addEventListener("contextmenu", g2), { dom: l2, contentDOM: b2, update(t5) {
|
|
906
865
|
if ("table" !== t5.type) return false;
|
|
907
866
|
m2 = t5.id, l2.setAttribute("data-block-id", t5.id), l2.setAttribute("data-selectable", "true");
|
|
908
|
-
const e3 =
|
|
909
|
-
return a2.setAttribute("aria-label", n2.tableAriaLabel(o3, r3)),
|
|
867
|
+
const e3 = u(t5), o3 = e3.length, r3 = e3[0] ? u(e3[0]).length : 0;
|
|
868
|
+
return a2.setAttribute("aria-label", n2.tableAriaLabel(o3, r3)), ut(a2, t5.attrs?.borderColor), p2.update(t5), false;
|
|
910
869
|
}, destroy() {
|
|
911
870
|
f2?.destroy(), a2.removeEventListener("contextmenu", g2), p2.destroy();
|
|
912
871
|
}, selectNode() {
|
|
@@ -937,28 +896,28 @@ class gt {
|
|
|
937
896
|
registerToolbarItem(t2) {
|
|
938
897
|
const e2 = this.config.maxPickerRows ?? 8, n2 = this.config.maxPickerCols ?? 8;
|
|
939
898
|
t2.registerToolbarItem({ id: "table", group: "insert", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 3h18v18H3V3zm2 2v4h6V5H5zm8 0v4h6V5h-6zm-8 6v4h6v-4H5zm8 0v4h6v-4h-6zm-8 6v4h6v-4H5zm8 0v4h6v-4h-6z"/></svg>', label: this.locale.insertTable, tooltip: this.locale.insertTable, command: "insertTable", priority: 80, separatorAfter: this.config.separatorAfter, popupType: "gridPicker", popupConfig: { maxRows: e2, maxCols: n2, onSelect: (e3, n3) => {
|
|
940
|
-
|
|
941
|
-
} }, isActive: (t3) => !o(t3.selection) && !r(t3.selection) &&
|
|
899
|
+
O(t2, e3, n3);
|
|
900
|
+
} }, isActive: (t3) => !o(t3.selection) && !r(t3.selection) && R(t3, t3.selection.anchor.blockId) });
|
|
942
901
|
}
|
|
943
902
|
}
|
|
944
903
|
export {
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
904
|
+
H as B,
|
|
905
|
+
ft as T,
|
|
906
|
+
M as a,
|
|
948
907
|
E as b,
|
|
949
|
-
|
|
950
|
-
|
|
908
|
+
S as c,
|
|
909
|
+
k as d,
|
|
951
910
|
A as e,
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
911
|
+
L as f,
|
|
912
|
+
D as g,
|
|
913
|
+
T as h,
|
|
914
|
+
B as i,
|
|
915
|
+
bt as j,
|
|
916
|
+
x as k,
|
|
917
|
+
R as l,
|
|
918
|
+
W as m,
|
|
960
919
|
z as n,
|
|
961
|
-
|
|
962
|
-
|
|
920
|
+
N as r,
|
|
921
|
+
P as s
|
|
963
922
|
};
|
|
964
|
-
//# sourceMappingURL=index-
|
|
923
|
+
//# sourceMappingURL=index-CH1r7DL-.mjs.map
|