Skip to content

Commit 11ebc53

Browse files
JiuqingSongjuliaroldiBryanValverdeUCopilothaven2world
authored
Bump version to 9.45.1 (#3254)
* support RTL (#3177) * Update ContextMenuProvider to accept event parameter and adjust related tests (#3175) * refactor: remove deprecated features and clean up related code in CachePlugin and CopyPastePlugin (#3178) * Add `test:fast` for faster unit test runs (#3179) * refactor: optimize karma configuration for improved performance * feat: add fast karma configuration and update package.json for debugging * refactor: streamline karma plugin declaration and update test scripts for clarity * refactor: update test commands to use fast karma configuration * Add support for retaining formats when splitting paragraphs on Enter/Delete/Backspace keypress (#3180) * refactor: optimize karma configuration for improved performance * feat: add fast karma configuration and update package.json for debugging * refactor: streamline karma plugin declaration and update test scripts for clarity * Add support for retaining formats when splitting paragraphs on Enter key press - Introduced `formatsToKeep` option in `EditOptions` to specify which formats to retain. - Updated `keyboardEnter`, `handleEnterOnParagraph`, and `splitParagraph` functions to handle the new formats. - Enhanced tests to verify the correct behavior of format retention during paragraph splits. * Remove unused import for handleEnterOnParagraph in keyboardEnterTest * Remove stray backtick from splitParagraph function * refactor: update test commands to use fast karma configuration * feat: implement class format handling and preserve formatting on paragraph split * feat: rename formatsToKeep to formatsToPreserveOnMerge and update related functionality * test: update spies in keyboardDelete tests and fix format property in preserveParagraphFormat tests * Support rowSpan equal to 0 (#3181) * fix: handle zero colSpan and rowSpan in tableProcessor to ensure proper cell creation * fix: correct colSpan condition in tableProcessor for accurate cell processing * feat: add spanUntilNextSection support in table cell processing and handling * refactor: remove spanUntilNextSection from table cell handling and related tests * refactor: simplify rowSpan handling and improve tableProcessor tests for edge cases * Remove unneeded changes * Remove * fix: update source map configuration for improved debugging accuracy (#3186) * Support passing event to getContextMenuItems when plugin is a MixedPlugin (#3188) * feat: enhance context menu handling to support V9 providers with event parameter * fix: enhance isV9ContextMenuProvider to check for mixed plugins * refactor: simplify spyOn usage for DarkColorHandler in BridgePlugin tests * fix: enhance isV9ContextMenuProvider to validate V9 provider signature * fix: update context menu provider check to use isMixedPluginProvider * New getContentForCopy API (#3182) New getContentForCopy API * feat: add announce options for bold, italic, and underline formatting (#3194) * feat: add announce options for bold, italic, and underline formatting; update shortcuts and tests * refactor: update context initialization in toggleBold, toggleItalic, and toggleUnderline tests for type safety * Address comments from review * test: add unit tests for bold, italic, and underline shortcuts with announceFormatChange * Add Find and Replace API and plugin (#3190) * Add Find and Replace API and plugin * Fix a comment * improve * feat: add announcements for table selection and unselection in the editor (#3195) * feat: add announce options for bold, italic, and underline formatting; update shortcuts and tests * refactor: update context initialization in toggleBold, toggleItalic, and toggleUnderline tests for type safety * feat: add announcements for text selection and unselection in the editor * refactor: simplify table selection logic by using TableSelection type in getIsSelectingOrUnselecting function * Update packages/roosterjs-content-model-core/lib/corePlugin/selection/tableSelectionUtils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address comments from review * test: add unit tests for bold, italic, and underline shortcuts with announceFormatChange * Move functionality to a new plugin * Fix * Fix * Fix comment --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix #396891 (#3199) * Fix #396891 * improve * improve * first colunm (#3202) * Fix 400434 (#3200) * Add format when insert table (#3203) Add the format parameter in the insertTable API, then it will be possible to insert a table with a predefined format. It can be used to add margin bottom to the table, then when a table is inserted under another their border does not overlay. * Move graduated feature to a separate type (#3205) * Move graduated feature to a separate type * improve * fix build * Translate lineHeight normal to 120% when pasting from Word Desktop and move parsers to their own file (#3209) * Translate lineHeight normal to 120% and move parsers to their own file * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix text to bullet issue (#3210) * Fix text to bullet issue * fix test * Refactor paste source validation to use getDocumentSource (#3208) * Refactor paste source validation to use getDocumentSource - Updated shouldConvertToSingleImage to utilize htmlFirstLevelChildTags instead of clipboardData. - Replaced instances of getPasteSource with getDocumentSource across various tests and implementations. - Introduced getDocumentSource function to centralize document source determination logic. - Added retrieveDocumentMetadata utility to extract metadata from documents. - Ensured all related tests are updated to reflect changes in function calls and parameters. * Refactor paste handling and add tests for negative text indent parser * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix #3171 #3184 (#3211) * Fix #3171 #3184 * Update packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Use getPromoteLink to verify if a link can be promoted (#3213) Add getPromoteLink function to verify if a link can be promoted. * [fix] Keep format on the selection marker when reconcile Text (#3220) * [fix] Keep format on the selection marker when reconcile Text * update ut * update test * [Image Edit] Fix 394371 (#3219) Check if the selectedImage property exists when the content changed event is triggered, * Update the Entity's format when applying format on the content inside the Entity (#3196) * Update the Entity's format when applying format on the content inside the Entity * fix test * Fix Align Attribute being removed on paste for containers (#3217) * Add wordContainerParser to handle negative margin-left values and update processPastedContentFromWordDesktop to use it * asd * Refactor wordContainerParser to remove unused parameters * remove * update * Support cache for list (#3204) * Support cache for list * fix build * improve * add tests * add test * add test * Update packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleBlockGroupChildren.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Try generate url data (#3222) wrap the draw image function in a try statement, if successful the image will be drawn in the canvas, if not return the data URL of the previous image * Support Trusted publishing for npmjs (#3227) * Support Trusted publishing for npmjs * improve * improve * Fix 230556 (#3223) * Fix 230556 * improve * fix build and improve * Fix: make the isSafari env include both iOS and macOS (#3215) Co-authored-by: Liang Meng <liangmeng@microsoft.com> Co-authored-by: Jiuqing Song <jisong@microsoft.com> * Revert "Fix: make the isSafari env include both iOS and macOS (#3215)" (#3229) This reverts commit a5b653f. * Fix table selection logic to handle reversed coordinates and add corresponding tests (#3228) * Update "isSafari" detection to work across Apple platforms (#3232) * Update Safari detection logic in createEditorCore * Update isSafari detection in corresponding tests * Fix #2841 (#3230) * Fix #2841 * fix build * fix build * fix comment * Fix 298633 (#3233) * Fix #3231 (#3234) * Fix #3231 * fix comment * fix comments * Table Row/Column Selector (#3221) Add to new Table Editor features, TableRowSelector and TableColumnSelector to select table rows or columns. * Support color transformation in table borders (#3216) Introduce a new TransformTableBorderColor that enable border color transformation when the editor switch from light to dark mode. * Fix ordinal superscript for numbers ending in 0 (20th, 30th, etc.) (#3241) - Changed falsy check to explicit !== null for numericValue - Fixes issue where 0 was treated as falsy, preventing superscript - Affects both separate segments (linked numbers) and combined (20th) formats - Added unit tests for 20th, 30th, and 40th to prevent regression * Disable using global window and document (#3240) * Add minWidth cell to insertTable (#3239) Add a new parameter, customCellFormat, to the insertTable function to allow custom styles for tables. * Export formatContainerProcessor for public API use (#3238) Export formatContainerProcessor from roosterjs-content-model-dom public API to enable users to use it in processorOverride for custom DOM-to-Model processing. This allows customization of format container elements (e.g., blockquote) processing without relying on internal module paths. Co-authored-by: Jiuqing Song <jisong@microsoft.com> * Fix Table Cell alignment for RTL (#3246) When the cell has the text direction in RTL, invert the table cell alignment direction, so it can match the direction. * Fix publish issue (#3253) --------- Co-authored-by: Julia Roldi <87443959+juliaroldi@users.noreply.github.com> Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Haowen Chen <haowchen@microsoft.com> Co-authored-by: Liang <jojo.spirit@outlook.com> Co-authored-by: Liang Meng <liangmeng@microsoft.com> Co-authored-by: gabesl <73849657+gabesl@users.noreply.github.com> Co-authored-by: Dennis Chen <dennisc695@icloud.com>
1 parent 8f964f7 commit 11ebc53

File tree

5 files changed

+128
-25
lines changed

5 files changed

+128
-25
lines changed

packages/roosterjs-content-model-api/lib/modelApi/table/alignTableCell.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,22 @@ import type {
1010
TableCellVerticalAlignOperation,
1111
} from 'roosterjs-content-model-types';
1212

13-
const TextAlignValueMap: Partial<Record<
13+
const TextAlignValueMap: Record<
1414
TableCellHorizontalAlignOperation,
15-
'start' | 'center' | 'end'
16-
>> = {
17-
alignCellLeft: 'start',
18-
alignCellCenter: 'center',
19-
alignCellRight: 'end',
15+
Partial<Record<'ltr' | 'rtl', 'start' | 'center' | 'end'>>
16+
> = {
17+
alignCellLeft: {
18+
ltr: 'start',
19+
rtl: 'end',
20+
},
21+
alignCellCenter: {
22+
ltr: 'center',
23+
rtl: 'center',
24+
},
25+
alignCellRight: {
26+
ltr: 'end',
27+
rtl: 'start',
28+
},
2029
};
2130

2231
const VerticalAlignValueMap: Partial<Record<
@@ -36,7 +45,8 @@ export function alignTableCellHorizontally(
3645
operation: TableCellHorizontalAlignOperation
3746
) {
3847
alignTableCellInternal(table, cell => {
39-
cell.format.textAlign = TextAlignValueMap[operation];
48+
cell.format.textAlign =
49+
TextAlignValueMap[operation][cell.format.direction == 'rtl' ? 'rtl' : 'ltr'];
4050
});
4151
}
4252

packages/roosterjs-content-model-api/test/modelApi/table/alignTableCellTest.ts

Lines changed: 106 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,82 @@ import {
1212
describe('alignTableCellHorizontally', () => {
1313
function runTest(
1414
operation: TableCellHorizontalAlignOperation,
15-
expectedFormat: ContentModelTableCellFormat
15+
expectedFormat: ContentModelTableCellFormat,
16+
isRTL?: boolean
1617
) {
1718
const table = createTable(2);
18-
table.rows[0].cells.push(createTableCell(1, 1, false));
19-
table.rows[0].cells.push(createTableCell(1, 1, false));
20-
table.rows[0].cells.push(createTableCell(1, 1, false));
21-
table.rows[1].cells.push(createTableCell(1, 1, false));
22-
table.rows[1].cells.push(createTableCell(1, 1, false));
23-
table.rows[1].cells.push(createTableCell(1, 1, false));
19+
table.rows[0].cells.push(
20+
createTableCell(
21+
1,
22+
1,
23+
false,
24+
isRTL
25+
? {
26+
direction: 'rtl',
27+
}
28+
: undefined
29+
)
30+
);
31+
table.rows[0].cells.push(
32+
createTableCell(
33+
1,
34+
1,
35+
false,
36+
isRTL
37+
? {
38+
direction: 'rtl',
39+
}
40+
: undefined
41+
)
42+
);
43+
table.rows[0].cells.push(
44+
createTableCell(
45+
1,
46+
1,
47+
false,
48+
isRTL
49+
? {
50+
direction: 'rtl',
51+
}
52+
: undefined
53+
)
54+
);
55+
table.rows[1].cells.push(
56+
createTableCell(
57+
1,
58+
1,
59+
false,
60+
isRTL
61+
? {
62+
direction: 'rtl',
63+
}
64+
: undefined
65+
)
66+
);
67+
table.rows[1].cells.push(
68+
createTableCell(
69+
1,
70+
1,
71+
false,
72+
isRTL
73+
? {
74+
direction: 'rtl',
75+
}
76+
: undefined
77+
)
78+
);
79+
table.rows[1].cells.push(
80+
createTableCell(
81+
1,
82+
1,
83+
false,
84+
isRTL
85+
? {
86+
direction: 'rtl',
87+
}
88+
: undefined
89+
)
90+
);
2491
table.rows[0].cells[1].isSelected = true;
2592
table.rows[0].cells[2].isSelected = true;
2693
table.rows[1].cells[1].isSelected = true;
@@ -36,12 +103,20 @@ describe('alignTableCellHorizontally', () => {
36103
alignTableCellHorizontally(table, operation);
37104

38105
expect(table.rows[0].cells.map(c => c.format)).toEqual([
39-
{},
106+
isRTL
107+
? {
108+
direction: 'rtl',
109+
}
110+
: {},
40111
expectedFormat,
41112
expectedFormat,
42113
]);
43114
expect(table.rows[1].cells.map(c => c.format)).toEqual([
44-
{},
115+
isRTL
116+
? {
117+
direction: 'rtl',
118+
}
119+
: {},
45120
expectedFormat,
46121
expectedFormat,
47122
]);
@@ -87,6 +162,28 @@ describe('alignTableCellHorizontally', () => {
87162
textAlign: 'end',
88163
});
89164
});
165+
166+
it('align to left - RTL', () => {
167+
runTest(
168+
'alignCellLeft',
169+
{
170+
direction: 'rtl',
171+
textAlign: 'end',
172+
},
173+
true /* isRTL */
174+
);
175+
});
176+
177+
it('align to right - RTL ', () => {
178+
runTest(
179+
'alignCellRight',
180+
{
181+
direction: 'rtl',
182+
textAlign: 'start',
183+
},
184+
true /* isRTL */
185+
);
186+
});
90187
});
91188

92189
describe('alignTableCellVertically', () => {

tools/buildTools/normalize.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ function normalize() {
5555
packageJson.version = version;
5656
}
5757

58-
if (packageJson.version == '0.0.0') {
59-
packageJson.private = true;
60-
}
61-
6258
knownCustomizedPackages[packageName] = packageJson.version;
6359

6460
packageJson.typings = './lib/index.d.ts';

tools/buildTools/publish.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ function publish() {
2222
console.log(
2323
`Skip publishing package ${packageName}, because version (${localVersion}) is not ready to publish`
2424
);
25-
// } else if (localVersion == npmVersion) {
26-
// console.log(
27-
// `Skip publishing package ${packageName}, because version (${npmVersion}) is not changed`
28-
// );
25+
} else if (localVersion == npmVersion) {
26+
console.log(
27+
`Skip publishing package ${packageName}, because version (${npmVersion}) is not changed`
28+
);
2929
} else {
3030
try {
3131
const basePublishString = `npm publish`;

versions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"react": "9.0.4",
3-
"main": "9.45.0",
3+
"main": "9.45.1",
44
"legacyAdapter": "8.65.2",
55
"overrides": {}
66
}

0 commit comments

Comments
 (0)