Skip to content
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
merged 3 commits into from
Dec 1, 2023

Conversation

JiuqingSong
Copy link
Collaborator

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 Plugin SelectionPlugin 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 into SelectionPluginState.

@juliaroldi
Copy link
Contributor

Will SelectionPlugin replace TableCellSelection and ImageSelectionPlugin in the future?

@JiuqingSong
Copy link
Collaborator Author

Will SelectionPlugin replace TableCellSelection and ImageSelectionPlugin in the future?

yes

@JiuqingSong JiuqingSong merged commit 89a61d0 into master Dec 1, 2023
7 checks passed
@JiuqingSong JiuqingSong deleted the u/jisong/selectionplugin branch December 1, 2023 19:56
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants