Socket
Socket
Sign inDemoInstall

roosterjs-content-model-api

Package Overview
Dependencies
3
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 9.1.0 to 9.2.0

lib-amd/modelApi/list/getListAnnounceData.d.ts

1

lib-amd/index.d.ts

@@ -57,1 +57,2 @@ export { insertTable } from './publicApi/table/insertTable';

export { matchLink } from './modelApi/link/matchLink';
export { getListAnnounceData } from './modelApi/list/getListAnnounceData';

5

lib-amd/index.js

@@ -1,5 +0,5 @@

define(["require", "exports", "./publicApi/table/insertTable", "./publicApi/table/formatTable", "./publicApi/table/setTableCellShade", "./publicApi/table/editTable", "./publicApi/table/applyTableBorderFormat", "./publicApi/list/toggleBullet", "./publicApi/list/toggleNumbering", "./publicApi/segment/toggleBold", "./publicApi/segment/toggleItalic", "./publicApi/segment/toggleUnderline", "./publicApi/segment/toggleStrikethrough", "./publicApi/segment/toggleSubscript", "./publicApi/segment/toggleSuperscript", "./publicApi/segment/setBackgroundColor", "./publicApi/segment/setFontName", "./publicApi/segment/setFontSize", "./publicApi/segment/setTextColor", "./publicApi/segment/changeFontSize", "./publicApi/segment/applySegmentFormat", "./publicApi/segment/changeCapitalization", "./publicApi/image/insertImage", "./publicApi/list/setListStyle", "./publicApi/list/setListStartNumber", "./publicApi/block/setIndentation", "./publicApi/block/setAlignment", "./publicApi/block/setDirection", "./publicApi/block/setHeadingLevel", "./publicApi/block/toggleBlockQuote", "./publicApi/block/setSpacing", "./publicApi/image/setImageBorder", "./publicApi/image/setImageBoxShadow", "./publicApi/image/changeImage", "./publicApi/format/getFormatState", "./publicApi/format/clearFormat", "./publicApi/link/insertLink", "./publicApi/link/removeLink", "./publicApi/link/adjustLinkSelection", "./publicApi/image/setImageAltText", "./publicApi/image/adjustImageSelection", "./publicApi/block/setParagraphMargin", "./publicApi/segment/toggleCode", "./publicApi/entity/insertEntity", "./modelApi/table/insertTableRow", "./modelApi/table/insertTableColumn", "./modelApi/table/clearSelectedCells", "./publicApi/utils/formatTableWithContentModel", "./publicApi/utils/formatImageWithContentModel", "./publicApi/utils/formatParagraphWithContentModel", "./publicApi/utils/formatSegmentWithContentModel", "./publicApi/utils/formatTextSegmentBeforeSelectionMarker", "./modelApi/list/setListType", "./modelApi/list/setModelListStyle", "./modelApi/list/setModelListStartNumber", "./modelApi/list/findListItemsInSameThread", "./modelApi/block/setModelIndentation", "./modelApi/link/matchLink"], function (require, exports, insertTable_1, formatTable_1, setTableCellShade_1, editTable_1, applyTableBorderFormat_1, toggleBullet_1, toggleNumbering_1, toggleBold_1, toggleItalic_1, toggleUnderline_1, toggleStrikethrough_1, toggleSubscript_1, toggleSuperscript_1, setBackgroundColor_1, setFontName_1, setFontSize_1, setTextColor_1, changeFontSize_1, applySegmentFormat_1, changeCapitalization_1, insertImage_1, setListStyle_1, setListStartNumber_1, setIndentation_1, setAlignment_1, setDirection_1, setHeadingLevel_1, toggleBlockQuote_1, setSpacing_1, setImageBorder_1, setImageBoxShadow_1, changeImage_1, getFormatState_1, clearFormat_1, insertLink_1, removeLink_1, adjustLinkSelection_1, setImageAltText_1, adjustImageSelection_1, setParagraphMargin_1, toggleCode_1, insertEntity_1, insertTableRow_1, insertTableColumn_1, clearSelectedCells_1, formatTableWithContentModel_1, formatImageWithContentModel_1, formatParagraphWithContentModel_1, formatSegmentWithContentModel_1, formatTextSegmentBeforeSelectionMarker_1, setListType_1, setModelListStyle_1, setModelListStartNumber_1, findListItemsInSameThread_1, setModelIndentation_1, matchLink_1) {
define(["require", "exports", "./publicApi/table/insertTable", "./publicApi/table/formatTable", "./publicApi/table/setTableCellShade", "./publicApi/table/editTable", "./publicApi/table/applyTableBorderFormat", "./publicApi/list/toggleBullet", "./publicApi/list/toggleNumbering", "./publicApi/segment/toggleBold", "./publicApi/segment/toggleItalic", "./publicApi/segment/toggleUnderline", "./publicApi/segment/toggleStrikethrough", "./publicApi/segment/toggleSubscript", "./publicApi/segment/toggleSuperscript", "./publicApi/segment/setBackgroundColor", "./publicApi/segment/setFontName", "./publicApi/segment/setFontSize", "./publicApi/segment/setTextColor", "./publicApi/segment/changeFontSize", "./publicApi/segment/applySegmentFormat", "./publicApi/segment/changeCapitalization", "./publicApi/image/insertImage", "./publicApi/list/setListStyle", "./publicApi/list/setListStartNumber", "./publicApi/block/setIndentation", "./publicApi/block/setAlignment", "./publicApi/block/setDirection", "./publicApi/block/setHeadingLevel", "./publicApi/block/toggleBlockQuote", "./publicApi/block/setSpacing", "./publicApi/image/setImageBorder", "./publicApi/image/setImageBoxShadow", "./publicApi/image/changeImage", "./publicApi/format/getFormatState", "./publicApi/format/clearFormat", "./publicApi/link/insertLink", "./publicApi/link/removeLink", "./publicApi/link/adjustLinkSelection", "./publicApi/image/setImageAltText", "./publicApi/image/adjustImageSelection", "./publicApi/block/setParagraphMargin", "./publicApi/segment/toggleCode", "./publicApi/entity/insertEntity", "./modelApi/table/insertTableRow", "./modelApi/table/insertTableColumn", "./modelApi/table/clearSelectedCells", "./publicApi/utils/formatTableWithContentModel", "./publicApi/utils/formatImageWithContentModel", "./publicApi/utils/formatParagraphWithContentModel", "./publicApi/utils/formatSegmentWithContentModel", "./publicApi/utils/formatTextSegmentBeforeSelectionMarker", "./modelApi/list/setListType", "./modelApi/list/setModelListStyle", "./modelApi/list/setModelListStartNumber", "./modelApi/list/findListItemsInSameThread", "./modelApi/block/setModelIndentation", "./modelApi/link/matchLink", "./modelApi/list/getListAnnounceData"], function (require, exports, insertTable_1, formatTable_1, setTableCellShade_1, editTable_1, applyTableBorderFormat_1, toggleBullet_1, toggleNumbering_1, toggleBold_1, toggleItalic_1, toggleUnderline_1, toggleStrikethrough_1, toggleSubscript_1, toggleSuperscript_1, setBackgroundColor_1, setFontName_1, setFontSize_1, setTextColor_1, changeFontSize_1, applySegmentFormat_1, changeCapitalization_1, insertImage_1, setListStyle_1, setListStartNumber_1, setIndentation_1, setAlignment_1, setDirection_1, setHeadingLevel_1, toggleBlockQuote_1, setSpacing_1, setImageBorder_1, setImageBoxShadow_1, changeImage_1, getFormatState_1, clearFormat_1, insertLink_1, removeLink_1, adjustLinkSelection_1, setImageAltText_1, adjustImageSelection_1, setParagraphMargin_1, toggleCode_1, insertEntity_1, insertTableRow_1, insertTableColumn_1, clearSelectedCells_1, formatTableWithContentModel_1, formatImageWithContentModel_1, formatParagraphWithContentModel_1, formatSegmentWithContentModel_1, formatTextSegmentBeforeSelectionMarker_1, setListType_1, setModelListStyle_1, setModelListStartNumber_1, findListItemsInSameThread_1, setModelIndentation_1, matchLink_1, getListAnnounceData_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.matchLink = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = exports.formatTextSegmentBeforeSelectionMarker = exports.formatSegmentWithContentModel = exports.formatParagraphWithContentModel = exports.formatImageWithContentModel = exports.formatTableWithContentModel = exports.clearSelectedCells = exports.insertTableColumn = exports.insertTableRow = exports.insertEntity = exports.toggleCode = exports.setParagraphMargin = exports.adjustImageSelection = exports.setImageAltText = exports.adjustLinkSelection = exports.removeLink = exports.insertLink = exports.clearFormat = exports.getFormatState = exports.changeImage = exports.setImageBoxShadow = exports.setImageBorder = exports.setSpacing = exports.toggleBlockQuote = exports.setHeadingLevel = exports.setDirection = exports.setAlignment = exports.setIndentation = exports.setListStartNumber = exports.setListStyle = exports.insertImage = exports.changeCapitalization = exports.applySegmentFormat = exports.changeFontSize = exports.setTextColor = exports.setFontSize = exports.setFontName = exports.setBackgroundColor = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleUnderline = exports.toggleItalic = exports.toggleBold = exports.toggleNumbering = exports.toggleBullet = exports.applyTableBorderFormat = exports.editTable = exports.setTableCellShade = exports.formatTable = exports.insertTable = void 0;
exports.getListAnnounceData = exports.matchLink = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = exports.formatTextSegmentBeforeSelectionMarker = exports.formatSegmentWithContentModel = exports.formatParagraphWithContentModel = exports.formatImageWithContentModel = exports.formatTableWithContentModel = exports.clearSelectedCells = exports.insertTableColumn = exports.insertTableRow = exports.insertEntity = exports.toggleCode = exports.setParagraphMargin = exports.adjustImageSelection = exports.setImageAltText = exports.adjustLinkSelection = exports.removeLink = exports.insertLink = exports.clearFormat = exports.getFormatState = exports.changeImage = exports.setImageBoxShadow = exports.setImageBorder = exports.setSpacing = exports.toggleBlockQuote = exports.setHeadingLevel = exports.setDirection = exports.setAlignment = exports.setIndentation = exports.setListStartNumber = exports.setListStyle = exports.insertImage = exports.changeCapitalization = exports.applySegmentFormat = exports.changeFontSize = exports.setTextColor = exports.setFontSize = exports.setFontName = exports.setBackgroundColor = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleUnderline = exports.toggleItalic = exports.toggleBold = exports.toggleNumbering = exports.toggleBullet = exports.applyTableBorderFormat = exports.editTable = exports.setTableCellShade = exports.formatTable = exports.insertTable = void 0;
Object.defineProperty(exports, "insertTable", { enumerable: true, get: function () { return insertTable_1.insertTable; } });

@@ -61,3 +61,4 @@ Object.defineProperty(exports, "formatTable", { enumerable: true, get: function () { return formatTable_1.formatTable; } });

Object.defineProperty(exports, "matchLink", { enumerable: true, get: function () { return matchLink_1.matchLink; } });
Object.defineProperty(exports, "getListAnnounceData", { enumerable: true, get: function () { return getListAnnounceData_1.getListAnnounceData; } });
});
//# sourceMappingURL=index.js.map

@@ -1,2 +0,2 @@

import type { ContentModelDocument } from 'roosterjs-content-model-types';
import type { ContentModelDocument, FormatContentModelContext } from 'roosterjs-content-model-types';
/**

@@ -8,2 +8,2 @@ * @param model The content model to set indentation

*/
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number): boolean;
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number, context?: FormatContentModelContext): boolean;

