-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standalone Editor: Selection API step 1: Add a SelectionPlugin #2228
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
JiuqingSong
requested review from
flyingbee2012,
BryanValverdeU,
ianeli1,
vinguyen12,
juliaroldi and
Andres-CT98
November 29, 2023 19:12
juliaroldi
approved these changes
Nov 30, 2023
Will SelectionPlugin replace TableCellSelection and ImageSelectionPlugin in the future? |
yes |
JiuqingSong
added a commit
that referenced
this pull request
Dec 1, 2023
* margin in lists * remove code * type * refactor * fixes * remove parameter * refactor * remove file change * Use Content Model to handle Delete/Backspace key in more cases (#2162) * Do not set focus when quite shadow edit (#2163) * Fix #237217 (#2164) * Fix #237735 (#2165) * Fix #236416 (#2166) * wip * fixes * Fix #2160 (#2167) * Fix #2160 * fix build * test * remove test * remove test * remove test * Rearrange parameters of iterateSelections (#2180) * Rearrange parameters of iterateSelections * improve * Standalone editor step 0: Create a copy of Editor class (#2175) * Standalone editor step 0: Create a copy of Editor class * remove unnecessary change * improve * Fix #2061, apply pending format on Android (#2172) * Fix #2061 * Fix for Android * Fix #2080 (#2173) * Standalone editor Step 0.5: Create test page for adapter editor (#2176) * Standalone editor step 0: Create a copy of Editor class * Standalone editor Step 0.5: Create test page for adapter editor * Add Content Model functionality to AdapterEditor * remove unnecessary change * remove unnecessary change * improve * toggleListType * type * Fix Mouseout behavior to hide table editors (#2181) * init * init * fix build * Add comment * Fix apply Table Inside borders operation and Demo site (#2184) * fix cases * fix demo * Add image size checkmarks to context menu (#2168) * Allow a max error un percentage size check * Allow a checkmark to be shown in ctx menu * Add checkmark to image sizes * Add missing type * Fix types * Add comment * Attempt to fix image selection * Revert unneeded changes in image selection * Use attr as backup in resize calc * Rely entirely on image selection * Revert changes to domeventplugin * Copy changes into content model adapter * Revert previous standalone editor change (#2189) * Revert previous standalone change * fix build * Move formatWithContentModel to be a core API (#2185) * Content Model: Allow clear cache from formatContentModel (#2186) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Potential perf improvement in getFormatState (#2187) * Content Model: Move pending format into editor core (#2188) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Move pending format into editor core * Convert DeleteResult from const enum to string literal type (#2191) * Move paste plugin to roosterjs-content-model-plugins package (#2192) * image selection plugin * check image parent node * Adding module entry to package.json (#2197) * Move ContentModelEdit plugin to plugins package (#2195) * Move ContentModelEdit plugin to plugins package * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Move type files to roosterjs-content-model-types package (#2196) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * fix build * fix build * Move core API to roosterjs-content-model-core package (#2198) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * fix build * fix build * Move corePlugins to roosterjs-content-model-core package (#2199) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * fix build * Move format API to roosterjs-content-model-api package (#2200) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core (#2201) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core * improve * Remove public enum from Content Model (#2204) * Directly create Content Model editor (#2206) * Fix Delimiter Nested Entity Scenario (#2207) * init * comment * Standalone editor: Remove dependency to EditorCore (#2208) * Remove dependency to EditorCore * fix test * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Standalone Editor: Remove legacy plugin: PendingFormatStatePlugin (#2209) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Standalone editor: Merge DOMEventPlugin and MouseUpPlugin (#2210) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Merge DOMEventPlugin and MouseUpPlugin * Standalone Editor: CreateStandaloneEditorCore (#2218) * Standalone Editor: Port LifecyclePlugin (#2219) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * fix comment * select on click * test * Standalone Editor: Support keyboard input (init step) (#2221) * apply table format fix * remove console.log * fix comments * Standalone Editor: Port EntityPlugin (#2223) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * Standalone Editor: Support keyboard input (init step) * Standalone Editor: Port EntityPlugin * improve * Add test * improve * test * Content Model: Keep image port if exist (#2226) * add color spectrum check * auto format test * remove empty line * Allow each package has its own version when publish (#2233) * Allow each package has its own version when publish * remove unnecessary change * Content Model: Fix #2230 (#2231) * Content Model: keep default format when paste into empty editor (#2232) * Standalone Editor: Add a SelectionPlugin (#2228) --------- Co-authored-by: Júlia Roldi <juliaroldi@microsoft.com> Co-authored-by: Julia Roldi <87443959+juliaroldi@users.noreply.github.com> Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> Co-authored-by: Andres-CT98 <107568016+Andres-CT98@users.noreply.github.com> Co-authored-by: Ian Elizondo <ianeli@microsoft.com> Co-authored-by: Keven Arroyo <dake.3601@gmail.com>
JiuqingSong
added a commit
that referenced
this pull request
Dec 4, 2023
* margin in lists * remove code * type * refactor * fixes * remove parameter * refactor * remove file change * Use Content Model to handle Delete/Backspace key in more cases (#2162) * Do not set focus when quite shadow edit (#2163) * Fix #237217 (#2164) * Fix #237735 (#2165) * Fix #236416 (#2166) * wip * fixes * Fix #2160 (#2167) * Fix #2160 * fix build * test * remove test * remove test * remove test * Rearrange parameters of iterateSelections (#2180) * Rearrange parameters of iterateSelections * improve * Standalone editor step 0: Create a copy of Editor class (#2175) * Standalone editor step 0: Create a copy of Editor class * remove unnecessary change * improve * Fix #2061, apply pending format on Android (#2172) * Fix #2061 * Fix for Android * Fix #2080 (#2173) * Standalone editor Step 0.5: Create test page for adapter editor (#2176) * Standalone editor step 0: Create a copy of Editor class * Standalone editor Step 0.5: Create test page for adapter editor * Add Content Model functionality to AdapterEditor * remove unnecessary change * remove unnecessary change * improve * toggleListType * type * Fix Mouseout behavior to hide table editors (#2181) * init * init * fix build * Add comment * Fix apply Table Inside borders operation and Demo site (#2184) * fix cases * fix demo * Add image size checkmarks to context menu (#2168) * Allow a max error un percentage size check * Allow a checkmark to be shown in ctx menu * Add checkmark to image sizes * Add missing type * Fix types * Add comment * Attempt to fix image selection * Revert unneeded changes in image selection * Use attr as backup in resize calc * Rely entirely on image selection * Revert changes to domeventplugin * Copy changes into content model adapter * Revert previous standalone editor change (#2189) * Revert previous standalone change * fix build * Move formatWithContentModel to be a core API (#2185) * Content Model: Allow clear cache from formatContentModel (#2186) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Potential perf improvement in getFormatState (#2187) * Content Model: Move pending format into editor core (#2188) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Move pending format into editor core * Convert DeleteResult from const enum to string literal type (#2191) * Move paste plugin to roosterjs-content-model-plugins package (#2192) * image selection plugin * check image parent node * Adding module entry to package.json (#2197) * Move ContentModelEdit plugin to plugins package (#2195) * Move ContentModelEdit plugin to plugins package * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Move type files to roosterjs-content-model-types package (#2196) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * fix build * fix build * Move core API to roosterjs-content-model-core package (#2198) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * fix build * fix build * Move corePlugins to roosterjs-content-model-core package (#2199) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * fix build * Move format API to roosterjs-content-model-api package (#2200) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core (#2201) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core * improve * Remove public enum from Content Model (#2204) * Directly create Content Model editor (#2206) * Fix Delimiter Nested Entity Scenario (#2207) * init * comment * Standalone editor: Remove dependency to EditorCore (#2208) * Remove dependency to EditorCore * fix test * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Standalone Editor: Remove legacy plugin: PendingFormatStatePlugin (#2209) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Standalone editor: Merge DOMEventPlugin and MouseUpPlugin (#2210) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Merge DOMEventPlugin and MouseUpPlugin * Standalone Editor: CreateStandaloneEditorCore (#2218) * Standalone Editor: Port LifecyclePlugin (#2219) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * fix comment * select on click * test * Standalone Editor: Support keyboard input (init step) (#2221) * apply table format fix * remove console.log * fix comments * Standalone Editor: Port EntityPlugin (#2223) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * Standalone Editor: Support keyboard input (init step) * Standalone Editor: Port EntityPlugin * improve * Add test * improve * test * Content Model: Keep image port if exist (#2226) * add color spectrum check * auto format test * remove empty line * Allow each package has its own version when publish (#2233) * Allow each package has its own version when publish * remove unnecessary change * Content Model: Fix #2230 (#2231) * Content Model: keep default format when paste into empty editor (#2232) * Standalone Editor: Add a SelectionPlugin (#2228) * Content Model: Go back to getDarkColor (#2239) * Content Model: go back to getDarkColor * fix test * Content Model: Fix overwrite table cell bug (#2240) --------- Co-authored-by: Júlia Roldi <juliaroldi@microsoft.com> Co-authored-by: Julia Roldi <87443959+juliaroldi@users.noreply.github.com> Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> Co-authored-by: Andres-CT98 <107568016+Andres-CT98@users.noreply.github.com> Co-authored-by: Ian Elizondo <ianeli@microsoft.com> Co-authored-by: Keven Arroyo <dake.3601@gmail.com>
JiuqingSong
added a commit
that referenced
this pull request
Dec 6, 2023
* margin in lists * remove code * type * refactor * fixes * remove parameter * refactor * remove file change * Use Content Model to handle Delete/Backspace key in more cases (#2162) * Do not set focus when quite shadow edit (#2163) * Fix #237217 (#2164) * Fix #237735 (#2165) * Fix #236416 (#2166) * wip * fixes * Fix #2160 (#2167) * Fix #2160 * fix build * test * remove test * remove test * remove test * Rearrange parameters of iterateSelections (#2180) * Rearrange parameters of iterateSelections * improve * Standalone editor step 0: Create a copy of Editor class (#2175) * Standalone editor step 0: Create a copy of Editor class * remove unnecessary change * improve * Fix #2061, apply pending format on Android (#2172) * Fix #2061 * Fix for Android * Fix #2080 (#2173) * Standalone editor Step 0.5: Create test page for adapter editor (#2176) * Standalone editor step 0: Create a copy of Editor class * Standalone editor Step 0.5: Create test page for adapter editor * Add Content Model functionality to AdapterEditor * remove unnecessary change * remove unnecessary change * improve * toggleListType * type * Fix Mouseout behavior to hide table editors (#2181) * init * init * fix build * Add comment * Fix apply Table Inside borders operation and Demo site (#2184) * fix cases * fix demo * Add image size checkmarks to context menu (#2168) * Allow a max error un percentage size check * Allow a checkmark to be shown in ctx menu * Add checkmark to image sizes * Add missing type * Fix types * Add comment * Attempt to fix image selection * Revert unneeded changes in image selection * Use attr as backup in resize calc * Rely entirely on image selection * Revert changes to domeventplugin * Copy changes into content model adapter * Revert previous standalone editor change (#2189) * Revert previous standalone change * fix build * Move formatWithContentModel to be a core API (#2185) * Content Model: Allow clear cache from formatContentModel (#2186) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Potential perf improvement in getFormatState (#2187) * Content Model: Move pending format into editor core (#2188) * Move formatWithContentModel to be a core API * Content Model: Allow clear cache from formatContentModel * Content Model: Move pending format into editor core * Convert DeleteResult from const enum to string literal type (#2191) * Move paste plugin to roosterjs-content-model-plugins package (#2192) * image selection plugin * check image parent node * Adding module entry to package.json (#2197) * Move ContentModelEdit plugin to plugins package (#2195) * Move ContentModelEdit plugin to plugins package * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Move type files to roosterjs-content-model-types package (#2196) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * fix build * fix build * Move core API to roosterjs-content-model-core package (#2198) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * fix build * fix build * Move corePlugins to roosterjs-content-model-core package (#2199) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * fix build * Move format API to roosterjs-content-model-api package (#2200) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core (#2201) * Move ContentModelEdit plugin to plugins package * Move types to roosterjs-content-model-types package * improve * Improve * improve * Improve * improve * Move core API to core package * fix build * improve * Move corePlugins to roosterjs-content-model-core package * fix build * improve * fix build * Move format API to roosterjs-content-model-api package * fix build * Improve * Decouple ContentModelEditor from roosterjs-editor-core * improve * Remove public enum from Content Model (#2204) * Directly create Content Model editor (#2206) * Fix Delimiter Nested Entity Scenario (#2207) * init * comment * Standalone editor: Remove dependency to EditorCore (#2208) * Remove dependency to EditorCore * fix test * improve --------- Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> * Standalone Editor: Remove legacy plugin: PendingFormatStatePlugin (#2209) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Standalone editor: Merge DOMEventPlugin and MouseUpPlugin (#2210) * Remove dependency to EditorCore * fix test * improve * Standalone editor: Remove PendingFormatStatePlugin * fix build * Merge DOMEventPlugin and MouseUpPlugin * Standalone Editor: CreateStandaloneEditorCore (#2218) * Standalone Editor: Port LifecyclePlugin (#2219) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * fix comment * select on click * test * Standalone Editor: Support keyboard input (init step) (#2221) * apply table format fix * remove console.log * fix comments * Standalone Editor: Port EntityPlugin (#2223) * Standalone Editor: CreateStandaloneEditorCore * Standalone Editor: Port LifecyclePlugin * fix build * fix test * improve * fix test * Standalone Editor: Support keyboard input (init step) * Standalone Editor: Port EntityPlugin * improve * Add test * improve * test * Content Model: Keep image port if exist (#2226) * add color spectrum check * auto format test * remove empty line * Allow each package has its own version when publish (#2233) * Allow each package has its own version when publish * remove unnecessary change * Content Model: Fix #2230 (#2231) * Content Model: keep default format when paste into empty editor (#2232) * Standalone Editor: Add a SelectionPlugin (#2228) * Content Model: Go back to getDarkColor (#2239) * Content Model: go back to getDarkColor * fix test * Content Model: Fix overwrite table cell bug (#2240) * ContentModel: Set readonly for new entity (#2243) --------- Co-authored-by: Júlia Roldi <juliaroldi@microsoft.com> Co-authored-by: Julia Roldi <87443959+juliaroldi@users.noreply.github.com> Co-authored-by: Bryan Valverde U <bvalverde@microsoft.com> Co-authored-by: Andres-CT98 <107568016+Andres-CT98@users.noreply.github.com> Co-authored-by: Ian Elizondo <ianeli@microsoft.com> Co-authored-by: Keven Arroyo <dake.3601@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The general goal is to remove the old selection related core API (
select
,selectRange
,selectImage
,selectTable
,getSelectionRange
,getSelectionRangeEx
), and use the selection API (setDOMSelection
,getDOMSelection
) instead, and use a new core PluginSelectionPlugin
to handle all selection related events.This is the first step of porting selection API. It creates a new
SelectionPlugin
, and move selection related things intoSelectionPluginState
.