{"id":41619823,"url":"https://github.com/systelab/systelab-components","last_synced_at":"2026-05-21T14:02:47.044Z","repository":{"id":37502972,"uuid":"110467754","full_name":"systelab/systelab-components","owner":"systelab","description":"Systelab Angular common components","archived":false,"fork":false,"pushed_at":"2026-05-12T15:11:28.000Z","size":18941,"stargazers_count":15,"open_issues_count":108,"forks_count":9,"subscribers_count":20,"default_branch":"master","last_synced_at":"2026-05-12T17:11:33.001Z","etag":null,"topics":["angular","typescript","typescript-library"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/systelab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-12T20:44:55.000Z","updated_at":"2026-04-22T09:24:31.000Z","dependencies_parsed_at":"2024-01-15T12:35:01.374Z","dependency_job_id":"b9b595e2-04fd-40ec-b3b0-e31d0a6598d6","html_url":"https://github.com/systelab/systelab-components","commit_stats":{"total_commits":1517,"total_committers":52,"mean_commits":"29.173076923076923","dds":0.6130520764667107,"last_synced_commit":"115968bbf89df46d16eebfa23e355a08fcad51aa"},"previous_names":[],"tags_count":215,"template":false,"template_full_name":null,"purl":"pkg:github/systelab/systelab-components","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systelab%2Fsystelab-components","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systelab%2Fsystelab-components/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systelab%2Fsystelab-components/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systelab%2Fsystelab-components/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/systelab","download_url":"https://codeload.github.com/systelab/systelab-components/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systelab%2Fsystelab-components/sbom","scorecard":{"id":863900,"data":{"date":"2025-08-18","repo":{"name":"github.com/systelab/systelab-components","commit":"a5d37e7bd60d1ab7f36b5e1867c5b8e4885d3b12"},"scorecard":{"version":"v5.2.1-41-g40576783","commit":"40576783fda6698350fcbbeaea760ff827433034"},"score":6.2,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-vc8w-jr9v-vj7f","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T02:09:37.964Z","repository_id":37502972,"created_at":"2025-08-24T02:09:37.964Z","updated_at":"2025-08-24T02:09:37.964Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33303158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","typescript","typescript-library"],"created_at":"2026-01-24T13:30:06.132Z","updated_at":"2026-05-21T14:02:47.021Z","avatar_url":"https://github.com/systelab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4b9aac15463b46bba542091304304388)](https://www.codacy.com/gh/systelab/systelab-components/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=systelab/systelab-components\u0026amp;utm_campaign=Badge_Grade)\n[![Build Status](https://travis-ci.com/systelab/systelab-components.svg?branch=master)](https://travis-ci.com/systelab/systelab-components)\n[![codecov](https://codecov.io/gh/systelab/systelab-components/branch/master/graph/badge.svg)](https://codecov.io/gh/systelab/systelab-components)\n[![npm version](https://badge.fury.io/js/systelab-components.svg)](https://badge.fury.io/js/systelab-components)\n[![Known Vulnerabilities](https://snyk.io/test/github/systelab/systelab-components/badge.svg?targetFile=package.json)](https://snyk.io/test/github/systelab/systelab-components?targetFile=package.json)\n\n# systelab-components\n\nLibrary with common UI components to speed up your Angular developments. You can take a look to the components in our showcase at https://systelab.github.io/components.\n\nPlease, read the documentation at https://github.com/systelab/systelab-components/tree/master/projects/systelab-components\n\n## Working with the repo\n\nIn order to clone the repository and test the library use the following commands:\n\n```bash\ngit clone https://github.com/systelab/systelab-components.git\ncd systelab-components\nnpm ci\nnpm run build-lib\nng serve\n\n```\n\nThis will bootstrap a showcase application to test the different components.\n\nUse watch in the library build to detect file changes automatically (except from css). Start application in a different terminal:\n\nTerminal 1\n\n```bash\nng build systelab-components --watch\n\n```\n\nTerminal 2\n\n```bash\nng serve\n\n```\n\n## Test\n\n### Unit\n\n```bash\nng test\n\n```\n\n### E2E\n\nFor E2E testing purposes, the strategy chosen is Snapshot Testing.\n\nSnapshot tests are a very useful tool whenever you want to make sure your UI does not change unexpectedly.\n\nA typical snapshot test case for a mobile app renders a UI component, takes a screenshot, then compares it to a reference image stored alongside the test. The test will fail if the two images do not match: either the change is unexpected, or the screenshot needs to be updated to the new version of\nthe UI component.\n\nIn order to run the test, run the command:\n\n```bash\nng e2e\n\n```\n\nIf you want to update the snapshots, run the command:\n\n```bash\nnpm run update-snapshots\n\n```\n\n## Publish the Library\n\nIn order to publish the library, an authorized npm user is required. Once set, update the version in the package.json, and run the npm publish script:\n\n```bash\nnpm run build-lib\ncd dist/systelab-components\nnpm publish\n\n```\n\n# Breaking changes\n\n## Version 21.x.x - Angular 21\n\n[Angular 21 news](https://blog.angular.dev/announcing-angular-v21-57946c34f14b)\n\n- Zoneless by Default: New Angular applications no longer include zone.js by default. This transition to a zoneless architecture leverages Signals for change detection, resulting in improved performance, smaller bundle sizes, and better compatibility with modern browser APIs.\n- Vitest as Default Test Runner: Following its preview in previous versions, Vitest is now the stable and default test runner for all new Angular projects, replacing Karma to provide faster execution and a better developer experience.\n- Signal Forms (Experimental): A new, completely signal-based approach to forms. It aims to replace the complexities of Reactive and Template-driven forms with a more composable, fully-typed, and reactive API that doesn't require ControlValueAccessor.\n- Angular Aria (Developer Preview): A new library of \"headless\" components focused on accessibility. It provides the logic and ARIA requirements for complex UI patterns (like accordions or menus) while allowing developers complete control over styling.\n- AI-Powered Tooling with MCP Server: Angular now includes a Model Context Protocol (MCP) server. This allows AI agents and LLMs to better understand the context of an Angular project, facilitating more accurate code generation and automated migrations.\n- Simplified HttpClient: The HttpClient is now automatically provided in the root injector for new applications, simplifying the initial setup and reducing boilerplate in the app.config.ts.\n- Regular Expression Support: You can now use Regex literals directly within templates.\n- Object Spread in @let: Support for the spread operator (...) within the @let syntax for more flexible data manipulation in templates.\n- Generic SimpleChanges: The SimpleChanges interface is now generic, allowing for stricter type checking when using the ngOnChanges lifecycle hook.\n- CLDR v47 Support: Updated the Unicode Common Locale Data Repository support from v41 to v47, improving internationalization, currency, and date formatting.\n\nA part of the usage of the [migration guide](https://angular.dev/update-guide?v=20.0-21.0\u0026l=1) we should - due a bug - use the **provideZoneChangeDetection()**\ninto the **providers** array for module based Karma tests.\n\n## Version 20.x.x - Angular 20\n\n[Angular 20 news](https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301)\n\n- Stabilizing APIs such as effect, linkedSignal, toSignal, incremental hydration, route-level render mode config and promoting zoneless to developer preview\n- Improved debugging with Angular DevTools and partnering with Chrome for custom Angular reporting directly in Chrome DevTools\n- Polishing developer experience with style guide updates.\n- Advancements in GenAI development with llms.txt and angular.dev guides and videos for building Generative AI applications\n- Launching a request for comments for an official mascot for Angular\n- Since v20.1.0 the old styles has been removed and now the modern styles are the only ones, so the import of the styles must be updated without the modern path `@import \"systelab-components/sass/systelab-components\";`\n\n## Version 19.x.x - Angular 19\n\n[Angular 19 news](https://blog.angular.dev/meet-angular-v19-7b29dfd05b84)\n\n- SSR improvements\n- Enhanced Reactivity (resource, linkedSignal, renderEffect)\n- Standalone by default\n- Zoneless support\n- Developer Experience Improvements (new material components like as time picker, HMR styles, detection of unused imports)\n- New Reactive handler for HTTP requests (httpResource and rxResource)\n\nThe following steps should be considered when upgrade to systelab-components 19.x.x\n\n- [AG Grid](https://www.ag-grid.com/angular-data-grid/upgrading-to-ag-grid-33/) has been updated from v28.2.1 to v33.3.0. Some breaking changes must be applied.\n   - gridOptions.api are deprecated now We have a GridApi comes from the gridReady event ([AG Grid 31 deprecations](https://www.ag-grid.com/angular-data-grid/upgrading-to-ag-grid-31/#deprecations)).\n   - columnApi is deprecated now the methods of columnApi is into GridAPi ([AG Grid 31 deprecations](https://www.ag-grid.com/angular-data-grid/upgrading-to-ag-grid-31/#column-api)).\n   - The ag-theme-fresh is deprecated (the new used theme is ag-theme-alpine) ([AG Grid 32 deprecations](https://www.ag-grid.com/javascript-data-grid/theming-v32)).\n   - The ag-grid modules must to be used with ModuleRegistry method in order to load only the neccessary modules ([AG Grid 33 deprecations](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-33/#deprecations)).\n   - The RangeSelectionCell has been disabled because belongs to ag-grid-enterprise library and wasn't use ([AG Grid](https://www.ag-grid.com/javascript-data-grid/cell-selection/)).\n   - The multiple and single selection are changes now needs to be use multiRow and singleRow ([AG Grid 32](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-32-2-1/)).\n   - Several attributes now are functions like as node.selected that now is node.isSelected() ([AG Grid 29](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-29/#removal-of-deprecated-apis)).\n   - setDataSource is deprecated now needs to be use the setGridOptions and updateGridOptions ([AG Grid 31](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-31/#deprecations)).\n   - cellEditorFramework is deprecated with cellEditor ([AG Grid 30](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-30/#removal-of-deprecated-apis)).\n   - suppressRowClickSelection is deprecated now needs to be used enableClickSelection ([AG Grid 32](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-32-2-1/#deprecations)).\n   - node.selectThisNode is deprecated now needs to be use node.setSelected ([AG Grid 29](https://www.ag-grid.com/javascript-data-grid/upgrading-to-ag-grid-29/#removal-of-deprecated-apis)).\n   - Needs to be scope the theme variables to be used in specific theme ([AG Grid 31](https://www.ag-grid.com/javascript-data-grid/theming/)).\n\n## Version 18.x.x - Angular 18\n\n[Angular 18 news](https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe)\n\n- Experimental zoneless support\n- Material 3 deferrable views\n- SSR improvements\n- Deferrable views are now stable\n- Control flow is stable\n\n## Version 17.x.x - Angular 17\n\n[Angular 17 news](https://blog.angular.dev/introducing-angular-v17-4d7033312e4b)\n\n- Deferrable views\n- Faster runtime\n- Faster builds\n- Built-in control flow\n- New lifecycle hooks ( afterRender and afterNextRender )\n- Default Vite + esbuild for new projects\n- Signals\n\n## Version 16.x.x - Angular 16\n\n- Datepicker has been ranamed to DatepickerComponent\n\n[Angular 16 news](https://blog.angular.io/angular-v16-is-here-4d7a28ec680d)\n\n- Angular Signals\n- RxJS interoperability\n- Server-side rendering and hydration\n- Improved tooling for standalone components, directives and pipes\n- Advancing developer tooling\n- Autocomplete imports in templates\n\n## Version 15.x.x - Angular 15\n\nTree component migrated to use Angular CDK Tree\n\n1. Add CdkTreeModule to modules using Tree components\n2. Replace abstract-tree-status.component.html for abstract-tree.component.html\n3. Replace\n\nimport { TreeNode } from 'primeng/api';\n\nfor\n\nimport { TreeNode } from 'systelab-components';\n\n4. Review any usages and overrides of CSS classes related to previous PrimeNG Tree (p-tree, p-treenode-label, ...)\n\n[Angular 15 news](https://blog.angular.io/angular-v15-is-now-available-df7be7f2f4c8)\n\n- Router and HttpClient tree-shakable standalone APIs\n- Directive composition API\n- Image directive is now stable\n- Functional router guards\n- Router unwraps default imports\n- Better stack traces\n- Release MDC-based components to stable\n- Improvements in the experimental esbuild support\n\n## Version 14.x.x - Angular 14\n\n[Angular 13 news](https://blog.angular.io/angular-v13-is-now-available-cce66f7bc296)\n\n- **View Engine** is no longer available\n- Libraries built with the latest version of the **APF** [Angular Package Format](https://angular.io/guide/angular-package-format) will no longer require the use of ngcc. As a result of these changes library developers can expect leaner package output and faster execution.\n- The new API removes the need for ComponentFactoryResolver being injected into the constructor. Ivy creates the opportunity to instantiate the component with ViewContainerRef.createComponent without creating an associated factory\n- **End of IE11 support**\n- Angular now supports the use of persistent build cache by default for new v13 projects [More info](https://github.com/angular/angular-cli/issues/21545) and [CLI Cache](https://angular.io/cli/cache)\n- **RxJS 7.4** is now the default for apps created with ng new\n- Dynamically enable/disable validators: allows built-in validators to be disabled by setting the value to null\n- Important improvements to TestBed that now does a better job of tearing down test modules and environments after each test\n- *canceledNavigationResolution* router flag to restore the computed value of the browser history when set to *computed*\n- [TypeScript 4.4](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-4.html)\n\n[Angular 14 news](https://blog.angular.io/angular-v14-is-now-available-391a6db736af)\n\n- [Standalone Components](https://angular.io/guide/standalone-components)\n- [Typed Angular Forms](https://angular.io/guide/typed-forms)\n- Streamlined page title accessibility\n- Extended developer diagnostics\n- Catch the invalid “Banana in a box” error on your two-way data bindings\n- Catch nullish coalescing on non-nullable values in Angular templates\n- Bind to protected component members directly from the templates\n- Optional injectors in Embedded Views\n- Support for passing in an optional injector when creating an embedded view through *ViewContainerRef.createEmbeddedView* and *TemplateRef.createEmbeddedView*\n- NgModel changes are reflected in the UI for OnPush components\n- [TypeScript 4.6](https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/)\n- Added missing 'interactjs' reference as peerDependcy.\n\nThe following steps should be considered when upgrade to systelab-components 14.x.x\n\n- [AG Grid](https://ag-grid.com/changelog) has been updated from v25 to v28.2.1. Some breaking changes must be applied (check the change log link).\n\n## Version 13.x.x Angular 12\n\nIE11 support has been deprecated due to the upgrade to Angular 12\n\nUse of [Ivy](https://angular.io/guide/ivy), applications that uses this library have to use Angular 12 and Ivy rendering.\n\nAdded --noImplicitOverride flag to allow override methods and get error for unintentionally overrides\nhttps://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-3.html#override-and-the---noimplicitoverride-flag\n\n## Version 11.x.x\n\nThe following steps should be considered when migrating from Angular 10 to 11\n\n1. Angular now requires TypeScript 4.0. ng update will migrate you automatically.\n2. Browsers Support\n\nSupport for IE9, IE10, and IE mobile has been removed. This was announced in the v10 update.\n\nRun this command to update the browsers `npx browserslist@latest --update-db`\n\n3. Upgrade Primeng 11\n\nPrimeIcons should be upgraded to 4.1.0 as components like table utilize new icons in the library\n\nlocale property functionality of Datepicker is removed in favor of the new global i18n API. The datepicker components inject PrimeNGConfig\n\n4. Use 'karma-coverage' because 'karma-coverage-istanbul-reporter' usage has been deprecated since version 11\n\n## Version 10.x.x\n\nMany changes where introduce in version 10 in order to standardize the library and support Angular 9.\nThe following steps should be considered when migrating from version 9.\n\n1. When importing the module do not use .forRoot(); In WebStorm, replace in path:\n\n```hs\n- SystelabComponentsModule.forRoot\\(\\)\n- SystelabComponentsModule\n\n```\n\n2. When importing services and modules import them from systelab-components root. In WebStorm, replace in path:\n\n```sql\n- from 'systelab-components/lib.+\n- from 'systelab-components';\n\n```\n\n3. DialogService and MessagePopupServices are provided in root, so there is no need to provide them in any module. The option here is with WebStorm manually search for any of those services and remove them.\n4. entryComponents for Modals or Cell renderers will no longer be needed and could be a problem for future Angular versions. In WebStorm, try to replace in path with the following regular expression (second parameter is nothing):\n\n```sql\n- ,\\n?entryComponents: [^\\]]*\n- (blank)\n\n```\n\nFinally, update your package.json in order to add the peer dependencies:\n\n```json\n\"ag-grid-angular\": \"^28.2.0\",\n\"ag-grid-community\": \"^28.2.0\",\n\"angular-split\": \"^4.0.0\",\n\"bootstrap\": \"^4.5.2\",\n\"date-fns\": \"^2.15.0\",\n\"jquery\": \"^3.5.1\",\n\"mobile-drag-drop\": \"^2.3.0-rc.2\",\n\"popper.js\": \"^1.16.1\",\n\"primeicons\": \"^6.0.1\",\n\"primeng\": \"^14.1.2\",\n\"systelab-preferences\": \"^14.0.1\",\n\"systelab-translate\": \"^14.0.6\",\n\"pako\": \"^1.0.6\",\n\"@ngx-translate/core\": \"^13.0.0\",\n\"@ngx-translate/http-loader\": \"^6.0.0\",\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystelab%2Fsystelab-components","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystelab%2Fsystelab-components","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystelab%2Fsystelab-components/lists"}