@@ -1,2 +0,2 @@

define(["require", "exports", "../list/findListItemsInSameThread", "roosterjs-content-model-dom"], function (require, exports, findListItemsInSameThread_1, roosterjs_content_model_dom_1) {
define(["require", "exports", "tslib", "../list/findListItemsInSameThread", "../list/getListAnnounceData", "roosterjs-content-model-dom"], function (require, exports, tslib_1, findListItemsInSameThread_1, getListAnnounceData_1, roosterjs_content_model_dom_1) {
"use strict";

@@ -12,3 +12,3 @@ Object.defineProperty(exports, "__esModule", { value: true });

*/
function setModelIndentation(model, indentation, length) {
function setModelIndentation(model, indentation, length, context) {
if (length === void 0) { length = IndentStepInPixel; }

@@ -60,2 +60,5 @@ var paragraphOrListItem = (0, roosterjs_content_model_dom_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell']);

}
if (block.levels.length > 0 && context) {
context.announceData = (0, getListAnnounceData_1.getListAnnounceData)((0, tslib_1.__spreadArray)([block], (0, tslib_1.__read)(path), false));
}
}

@@ -62,0 +65,0 @@ }

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelListItem } from 'roosterjs-content-model-types';
import type { ContentModelBlockGroup, ContentModelListItem } from 'roosterjs-content-model-types';
/**

@@ -7,2 +7,2 @@ * @param model The content model

*/
export declare function findListItemsInSameThread(model: ContentModelDocument, currentItem: ContentModelListItem): ContentModelListItem[];
export declare function findListItemsInSameThread(group: ContentModelBlockGroup, currentItem: ContentModelListItem): ContentModelListItem[];

@@ -10,5 +10,5 @@ define(["require", "exports"], function (require, exports) {

*/
function findListItemsInSameThread(model, currentItem) {
function findListItemsInSameThread(group, currentItem) {
var items = [];
findListItems(model, items);
findListItems(group, items);
return filterListItems(items, currentItem);

@@ -81,3 +81,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -100,3 +102,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -103,0 +107,0 @@ }

@@ -32,2 +32,4 @@ define(["require", "exports", "roosterjs-content-model-dom"], function (require, exports, roosterjs_content_model_dom_1) {

});
image.isSelected = true;
(0, roosterjs_content_model_dom_1.setSelection)(model, image);
return true;

@@ -34,0 +36,0 @@ }, {

@@ -12,2 +12,3 @@ define(["require", "exports", "../../modelApi/table/alignTable", "../../modelApi/table/deleteTable", "../../modelApi/table/deleteTableColumn", "../../modelApi/table/deleteTableRow", "../utils/formatTableWithContentModel", "../../modelApi/table/insertTableColumn", "../../modelApi/table/insertTableRow", "../../modelApi/table/mergeTableCells", "../../modelApi/table/mergeTableColumn", "../../modelApi/table/mergeTableRow", "../../modelApi/table/splitTableCellHorizontally", "../../modelApi/table/splitTableCellVertically", "../../modelApi/table/alignTableCell"], function (require, exports, alignTable_1, deleteTable_1, deleteTableColumn_1, deleteTableRow_1, formatTableWithContentModel_1, insertTableColumn_1, insertTableRow_1, mergeTableCells_1, mergeTableColumn_1, mergeTableRow_1, splitTableCellHorizontally_1, splitTableCellVertically_1, alignTableCell_1) {

editor.focus();
fixUpSafariSelection(editor);
(0, formatTableWithContentModel_1.formatTableWithContentModel)(editor, 'editTable', function (tableModel) {

@@ -68,3 +69,19 @@ switch (operation) {

exports.editTable = editTable;
// In safari, when open context menu under a table, it may expand the range selection to the beginning of next table cell.
// So we make a workaround here to collapse the selection when need, to avoid unexpected table editing behavior
// (e.g. insert two columns but actually need one only)
function fixUpSafariSelection(editor) {
if (editor.getEnvironment().isSafari) {
var selection = editor.getDOMSelection();
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'range' && !selection.range.collapsed) {
selection.range.collapse(true /*toStart*/);
editor.setDOMSelection({
type: 'range',
range: selection.range,
isReverted: false,
});
}
}
}
});
//# sourceMappingURL=editTable.js.map

@@ -21,3 +21,4 @@ define(["require", "exports", "tslib", "../../modelApi/selection/adjustWordSelection", "roosterjs-content-model-dom"], function (require, exports, tslib_1, adjustWordSelection_1, roosterjs_content_model_dom_1) {

var para_1 = segmentAndParagraphs[0][1];
segmentAndParagraphs = (0, adjustWordSelection_1.adjustWordSelection)(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1]; });
var path_1 = segmentAndParagraphs[0][2];
segmentAndParagraphs = (0, adjustWordSelection_1.adjustWordSelection)(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1, path_1]; });
if (segmentAndParagraphs.length > 1) {

@@ -24,0 +25,0 @@ isCollapsedSelection = false;

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, IEditor } from 'roosterjs-content-model-types';
import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, FormatContentModelOptions, IEditor } from 'roosterjs-content-model-types';
/**

@@ -6,3 +6,4 @@ * Invoke a callback to format the text segment before the selection marker using Content Model

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean): void;
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean, options?: FormatContentModelOptions): boolean;

@@ -9,4 +9,6 @@ define(["require", "exports", "roosterjs-content-model-dom"], function (require, exports, roosterjs_content_model_dom_1) {

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
function formatTextSegmentBeforeSelectionMarker(editor, callback) {
function formatTextSegmentBeforeSelectionMarker(editor, callback, options) {
var result = false;
editor.formatContentModel(function (model, context) {

@@ -21,2 +23,3 @@ var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_dom_1.getSelectedSegmentsAndParagraphs)(model, false /*includeFormatHolder*/);

if (previousSegment && previousSegment.segmentType === 'Text') {
result = true;
return callback(model, previousSegment, paragraph, marker.format, context);

@@ -27,3 +30,4 @@ }

return false;
});
}, options);
return result;
}

