Skip to content
This repository was archived by the owner on Jun 1, 2025. It is now read-only.

Commit 714c48b

Browse files
authored
Merge pull request #1150 from ghiscoding/next
feat!: drop jQuery requirement & use multiple-select-vanilla dependency
2 parents 438fe7c + 0b24780 commit 714c48b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+3204
-3925
lines changed

.github/renovate.json5

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,23 @@
1111
depTypeList: ['peerDependencies'],
1212
enabled: false,
1313
},
14-
{
15-
packageNames: ['@ngx-translate/core'],
16-
allowedVersions: '14.0.0',
17-
},
18-
// allow Node14/npm8 until its EOL June 2023
1914
{
2015
packageNames: ['node'],
21-
allowedVersions: '14.17.0',
16+
allowedVersions: '16.15.0',
2217
},
2318
{
2419
packageNames: ['npm'],
25-
allowedVersions: '6.14.13',
26-
},
27-
{
28-
packageNames: ['rxjs'],
29-
allowedVersions: '7.5.0',
20+
allowedVersions: '8.5.0',
3021
},
3122
{
23+
// skip any Angular major version updates
3224
"updateTypes": ["major"],
3325
"enabled": false
3426
}
3527
],
3628
schedule: ['on friday and tuesday'],
3729
ignoreDeps: [
38-
// ignore TypeScript since it has to follow whatever version allows at the time
30+
// ignore TypeScript since it has to follow Angular recommended version
3931
'typescript'
4032
],
4133
}

.github/workflows/main.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
push:
66
branches:
77
- master
8+
- next
89
pull_request:
910
branches:
1011
- '**'
@@ -44,7 +45,7 @@ jobs:
4445
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
4546
restore-keys: |
4647
${{ runner.os }}-yarn-
47-
48+
4849
- name: Run yarn install dependencies
4950
run: yarn --frozen-lockfile
5051

