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

feat(plugins): move all external SlickGrid controls/plugins & rewrite as internal extensions #555

Merged
merged 130 commits into from Nov 22, 2021

Conversation

ghiscoding
Copy link
Owner

  • remove all references to external 3rd party controls/plugins of SlickGrid core lib
  • rewrite them all to vanilla JS (basically drop all jQuery code)
  • with the rewrite and the move into internal code, we no longer need any extension bridges and so we no longer need internal code to use slickgrid event to communicate between extension & control/plugin, we now do this directly in the lib
  • add full unit test coverage as well (prior to this PR, there wasn't any unit tests on external controls/plugins)

- use the code from the AutoTooltips SlickGrid Plugin code and implement it directly in the lib instead of having an extension that calls the plugin which is a bridge.
feat(addons): move controls/plugins from external into Slickgrid-Universal
- remove any reliance of the Grid Menu from SlickGrid fork, move everything internally into Slickgrid-Universal
- the Grid Menu will no longer use SlickGrid Events, instead we will use the regular internal pubsub Service to do this
- add new `alignDropSide` property to the Grid Menu options to choose which side to align the dropdown menu
- ColumnPicker/GridMenu share common code related to the column picker list, we can move this common code into a separate and shared file instead of keeping duplicate code (DRY)
feat(plugins): move external Header Menu into Slickgrid-Universal
feat(plugins): move external Cell Menu into Slickgrid-Universal
- there were some hidden characters that were carried over when doing copy+paste, and the only way I found to fix that was to replace `\u034f` (unicode char) with empty string
- we should also trim the string to remove any empty spaces from start/end of string
…nsions

refactor: move all controls/plugins to extensions folder
- makes it simpler to create & add options to a created DOM element, it also does proper inference
refactor: add new `createDomElement` utility
feat(utils): replace ext lib `assign-deep` by local `deepMerge` util
feat(core): add TS utility to infer extension instance by name
…a-style

refactor: add style option to `createDomElement` util
refactor: add better inference on createDomElement & change export
…ault-import

fix(build): add DOM purify optional default import to fix rollup builds
@codecov
Copy link

codecov bot commented Nov 22, 2021

Codecov Report

Merging #555 (7814ffb) into master (ec01868) will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@             Coverage Diff             @@
##            master      #555     +/-   ##
===========================================
  Coverage   100.00%   100.00%             
===========================================
  Files          221       229      +8     
  Lines        14080     15754   +1674     
  Branches      4808      5287    +479     
===========================================
+ Hits         14080     15754   +1674     
Impacted Files Coverage Δ
packages/common/src/constants.ts 100.00% <ø> (ø)
...mon/src/extensions/slickCellExternalCopyManager.ts 100.00% <ø> (ø)
packages/common/src/extensions/slickCellMenu.ts 100.00% <ø> (ø)
...s/common/src/extensions/slickCellRangeDecorator.ts 100.00% <ø> (ø)
...es/common/src/extensions/slickCellRangeSelector.ts 100.00% <ø> (ø)
...s/common/src/extensions/slickCellSelectionModel.ts 100.00% <ø> (ø)
...common/src/extensions/slickCheckboxSelectColumn.ts 100.00% <ø> (ø)
...ackages/common/src/extensions/slickColumnPicker.ts 100.00% <ø> (ø)
packages/common/src/extensions/slickContextMenu.ts 100.00% <ø> (ø)
...es/common/src/extensions/slickDraggableGrouping.ts 100.00% <ø> (ø)
... and 100 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ea7000e...7814ffb. Read the comment docs.

@ghiscoding ghiscoding merged commit d15022b into master Nov 22, 2021
@ghiscoding ghiscoding deleted the feat/internal-controls-and-plugins branch November 22, 2021 19:32
ghiscoding-SE pushed a commit that referenced this pull request Nov 23, 2021
- after merging the big controls/plugins PR #555 that rewrote all the plugins, I just found out this simple option got missed
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.

None yet

1 participant