@@ -30,0 +34,0 @@ exports.formatTextSegmentBeforeSelectionMarker = formatTextSegmentBeforeSelectionMarker;

@@ -57,1 +57,2 @@ export { insertTable } from './publicApi/table/insertTable';

export { matchLink } from './modelApi/link/matchLink';
export { getListAnnounceData } from './modelApi/list/getListAnnounceData';

@@ -57,2 +57,3 @@ export { insertTable } from './publicApi/table/insertTable';

export { matchLink } from './modelApi/link/matchLink';
export { getListAnnounceData } from './modelApi/list/getListAnnounceData';
//# sourceMappingURL=index.js.map

@@ -1,2 +0,2 @@

import type { ContentModelDocument } from 'roosterjs-content-model-types';
import type { ContentModelDocument, FormatContentModelContext } from 'roosterjs-content-model-types';
/**

@@ -8,2 +8,2 @@ * @param model The content model to set indentation

*/
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number): boolean;
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number, context?: FormatContentModelContext): boolean;

@@ -0,2 +1,4 @@

import { __read, __spreadArray } from "tslib";
import { findListItemsInSameThread } from '../list/findListItemsInSameThread';
import { getListAnnounceData } from '../list/getListAnnounceData';
import { createListLevel, getOperationalBlocks, isBlockGroupOfType, parseValueWithUnit, updateListMetadata, } from 'roosterjs-content-model-dom';

