@worktile/theia 21.1.3 → 21.1.4
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.
|
@@ -2204,6 +2204,27 @@ const isDirectionKeydown = (event) => {
|
|
|
2204
2204
|
return isMoveUp || isMoveDown || isMoveBackward || isMoveForward;
|
|
2205
2205
|
};
|
|
2206
2206
|
|
|
2207
|
+
const getTextFromFragment = (nodes) => {
|
|
2208
|
+
const collect = (node) => {
|
|
2209
|
+
if (Text.isText(node) || node.children.some(child => Text.isText(child))) {
|
|
2210
|
+
return Node.string(node);
|
|
2211
|
+
}
|
|
2212
|
+
const parts = [];
|
|
2213
|
+
for (const child of node.children) {
|
|
2214
|
+
const text = collect(child);
|
|
2215
|
+
if (text) {
|
|
2216
|
+
parts.push(text);
|
|
2217
|
+
}
|
|
2218
|
+
}
|
|
2219
|
+
return parts.join('\n');
|
|
2220
|
+
};
|
|
2221
|
+
const result = nodes
|
|
2222
|
+
.map(collect)
|
|
2223
|
+
.filter((text) => Boolean(text))
|
|
2224
|
+
.join('\n')
|
|
2225
|
+
.replace(/\n+$/g, '');
|
|
2226
|
+
return result;
|
|
2227
|
+
};
|
|
2207
2228
|
const setClipboardDataByDom = async (e, fragment, data) => {
|
|
2208
2229
|
const nodes = Array.isArray(fragment) ? fragment : [fragment];
|
|
2209
2230
|
const htmlString = TheiaConverter.convertToHtml(nodes);
|
|
@@ -2217,10 +2238,7 @@ const setClipboardDataByDom = async (e, fragment, data) => {
|
|
|
2217
2238
|
child.innerHTML = htmlString;
|
|
2218
2239
|
document.body.appendChild(div);
|
|
2219
2240
|
const attach = div.childNodes[0];
|
|
2220
|
-
|
|
2221
|
-
nodes.forEach(node => {
|
|
2222
|
-
plainText = plainText ? plainText + ' ' + Node.string(node) : Node.string(node);
|
|
2223
|
-
});
|
|
2241
|
+
const plainText = getTextFromFragment(nodes);
|
|
2224
2242
|
const clipboardData = createClipboardData(htmlString, nodes, plainText, []);
|
|
2225
2243
|
await setClipboardData(clipboardData, div, attach, data);
|
|
2226
2244
|
document.body.removeChild(div);
|
|
@@ -6416,8 +6434,7 @@ function removeTable(opts, editor) {
|
|
|
6416
6434
|
}
|
|
6417
6435
|
|
|
6418
6436
|
function sortCell(cells) {
|
|
6419
|
-
cells.sort((a, b) => a.row - b.row);
|
|
6420
|
-
cells.sort((a, b) => a.col - b.col);
|
|
6437
|
+
cells.sort((a, b) => a.row - b.row || a.col - b.col);
|
|
6421
6438
|
}
|
|
6422
6439
|
function setCellIndent(editor, indentType, child, at) {
|
|
6423
6440
|
const allowedTypes = IndentEditor.getAllowedTypes(editor);
|
|
@@ -6476,26 +6493,33 @@ function calculateCellSpan(selectCellNodes, leftCellDict) {
|
|
|
6476
6493
|
return { rowspan, colspan };
|
|
6477
6494
|
}
|
|
6478
6495
|
function mergeCell(editor, selectedCells) {
|
|
6496
|
+
if (!editor.selection || !selectedCells?.length || selectedCells.length <= 1) {
|
|
6497
|
+
return;
|
|
6498
|
+
}
|
|
6479
6499
|
sortCell(selectedCells);
|
|
6480
6500
|
const selectCellNodes = getSelectCellNode(editor, selectedCells);
|
|
6501
|
+
if (selectCellNodes.length !== selectedCells.length) {
|
|
6502
|
+
return;
|
|
6503
|
+
}
|
|
6504
|
+
if (!isRectangularInTableCells(editor, selectedCells)) {
|
|
6505
|
+
return;
|
|
6506
|
+
}
|
|
6507
|
+
const visibleCellNodes = selectCellNodes.filter(item => !item.node.hidden);
|
|
6508
|
+
if (visibleCellNodes.length <= 1) {
|
|
6509
|
+
return;
|
|
6510
|
+
}
|
|
6511
|
+
const cellPaths = selectCellNodes.map(cell => findPath(editor, cell.node));
|
|
6512
|
+
const leftTopCellPath = cellPaths[0];
|
|
6513
|
+
const leftCellDict = getLeftCellDict(selectCellNodes);
|
|
6514
|
+
const { rowspan, colspan } = calculateCellSpan(selectCellNodes, leftCellDict);
|
|
6481
6515
|
Editor.withoutNormalizing(editor, () => {
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
selectCellNodes.forEach((cell, index) => {
|
|
6485
|
-
const { row, node } = cell;
|
|
6486
|
-
if (node) {
|
|
6487
|
-
const cellPath = findPath(editor, node);
|
|
6488
|
-
if (index === 0) {
|
|
6489
|
-
leftTopCellPath = cellPath;
|
|
6490
|
-
}
|
|
6491
|
-
else {
|
|
6492
|
-
mergeCellContent(editor, leftTopCellPath, cellPath);
|
|
6493
|
-
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: true }, { at: cellPath });
|
|
6494
|
-
}
|
|
6495
|
-
}
|
|
6516
|
+
cellPaths.slice(1).forEach(cellPath => {
|
|
6517
|
+
mergeCellContent(editor, leftTopCellPath, cellPath);
|
|
6496
6518
|
});
|
|
6497
|
-
let { rowspan, colspan } = calculateCellSpan(selectCellNodes, leftCellDict);
|
|
6498
6519
|
Transforms.setNodes(editor, { rowspan, colspan }, { at: leftTopCellPath });
|
|
6520
|
+
cellPaths.slice(1).forEach(cellPath => {
|
|
6521
|
+
Transforms.setNodes(editor, { colspan: null, rowspan: null, hidden: true }, { at: cellPath });
|
|
6522
|
+
});
|
|
6499
6523
|
Transforms.select(editor, leftTopCellPath);
|
|
6500
6524
|
Transforms.collapse(editor, { edge: 'end' });
|
|
6501
6525
|
});
|
|
@@ -19167,5 +19191,5 @@ const withTestPlugin = (plugins, initValue) => {
|
|
|
19167
19191
|
* Generated bundle index. Do not edit.
|
|
19168
19192
|
*/
|
|
19169
19193
|
|
|
19170
|
-
export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BLOCK_HIDDEN_CLASS, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_DEFAULT_MAX_HEIGHT, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeaderLevelMap, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LOWEST_TEXT_CONTAINER_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ROOT_ELEMENT_MARGIN_BOTTOM, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheCode, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTable, TheTableSelect, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, bottomRightPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createBreakBarChar, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDe as deDeLocale, deleteElementKey, enUs as enUsLocale, errorImageUrlMock, expandPreviousHeadings, extractFragment, extractFragmentByHTML, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getAllVisibleState, getCellPositionsFromRange, getCollapsedStandardHeadingAbove, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getFollowElements, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getPreviousHeading, getPreviousRelatedHeadingElements, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getTheDefaultPluginMenu, getToolbarClass, hasHeaderRow, hasNumberedColumn, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isHeadingElement, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isPureHeading, isPureParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isStandardHeadingElement, isStandardHeadingElementByType, isUrl, isVirtualKey, jaJp as jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRu as ruRuLocale, setClipboardDataByDom, setEditorUUID, theTethysIconRegistryFaker, toggleClass, toggleHeadingRelatedElement, toggleProperty, toggleStyle, topLeftPosition, topRightPosition, uniqueCellPosition, updatePopoverPosition, withMention, withTestPlugin, withTheia, zhHans as zhHansLocale, zhHant as zhHantLocale };
|
|
19194
|
+
export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BLOCK_HIDDEN_CLASS, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_DEFAULT_MAX_HEIGHT, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeaderLevelMap, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LOWEST_TEXT_CONTAINER_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ROOT_ELEMENT_MARGIN_BOTTOM, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheCode, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTable, TheTableSelect, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, bottomRightPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createBreakBarChar, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDe as deDeLocale, deleteElementKey, enUs as enUsLocale, errorImageUrlMock, expandPreviousHeadings, extractFragment, extractFragmentByHTML, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getAllVisibleState, getCellPositionsFromRange, getCollapsedStandardHeadingAbove, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getFollowElements, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getPreviousHeading, getPreviousRelatedHeadingElements, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getTextFromFragment, getTheDefaultPluginMenu, getToolbarClass, hasHeaderRow, hasNumberedColumn, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isHeadingElement, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isPureHeading, isPureParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isStandardHeadingElement, isStandardHeadingElementByType, isUrl, isVirtualKey, jaJp as jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRu as ruRuLocale, setClipboardDataByDom, setEditorUUID, theTethysIconRegistryFaker, toggleClass, toggleHeadingRelatedElement, toggleProperty, toggleStyle, topLeftPosition, topRightPosition, uniqueCellPosition, updatePopoverPosition, withMention, withTestPlugin, withTheia, zhHans as zhHansLocale, zhHant as zhHantLocale };
|
|
19171
19195
|
//# sourceMappingURL=worktile-theia.mjs.map
|