README.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@
1111
[![codecov](https://codecov.io/gh/ghiscoding/Angular-Slickgrid/branch/master/graph/badge.svg)](https://codecov.io/gh/ghiscoding/Angular-Slickgrid)
1212

1313
### Brief introduction
14-
One of the best javascript datagrid [SlickGrid](https://github.com/mleibman/SlickGrid) which was originally developed by @mleibman is now available to React. I have used a few datagrids and SlickGrid beats most of them in terms of functionalities and performance (it can easily deal with even a million row). We will be using the [6pac/SlickGrid](https://github.com/6pac/SlickGrid/) fork, it is the most active fork since the original @mleibman was retired some time ago by the original author for personal reasons. Also worth to know, that I also contributed a lot to the 6pac/SlickGrid fork for the benefit of all the SlickGrid libraries that I maintain like this one here.... also as a reminder, this is a wrapper of a jQuery lib (SlickGrid) and its core component is written in jQuery/JavaScript, so just keep that in mind and it also mean that jQuery is a dependency of Angular-Slickgrid.
14+
One of the best JavasSript datagrid [SlickGrid](https://github.com/mleibman/SlickGrid) which was originally developed by @mleibman is now available to Angular. SlickGrid beats most other datagrids in terms of functionalities and performance (it can easily deal with even a million row). Angular-Slickgrid is a wrapper on top of SlickGrid and we are using the [6pac/SlickGrid](https://github.com/6pac/SlickGrid/) fork which is the most active fork since the original was put on pause by its original author for personal reasons. Also worth to know, that I also contributed a lot to the 6pac/SlickGrid fork for the benefit of all the SlickGrid libraries that I maintain like this one here....
1515

1616
### License
1717
[MIT License](LICENSE)
1818

1919
## Installation
20-
Refer to the **[Wiki - HOWTO Step by Step](https://github.com/ghiscoding/angular-slickgrid/wiki/HOWTO---Step-by-Step)** and/or clone the [Angular-Slickgrid Demos](https://github.com/ghiscoding/angular-slickgrid-demos) repository. Please consult all Wikis before opening new issues, also consider asking installation and/or general questions on [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=slickgrid) unless you think there's a bug with the library.
20+
A good starting point is the **[Wiki - HOWTO Step by Step](https://github.com/ghiscoding/angular-slickgrid/wiki/HOWTO---Step-by-Step)** and/or simply clone the [Angular-Slickgrid Demos](https://github.com/ghiscoding/angular-slickgrid-demos) repository. Please consult all Wikis and closed issues before opening new ones, also consider asking installation and/or general questions on [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=slickgrid) unless you think there's a bug with the library.
2121

2222
```sh
2323
npm install angular-slickgrid
2424
```
2525

2626
### Demo page
27-
`Angular-Slickgrid` works with all `Bootstrap` versions, you can see a demo of each one below. There are also 2 new styling Themes, Material & Salesforce which are also available. You can also use different SVG icons, you may want to look at the [Wiki - SVG Icons](https://github.com/ghiscoding/Angular-Slickgrid/wiki/SVG-Icons)
27+
`Angular-Slickgrid` works with all `Bootstrap` versions, you can see a demo of each one below. There are also extra styling themes for not just Bootstrap but also Material & Salesforce which are also available. You can also use different SVG icons, you may want to look at the [Wiki - SVG Icons](https://github.com/ghiscoding/Angular-Slickgrid/wiki/SVG-Icons)
2828
- [Bootstrap 5 demo](https://ghiscoding.github.io/Angular-Slickgrid) / [examples repo](https://github.com/ghiscoding/angular-slickgrid-demos/tree/master/bootstrap5-demo-with-translate)
2929
- [Bootstrap 4 demo](https://ghiscoding.github.io/angular-slickgrid-demos) / [examples repo](https://github.com/ghiscoding/angular-slickgrid-demos/tree/master/bootstrap4-demo-with-translate)
3030

@@ -38,42 +38,41 @@ npm start
3838
```
3939

4040
### Like it? :star: it
41-
You like to use **Angular-Slickgrid**? Be sure to upvote :star:, maybe support me with cafeine :coffee: and feel free to contribute. 👷👷‍♀️
41+
You like to use **Angular-Slickgrid**? Be sure to upvote :star: and maybe support me with caffeine :coffee: and feel free to contribute. 👷👷‍♀️
4242

4343
<a href='https://ko-fi.com/ghiscoding' target='_blank'><img height='32' style='border:0px;height:32px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' />
4444

4545
## Latest News & Releases
4646
Check out the [Releases](https://github.com/ghiscoding/Angular-Slickgrid/releases) section for all latest News & Releases.
4747

4848
## Angular Compatibility
49-
- version `1.x.x` for Angular 4-6
50-
- version `2.x.x` for Angular 7-11
51-
- version `3.x.x` for Angular 12+ and RxJS 7+ ([migration guide to 3.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-3.x))
52-
- IE11 is EOL and **no longer supported**, if you still need to support it stay with version 2.x
53-
- uses new [Slickgrid-Universal](https://github.com/ghiscoding/slickgrid-universal) monorepo version 0.19.2
54-
- version `4.x.x` for Angular 13+, RxJS 7+ and **Ivy ONLY** ([migration guide to 4.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-4.x))
55-
- for Ivy build only (no more UMD bundle & output >= ES2017), IE not supported.
56-
- requires Slickgrid-Universal [1.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v1.1.1) version
57-
- version `5.x.x` for Angular 14+, RxJS >=7.5.0 and **Ivy ONLY** ([migration guide to 5.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-5.x))
58-
- removal of jQueryUI dependency (replaced internally by SortableJS, a smaller and touch friendly lib).
59-
- requires Slickgrid-Universal [2.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v2.0.0) version
60-
61-
**Note** For a full compatibility table of Angular-Slickgrid with Slickgrid-Universal, you can consult the [Versions Compatibility Table - Wiki](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Versions-Compatibility-Table)
62-
63-
For Angular 12+ see the instructions below - [Angular 12 with WebPack 5 - polyfill issue](https://github.com/ghiscoding/Angular-Slickgrid#angular-12-with-webpack-5---how-to-fix-polyfill-error)
49+
50+
| Angular-Slickgrid | Angular version | Migration Guide | Notes |
51+
|-------------------|-----------------------|-----------------|------|
52+
| 1.x | 4-6.x | | |
53+
| 2.x | 7-11.x | | |
54+
| 3.x | >=12.0 | [Migration 3.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-3.x) | the lib now uses [Slickgrid-Universal](https://github.com/ghiscoding/slickgrid-universal) monorepo version [v0.19.2](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v0.19.2). Also, IE11 is EOL and no longer supported. |
55+
| 4.x | >=13.0 | [Migration 4.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-4.x) | for Ivy build only, uses Slickgrid-Universal [1.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v1.1.1) version |
56+
| 5.x | >=14.0 | [Migration 5.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-5.x) | removal of jQueryUI, uses Slickgrid-Universal [2.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v2.0.0) version |
57+
| 6.x | >=16.0 | [Migration 6.x](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Migration-to-6.x) | removal of jQuery (now uses browser native code), uses Slickgrid-Universal [3.x](https://github.com/ghiscoding/slickgrid-universal/releases/tag/v3.0.0) version |
58+
59+
**Note** For a full compatibility table of Angular-Slickgrid with Slickgrid-Universal, please take a look at the [Versions Compatibility Table - Wiki](https://github.com/ghiscoding/Angular-Slickgrid/wiki/Versions-Compatibility-Table).
60+
61+
For Angular 12+ see the instructions below - [Angular 12 with WebPack 5 - polyfill issue](https://github.com/ghiscoding/Angular-Slickgrid#angular-12-with-webpack-5---how-to-fix-polyfill-error).
6462

6563
### ngx-translate Compatibility
6664

67-
If you are facing any issues with `ngx-translate` library while building your Angular Project. You need to make sure that `@ngx-translate/core` is part of your dependencies, that is also true even when using a single Locale, that is because it is a `peerDependency` of Angular-Slickgrid. The reason is because, we use `@Optional() TranslateService` in the lib and for that to work, we still need it to be installed, but don't worry it should still be removed by the tree shaking process after a running a production build. See their version compatibility table below
65+
Angular-Slickgrid uses `ngx-translate` library to support Locales, it is also required even when using a single Locale. The reason is because, we use `@Optional() TranslateService` in the lib and for that to work, it requires `ngx-translate` to installed. Once you run the build and if you are using a single Locale then the tree shaking process should remove these optional dependencies. See their version compatibility table below for more info
6866

6967
| Angular Version | @ngx-translate/core |
7068
|-----------------|---------------------|
69+
| 16+ | 15.x+ |
7170
| 13+ (Ivy only) | 14.x+ |
7271
| 10-13 | 13.x+ |
7372
| 8-9 | 12.x+ |
7473
| 7 | 11.x+ |
7574

76-
### Build Warnings (Angular 8+)
75+
### Build Warnings (Angular >=8.0 && <16.0)
7776
You might get warnings about SlickGrid while doing a production build, most of them are fine and the best way to fix them, is to simply remove/ignore the warnings, all you have to do is to add a file named `ngcc.config.js` in your project root (same location as the `angular.json` file) with the following content (you can also see this [commit](https://github.com/ghiscoding/angular-slickgrid-demos/commit/1fe8092bcd2e99ede5ab048f4a7ebe6254e4bee0) which fixes the Angular-Slickgrid-Demos prod build):
7877
```js
7978
module.exports = {

angular.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
"dompurify",
2323
"excel-builder-webpacker",
2424
"flatpickr",
25-
"jquery",
2625
"moment-mini",
2726
"stream"
2827
],
@@ -54,15 +53,12 @@
5453
"node_modules/bootstrap/dist/css/bootstrap.min.css",
5554
"node_modules/flatpickr/dist/flatpickr.min.css",
5655
"node_modules/font-awesome/css/font-awesome.min.css",
57-
"node_modules/multiple-select-modified/src/multiple-select.css",
5856
"node_modules/@ng-select/ng-select/themes/default.theme.css",
5957
"src/app/slickgrid-custom-variables.scss",
6058
"src/styles.scss"
6159
],
6260
"scripts": [
63-
"node_modules/jquery/dist/jquery.min.js",
6461
"node_modules/bootstrap/dist/js/bootstrap.min.js",
65-
"node_modules/multiple-select-modified/src/multiple-select.js",
6662
"node_modules/sortablejs/Sortable.min.js"
6763
],
6864
"vendorChunk": true,
@@ -151,4 +147,4 @@
151147
],
152148
"analytics": false
153149
}
154-
}
150+
}

package.json

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
},
1818
"scripts": {
1919
"start": "ng serve --port 4300",
20-
"postinstall": "ngcc",
2120
"prebuild": "npm-run-all delete:dist lint",
2221
"build": "ng-packagr -p ng-package.json",
2322
"postbuild": "npm-run-all copy:i18n",
@@ -49,85 +48,84 @@
4948
"url": "https://ko-fi.com/ghiscoding"
5049
},
5150
"dependencies": {
52-
"@ngx-translate/core": ">=14.0.0",
53-
"@slickgrid-universal/common": "~2.6.4",
54-
"@slickgrid-universal/custom-footer-component": "~2.6.4",
55-
"@slickgrid-universal/empty-warning-component": "~2.6.4",
56-
"@slickgrid-universal/event-pub-sub": "~2.6.4",
57-
"@slickgrid-universal/pagination-component": "~2.6.4",
58-
"@slickgrid-universal/row-detail-view-plugin": "~2.6.4",
59-
"@slickgrid-universal/rxjs-observable": "~2.6.4",
60-
"@types/jquery": "^3.5.16",
51+
"@ngx-translate/core": ">=15.0.0 <16.0.0",
52+
"@slickgrid-universal/common": "3.0.0",
53+
"@slickgrid-universal/custom-footer-component": "3.0.0",
54+
"@slickgrid-universal/empty-warning-component": "3.0.0",
55+
"@slickgrid-universal/event-pub-sub": "3.0.0",
56+
"@slickgrid-universal/pagination-component": "3.0.0",
57+
"@slickgrid-universal/row-detail-view-plugin": "3.0.0",
58+
"@slickgrid-universal/rxjs-observable": "3.0.0",
6159
"dequal": "^2.0.3",
6260
"dompurify": "^3.0.3",
63-
"jquery": "^3.7.0",
64-
"rxjs": ">=7.5.0",
61+
"rxjs": "^7.8.1",
6562
"sortablejs": "^1.15.0"
6663
},
6764
"devDependencies": {
68-
"@angular-devkit/build-angular": "^14.2.11",
69-
"@angular-eslint/builder": "^14.4.0",
70-
"@angular-eslint/eslint-plugin": "^14.4.0",
71-
"@angular-eslint/eslint-plugin-template": "^14.4.0",
72-
"@angular-eslint/schematics": "^14.4.0",
73-
"@angular-eslint/template-parser": "^14.4.0",
74-
"@angular/animations": "^14.3.0",
75-
"@angular/cli": "^14.2.11",
76-
"@angular/common": "^14.3.0",
77-
"@angular/compiler": "^14.3.0",
78-
"@angular/compiler-cli": "^14.3.0",
79-
"@angular/core": "^14.3.0",
80-
"@angular/forms": "^14.3.0",
81-
"@angular/language-service": "^14.3.0",
82-
"@angular/platform-browser": "^14.3.0",
83-
"@angular/platform-browser-dynamic": "^14.3.0",
84-
"@angular/router": "^14.3.0",
85-
"@faker-js/faker": "^7.6.0",
65+
"@angular-devkit/build-angular": "^16.0.2",
66+
"@angular-eslint/builder": "^16.0.2",
67+
"@angular-eslint/eslint-plugin": "^16.0.2",
68+
"@angular-eslint/eslint-plugin-template": "^16.0.2",
69+
"@angular-eslint/schematics": "^16.0.2",
70+
"@angular-eslint/template-parser": "^16.0.2",
71+
"@angular/animations": "^16.0.2",
72+
"@angular/cli": "^16.0.2",
73+
"@angular/common": "^16.0.2",
74+
"@angular/compiler": "^16.0.2",
75+
"@angular/compiler-cli": "^16.0.2",
76+
"@angular/core": "^16.0.2",
77+
"@angular/forms": "^16.0.2",
78+
"@angular/language-service": "^16.0.2",
79+
"@angular/platform-browser": "^16.0.2",
80+
"@angular/platform-browser-dynamic": "^16.0.2",
81+
"@angular/router": "^16.0.2",
82+
"@faker-js/faker": "^8.0.1",
8683
"@fnando/sparkline": "^0.3.10",
87-
"@ng-select/ng-select": "^9.1.0",
88-
"@ngx-translate/core": "^14.0.0",
89-
"@ngx-translate/http-loader": "^7.0.0",
84+
"@ng-select/ng-select": "^10.0.4",
85+
"@ngx-translate/core": "^15.0.0",
86+
"@ngx-translate/http-loader": "^8.0.0",
9087
"@release-it/conventional-changelog": "^5.1.1",
91-
"@slickgrid-universal/composite-editor-component": "~2.6.4",
92-
"@slickgrid-universal/custom-tooltip-plugin": "~2.6.4",
93-
"@slickgrid-universal/excel-export": "~2.6.4",
94-
"@slickgrid-universal/graphql": "~2.6.4",
95-
"@slickgrid-universal/odata": "~2.6.4",
96-
"@slickgrid-universal/text-export": "~2.6.4",
88+
"@slickgrid-universal/composite-editor-component": "3.0.0",
89+
"@slickgrid-universal/custom-tooltip-plugin": "3.0.0",
90+
"@slickgrid-universal/excel-export": "3.0.0",
91+
"@slickgrid-universal/graphql": "3.0.0",
92+
"@slickgrid-universal/odata": "3.0.0",
93+
"@slickgrid-universal/text-export": "3.0.0",
9794
"@types/dompurify": "^3.0.2",
9895
"@types/flatpickr": "^3.1.2",
9996
"@types/fnando__sparkline": "^0.3.4",
10097
"@types/jest": "^29.5.1",
101-
"@types/jquery": "^3.5.16",
10298
"@types/moment": "^2.13.0",
103-
"@types/node": "^18.16.13",
99+
"@types/node": "^20.2.3",
104100
"@types/sortablejs": "^1.15.1",
105101
"@types/text-encoding-utf-8": "^1.0.2",
106-
"@typescript-eslint/eslint-plugin": "^5.59.6",
107-
"@typescript-eslint/parser": "^5.59.6",
102+
"@typescript-eslint/eslint-plugin": "^5.59.7",
103+
"@typescript-eslint/parser": "^5.59.7",
108104
"autoprefixer": "^10.4.14",
109105
"bootstrap": "^5.2.3",
110106
"copyfiles": "^2.4.1",
111107
"cross-env": "^7.0.3",
112108
"custom-event-polyfill": "^1.0.7",
113109
"eslint": "^8.41.0",
110+
"fetch-jsonp": "^1.2.3",
114111
"font-awesome": "^4.7.0",
115112
"jest": "^29.5.0",
116113
"jest-extended": "^3.2.4",
117114
"jest-preset-angular": "^13.1.1",
118115
"moment-mini": "^2.29.4",
119-
"ng-packagr": "^14.3.0",
120-
"ngx-bootstrap": "^9.0.0",
116+
"ng-packagr": "^16.0.1",
117+
"ngx-bootstrap": "^10.2.0",
121118
"npm-run-all2": "^6.0.5",
122119
"postcss": "^8.4.23",
123120
"postcss-cli": "^10.1.0",
124121
"release-it": "^15.10.3",
125-
"rimraf": "^4.4.1",
122+
"rimraf": "^5.0.1",
123+
"rxjs": "^7.8.1",
126124
"sass": "^1.62.1",
127125
"stream-browserify": "^3.0.0",
128126
"ts-node": "^10.9.1",
129127
"tslib": "^2.5.2",
130-
"typescript": "~4.7.4",
128+
"typescript": "~5.0.4",
131129
"zone.js": "~0.13.0"
132130
},
133131
"engines": {
@@ -137,4 +135,4 @@
137135
"resolutions": {
138136
"caniuse-lite": "1.0.30001488"
139137
}
140-
}
138+
}

src/app/app-routing.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const routes: Routes = [
7777
];
7878

7979
@NgModule({
80-
imports: [RouterModule.forRoot(routes, { useHash: true, relativeLinkResolution: 'legacy' }), TranslateModule],
80+
imports: [RouterModule.forRoot(routes, { useHash: true }), TranslateModule],
8181
exports: [RouterModule, TranslateModule],
8282
})
8383
export class AppRoutingRoutingModule { }

0 commit comments

Comments
 (0)