@@ -10,3 +12,3 @@ var IndentStepInPixel = 40;

*/
export function setModelIndentation(model, indentation, length) {
export function setModelIndentation(model, indentation, length, context) {
if (length === void 0) { length = IndentStepInPixel; }

@@ -58,2 +60,5 @@ var paragraphOrListItem = getOperationalBlocks(model, ['ListItem'], ['TableCell']);

}
if (block.levels.length > 0 && context) {
context.announceData = getListAnnounceData(__spreadArray([block], __read(path), false));
}
}

@@ -60,0 +65,0 @@ }

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelListItem } from 'roosterjs-content-model-types';
import type { ContentModelBlockGroup, ContentModelListItem } from 'roosterjs-content-model-types';
/**

@@ -7,2 +7,2 @@ * @param model The content model

*/
export declare function findListItemsInSameThread(model: ContentModelDocument, currentItem: ContentModelListItem): ContentModelListItem[];
export declare function findListItemsInSameThread(group: ContentModelBlockGroup, currentItem: ContentModelListItem): ContentModelListItem[];

@@ -6,5 +6,5 @@ /**

*/
export function findListItemsInSameThread(model, currentItem) {
export function findListItemsInSameThread(group, currentItem) {
var items = [];
findListItems(model, items);
findListItems(group, items);
return filterListItems(items, currentItem);

@@ -76,3 +76,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -95,3 +97,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -98,0 +102,0 @@ }

@@ -1,2 +0,2 @@

import { mergeModel, readFile, addSegment, createContentModelDocument, createImage, } from 'roosterjs-content-model-dom';
import { mergeModel, readFile, addSegment, createContentModelDocument, createImage, setSelection, } from 'roosterjs-content-model-dom';
/**

@@ -28,2 +28,4 @@ * Insert an image into current selected position

});
image.isSelected = true;
setSelection(model, image);
return true;

@@ -30,0 +32,0 @@ }, {

@@ -21,2 +21,3 @@ import { alignTable } from '../../modelApi/table/alignTable';

editor.focus();
fixUpSafariSelection(editor);
formatTableWithContentModel(editor, 'editTable', function (tableModel) {

@@ -76,2 +77,18 @@ switch (operation) {

}
// In safari, when open context menu under a table, it may expand the range selection to the beginning of next table cell.
// So we make a workaround here to collapse the selection when need, to avoid unexpected table editing behavior
// (e.g. insert two columns but actually need one only)
function fixUpSafariSelection(editor) {
if (editor.getEnvironment().isSafari) {
var selection = editor.getDOMSelection();
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'range' && !selection.range.collapsed) {
selection.range.collapse(true /*toStart*/);
editor.setDOMSelection({
type: 'range',
range: selection.range,
isReverted: false,
});
}
}
}
//# sourceMappingURL=editTable.js.map

