roosterjs-content-model-plugins 9.25.0 → 9.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/edit/tabUtils/handleTabOnTable.js +4 -3
- package/lib/edit/tabUtils/handleTabOnTable.js.map +1 -1
- package/lib/edit/tabUtils/handleTabOnTableCell.js +27 -24
- package/lib/edit/tabUtils/handleTabOnTableCell.js.map +1 -1
- package/lib-amd/edit/tabUtils/handleTabOnTable.js +4 -3
- package/lib-amd/edit/tabUtils/handleTabOnTable.js.map +1 -1
- package/lib-amd/edit/tabUtils/handleTabOnTableCell.js +27 -24
- package/lib-amd/edit/tabUtils/handleTabOnTableCell.js.map +1 -1
- package/lib-mjs/edit/tabUtils/handleTabOnTable.js +4 -3
- package/lib-mjs/edit/tabUtils/handleTabOnTable.js.map +1 -1
- package/lib-mjs/edit/tabUtils/handleTabOnTableCell.js +27 -24
- package/lib-mjs/edit/tabUtils/handleTabOnTableCell.js.map +1 -1
- package/package.json +5 -5
|
@@ -18,8 +18,9 @@ function handleTabOnTable(model, rawEvent) {
|
|
|
18
18
|
}
|
|
19
19
|
exports.handleTabOnTable = handleTabOnTable;
|
|
20
20
|
function isWholeTableSelected(tableModel) {
|
|
21
|
-
var _a, _b
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
var _a, _b;
|
|
22
|
+
var lastRow = tableModel.rows[tableModel.rows.length - 1];
|
|
23
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastRow.cells.length - 1];
|
|
24
|
+
return ((_b = (_a = tableModel.rows[0]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.isSelected) && (lastCell === null || lastCell === void 0 ? void 0 : lastCell.isSelected);
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=handleTabOnTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":";;;AAAA,2EAAoE;AACpE,2EAAkE;AAMlE;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;IACzF,IAAM,UAAU,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;QAChD,IAAA,iDAAmB,EAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,4CAQC;AAED,SAAS,oBAAoB,CAAC,UAAqC;;IAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":";;;AAAA,2EAAoE;AACpE,2EAAkE;AAMlE;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;IACzF,IAAM,UAAU,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;QAChD,IAAA,iDAAmB,EAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,4CAQC;AAED,SAAS,oBAAoB,CAAC,UAAqC;;IAC/D,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAA,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,UAAU,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAA,CAAC;AAC5E,CAAC","sourcesContent":["import { getFirstSelectedTable } from 'roosterjs-content-model-dom';\nimport { setModelIndentation } from 'roosterjs-content-model-api';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTable,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the whole table is selected, indent or outdent the whole table with setModelIndentation.\n * @internal\n */\nexport function handleTabOnTable(model: ReadonlyContentModelDocument, rawEvent: KeyboardEvent) {\n const tableModel = getFirstSelectedTable(model)[0];\n if (tableModel && isWholeTableSelected(tableModel)) {\n setModelIndentation(model, rawEvent.shiftKey ? 'outdent' : 'indent');\n rawEvent.preventDefault();\n return true;\n }\n return false;\n}\n\nfunction isWholeTableSelected(tableModel: ReadonlyContentModelTable) {\n const lastRow = tableModel.rows[tableModel.rows.length - 1];\n const lastCell = lastRow?.cells[lastRow.cells.length - 1];\n\n return tableModel.rows[0]?.cells[0]?.isSelected && lastCell?.isSelected;\n}\n"]}
|
|
@@ -8,32 +8,35 @@ var roosterjs_content_model_dom_1 = require("roosterjs-content-model-dom");
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
function handleTabOnTableCell(model, cell, rawEvent) {
|
|
11
|
-
var _a, _b
|
|
11
|
+
var _a, _b;
|
|
12
12
|
var readonlyTableModel = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model)[0];
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
readonlyTableModel
|
|
16
|
-
|
|
17
|
-
var
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
13
|
+
if (readonlyTableModel) {
|
|
14
|
+
// Check if cursor is on last cell of the table
|
|
15
|
+
var lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];
|
|
16
|
+
var lastColumn = lastRow ? lastRow.cells.length - 1 : -1;
|
|
17
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastColumn];
|
|
18
|
+
if (!rawEvent.shiftKey && lastCell && lastCell === cell) {
|
|
19
|
+
var tableModel = (0, roosterjs_content_model_dom_1.mutateBlock)(readonlyTableModel);
|
|
20
|
+
(0, roosterjs_content_model_api_1.insertTableRow)(tableModel, 'insertBelow');
|
|
21
|
+
// Clear Table selection
|
|
22
|
+
(0, roosterjs_content_model_api_1.clearSelectedCells)(tableModel, {
|
|
23
|
+
firstRow: tableModel.rows.length - 1,
|
|
24
|
+
firstColumn: 0,
|
|
25
|
+
lastRow: tableModel.rows.length - 1,
|
|
26
|
+
lastColumn: lastColumn,
|
|
27
|
+
});
|
|
28
|
+
(0, roosterjs_content_model_dom_1.normalizeTable)(tableModel, model.format);
|
|
29
|
+
// Add selection marker to the first cell of the new row
|
|
30
|
+
var markerParagraph = (_b = (_a = tableModel.rows[tableModel.rows.length - 1]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.blocks[0];
|
|
31
|
+
if (markerParagraph.blockType == 'Paragraph') {
|
|
32
|
+
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(model.format);
|
|
33
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(markerParagraph).segments.unshift(marker);
|
|
34
|
+
(0, roosterjs_content_model_dom_1.setParagraphNotImplicit)(markerParagraph);
|
|
35
|
+
(0, roosterjs_content_model_dom_1.setSelection)(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);
|
|
36
|
+
}
|
|
37
|
+
rawEvent.preventDefault();
|
|
38
|
+
return true;
|
|
34
39
|
}
|
|
35
|
-
rawEvent.preventDefault();
|
|
36
|
-
return true;
|
|
37
40
|
}
|
|
38
41
|
return false;
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":";;;AAAA,2EAAiF;AACjF,2EAOqC;AAMrC;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;IAEvB,IAAM,kBAAkB,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,+CAA+C;
|
|
1
|
+
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":";;;AAAA,2EAAiF;AACjF,2EAOqC;AAMrC;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;IAEvB,IAAM,kBAAkB,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,IAAI,kBAAkB,EAAE;QACpB,+CAA+C;QAC/C,IAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5E,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrD,IAAM,UAAU,GAAG,IAAA,yCAAW,EAAC,kBAAkB,CAAC,CAAC;YACnD,IAAA,4CAAc,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAE1C,wBAAwB;YACxB,IAAA,gDAAkB,EAAC,UAAU,EAAE;gBAC3B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACpC,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACnC,UAAU,EAAE,UAAU;aACzB,CAAC,CAAC;YACH,IAAA,4CAAc,EAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzC,wDAAwD;YACxD,IAAM,eAAe,GACjB,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,eAAe,CAAC,SAAS,IAAI,WAAW,EAAE;gBAC1C,IAAM,MAAM,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEnD,IAAA,yCAAW,EAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAA,qDAAuB,EAAC,eAAe,CAAC,CAAC;gBACzC,IAAA,0CAAY,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aAC9E;YAED,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AA3CD,oDA2CC","sourcesContent":["import { clearSelectedCells, insertTableRow } from 'roosterjs-content-model-api';\nimport {\n createSelectionMarker,\n getFirstSelectedTable,\n mutateBlock,\n normalizeTable,\n setParagraphNotImplicit,\n setSelection,\n} from 'roosterjs-content-model-dom';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTableCell,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the cursor is on the last cell of a table, add new row and focus first new cell.\n * @internal\n */\nexport function handleTabOnTableCell(\n model: ReadonlyContentModelDocument,\n cell: ReadonlyContentModelTableCell,\n rawEvent: KeyboardEvent\n) {\n const readonlyTableModel = getFirstSelectedTable(model)[0];\n\n if (readonlyTableModel) {\n // Check if cursor is on last cell of the table\n const lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];\n const lastColumn = lastRow ? lastRow.cells.length - 1 : -1;\n const lastCell = lastRow?.cells[lastColumn];\n\n if (!rawEvent.shiftKey && lastCell && lastCell === cell) {\n const tableModel = mutateBlock(readonlyTableModel);\n insertTableRow(tableModel, 'insertBelow');\n\n // Clear Table selection\n clearSelectedCells(tableModel, {\n firstRow: tableModel.rows.length - 1,\n firstColumn: 0,\n lastRow: tableModel.rows.length - 1,\n lastColumn: lastColumn,\n });\n normalizeTable(tableModel, model.format);\n\n // Add selection marker to the first cell of the new row\n const markerParagraph =\n tableModel.rows[tableModel.rows.length - 1]?.cells[0]?.blocks[0];\n if (markerParagraph.blockType == 'Paragraph') {\n const marker = createSelectionMarker(model.format);\n\n mutateBlock(markerParagraph).segments.unshift(marker);\n setParagraphNotImplicit(markerParagraph);\n setSelection(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);\n }\n\n rawEvent.preventDefault();\n return true;\n }\n }\n\n return false;\n}\n"]}
|
|
@@ -17,9 +17,10 @@ define(["require", "exports", "roosterjs-content-model-dom", "roosterjs-content-
|
|
|
17
17
|
}
|
|
18
18
|
exports.handleTabOnTable = handleTabOnTable;
|
|
19
19
|
function isWholeTableSelected(tableModel) {
|
|
20
|
-
var _a, _b
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
var _a, _b;
|
|
21
|
+
var lastRow = tableModel.rows[tableModel.rows.length - 1];
|
|
22
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastRow.cells.length - 1];
|
|
23
|
+
return ((_b = (_a = tableModel.rows[0]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.isSelected) && (lastCell === null || lastCell === void 0 ? void 0 : lastCell.isSelected);
|
|
23
24
|
}
|
|
24
25
|
});
|
|
25
26
|
//# sourceMappingURL=handleTabOnTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":";;;;IAOA;;;OAGG;IACH,SAAgB,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;QACzF,IAAM,UAAU,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;YAChD,IAAA,iDAAmB,EAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IARD,4CAQC;IAED,SAAS,oBAAoB,CAAC,UAAqC;;QAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":";;;;IAOA;;;OAGG;IACH,SAAgB,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;QACzF,IAAM,UAAU,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;YAChD,IAAA,iDAAmB,EAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IARD,4CAQC;IAED,SAAS,oBAAoB,CAAC,UAAqC;;QAC/D,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1D,OAAO,CAAA,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,UAAU,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAA,CAAC;IAC5E,CAAC","sourcesContent":["import { getFirstSelectedTable } from 'roosterjs-content-model-dom';\nimport { setModelIndentation } from 'roosterjs-content-model-api';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTable,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the whole table is selected, indent or outdent the whole table with setModelIndentation.\n * @internal\n */\nexport function handleTabOnTable(model: ReadonlyContentModelDocument, rawEvent: KeyboardEvent) {\n const tableModel = getFirstSelectedTable(model)[0];\n if (tableModel && isWholeTableSelected(tableModel)) {\n setModelIndentation(model, rawEvent.shiftKey ? 'outdent' : 'indent');\n rawEvent.preventDefault();\n return true;\n }\n return false;\n}\n\nfunction isWholeTableSelected(tableModel: ReadonlyContentModelTable) {\n const lastRow = tableModel.rows[tableModel.rows.length - 1];\n const lastCell = lastRow?.cells[lastRow.cells.length - 1];\n\n return tableModel.rows[0]?.cells[0]?.isSelected && lastCell?.isSelected;\n}\n"]}
|
|
@@ -7,32 +7,35 @@ define(["require", "exports", "roosterjs-content-model-api", "roosterjs-content-
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
function handleTabOnTableCell(model, cell, rawEvent) {
|
|
10
|
-
var _a, _b
|
|
10
|
+
var _a, _b;
|
|
11
11
|
var readonlyTableModel = (0, roosterjs_content_model_dom_1.getFirstSelectedTable)(model)[0];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
readonlyTableModel
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
12
|
+
if (readonlyTableModel) {
|
|
13
|
+
// Check if cursor is on last cell of the table
|
|
14
|
+
var lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];
|
|
15
|
+
var lastColumn = lastRow ? lastRow.cells.length - 1 : -1;
|
|
16
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastColumn];
|
|
17
|
+
if (!rawEvent.shiftKey && lastCell && lastCell === cell) {
|
|
18
|
+
var tableModel = (0, roosterjs_content_model_dom_1.mutateBlock)(readonlyTableModel);
|
|
19
|
+
(0, roosterjs_content_model_api_1.insertTableRow)(tableModel, 'insertBelow');
|
|
20
|
+
// Clear Table selection
|
|
21
|
+
(0, roosterjs_content_model_api_1.clearSelectedCells)(tableModel, {
|
|
22
|
+
firstRow: tableModel.rows.length - 1,
|
|
23
|
+
firstColumn: 0,
|
|
24
|
+
lastRow: tableModel.rows.length - 1,
|
|
25
|
+
lastColumn: lastColumn,
|
|
26
|
+
});
|
|
27
|
+
(0, roosterjs_content_model_dom_1.normalizeTable)(tableModel, model.format);
|
|
28
|
+
// Add selection marker to the first cell of the new row
|
|
29
|
+
var markerParagraph = (_b = (_a = tableModel.rows[tableModel.rows.length - 1]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.blocks[0];
|
|
30
|
+
if (markerParagraph.blockType == 'Paragraph') {
|
|
31
|
+
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(model.format);
|
|
32
|
+
(0, roosterjs_content_model_dom_1.mutateBlock)(markerParagraph).segments.unshift(marker);
|
|
33
|
+
(0, roosterjs_content_model_dom_1.setParagraphNotImplicit)(markerParagraph);
|
|
34
|
+
(0, roosterjs_content_model_dom_1.setSelection)(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);
|
|
35
|
+
}
|
|
36
|
+
rawEvent.preventDefault();
|
|
37
|
+
return true;
|
|
33
38
|
}
|
|
34
|
-
rawEvent.preventDefault();
|
|
35
|
-
return true;
|
|
36
39
|
}
|
|
37
40
|
return false;
|
|
38
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":";;;;IAcA;;;OAGG;IACH,SAAgB,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;QAEvB,IAAM,kBAAkB,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,+CAA+C;
|
|
1
|
+
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":";;;;IAcA;;;OAGG;IACH,SAAgB,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;QAEvB,IAAM,kBAAkB,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,kBAAkB,EAAE;YACpB,+CAA+C;YAC/C,IAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5E,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAE5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;gBACrD,IAAM,UAAU,GAAG,IAAA,yCAAW,EAAC,kBAAkB,CAAC,CAAC;gBACnD,IAAA,4CAAc,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAE1C,wBAAwB;gBACxB,IAAA,gDAAkB,EAAC,UAAU,EAAE;oBAC3B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACpC,WAAW,EAAE,CAAC;oBACd,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBACnC,UAAU,EAAE,UAAU;iBACzB,CAAC,CAAC;gBACH,IAAA,4CAAc,EAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEzC,wDAAwD;gBACxD,IAAM,eAAe,GACjB,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,eAAe,CAAC,SAAS,IAAI,WAAW,EAAE;oBAC1C,IAAM,MAAM,GAAG,IAAA,mDAAqB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAEnD,IAAA,yCAAW,EAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtD,IAAA,qDAAuB,EAAC,eAAe,CAAC,CAAC;oBACzC,IAAA,0CAAY,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;iBAC9E;gBAED,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IA3CD,oDA2CC","sourcesContent":["import { clearSelectedCells, insertTableRow } from 'roosterjs-content-model-api';\nimport {\n createSelectionMarker,\n getFirstSelectedTable,\n mutateBlock,\n normalizeTable,\n setParagraphNotImplicit,\n setSelection,\n} from 'roosterjs-content-model-dom';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTableCell,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the cursor is on the last cell of a table, add new row and focus first new cell.\n * @internal\n */\nexport function handleTabOnTableCell(\n model: ReadonlyContentModelDocument,\n cell: ReadonlyContentModelTableCell,\n rawEvent: KeyboardEvent\n) {\n const readonlyTableModel = getFirstSelectedTable(model)[0];\n\n if (readonlyTableModel) {\n // Check if cursor is on last cell of the table\n const lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];\n const lastColumn = lastRow ? lastRow.cells.length - 1 : -1;\n const lastCell = lastRow?.cells[lastColumn];\n\n if (!rawEvent.shiftKey && lastCell && lastCell === cell) {\n const tableModel = mutateBlock(readonlyTableModel);\n insertTableRow(tableModel, 'insertBelow');\n\n // Clear Table selection\n clearSelectedCells(tableModel, {\n firstRow: tableModel.rows.length - 1,\n firstColumn: 0,\n lastRow: tableModel.rows.length - 1,\n lastColumn: lastColumn,\n });\n normalizeTable(tableModel, model.format);\n\n // Add selection marker to the first cell of the new row\n const markerParagraph =\n tableModel.rows[tableModel.rows.length - 1]?.cells[0]?.blocks[0];\n if (markerParagraph.blockType == 'Paragraph') {\n const marker = createSelectionMarker(model.format);\n\n mutateBlock(markerParagraph).segments.unshift(marker);\n setParagraphNotImplicit(markerParagraph);\n setSelection(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);\n }\n\n rawEvent.preventDefault();\n return true;\n }\n }\n\n return false;\n}\n"]}
|
|
@@ -14,8 +14,9 @@ export function handleTabOnTable(model, rawEvent) {
|
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
16
|
function isWholeTableSelected(tableModel) {
|
|
17
|
-
var _a, _b
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
var _a, _b;
|
|
18
|
+
var lastRow = tableModel.rows[tableModel.rows.length - 1];
|
|
19
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastRow.cells.length - 1];
|
|
20
|
+
return ((_b = (_a = tableModel.rows[0]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.isSelected) && (lastCell === null || lastCell === void 0 ? void 0 : lastCell.isSelected);
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=handleTabOnTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMlE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;IACzF,IAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;QAChD,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAqC;;IAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"handleTabOnTable.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMlE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAmC,EAAE,QAAuB;IACzF,IAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;QAChD,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAqC;;IAC/D,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAA,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,UAAU,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAA,CAAC;AAC5E,CAAC","sourcesContent":["import { getFirstSelectedTable } from 'roosterjs-content-model-dom';\nimport { setModelIndentation } from 'roosterjs-content-model-api';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTable,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the whole table is selected, indent or outdent the whole table with setModelIndentation.\n * @internal\n */\nexport function handleTabOnTable(model: ReadonlyContentModelDocument, rawEvent: KeyboardEvent) {\n const tableModel = getFirstSelectedTable(model)[0];\n if (tableModel && isWholeTableSelected(tableModel)) {\n setModelIndentation(model, rawEvent.shiftKey ? 'outdent' : 'indent');\n rawEvent.preventDefault();\n return true;\n }\n return false;\n}\n\nfunction isWholeTableSelected(tableModel: ReadonlyContentModelTable) {\n const lastRow = tableModel.rows[tableModel.rows.length - 1];\n const lastCell = lastRow?.cells[lastRow.cells.length - 1];\n\n return tableModel.rows[0]?.cells[0]?.isSelected && lastCell?.isSelected;\n}\n"]}
|
|
@@ -5,32 +5,35 @@ import { createSelectionMarker, getFirstSelectedTable, mutateBlock, normalizeTab
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export function handleTabOnTableCell(model, cell, rawEvent) {
|
|
8
|
-
var _a, _b
|
|
8
|
+
var _a, _b;
|
|
9
9
|
var readonlyTableModel = getFirstSelectedTable(model)[0];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonlyTableModel
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
10
|
+
if (readonlyTableModel) {
|
|
11
|
+
// Check if cursor is on last cell of the table
|
|
12
|
+
var lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];
|
|
13
|
+
var lastColumn = lastRow ? lastRow.cells.length - 1 : -1;
|
|
14
|
+
var lastCell = lastRow === null || lastRow === void 0 ? void 0 : lastRow.cells[lastColumn];
|
|
15
|
+
if (!rawEvent.shiftKey && lastCell && lastCell === cell) {
|
|
16
|
+
var tableModel = mutateBlock(readonlyTableModel);
|
|
17
|
+
insertTableRow(tableModel, 'insertBelow');
|
|
18
|
+
// Clear Table selection
|
|
19
|
+
clearSelectedCells(tableModel, {
|
|
20
|
+
firstRow: tableModel.rows.length - 1,
|
|
21
|
+
firstColumn: 0,
|
|
22
|
+
lastRow: tableModel.rows.length - 1,
|
|
23
|
+
lastColumn: lastColumn,
|
|
24
|
+
});
|
|
25
|
+
normalizeTable(tableModel, model.format);
|
|
26
|
+
// Add selection marker to the first cell of the new row
|
|
27
|
+
var markerParagraph = (_b = (_a = tableModel.rows[tableModel.rows.length - 1]) === null || _a === void 0 ? void 0 : _a.cells[0]) === null || _b === void 0 ? void 0 : _b.blocks[0];
|
|
28
|
+
if (markerParagraph.blockType == 'Paragraph') {
|
|
29
|
+
var marker = createSelectionMarker(model.format);
|
|
30
|
+
mutateBlock(markerParagraph).segments.unshift(marker);
|
|
31
|
+
setParagraphNotImplicit(markerParagraph);
|
|
32
|
+
setSelection(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);
|
|
33
|
+
}
|
|
34
|
+
rawEvent.preventDefault();
|
|
35
|
+
return true;
|
|
31
36
|
}
|
|
32
|
-
rawEvent.preventDefault();
|
|
33
|
-
return true;
|
|
34
37
|
}
|
|
35
38
|
return false;
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,YAAY,GACf,MAAM,6BAA6B,CAAC;AAMrC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;IAEvB,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,+CAA+C;
|
|
1
|
+
{"version":3,"file":"handleTabOnTableCell.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,YAAY,GACf,MAAM,6BAA6B,CAAC;AAMrC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,KAAmC,EACnC,IAAmC,EACnC,QAAuB;;IAEvB,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,IAAI,kBAAkB,EAAE;QACpB,+CAA+C;QAC/C,IAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5E,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrD,IAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACnD,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAE1C,wBAAwB;YACxB,kBAAkB,CAAC,UAAU,EAAE;gBAC3B,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACpC,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACnC,UAAU,EAAE,UAAU;aACzB,CAAC,CAAC;YACH,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAEzC,wDAAwD;YACxD,IAAM,eAAe,GACjB,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,eAAe,CAAC,SAAS,IAAI,WAAW,EAAE;gBAC1C,IAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEnD,WAAW,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtD,uBAAuB,CAAC,eAAe,CAAC,CAAC;gBACzC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aAC9E;YAED,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { clearSelectedCells, insertTableRow } from 'roosterjs-content-model-api';\nimport {\n createSelectionMarker,\n getFirstSelectedTable,\n mutateBlock,\n normalizeTable,\n setParagraphNotImplicit,\n setSelection,\n} from 'roosterjs-content-model-dom';\nimport type {\n ReadonlyContentModelDocument,\n ReadonlyContentModelTableCell,\n} from 'roosterjs-content-model-types';\n\n/**\n * When the cursor is on the last cell of a table, add new row and focus first new cell.\n * @internal\n */\nexport function handleTabOnTableCell(\n model: ReadonlyContentModelDocument,\n cell: ReadonlyContentModelTableCell,\n rawEvent: KeyboardEvent\n) {\n const readonlyTableModel = getFirstSelectedTable(model)[0];\n\n if (readonlyTableModel) {\n // Check if cursor is on last cell of the table\n const lastRow = readonlyTableModel.rows[readonlyTableModel.rows.length - 1];\n const lastColumn = lastRow ? lastRow.cells.length - 1 : -1;\n const lastCell = lastRow?.cells[lastColumn];\n\n if (!rawEvent.shiftKey && lastCell && lastCell === cell) {\n const tableModel = mutateBlock(readonlyTableModel);\n insertTableRow(tableModel, 'insertBelow');\n\n // Clear Table selection\n clearSelectedCells(tableModel, {\n firstRow: tableModel.rows.length - 1,\n firstColumn: 0,\n lastRow: tableModel.rows.length - 1,\n lastColumn: lastColumn,\n });\n normalizeTable(tableModel, model.format);\n\n // Add selection marker to the first cell of the new row\n const markerParagraph =\n tableModel.rows[tableModel.rows.length - 1]?.cells[0]?.blocks[0];\n if (markerParagraph.blockType == 'Paragraph') {\n const marker = createSelectionMarker(model.format);\n\n mutateBlock(markerParagraph).segments.unshift(marker);\n setParagraphNotImplicit(markerParagraph);\n setSelection(tableModel.rows[tableModel.rows.length - 1].cells[0], marker);\n }\n\n rawEvent.preventDefault();\n return true;\n }\n }\n\n return false;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"description": "Plugins for roosterjs",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.3.1",
|
|
6
|
-
"roosterjs-content-model-core": "^9.
|
|
7
|
-
"roosterjs-content-model-dom": "^9.
|
|
8
|
-
"roosterjs-content-model-types": "^9.
|
|
9
|
-
"roosterjs-content-model-api": "^9.
|
|
6
|
+
"roosterjs-content-model-core": "^9.26.0",
|
|
7
|
+
"roosterjs-content-model-dom": "^9.26.0",
|
|
8
|
+
"roosterjs-content-model-types": "^9.26.0",
|
|
9
|
+
"roosterjs-content-model-api": "^9.26.0"
|
|
10
10
|
},
|
|
11
|
-
"version": "9.
|
|
11
|
+
"version": "9.26.0",
|
|
12
12
|
"main": "./lib/index.js",
|
|
13
13
|
"typings": "./lib/index.d.ts",
|
|
14
14
|
"module": "./lib-mjs/index.js",
|