@@ -20,3 +20,4 @@ import { __read } from "tslib";

var para_1 = segmentAndParagraphs[0][1];
segmentAndParagraphs = adjustWordSelection(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1]; });
var path_1 = segmentAndParagraphs[0][2];
segmentAndParagraphs = adjustWordSelection(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1, path_1]; });
if (segmentAndParagraphs.length > 1) {

@@ -23,0 +24,0 @@ isCollapsedSelection = false;

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, IEditor } from 'roosterjs-content-model-types';
import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, FormatContentModelOptions, IEditor } from 'roosterjs-content-model-types';
/**

@@ -6,3 +6,4 @@ * Invoke a callback to format the text segment before the selection marker using Content Model

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean): void;
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean, options?: FormatContentModelOptions): boolean;

@@ -6,4 +6,6 @@ import { getSelectedSegmentsAndParagraphs } from 'roosterjs-content-model-dom';

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
export function formatTextSegmentBeforeSelectionMarker(editor, callback) {
export function formatTextSegmentBeforeSelectionMarker(editor, callback, options) {
var result = false;
editor.formatContentModel(function (model, context) {

@@ -18,2 +20,3 @@ var selectedSegmentsAndParagraphs = getSelectedSegmentsAndParagraphs(model, false /*includeFormatHolder*/);

if (previousSegment && previousSegment.segmentType === 'Text') {
result = true;
return callback(model, previousSegment, paragraph, marker.format, context);

@@ -24,4 +27,5 @@ }

return false;
});
}, options);
return result;
}
//# sourceMappingURL=formatTextSegmentBeforeSelectionMarker.js.map

@@ -57,1 +57,2 @@ export { insertTable } from './publicApi/table/insertTable';

export { matchLink } from './modelApi/link/matchLink';
export { getListAnnounceData } from './modelApi/list/getListAnnounceData';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatTextSegmentBeforeSelectionMarker = exports.formatSegmentWithContentModel = exports.formatParagraphWithContentModel = exports.formatImageWithContentModel = exports.formatTableWithContentModel = exports.clearSelectedCells = exports.insertTableColumn = exports.insertTableRow = exports.insertEntity = exports.toggleCode = exports.setParagraphMargin = exports.adjustImageSelection = exports.setImageAltText = exports.adjustLinkSelection = exports.removeLink = exports.insertLink = exports.clearFormat = exports.getFormatState = exports.changeImage = exports.setImageBoxShadow = exports.setImageBorder = exports.setSpacing = exports.toggleBlockQuote = exports.setHeadingLevel = exports.setDirection = exports.setAlignment = exports.setIndentation = exports.setListStartNumber = exports.setListStyle = exports.insertImage = exports.changeCapitalization = exports.applySegmentFormat = exports.changeFontSize = exports.setTextColor = exports.setFontSize = exports.setFontName = exports.setBackgroundColor = exports.toggleSuperscript = exports.toggleSubscript = exports.toggleStrikethrough = exports.toggleUnderline = exports.toggleItalic = exports.toggleBold = exports.toggleNumbering = exports.toggleBullet = exports.applyTableBorderFormat = exports.editTable = exports.setTableCellShade = exports.formatTable = exports.insertTable = void 0;
exports.matchLink = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = void 0;
exports.getListAnnounceData = exports.matchLink = exports.setModelIndentation = exports.findListItemsInSameThread = exports.setModelListStartNumber = exports.setModelListStyle = exports.setListType = void 0;
var insertTable_1 = require("./publicApi/table/insertTable");

@@ -117,2 +117,4 @@ Object.defineProperty(exports, "insertTable", { enumerable: true, get: function () { return insertTable_1.insertTable; } });

Object.defineProperty(exports, "matchLink", { enumerable: true, get: function () { return matchLink_1.matchLink; } });
var getListAnnounceData_1 = require("./modelApi/list/getListAnnounceData");
Object.defineProperty(exports, "getListAnnounceData", { enumerable: true, get: function () { return getListAnnounceData_1.getListAnnounceData; } });
//# sourceMappingURL=index.js.map

@@ -1,2 +0,2 @@

import type { ContentModelDocument } from 'roosterjs-content-model-types';
import type { ContentModelDocument, FormatContentModelContext } from 'roosterjs-content-model-types';
/**

@@ -8,2 +8,2 @@ * @param model The content model to set indentation

*/
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number): boolean;
export declare function setModelIndentation(model: ContentModelDocument, indentation: 'indent' | 'outdent', length?: number, context?: FormatContentModelContext): boolean;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setModelIndentation = void 0;
var tslib_1 = require("tslib");
var findListItemsInSameThread_1 = require("../list/findListItemsInSameThread");
var getListAnnounceData_1 = require("../list/getListAnnounceData");
var roosterjs_content_model_dom_1 = require("roosterjs-content-model-dom");

@@ -13,3 +15,3 @@ var IndentStepInPixel = 40;

*/
function setModelIndentation(model, indentation, length) {
function setModelIndentation(model, indentation, length, context) {
if (length === void 0) { length = IndentStepInPixel; }

@@ -61,2 +63,5 @@ var paragraphOrListItem = (0, roosterjs_content_model_dom_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell']);

}
if (block.levels.length > 0 && context) {
context.announceData = (0, getListAnnounceData_1.getListAnnounceData)((0, tslib_1.__spreadArray)([block], (0, tslib_1.__read)(path), false));
}
}

@@ -63,0 +68,0 @@ }

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelListItem } from 'roosterjs-content-model-types';
import type { ContentModelBlockGroup, ContentModelListItem } from 'roosterjs-content-model-types';
/**

@@ -7,2 +7,2 @@ * @param model The content model

*/
export declare function findListItemsInSameThread(model: ContentModelDocument, currentItem: ContentModelListItem): ContentModelListItem[];
export declare function findListItemsInSameThread(group: ContentModelBlockGroup, currentItem: ContentModelListItem): ContentModelListItem[];

@@ -9,5 +9,5 @@ "use strict";

*/
function findListItemsInSameThread(model, currentItem) {
function findListItemsInSameThread(group, currentItem) {
var items = [];
findListItems(model, items);
findListItems(group, items);
return filterListItems(items, currentItem);

@@ -80,3 +80,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -99,3 +101,5 @@ }

}
else if (!isOrderedList || startNumberOverride) {
else if (!isOrderedList ||
startNumberOverride ||
item.levels.length < currentItem.levels.length) {
break;

@@ -102,0 +106,0 @@ }

@@ -32,2 +32,4 @@ "use strict";

});
image.isSelected = true;
(0, roosterjs_content_model_dom_1.setSelection)(model, image);
return true;

@@ -34,0 +36,0 @@ }, {

@@ -24,2 +24,3 @@ "use strict";

editor.focus();
fixUpSafariSelection(editor);
(0, formatTableWithContentModel_1.formatTableWithContentModel)(editor, 'editTable', function (tableModel) {

@@ -80,2 +81,18 @@ switch (operation) {

exports.editTable = editTable;
// In safari, when open context menu under a table, it may expand the range selection to the beginning of next table cell.
// So we make a workaround here to collapse the selection when need, to avoid unexpected table editing behavior
// (e.g. insert two columns but actually need one only)
function fixUpSafariSelection(editor) {
if (editor.getEnvironment().isSafari) {
var selection = editor.getDOMSelection();
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'range' && !selection.range.collapsed) {
selection.range.collapse(true /*toStart*/);
editor.setDOMSelection({
type: 'range',
range: selection.range,
isReverted: false,
});
}
}
}
//# sourceMappingURL=editTable.js.map

@@ -23,3 +23,4 @@ "use strict";

var para_1 = segmentAndParagraphs[0][1];
segmentAndParagraphs = (0, adjustWordSelection_1.adjustWordSelection)(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1]; });
var path_1 = segmentAndParagraphs[0][2];
segmentAndParagraphs = (0, adjustWordSelection_1.adjustWordSelection)(model, segmentAndParagraphs[0][0]).map(function (x) { return [x, para_1, path_1]; });
if (segmentAndParagraphs.length > 1) {

@@ -26,0 +27,0 @@ isCollapsedSelection = false;

@@ -1,2 +0,2 @@

import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, IEditor } from 'roosterjs-content-model-types';
import type { ContentModelDocument, ContentModelParagraph, ContentModelSegmentFormat, ContentModelText, FormatContentModelContext, FormatContentModelOptions, IEditor } from 'roosterjs-content-model-types';
/**

@@ -6,3 +6,4 @@ * Invoke a callback to format the text segment before the selection marker using Content Model

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean): void;
export declare function formatTextSegmentBeforeSelectionMarker(editor: IEditor, callback: (model: ContentModelDocument, previousSegment: ContentModelText, paragraph: ContentModelParagraph, markerFormat: ContentModelSegmentFormat, context: FormatContentModelContext) => boolean, options?: FormatContentModelOptions): boolean;

@@ -9,4 +9,6 @@ "use strict";

* @param callback The callback to format the text segment.
* @returns True if the segment before cursor is found and callback is called, otherwise false
*/
function formatTextSegmentBeforeSelectionMarker(editor, callback) {
function formatTextSegmentBeforeSelectionMarker(editor, callback, options) {
var result = false;
editor.formatContentModel(function (model, context) {

@@ -21,2 +23,3 @@ var selectedSegmentsAndParagraphs = (0, roosterjs_content_model_dom_1.getSelectedSegmentsAndParagraphs)(model, false /*includeFormatHolder*/);

if (previousSegment && previousSegment.segmentType === 'Text') {
result = true;
return callback(model, previousSegment, paragraph, marker.format, context);

@@ -27,5 +30,6 @@ }

return false;
});
}, options);
return result;
}
exports.formatTextSegmentBeforeSelectionMarker = formatTextSegmentBeforeSelectionMarker;
//# sourceMappingURL=formatTextSegmentBeforeSelectionMarker.js.map

@@ -6,6 +6,6 @@ {

"tslib": "^2.3.1",
"roosterjs-content-model-dom": "^9.1.0",
"roosterjs-content-model-types": "^9.1.0"
"roosterjs-content-model-dom": "^9.2.0",
"roosterjs-content-model-types": "^9.2.0"
},
"version": "9.1.0",
"version": "9.2.0",
"main": "./lib/index.js",

@@ -12,0 +12,0 @@ "typings": "./lib/index.d.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc